Rusty Earth - font Russo for main menu and fix crash of background music

git-svn-id: svn://kolibrios.org@5264 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Marat Zakiyanov (Mario79) 2014-12-26 08:36:21 +00:00
parent 5936066957
commit 47b7315fd5
12 changed files with 82 additions and 19 deletions

View File

@ -4,6 +4,7 @@ if not exist bin mkdir rstearth_eng_bin
@fasm -m 16384 rstearth.asm rstearth_eng_bin\rstearth.kex @fasm -m 16384 rstearth.asm rstearth_eng_bin\rstearth.kex
@erase lang.inc @erase lang.inc
@kpack rstearth_eng_bin\rstearth.kex @kpack rstearth_eng_bin\rstearth.kex
@copy resources\font_russo_1bpp.png rstearth_eng_bin\font_russo_1bpp.png
@copy resources\base_8bpp.png rstearth_eng_bin\base_8bpp.png @copy resources\base_8bpp.png rstearth_eng_bin\base_8bpp.png
@copy resources\red_brick_8bpp.png rstearth_eng_bin\red_brick_8bpp.png @copy resources\red_brick_8bpp.png rstearth_eng_bin\red_brick_8bpp.png
@copy resources\white_brick_8bpp.png rstearth_eng_bin\white_brick_8bpp.png @copy resources\white_brick_8bpp.png rstearth_eng_bin\white_brick_8bpp.png

View File

@ -4,6 +4,7 @@ if not exist bin mkdir rstearth_rus_bin
@fasm -m 16384 rstearth.asm rstearth_rus_bin\rstearth.kex @fasm -m 16384 rstearth.asm rstearth_rus_bin\rstearth.kex
@erase lang.inc @erase lang.inc
@kpack rstearth_rus_bin\rstearth.kex @kpack rstearth_rus_bin\rstearth.kex
@copy resources\font_russo_1bpp.png rstearth_rus_bin\font_russo_1bpp.png
@copy resources\base_8bpp.png rstearth_rus_bin\base_8bpp.png @copy resources\base_8bpp.png rstearth_rus_bin\base_8bpp.png
@copy resources\red_brick_8bpp.png rstearth_rus_bin\red_brick_8bpp.png @copy resources\red_brick_8bpp.png rstearth_rus_bin\red_brick_8bpp.png
@copy resources\white_brick_8bpp.png rstearth_rus_bin\white_brick_8bpp.png @copy resources\white_brick_8bpp.png rstearth_rus_bin\white_brick_8bpp.png

View File

@ -0,0 +1,34 @@
;---------------------------------------------------------------------
draw_font:
pusha
xor ebp,ebp
mov esi,edx
mov edx,ebx
cld
;--------------------------------------
@@:
lodsb
test al,al
jz .exit
movzx ebx,al
imul ebx, FONT_SIZE_X * FONT_SIZE_Y /8
mov eax,[font_icons]
add ebx,[eax+28]
add ebx,eax
mov ecx,FONT_SIZE_X shl 16 + FONT_SIZE_Y
mov edi,[eax+20] ; palette
add edi,eax
push esi
mov esi,1
mcall 65
pop esi
add edx,FONT_REAL_SIZE_X shl 16 ; font size x
jmp @b
;--------------------------------------
.exit:
popa
ret
;---------------------------------------------------------------------

View File

@ -243,6 +243,7 @@ error_fs_text_9: db '9 - FAT table is destroyed',0
error_fs_text_10: db '10 - Access denied',0 error_fs_text_10: db '10 - Access denied',0
error_fs_text_11: db '11 - Device error',0 error_fs_text_11: db '11 - Device error',0
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
font_icons_file_name db 'font_russo_1bpp.png',0
base_icons_file_name db 'base_8bpp.png',0 base_icons_file_name db 'base_8bpp.png',0
red_brick_icons_file_name db 'red_brick_8bpp.png',0 red_brick_icons_file_name db 'red_brick_8bpp.png',0
white_brick_icons_file_name db 'white_brick_8bpp.png',0 white_brick_icons_file_name db 'white_brick_8bpp.png',0

View File

@ -65,14 +65,7 @@ load_and_convert_current_icon_set:
mov eax,[raw_pointer] mov eax,[raw_pointer]
ret ret
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
load_and_convert_all_icons: ; load and convert icons
; load and convert base icons
mov ebx,base_icons_file_name
call load_and_convert_current_icon_set
mov [base_icons],eax
; DEBUGF 1, "base_icons: %x\n",eax
; load and convert base icons
; mov ebx,npc_miku_kick_icons_file_name ; mov ebx,npc_miku_kick_icons_file_name
; call load_and_convert_current_icon_set ; call load_and_convert_current_icon_set
; mov [npc_miku_kick_icons],eax ; mov [npc_miku_kick_icons],eax
@ -88,6 +81,19 @@ load_and_convert_all_icons:
; DEBUGF 1, "data size: %x\n",[eax+32] ; DEBUGF 1, "data size: %x\n",[eax+32]
; DEBUGF 1, "transparency offset: %x\n",[eax+36] ; DEBUGF 1, "transparency offset: %x\n",[eax+36]
; DEBUGF 1, "transparency size: %x\n",[eax+40] ; DEBUGF 1, "transparency size: %x\n",[eax+40]
;---------------------------------------------------------------------
load_and_convert_all_icons:
; load and convert font icons
mov ebx,font_icons_file_name
call load_and_convert_current_icon_set
mov [font_icons],eax
; DEBUGF 1, "font_icons: %x\n",eax
; load and convert base icons
mov ebx,base_icons_file_name
call load_and_convert_current_icon_set
mov [base_icons],eax
; DEBUGF 1, "base_icons: %x\n",eax
; load and convert red brick ; load and convert red brick
mov ebx,red_brick_icons_file_name mov ebx,red_brick_icons_file_name

View File

@ -1,6 +1,6 @@
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
title: title:
db 'Rusty Earth (Prototype 1.6) 24.12.2014',0 db 'Rusty Earth (Prototype 1.7) 26.12.2014',0
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
menu_game_label: menu_game_label:
db 'GAME',0 db 'GAME',0

View File

@ -2,7 +2,7 @@
; Code page - Cyrillic OEM866 ; Code page - Cyrillic OEM866
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
title: title:
db '<27>¦ Ά ο ‡¥¬«ο (<28>ΰ®β®β¨― 1.6) 24.12.2014',0 db '<27>¦ Ά ο ‡¥¬«ο (<28>ΰ®β®β¨― 1.7) 26.12.2014',0
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
menu_game_label: menu_game_label:
db 'ˆƒ<CB86>€',0 db 'ˆƒ<CB86>€',0
@ -11,7 +11,7 @@ menu_settings_label:
db '<27><E28098>Ž‰Šˆ',0 db '<27><E28098>Ž‰Šˆ',0
;-------------------------------------- ;--------------------------------------
menu_credits_label: menu_credits_label:
db '<27>€ƒ<EFBFBD>„€<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0 db '<27><EFBFBD><EFBFBD>',0
;-------------------------------------- ;--------------------------------------
menu_help_label: menu_help_label:
db '<27>ŽŒŽ™œ',0 db '<27>ŽŒŽ™œ',0
@ -36,8 +36,8 @@ menu_setting_exit:
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
menu_credits_text: menu_credits_text:
.1: db '<27>ਢ¥â ãç áâ­¨ª ¬ ª®¬ ­¤ë KolibriOS Team!',0 .1: db '<27>ਢ¥â ãç áâ­¨ª ¬ ª®¬ ­¤ë KolibriOS Team!',0
.2: db ' ¨£ΰ¥ ¨α―®«μ§®Ά ­λ £ΰ δ¨η¥α<EFBFBD>¨¥ ¨ §Άγ<CE86>®Άλ¥ ¬ β¥ΰ¨ «λ',0 .2: db 'ƒΰ δ¨η¥α<EFBFBD>¨¥ ¨ §Άγ<CE86>®Άλ¥ ¬ β¥ΰ¨ «λ ―®¤',0
.3: db '―®¤ αΆ®΅®¤­λ¬¨ «¨ζ¥­§¨ο¬¨, ―®§ ¨¬αβΆ®Ά ­­λ¥ α α ©β®Ά:',0 .3: db 'αΆ®΅®¤­λ¬¨ «¨ζ¥­§¨ο¬¨, Ά§οβλ α α ©β®Ά:',0
.4: db 'http://untamed.wild-refuge.net/',0 .4: db 'http://untamed.wild-refuge.net/',0
.5: db 'http://opengameart.org',0 .5: db 'http://opengameart.org',0
.6: db 'https://wiki.themanaworld.org',0 .6: db 'https://wiki.themanaworld.org',0

View File

@ -5,6 +5,7 @@ main_menu_start:
.red: .red:
mov [menu_text_pointers],main_menu_text_pointers mov [menu_text_pointers],main_menu_text_pointers
mov [text_step_Y],SPRITE_SIZE_Y mov [text_step_Y],SPRITE_SIZE_Y
mov [use_separate_draw_text],1
call draw_menu_window call draw_menu_window
call draw_new_pointer call draw_new_pointer
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
@ -116,7 +117,7 @@ main_menu_start:
clear_old_pointer: clear_old_pointer:
movzx ecx,byte [main_menu_pointer] movzx ecx,byte [main_menu_pointer]
imul ecx,SPRITE_SIZE_Y imul ecx,SPRITE_SIZE_Y
add ecx,SPRITE_SIZE_Y*2 + 32 add ecx,SPRITE_SIZE_Y*3 - 16
shl ecx,16 shl ecx,16
mov cx,SPRITE_SIZE_Y mov cx,SPRITE_SIZE_Y
mcall 13,<SPRITE_SIZE_X*2,SPRITE_SIZE_X>,,0 mcall 13,<SPRITE_SIZE_X*2,SPRITE_SIZE_X>,,0
@ -132,7 +133,7 @@ draw_new_pointer:
movzx edx,byte [main_menu_pointer] movzx edx,byte [main_menu_pointer]
imul edx,SPRITE_SIZE_Y imul edx,SPRITE_SIZE_Y
add edx,SPRITE_SIZE_Y*2 + 32 add edx,SPRITE_SIZE_Y*3 - 16
add edx,SPRITE_SIZE_X*2 shl 16 add edx,SPRITE_SIZE_X*2 shl 16
mov eax,[npc_miku_icons] mov eax,[npc_miku_icons]
@ -162,7 +163,16 @@ draw_menu_window:
test edx,edx test edx,edx
jz .end jz .end
cmp [use_separate_draw_text],1
je .use_separate_draw_text
mcall mcall
jmp .continue
;--------------------------------------
.use_separate_draw_text:
call draw_font
;--------------------------------------
.continue:
add ebx,[text_step_Y] add ebx,[text_step_Y]
add esi,4 add esi,4
jmp @b jmp @b
@ -186,10 +196,11 @@ menu_help:
call snd_kick_action call snd_kick_action
mov [menu_text_pointers],menu_help_text_pointers mov [menu_text_pointers],menu_help_text_pointers
;-------------------------------------- ;--------------------------------------
.1: .1:
mov [text_step_Y],20 mov [text_step_Y],20
;-------------------------------------- ;--------------------------------------
.red: .red:
mov [use_separate_draw_text],0
call draw_menu_window call draw_menu_window
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
.still: .still:
@ -253,6 +264,7 @@ settings_menu_start:
mov [menu_text_pointers],settings_menu_text_pointers mov [menu_text_pointers],settings_menu_text_pointers
mov [text_step_Y],SPRITE_SIZE_Y mov [text_step_Y],SPRITE_SIZE_Y
call prepare_settings_text call prepare_settings_text
mov [use_separate_draw_text],1
call draw_menu_window call draw_menu_window
call draw_new_pointer call draw_new_pointer
;--------------------------------------------------------------------- ;---------------------------------------------------------------------

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -47,6 +47,10 @@ include '../../develop/libraries/box_lib/load_lib.mac'
;include '../../develop/libraries/box_lib/trunk/box_lib.mac' ;include '../../develop/libraries/box_lib/trunk/box_lib.mac'
@use_library @use_library
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
FONT_SIZE_X = 32
FONT_REAL_SIZE_X = 32
FONT_SIZE_Y = 32
;---------------------------------------------------------------------
LEVEL_MAP_SIZE_X = 10 LEVEL_MAP_SIZE_X = 10
LEVEL_MAP_SIZE_Y = 10 LEVEL_MAP_SIZE_Y = 10
SPRITE_SIZE_X = 64 SPRITE_SIZE_X = 64
@ -207,6 +211,7 @@ include 'random.inc'
include 'snd_api.inc' include 'snd_api.inc'
include 'sound.inc' include 'sound.inc'
include 'menu.inc' include 'menu.inc'
include 'font.inc'
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
if lang eq ru if lang eq ru
include 'localization_rus.inc' include 'localization_rus.inc'

View File

@ -180,12 +180,13 @@ snd_background_music_thread_start:
mov ebx,[eax] mov ebx,[eax]
add eax,4 add eax,4
mov ebp,eax mov ebp,eax
; DEBUGF 1, "src EAX: %x size EBX: %x\n",eax,ebx add ebx,eax
; DEBUGF 1, "start EAX: %x\n",eax
;-------------------------------------- ;--------------------------------------
.loop: .loop:
cmp [music_flag],0 cmp [music_flag],0
je snd_background_music_thread_start je snd_background_music_thread_start
; DEBUGF 1, "src EAX: %x size EBX: %x\n",eax,ebx ; DEBUGF 1, "src EBP: %x size EBX: %x\n",ebp,ebx
; stdcall _WaveOut@12,[hBuff],eax,ebx ; stdcall _WaveOut@12,[hBuff],eax,ebx
stdcall _WaveOut@12,[hBuff1],ebp,8192 stdcall _WaveOut@12,[hBuff1],ebp,8192
; DEBUGF 1, "return EAX: %x\n",eax ; DEBUGF 1, "return EAX: %x\n",eax
@ -195,7 +196,7 @@ snd_background_music_thread_start:
add ebp,8192*2 add ebp,8192*2
cmp ebx,ebp cmp ebx,ebp
jae .start jbe .start
sub ebp,8192 sub ebp,8192
jmp .loop jmp .loop

View File

@ -12,12 +12,14 @@ music_flag rb 1
snd_kick_flag rb 1 snd_kick_flag rb 1
main_menu_pointer rb 1 main_menu_pointer rb 1
settings_menu_pointer rb 1 settings_menu_pointer rb 1
use_separate_draw_text rb 1
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
align 4 align 4
N_error rd 1 N_error rd 1
error_type rd 1 error_type rd 1
error_path rd 1 error_path rd 1
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
font_icons rd 1
base_icons rd 1 base_icons rd 1
red_brick_icons rd 1 red_brick_icons rd 1
white_brick_icons rd 1 white_brick_icons rd 1