2010-02-09 17:54:59 +03:00
|
|
|
|
TILE_LEN equ 256
|
|
|
|
|
TILE_LEN_W equ TILE_LEN
|
|
|
|
|
TILE_LEN_H equ TILE_LEN
|
|
|
|
|
RGB_TILE_SIZE_1N4 equ (TILE_LEN*TILE_LEN*3/4) ;1/4 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
RGB_TILE_SIZE_1N2 equ (TILE_LEN*TILE_LEN*3/2) ;1/2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
RGB_TILE_SIZE equ TILE_LEN*TILE_LEN*3 ;ࠧ<EFBFBD><EFBFBD><EFBFBD> 1-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
TREE_ICON_SYS16_BMP_SIZE equ 256*3*11+54 ;ࠧ<EFBFBD><EFBFBD><EFBFBD> bmp 䠩<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⥬<EFBFBD>묨 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
TREE_ICON_NOD16_BMP_SIZE equ 256*3* 1+54
|
|
|
|
|
TILE_TEXT_MAX_LEN equ 40 ;<EFBFBD><EFBFBD><EFBFBD>ᨬ<EFBFBD><EFBFBD>쭠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⥪<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>뢮<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
FRACT_TILE_00 equ 1 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<EFBFBD>, 1/4 - <EFBFBD><EFBFBD><EFBFBD>孨<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㣮<EFBFBD>
|
|
|
|
|
FRACT_TILE_01 equ 2 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<EFBFBD>, 1/4 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㣮<EFBFBD>
|
|
|
|
|
FRACT_TILE_10 equ 4 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<EFBFBD>, 1/4 - <EFBFBD><EFBFBD><EFBFBD>孨<EFBFBD> <EFBFBD>ࠢ<EFBFBD><EFBFBD> 㣮<EFBFBD>
|
|
|
|
|
FRACT_TILE_11 equ 8 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<EFBFBD>, 1/4 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ࠢ<EFBFBD><EFBFBD> 㣮<EFBFBD>
|
|
|
|
|
FRACT_TILE_ALL equ 15 ;15=1+2+4+8
|
|
|
|
|
FRACT_TILE_BIT00 equ 0
|
|
|
|
|
FRACT_TILE_BIT01 equ 1
|
|
|
|
|
FRACT_TILE_BIT10 equ 2
|
|
|
|
|
FRACT_TILE_BIT11 equ 3
|
|
|
|
|
|
|
|
|
|
;䫠<EFBFBD><EFBFBD>, <EFBFBD>㦭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|
|
|
|
SCALE_0BIT_USE equ 8
|
|
|
|
|
SCALE_1BIT_USE equ 9
|
|
|
|
|
SCALE_0_USE equ 0x100 ;䫠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> ⥪<EFBFBD>饣<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
SCALE_1_USE equ 0x200 ;䫠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>襣<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> (<EFBFBD>㤥<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD>ய<EFBFBD><EFBFBD>ᮢ<EFBFBD><EFBFBD>)
|
|
|
|
|
|
|
|
|
|
met_fr_opn db 0 ;䫠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>⪠<EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
size_tile_struc equ 32 ;ࠧ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD>
|
|
|
|
|
max_tiles_cols equ 4 ;<EFBFBD><EFBFBD><EFBFBD>ᨬ<EFBFBD><EFBFBD>쭮<EFBFBD> <EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ਭ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
max_tiles_rows equ 3 ;<EFBFBD><EFBFBD><EFBFBD>ᨬ<EFBFBD><EFBFBD>쭮<EFBFBD> <EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
max_tiles_count equ (max_tiles_cols*max_tiles_rows) ;<EFBFBD><EFBFBD><EFBFBD>ᨬ<EFBFBD><EFBFBD>쭮<EFBFBD> <EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD>ணࠬ<EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
tile_coord_x equ dword[edi] ;<EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> x (<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ࠬ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD>)
|
|
|
|
|
tile_coord_y equ dword[edi+ 4] ;<EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> y (<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ࠬ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD>)
|
|
|
|
|
tile_zoom equ byte[edi+ 8] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㦠<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD>
|
|
|
|
|
tile_err_f equ byte[edi+ 9] ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>訡<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨨ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ࠦ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
tile_drobn equ word[edi+10] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD> १<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
tile_offs_l_load equ 12 ;offset params last load tile
|
|
|
|
|
tile_key_coord_x equ dword[edi+12] ;<EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> x (<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD>)
|
|
|
|
|
tile_key_coord_y equ dword[edi+16] ;<EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> y (<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD>)
|
|
|
|
|
tile_key_path_len equ byte[edi+21] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⥪<EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Cache
|
|
|
|
|
tile_rgb_icon equ dword[edi+22] ;㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>࠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>᭮<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮩ <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
tile_drobn_icon equ dword[edi+26] ;㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>࠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
tile_delta_x equ byte[edi+30] ;ᤢ<EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD> <EFBFBD>⭮<EFBFBD><EFBFBD>⥫쭮 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> x
|
|
|
|
|
tile_delta_y equ byte[edi+31] ;ᤢ<EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD> <EFBFBD>⭮<EFBFBD><EFBFBD>⥫쭮 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> y
|
|
|
|
|
|
|
|
|
|
|
2010-03-26 21:30:24 +03:00
|
|
|
|
; *** <EFBFBD><EFBFBD><EFBFBD>冷<EFBFBD> <EFBFBD>맮<EFBFBD><EFBFBD> <EFBFBD>㭪権 <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD> ⠩<EFBFBD><EFBFBD><EFBFBD> ***
|
2010-03-26 20:16:07 +03:00
|
|
|
|
;load_tile
|
2010-05-17 20:49:58 +04:00
|
|
|
|
; get_tile_path
|
|
|
|
|
; load_new_tile (⥪<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>)
|
|
|
|
|
; get_tile_path
|
|
|
|
|
; load_new_tile (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>)
|
|
|
|
|
; get_tile_path
|
|
|
|
|
; load_new_tile (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>)
|
|
|
|
|
; get_tile_path
|
|
|
|
|
; load_new_tile (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>)
|
|
|
|
|
; get_tile_path
|
|
|
|
|
; load_new_tile (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>)
|
|
|
|
|
; get_parent_tiles (横<EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ᬮ<EFBFBD><EFBFBD> த<EFBFBD>⥫<EFBFBD>᪨<EFBFBD> ⠩<EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
; get_tile_path
|
|
|
|
|
; load_new_tile (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>)
|
2010-03-26 20:16:07 +03:00
|
|
|
|
|
|
|
|
|
|
2010-02-09 17:54:59 +03:00
|
|
|
|
;???
|
|
|
|
|
align 4
|
|
|
|
|
CursorMoveRight: ;<EFBFBD><EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ࠢ<EFBFBD>
|
|
|
|
|
push ebx ecx
|
|
|
|
|
xor ebx,ebx
|
|
|
|
|
xor ecx,ecx
|
|
|
|
|
mov cl,byte[map.zoom]
|
|
|
|
|
dec ecx
|
|
|
|
|
cmp cx,0
|
|
|
|
|
jle .no_move ;<EFBFBD><EFBFBD><EFBFBD> 0-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
@@:
|
|
|
|
|
rol ebx,1
|
|
|
|
|
or ebx,1 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡<EFBFBD>
|
|
|
|
|
loop @b
|
|
|
|
|
cmp dword[map.coord_x],ebx
|
|
|
|
|
jge .no_move ;<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ࠩ<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
inc dword[map.coord_x]
|
|
|
|
|
;ᤢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD><EFBFBD> ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>諮<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㦠<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
stdcall tiles_grid_move_left, tile_00,max_tiles_count,max_tiles_cols
|
|
|
|
|
call but_Refresh
|
|
|
|
|
.no_move:
|
|
|
|
|
pop ecx ebx
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
;???
|
|
|
|
|
align 4
|
|
|
|
|
CursorMoveDown: ;<EFBFBD><EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
push ebx ecx
|
|
|
|
|
xor ebx,ebx
|
|
|
|
|
xor ecx,ecx
|
|
|
|
|
mov cl,byte[map.zoom]
|
|
|
|
|
dec ecx
|
|
|
|
|
cmp cx,0
|
|
|
|
|
jle .no_move ;<EFBFBD><EFBFBD><EFBFBD> 0-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
@@:
|
|
|
|
|
rol ebx,1
|
|
|
|
|
or ebx,1 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡<EFBFBD>
|
|
|
|
|
loop @b
|
|
|
|
|
cmp dword[map.coord_y],ebx
|
|
|
|
|
jge .no_move ;<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ࠩ<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
inc dword[map.coord_y]
|
|
|
|
|
;ᤢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
stdcall tiles_grid_move_up, tile_00,max_tiles_count,max_tiles_rows
|
|
|
|
|
call but_Refresh
|
|
|
|
|
.no_move:
|
|
|
|
|
pop ecx ebx
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
;???
|
|
|
|
|
align 4
|
|
|
|
|
but_met_up: ;<EFBFBD><EFBFBD>६<EFBFBD>饭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>⪨ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> ᯨ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
stdcall dword[tl_node_move_up], tree2
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
;???
|
|
|
|
|
align 4
|
|
|
|
|
but_met_dn: ;<EFBFBD><EFBFBD>६<EFBFBD>饭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>⪨ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> ᯨ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
stdcall dword[tl_node_move_down], tree2
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
;???
|
|
|
|
|
align 4
|
|
|
|
|
fun_new_map_type: ;<EFBFBD><EFBFBD><EFBFBD>塞 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>७<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
push eax
|
|
|
|
|
stdcall dword[tl_node_get_data], tree1
|
|
|
|
|
pop eax
|
|
|
|
|
cmp eax,0
|
|
|
|
|
je @f
|
|
|
|
|
mov dword[txt_tile_type],eax
|
|
|
|
|
@@:
|
|
|
|
|
pop eax
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ᯮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>⪥
|
|
|
|
|
align 4
|
|
|
|
|
proc tiles_init_grid, beg_tiles:dword, count:dword, cols:dword
|
|
|
|
|
push eax ebx ecx edx edi
|
|
|
|
|
xor eax,eax
|
|
|
|
|
xor ebx,ebx
|
|
|
|
|
mov edi,[beg_tiles]
|
|
|
|
|
mov ecx,[count]
|
|
|
|
|
mov edx,[cols]
|
|
|
|
|
@@:
|
|
|
|
|
mov tile_delta_x,al
|
|
|
|
|
mov tile_delta_y,bl
|
|
|
|
|
add edi,size_tile_struc
|
|
|
|
|
inc ax
|
|
|
|
|
cmp eax,edx
|
|
|
|
|
jl .old_lin
|
|
|
|
|
xor eax,eax
|
|
|
|
|
inc bx
|
|
|
|
|
.old_lin:
|
|
|
|
|
loop @b
|
|
|
|
|
pop edi edx ecx ebx eax
|
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
;ᤢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD>뫥<EFBFBD>訥 <EFBFBD>⮫<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>४<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>ࠢ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
;<EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>㦭<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>⨬<EFBFBD><EFBFBD><EFBFBD>樨 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>饭<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
;⠩<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> १<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>⢠ ⠩<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
;<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ணࠬ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>㤥<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 祬 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>⨬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
align 4
|
|
|
|
|
proc tiles_grid_move_left, beg_tiles:dword, count:dword, cols:dword
|
|
|
|
|
push eax ebx ecx edx edi
|
|
|
|
|
xor eax,eax
|
|
|
|
|
xor ebx,ebx
|
|
|
|
|
mov edi,[beg_tiles]
|
|
|
|
|
mov ecx,[count]
|
|
|
|
|
mov edx,[cols]
|
|
|
|
|
@@:
|
|
|
|
|
cmp tile_delta_x,0
|
|
|
|
|
jne .no_jump
|
|
|
|
|
add tile_delta_x,dl ;<EFBFBD> <EFBFBD>⮫<EFBFBD><EFBFBD><EFBFBD> = 0, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 'cols' <EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>뫠<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
.no_jump:
|
|
|
|
|
dec tile_delta_x
|
|
|
|
|
add edi,size_tile_struc
|
|
|
|
|
loop @b
|
|
|
|
|
pop edi edx ecx ebx eax
|
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
;ᤢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ࠢ<EFBFBD>, <EFBFBD>뫥<EFBFBD>訥 <EFBFBD>⮫<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>४<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮦<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD> tiles_grid_move_left ⮫쪮 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
align 4
|
|
|
|
|
proc tiles_grid_move_right, beg_tiles:dword, count:dword, cols:dword
|
|
|
|
|
push eax ebx ecx edx edi
|
|
|
|
|
xor eax,eax
|
|
|
|
|
xor ebx,ebx
|
|
|
|
|
mov edi,[beg_tiles]
|
|
|
|
|
mov ecx,[count]
|
|
|
|
|
mov edx,[cols]
|
|
|
|
|
@@:
|
|
|
|
|
inc tile_delta_x
|
|
|
|
|
cmp tile_delta_x,dl
|
|
|
|
|
jl .no_jump
|
|
|
|
|
mov tile_delta_x,0 ;<EFBFBD> <EFBFBD>⮫<EFBFBD><EFBFBD><EFBFBD> = 'cols', <EFBFBD><EFBFBD> <EFBFBD>⠢<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> 0 <EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>뫠<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ࠢ<EFBFBD>
|
|
|
|
|
.no_jump:
|
|
|
|
|
add edi,size_tile_struc
|
|
|
|
|
loop @b
|
|
|
|
|
pop edi edx ecx ebx eax
|
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
align 4
|
|
|
|
|
proc tiles_grid_move_up, beg_tiles:dword, count:dword, rows:dword
|
|
|
|
|
push eax ebx ecx edx edi
|
|
|
|
|
xor eax,eax
|
|
|
|
|
xor ebx,ebx
|
|
|
|
|
mov edi,[beg_tiles]
|
|
|
|
|
mov ecx,[count]
|
|
|
|
|
mov edx,[rows]
|
|
|
|
|
@@:
|
|
|
|
|
cmp tile_delta_y,0
|
|
|
|
|
jne .no_jump
|
|
|
|
|
add tile_delta_y,dl ;<EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD> = 0, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 'rows' <EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>뫠<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
.no_jump:
|
|
|
|
|
dec tile_delta_y
|
|
|
|
|
add edi,size_tile_struc
|
|
|
|
|
loop @b
|
|
|
|
|
pop edi edx ecx ebx eax
|
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
align 4
|
|
|
|
|
proc tiles_grid_move_down, beg_tiles:dword, count:dword, rows:dword
|
|
|
|
|
push eax ebx ecx edx edi
|
|
|
|
|
xor eax,eax
|
|
|
|
|
xor ebx,ebx
|
|
|
|
|
mov edi,[beg_tiles]
|
|
|
|
|
mov ecx,[count]
|
|
|
|
|
mov edx,[rows]
|
|
|
|
|
@@:
|
|
|
|
|
inc tile_delta_y
|
|
|
|
|
cmp tile_delta_y,dl
|
|
|
|
|
jl .no_jump
|
|
|
|
|
mov tile_delta_y,0 ;<EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD> = 'rows', <EFBFBD><EFBFBD> <EFBFBD>⠢<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 0 <EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>뫠<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
.no_jump:
|
|
|
|
|
add edi,size_tile_struc
|
|
|
|
|
loop @b
|
|
|
|
|
pop edi edx ecx ebx eax
|
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
align 4
|
|
|
|
|
proc array_tile_function, beg_tiles:dword, count:dword, funct:dword
|
|
|
|
|
push ecx edi
|
|
|
|
|
mov edi,[beg_tiles]
|
|
|
|
|
mov ecx,[count]
|
|
|
|
|
@@:
|
|
|
|
|
stdcall [funct],edi
|
|
|
|
|
add edi,size_tile_struc
|
|
|
|
|
loop @b
|
|
|
|
|
pop edi ecx
|
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
align 4
|
|
|
|
|
draw_tiles:
|
|
|
|
|
pushad
|
|
|
|
|
mov eax,47
|
|
|
|
|
mov ebx,0x20000
|
|
|
|
|
xor ecx,ecx
|
|
|
|
|
mov cl,byte[map.zoom]
|
|
|
|
|
mov edx,128*65536+13
|
|
|
|
|
mov esi,[sc.work_text]
|
|
|
|
|
or esi,0x40000000
|
|
|
|
|
mov edi,[sc.work]
|
|
|
|
|
int 0x40
|
|
|
|
|
|
|
|
|
|
stdcall array_tile_function, tile_00,max_tiles_count,draw_tile
|
|
|
|
|
popad
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
; edi - pointer tile struct
|
|
|
|
|
;output:
|
|
|
|
|
; eax - 7
|
|
|
|
|
; edx - coordinates to tile draw
|
|
|
|
|
|
|
|
|
|
align 4
|
|
|
|
|
proc tile_clear_area, height:dword
|
|
|
|
|
pushad
|
|
|
|
|
mov eax,13 ;draw rect
|
|
|
|
|
|
|
|
|
|
mov cx,dx
|
|
|
|
|
shl ecx,16
|
|
|
|
|
mov cx,word[height]
|
|
|
|
|
|
|
|
|
|
shr edx,16
|
|
|
|
|
mov bx,dx
|
|
|
|
|
shl ebx,16
|
|
|
|
|
mov bx,TILE_LEN_W
|
|
|
|
|
|
|
|
|
|
mov edx,0xffffd0
|
|
|
|
|
int 0x40
|
|
|
|
|
popad
|
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
;???
|
|
|
|
|
align 4
|
|
|
|
|
proc draw_tile, tile:dword
|
|
|
|
|
pushad
|
|
|
|
|
mov edi,[tile]
|
|
|
|
|
|
|
|
|
|
;*** set base point ***
|
|
|
|
|
mov edx,5*65536+35
|
|
|
|
|
xor eax,eax
|
|
|
|
|
mov al,tile_delta_y
|
|
|
|
|
shl ax,8 ;*256
|
|
|
|
|
add edx,eax
|
|
|
|
|
xor eax,eax
|
|
|
|
|
mov al,tile_delta_x
|
|
|
|
|
shl eax,8+16
|
|
|
|
|
add edx,eax
|
|
|
|
|
;*** set base point ***
|
|
|
|
|
|
|
|
|
|
mov ebx,dword[procinfo.box.width] ;<EFBFBD><EFBFBD><EFBFBD>塞 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> x
|
|
|
|
|
sub ebx,min_window_w-5 ;5 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> 1-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
shl ebx,16
|
|
|
|
|
mov bx,dx ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>⮬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ࠢ<EFBFBD>묨
|
|
|
|
|
cmp edx,ebx
|
|
|
|
|
jg .end_f
|
|
|
|
|
|
|
|
|
|
;<EFBFBD><EFBFBD><EFBFBD>塞 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> y
|
|
|
|
|
mcall 48,4 ;eax = <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᪨<EFBFBD><EFBFBD>
|
|
|
|
|
mov ecx,dword[procinfo.box.height]
|
|
|
|
|
mov ebx,edx
|
|
|
|
|
and ebx,0xffff ;ebx = <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 'y' <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>뢮<EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD>
|
|
|
|
|
add eax,ebx
|
|
|
|
|
add eax,5+5 ;5-ࠬ<EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
cmp ecx,eax
|
|
|
|
|
jle .end_f
|
|
|
|
|
|
|
|
|
|
sub ecx,eax
|
|
|
|
|
cmp ecx,TILE_LEN_H
|
|
|
|
|
jle @f
|
|
|
|
|
mov ecx,TILE_LEN_H
|
|
|
|
|
@@:
|
|
|
|
|
|
|
|
|
|
mov eax,7
|
|
|
|
|
bt tile_drobn,SCALE_0BIT_USE
|
|
|
|
|
jc .draw
|
|
|
|
|
bt tile_drobn,SCALE_1BIT_USE
|
|
|
|
|
jc .draw
|
|
|
|
|
jmp @f
|
|
|
|
|
.draw:
|
|
|
|
|
mov ebx,tile_rgb_icon
|
|
|
|
|
or ecx,TILE_LEN_W*65536 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ਭ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> 楫<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
int 0x40 ;<EFBFBD>뢮<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>࠭ 楫<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> 㢥<EFBFBD><EFBFBD>稭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
jmp .end_clear_tile
|
|
|
|
|
@@:
|
|
|
|
|
cmp tile_drobn,FRACT_TILE_ALL
|
|
|
|
|
je .end_clear_tile
|
|
|
|
|
stdcall tile_clear_area, ecx ;<EFBFBD><EFBFBD><EFBFBD>⪠ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD>
|
|
|
|
|
.end_clear_tile:
|
|
|
|
|
|
|
|
|
|
cmp tile_drobn,0
|
|
|
|
|
je .info ;<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
mov si,cx ;si - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
sub si,TILE_LEN_H/2 ;si - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
cmp cx,TILE_LEN_H/2
|
|
|
|
|
jl @f
|
|
|
|
|
mov cx,TILE_LEN_H/2 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>孥<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
@@:
|
|
|
|
|
|
|
|
|
|
and ecx,0xffff ;<EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ன <EFBFBD><EFBFBD>ਭ<EFBFBD>
|
|
|
|
|
or ecx,(TILE_LEN_W/2)*65536 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ਭ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
mov ebx,tile_drobn_icon
|
|
|
|
|
bt tile_drobn,FRACT_TILE_BIT00
|
|
|
|
|
jae @f
|
|
|
|
|
int 0x40
|
|
|
|
|
@@:
|
|
|
|
|
add dx,TILE_LEN_H/2
|
|
|
|
|
add ebx,RGB_TILE_SIZE_1N4
|
|
|
|
|
bt tile_drobn,FRACT_TILE_BIT01
|
|
|
|
|
jae @f
|
|
|
|
|
xchg cx,si
|
|
|
|
|
int 0x40
|
|
|
|
|
xchg cx,si
|
|
|
|
|
@@:
|
|
|
|
|
|
|
|
|
|
sub dx,TILE_LEN_H/2
|
|
|
|
|
ror edx,16
|
|
|
|
|
add dx,TILE_LEN_W/2
|
|
|
|
|
ror edx,16
|
|
|
|
|
add ebx,RGB_TILE_SIZE_1N4
|
|
|
|
|
bt tile_drobn,FRACT_TILE_BIT10
|
|
|
|
|
jae @f
|
|
|
|
|
int 0x40
|
|
|
|
|
@@:
|
|
|
|
|
|
|
|
|
|
add dx,TILE_LEN_H/2
|
|
|
|
|
add ebx,RGB_TILE_SIZE_1N4
|
|
|
|
|
bt tile_drobn,FRACT_TILE_BIT11
|
|
|
|
|
jae @f
|
|
|
|
|
xchg cx,si
|
|
|
|
|
int 0x40
|
|
|
|
|
@@:
|
|
|
|
|
|
|
|
|
|
jmp .end_f
|
|
|
|
|
.info: ;<EFBFBD>뢮<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ଠ樨, <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 㤠筮<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨨ <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
|
2010-03-26 20:16:07 +03:00
|
|
|
|
;;;jmp .end_f ;test
|
2010-02-09 17:54:59 +03:00
|
|
|
|
bt tile_drobn,SCALE_0BIT_USE
|
|
|
|
|
jc .end_f
|
|
|
|
|
bt tile_drobn,SCALE_1BIT_USE
|
|
|
|
|
jc .end_f
|
|
|
|
|
|
|
|
|
|
mov ebx,edx
|
|
|
|
|
add ebx,0x30003
|
|
|
|
|
mov edx,tile_rgb_icon ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>㤠筮<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨨ <EFBFBD> tile_rgb_icon <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> 䠩<EFBFBD><EFBFBD>
|
2010-03-26 20:16:07 +03:00
|
|
|
|
;;; mov dword[edx+RGB_TILE_SIZE_1N4],0 ;<EFBFBD>⠢<EFBFBD><EFBFBD> <EFBFBD>㫨, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>砩 <EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2010-02-09 17:54:59 +03:00
|
|
|
|
stdcall [str_len],tile_rgb_icon,RGB_TILE_SIZE_1N4
|
|
|
|
|
mov edi,eax
|
|
|
|
|
|
|
|
|
|
mov eax,4 ;draw text
|
|
|
|
|
mov ecx,0xff
|
|
|
|
|
;or ecx,0x80000000
|
|
|
|
|
mov esi,TILE_TEXT_MAX_LEN
|
|
|
|
|
|
|
|
|
|
@@:
|
|
|
|
|
cmp edi,TILE_TEXT_MAX_LEN
|
|
|
|
|
jg .no_line_last
|
|
|
|
|
mov esi,edi
|
|
|
|
|
int 0x40
|
|
|
|
|
jmp .end_f
|
|
|
|
|
.no_line_last:
|
|
|
|
|
int 0x40
|
|
|
|
|
add edx,esi
|
|
|
|
|
sub edi,esi
|
|
|
|
|
add ebx,10 ;<EFBFBD><EFBFBD><EFBFBD>᪠<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD>
|
|
|
|
|
jmp @b
|
|
|
|
|
.end_f:
|
|
|
|
|
popad
|
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
;㢥<EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡<EFBFBD>
|
|
|
|
|
align 4
|
|
|
|
|
but_ZoomP:
|
|
|
|
|
cmp byte[map.zoom],24
|
|
|
|
|
jge @f
|
|
|
|
|
inc byte[map.zoom]
|
|
|
|
|
shl dword[map.coord_x],1
|
|
|
|
|
shl dword[map.coord_y],1
|
|
|
|
|
call but_Refresh
|
|
|
|
|
@@:
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
;㬥<EFBFBD><EFBFBD>襭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡<EFBFBD>
|
|
|
|
|
align 4
|
|
|
|
|
but_ZoomM:
|
|
|
|
|
cmp byte[map.zoom],1
|
|
|
|
|
jle @f
|
|
|
|
|
dec byte[map.zoom]
|
|
|
|
|
shr dword[map.coord_x],1
|
|
|
|
|
shr dword[map.coord_y],1
|
|
|
|
|
call but_Refresh
|
|
|
|
|
@@:
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
;???
|
|
|
|
|
align 4
|
|
|
|
|
but_MetSave: ;<EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>⪠<EFBFBD><EFBFBD>
|
|
|
|
|
stdcall dword[tl_save_mem], TREE_ICON_SYS16_BMP_SIZE,[bmp_icon],0,tree2
|
|
|
|
|
|
|
|
|
|
push eax ebx ecx edi
|
|
|
|
|
copy_path fn_metki,sys_path,file_name,0x0
|
|
|
|
|
|
|
|
|
|
stdcall dword[tl_get_mem_size], [bmp_icon],tree2
|
|
|
|
|
pop ecx
|
|
|
|
|
inc ecx ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> 䠩<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饣<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
mov eax,70
|
2010-05-17 20:49:58 +04:00
|
|
|
|
m2m [run_file_70.Buffer], [bmp_icon]
|
|
|
|
|
mov [run_file_70.Function], 2
|
|
|
|
|
mov [run_file_70.Position], 0
|
|
|
|
|
mov [run_file_70.Flags], 0
|
|
|
|
|
mov [run_file_70.Count], ecx
|
|
|
|
|
mov byte[run_file_70+20], 0
|
|
|
|
|
mov [run_file_70.FileName], file_name
|
2010-02-09 17:54:59 +03:00
|
|
|
|
mov ebx,run_file_70
|
|
|
|
|
int 0x40
|
|
|
|
|
pop edi ecx ebx eax
|
|
|
|
|
jmp still
|
|
|
|
|
|
|
|
|
|
;???
|
|
|
|
|
align 4
|
|
|
|
|
but_MetLoad: ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EFBFBD> 䠩<EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>⪠<EFBFBD><EFBFBD>
|
|
|
|
|
cmp byte[met_fr_opn],0
|
|
|
|
|
jne .end_f
|
|
|
|
|
pushad
|
|
|
|
|
mov byte[met_fr_opn],1
|
|
|
|
|
copy_path fn_metki,sys_path,file_name,0x0
|
|
|
|
|
mov eax,70 ;load icon file
|
2010-05-17 20:49:58 +04:00
|
|
|
|
mov [run_file_70.Function], 0
|
|
|
|
|
mov [run_file_70.Position], 0
|
|
|
|
|
mov [run_file_70.Flags], 0
|
|
|
|
|
mov [run_file_70.Count], TREE_ICON_SYS16_BMP_SIZE
|
|
|
|
|
mov byte[run_file_70+20], 0
|
|
|
|
|
mov [run_file_70.FileName], file_name
|
|
|
|
|
m2m [run_file_70.Buffer], [bmp_icon]
|
2010-02-09 17:54:59 +03:00
|
|
|
|
mov eax,70
|
|
|
|
|
mov ebx,run_file_70
|
|
|
|
|
int 0x40
|
|
|
|
|
cmp ebx,0xffffffff
|
|
|
|
|
je @f
|
|
|
|
|
stdcall [tl_load_mem], TREE_ICON_SYS16_BMP_SIZE,dword[bmp_icon],0,tree2
|
|
|
|
|
stdcall [tl_cur_beg], tree2 ;?
|
|
|
|
|
stdcall [tl_draw], tree2 ;?
|
|
|
|
|
pop eax
|
|
|
|
|
@@:
|
|
|
|
|
mov byte[file_name],0 ;clear file name
|
|
|
|
|
popad
|
|
|
|
|
.end_f:
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
;???
|
|
|
|
|
align 4
|
|
|
|
|
but_MetAdd: ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>⪨
|
|
|
|
|
push eax
|
|
|
|
|
mov eax,dword[bmp_icon]
|
|
|
|
|
m2m dword[eax], dword[map.coord_x]
|
|
|
|
|
m2m dword[eax+4],dword[map.coord_y]
|
|
|
|
|
m2m word[eax+8], word[map.zoom]
|
|
|
|
|
add eax,12
|
|
|
|
|
stdcall dword[str_copy], eax,30,dword[edit2.text],30
|
|
|
|
|
stdcall dword[tl_node_add], dword[bmp_icon], 0, tree2
|
|
|
|
|
stdcall dword[tl_draw], tree2
|
|
|
|
|
pop eax
|
|
|
|
|
jmp still
|
|
|
|
|
|
|
|
|
|
;???
|
|
|
|
|
align 4
|
|
|
|
|
fun_goto_met: ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>室 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>⪥
|
|
|
|
|
push eax
|
|
|
|
|
stdcall dword[tl_node_get_data], tree2
|
|
|
|
|
pop eax
|
|
|
|
|
cmp eax,0
|
|
|
|
|
je @f ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>⮨<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>⪥
|
|
|
|
|
m2m dword[map.coord_x],dword[eax]
|
|
|
|
|
m2m dword[map.coord_y],dword[eax+4]
|
|
|
|
|
m2m word[map.zoom],word[eax+8]
|
|
|
|
|
call but_Refresh
|
|
|
|
|
@@:
|
|
|
|
|
pop eax
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
;???
|
|
|
|
|
align 4
|
|
|
|
|
but_Refresh:
|
|
|
|
|
call fun_new_map_type ;<EFBFBD><EFBFBD><EFBFBD>塞 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ⨯ <EFBFBD><EFBFBD><EFBFBD>ᬠ<EFBFBD>ਢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
stdcall array_tile_function, tile_00,max_tiles_count,load_tile
|
|
|
|
|
stdcall draw_tiles
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
align 4
|
|
|
|
|
proc tile_init, tile:dword
|
|
|
|
|
push eax edi
|
|
|
|
|
mov edi,[tile]
|
|
|
|
|
|
|
|
|
|
push dword RGB_TILE_SIZE+300
|
|
|
|
|
call mem.Alloc
|
|
|
|
|
mov tile_rgb_icon,eax
|
|
|
|
|
|
|
|
|
|
push dword RGB_TILE_SIZE
|
|
|
|
|
call mem.Alloc
|
|
|
|
|
mov tile_drobn_icon,eax
|
|
|
|
|
pop edi eax
|
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
align 4
|
|
|
|
|
proc tile_destroy, tile:dword
|
|
|
|
|
push edi
|
|
|
|
|
mov edi,[tile]
|
|
|
|
|
push tile_rgb_icon
|
|
|
|
|
call mem.Free
|
|
|
|
|
push tile_drobn_icon
|
|
|
|
|
call mem.Free
|
|
|
|
|
pop edi
|
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;???
|
|
|
|
|
align 4 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㦠<EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD>, <EFBFBD> <EFBFBD><EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
proc load_tile, tile:dword
|
|
|
|
|
push eax ebx ecx edi
|
|
|
|
|
mov edi,dword[tile] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㥬 㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD> ࠡ<EFBFBD>⠫<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠭<EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
stdcall mem_copy, map,edi, 9 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㥬 <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD>
|
|
|
|
|
xor eax,eax
|
|
|
|
|
mov al,tile_delta_x
|
|
|
|
|
add tile_coord_x,eax ;ᤢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD>, <EFBFBD>⭮<EFBFBD><EFBFBD>⥫쭮 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
mov al,tile_delta_y
|
|
|
|
|
add tile_coord_y,eax
|
|
|
|
|
stdcall get_tile_path,edi ;<EFBFBD><EFBFBD>६ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> ⠩<EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
;***
|
|
|
|
|
; <EFBFBD><EFBFBD>ઠ <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㦥<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
mov eax,edi
|
|
|
|
|
mov ecx,9
|
|
|
|
|
@@:
|
|
|
|
|
mov bl,byte[eax+tile_offs_l_load]
|
|
|
|
|
cmp byte[eax],bl
|
|
|
|
|
jne .st_load
|
|
|
|
|
inc eax
|
|
|
|
|
loop @b
|
|
|
|
|
mov ebx,dword[edit1.size];<EFBFBD><EFBFBD><EFBFBD>塞 ⠪<EFBFBD><EFBFBD> ⨯ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ࠭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㦥<EFBFBD>
|
|
|
|
|
cmp tile_key_path_len,bl ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⨯<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>㦭<EFBFBD> ⠪<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EFBFBD> 䠩<EFBFBD><EFBFBD>
|
|
|
|
|
jne .st_load
|
|
|
|
|
|
|
|
|
|
jmp @f ;<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 㦥 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㦠<EFBFBD><EFBFBD>
|
|
|
|
|
.st_load: ;start load tile
|
|
|
|
|
|
|
|
|
|
; <EFBFBD><EFBFBD>⠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㦥<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
mov eax,edi
|
|
|
|
|
add eax,tile_offs_l_load
|
|
|
|
|
stdcall mem_copy, edi,eax,9
|
|
|
|
|
mov ebx,dword[edit1.size]
|
|
|
|
|
mov tile_key_path_len,bl
|
|
|
|
|
;***
|
|
|
|
|
|
|
|
|
|
;mov tile_drobn,0
|
|
|
|
|
mov tile_drobn,SCALE_0_USE ;<EFBFBD>⠢<EFBFBD><EFBFBD> 䫠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> ⥪<EFBFBD>饣<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
stdcall load_new_tile,edi
|
2010-03-26 20:16:07 +03:00
|
|
|
|
cmp tile_err_f,0
|
|
|
|
|
je @f ;<EFBFBD> 㤠筮 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>뫨 ⥪<EFBFBD>騩 䠩<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>⠫<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢨<EFBFBD> <EFBFBD>ய<EFBFBD>᪠<EFBFBD><EFBFBD>
|
2010-03-26 21:30:24 +03:00
|
|
|
|
; cmp tile_err_f,6
|
|
|
|
|
; je @f
|
2010-02-09 17:54:59 +03:00
|
|
|
|
mov tile_drobn,0
|
|
|
|
|
mov eax,ch2 ;<EFBFBD><EFBFBD><EFBFBD>塞 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '<27><><EFBFBD><EFBFBD><EFBFBD> ᭨<><E1ADA8>'
|
|
|
|
|
bt dword[eax+32],1 ;ch_flags equ [edi+32] ;䫠<EFBFBD><EFBFBD>
|
|
|
|
|
jae .opt_drobn_false
|
|
|
|
|
|
|
|
|
|
;<EFBFBD> 䠩<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>
|
|
|
|
|
inc tile_zoom
|
|
|
|
|
shl tile_coord_y,1
|
|
|
|
|
shl tile_coord_x,1
|
|
|
|
|
stdcall get_tile_path,edi
|
|
|
|
|
stdcall load_new_tile,edi
|
|
|
|
|
|
2010-03-26 20:16:07 +03:00
|
|
|
|
cmp tile_err_f,0
|
|
|
|
|
jne .no_tile_00 ;<EFBFBD> <EFBFBD><EFBFBD>㤠筮 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>뫨 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 㬥<EFBFBD><EFBFBD>蠥<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ࠦ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2010-02-09 17:54:59 +03:00
|
|
|
|
or tile_drobn,FRACT_TILE_00
|
|
|
|
|
; 1 ᦠ⨥ <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
stdcall img_rgb_hdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN, TILE_LEN
|
|
|
|
|
; 2 ᦠ⨥ <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ਭ<EFBFBD>
|
|
|
|
|
stdcall img_rgb_wdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN/2
|
|
|
|
|
; 3 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD> १<EFBFBD>ࢭ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
stdcall mem_copy, tile_rgb_icon, tile_drobn_icon, RGB_TILE_SIZE_1N4
|
|
|
|
|
.no_tile_00:
|
|
|
|
|
|
|
|
|
|
;<EFBFBD> 䠩<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>
|
|
|
|
|
inc tile_coord_y
|
|
|
|
|
stdcall get_tile_path,edi
|
|
|
|
|
stdcall load_new_tile,edi
|
|
|
|
|
|
2010-03-26 20:16:07 +03:00
|
|
|
|
cmp tile_err_f,0
|
|
|
|
|
jne .no_tile_01 ;<EFBFBD> <EFBFBD><EFBFBD>㤠筮 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>뫨 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 㬥<EFBFBD><EFBFBD>蠥<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ࠦ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2010-02-09 17:54:59 +03:00
|
|
|
|
; mov byte[map.drobn],0
|
|
|
|
|
or tile_drobn,FRACT_TILE_01
|
|
|
|
|
; 1 ᦠ⨥ <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
stdcall img_rgb_hdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN, TILE_LEN
|
|
|
|
|
; 2 ᦠ⨥ <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ਭ<EFBFBD>
|
|
|
|
|
stdcall img_rgb_wdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN/2
|
|
|
|
|
; 3 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD> १<EFBFBD>ࢭ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
mov eax,tile_drobn_icon
|
|
|
|
|
add eax,RGB_TILE_SIZE_1N4 ; ᤢ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<EFBFBD>. <EFBFBD>. <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
stdcall mem_copy, tile_rgb_icon, eax, RGB_TILE_SIZE_1N4
|
|
|
|
|
.no_tile_01:
|
|
|
|
|
|
|
|
|
|
;<EFBFBD> 䠩<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>
|
|
|
|
|
dec tile_coord_y
|
|
|
|
|
inc tile_coord_x
|
|
|
|
|
stdcall get_tile_path,edi
|
|
|
|
|
stdcall load_new_tile,edi
|
|
|
|
|
|
2010-03-26 20:16:07 +03:00
|
|
|
|
cmp tile_err_f,0
|
|
|
|
|
jne .no_tile_10 ;<EFBFBD> <EFBFBD><EFBFBD>㤠筮 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>뫨 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 㬥<EFBFBD><EFBFBD>蠥<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ࠦ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2010-02-09 17:54:59 +03:00
|
|
|
|
; mov byte[map.drobn],0
|
|
|
|
|
or tile_drobn,FRACT_TILE_10
|
|
|
|
|
; 1 ᦠ⨥ <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
stdcall img_rgb_hdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN, TILE_LEN
|
|
|
|
|
; 2 ᦠ⨥ <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ਭ<EFBFBD>
|
|
|
|
|
stdcall img_rgb_wdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN/2
|
|
|
|
|
; 3 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD> १<EFBFBD>ࢭ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
mov eax,tile_drobn_icon
|
|
|
|
|
add eax,RGB_TILE_SIZE_1N2 ; ᤢ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<EFBFBD>. <EFBFBD>. <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
stdcall mem_copy, tile_rgb_icon, eax, RGB_TILE_SIZE_1N4
|
|
|
|
|
.no_tile_10:
|
|
|
|
|
|
|
|
|
|
;<EFBFBD> 䠩<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>
|
|
|
|
|
inc tile_coord_y
|
|
|
|
|
stdcall get_tile_path,edi
|
|
|
|
|
stdcall load_new_tile,edi
|
|
|
|
|
|
2010-03-26 20:16:07 +03:00
|
|
|
|
cmp tile_err_f,0
|
|
|
|
|
jne .no_tile_11 ;<EFBFBD> <EFBFBD><EFBFBD>㤠筮 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>뫨 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 㬥<EFBFBD><EFBFBD>蠥<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ࠦ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2010-02-09 17:54:59 +03:00
|
|
|
|
; mov byte[map.drobn],0
|
|
|
|
|
or tile_drobn,FRACT_TILE_11
|
|
|
|
|
; 1 ᦠ⨥ <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
stdcall img_rgb_hdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN, TILE_LEN
|
|
|
|
|
; 2 ᦠ⨥ <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ਭ<EFBFBD>
|
|
|
|
|
stdcall img_rgb_wdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN/2
|
|
|
|
|
; 3 ᤢ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<EFBFBD>. <EFBFBD>. <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
stdcall img_rgb_hoffs, tile_rgb_icon, TILE_LEN*TILE_LEN/4, TILE_LEN/2, TILE_LEN*3/2
|
|
|
|
|
|
|
|
|
|
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㥬 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> drobn_icon
|
|
|
|
|
;<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㦥 <EFBFBD>뫨 <EFBFBD><EFBFBD><EFBFBD>ନ<EFBFBD><EFBFBD><EFBFBD> 3 <EFBFBD><EFBFBD>㣨<EFBFBD>
|
|
|
|
|
mov eax,tile_drobn_icon
|
|
|
|
|
add eax,RGB_TILE_SIZE_1N4*3
|
|
|
|
|
stdcall mem_copy, tile_rgb_icon, eax, RGB_TILE_SIZE_1N4
|
|
|
|
|
.no_tile_11:
|
|
|
|
|
.opt_drobn_false:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mov eax,ch1 ;<EFBFBD><EFBFBD><EFBFBD>塞 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '<27><><EFBFBD><EFBFBD><EFBFBD> ᢥ<><E1A2A5><EFBFBD>'
|
|
|
|
|
bt dword[eax+32],1 ;ch_flags equ [edi+32] ;䫠<EFBFBD><EFBFBD>
|
|
|
|
|
jae @f
|
|
|
|
|
cmp tile_drobn,FRACT_TILE_ALL ;<EFBFBD> ᮡ࠭<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> ᢥ<EFBFBD><EFBFBD><EFBFBD> 㦥 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>६
|
|
|
|
|
je @f
|
|
|
|
|
;<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>뫠-<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '<27><><EFBFBD><EFBFBD><EFBFBD> ᭨<><E1ADA8>', <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ன <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
;<EFBFBD><EFBFBD>⮬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㥬 <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD>
|
|
|
|
|
stdcall mem_copy, map,edi, 9
|
|
|
|
|
xor eax,eax
|
|
|
|
|
mov al,tile_delta_x
|
|
|
|
|
add tile_coord_x,eax ;ᤢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD>, <EFBFBD>⭮<EFBFBD><EFBFBD>⥫쭮 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
mov al,tile_delta_y
|
|
|
|
|
add tile_coord_y,eax
|
|
|
|
|
|
|
|
|
|
xor ecx,ecx
|
|
|
|
|
.zoom:
|
|
|
|
|
cmp tile_zoom,0
|
|
|
|
|
je @f ;<EFBFBD><EFBFBD><EFBFBD>ᬠ<EFBFBD>ਢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᠬ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>室<EFBFBD><EFBFBD>
|
|
|
|
|
call get_parent_tiles ;横<EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ᬮ<EFBFBD><EFBFBD> த<EFBFBD>⥫<EFBFBD>᪨<EFBFBD> ⠩<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
bt tile_drobn,SCALE_1BIT_USE
|
|
|
|
|
jc @f
|
|
|
|
|
cmp ecx,5 ;5 - <EFBFBD><EFBFBD>࠭<EFBFBD>祭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>⥯<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
je @f
|
|
|
|
|
jmp .zoom
|
|
|
|
|
@@:
|
|
|
|
|
|
|
|
|
|
pop edi ecx ebx eax
|
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
;output:
|
|
|
|
|
;ecx - if not file = count parent levels else = 0
|
|
|
|
|
align 4
|
|
|
|
|
proc get_parent_tiles
|
|
|
|
|
dec tile_zoom
|
|
|
|
|
shr tile_coord_y,1
|
|
|
|
|
shr tile_coord_x,1
|
|
|
|
|
inc ecx
|
|
|
|
|
|
|
|
|
|
stdcall get_tile_path,edi ;<EFBFBD><EFBFBD>६ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> ⠩<EFBFBD><EFBFBD>
|
|
|
|
|
stdcall load_new_tile,edi
|
2010-03-26 20:16:07 +03:00
|
|
|
|
cmp tile_err_f,0
|
|
|
|
|
jne @f ;<EFBFBD> <EFBFBD><EFBFBD>㤠筮 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>뫨 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ࠦ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2010-02-09 17:54:59 +03:00
|
|
|
|
or tile_drobn,SCALE_1_USE
|
|
|
|
|
mov ebx,ecx
|
|
|
|
|
.zoom_cycle:
|
|
|
|
|
xor eax,eax
|
|
|
|
|
dec ebx
|
|
|
|
|
bt tile_key_coord_y,ebx
|
|
|
|
|
jae .scale_bot_l
|
|
|
|
|
add eax,RGB_TILE_SIZE_1N2
|
|
|
|
|
.scale_bot_l:
|
|
|
|
|
bt tile_key_coord_x,ebx
|
|
|
|
|
jae .scale_rig_l
|
|
|
|
|
add eax,TILE_LEN_W*3/2
|
|
|
|
|
.scale_rig_l:
|
|
|
|
|
cmp eax,0
|
|
|
|
|
je .scale_top_left
|
|
|
|
|
add eax,tile_rgb_icon
|
|
|
|
|
stdcall mem_copy, eax, tile_rgb_icon, RGB_TILE_SIZE_1N2
|
|
|
|
|
.scale_top_left:
|
|
|
|
|
|
|
|
|
|
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>孥<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨭<EFBFBD><EFBFBD>
|
|
|
|
|
stdcall img_rgb_wcrop, tile_rgb_icon,TILE_LEN_W,TILE_LEN_W/2,TILE_LEN_H ;<EFBFBD><EFBFBD>१<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>譥<EFBFBD>
|
|
|
|
|
stdcall img_rgb_wmul2, tile_rgb_icon,RGB_TILE_SIZE_1N4/3 ;<EFBFBD><EFBFBD><EFBFBD>⨣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ਭ<EFBFBD>
|
|
|
|
|
stdcall img_rgb_hmul2, tile_rgb_icon,RGB_TILE_SIZE_1N2/3,TILE_LEN_W ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
loop .zoom_cycle
|
|
|
|
|
@@:
|
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
;tile - 㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD>
|
|
|
|
|
align 4 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㦠<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠩<EFBFBD>
|
|
|
|
|
proc load_new_tile, tile:dword
|
|
|
|
|
pushad
|
|
|
|
|
|
|
|
|
|
mov eax,70 ;load icon file
|
2010-05-17 20:49:58 +04:00
|
|
|
|
mov [run_file_70.Function], 0
|
|
|
|
|
mov [run_file_70.Position], 0
|
|
|
|
|
mov [run_file_70.Flags], 0
|
|
|
|
|
mov [run_file_70.Count], RGB_TILE_SIZE+300 ;+54
|
|
|
|
|
m2m [run_file_70.Buffer], [bmp_icon]
|
|
|
|
|
mov byte[run_file_70+20], 0
|
|
|
|
|
mov [run_file_70.FileName], file_name
|
2010-02-09 17:54:59 +03:00
|
|
|
|
mov ebx,run_file_70
|
|
|
|
|
int 0x40
|
|
|
|
|
mov edi,[tile]
|
2010-03-26 20:16:07 +03:00
|
|
|
|
; cmp ebx,0xffffffff
|
|
|
|
|
; je .no_load
|
2010-03-26 21:30:24 +03:00
|
|
|
|
cmp al,6 ;<EFBFBD>訡<EFBFBD><EFBFBD> 6 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>稫<EFBFBD><EFBFBD> ࠭<EFBFBD><EFBFBD><EFBFBD> 祬 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
jne @f
|
|
|
|
|
xor al,al ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>訡<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>譠, <EFBFBD><EFBFBD>⮬<EFBFBD> <EFBFBD>⠢<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ࠢ<EFBFBD><EFBFBD><EFBFBD> 0, <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>筮<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨨
|
|
|
|
|
@@:
|
|
|
|
|
mov tile_err_f,al
|
|
|
|
|
cmp al,0
|
2010-03-26 20:16:07 +03:00
|
|
|
|
jne .no_load
|
2010-02-09 17:54:59 +03:00
|
|
|
|
|
|
|
|
|
stdcall dword[img_decode], dword[bmp_icon],ebx,0
|
|
|
|
|
mov dword[data_icon],eax
|
|
|
|
|
stdcall dword[img_to_rgb2], dword[data_icon],tile_rgb_icon
|
|
|
|
|
stdcall dword[img_destroy], dword[data_icon]
|
|
|
|
|
jmp @f
|
|
|
|
|
.no_load:
|
|
|
|
|
|
|
|
|
|
mov al,byte[map.zoom]
|
|
|
|
|
cmp tile_zoom,al
|
|
|
|
|
jne @f
|
2010-03-26 21:30:24 +03:00
|
|
|
|
mov eax,tile_rgb_icon
|
|
|
|
|
mov bl,tile_err_f
|
|
|
|
|
add bl,'0' ;bl - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>訡<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
mov byte[eax],bl
|
|
|
|
|
inc eax
|
|
|
|
|
mov byte[eax],' '
|
|
|
|
|
inc eax
|
|
|
|
|
stdcall mem_copy, file_name,eax,250 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㥬 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> 䠩<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>訡<EFBFBD>筮<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨨
|
2010-02-09 17:54:59 +03:00
|
|
|
|
@@:
|
|
|
|
|
popad
|
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
;<EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> 䠩<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: \z?\?\x?\?\y?
|
|
|
|
|
align 4
|
|
|
|
|
proc get_tile_path, tile:dword
|
|
|
|
|
push eax ecx edi esi
|
|
|
|
|
mov ecx,300
|
|
|
|
|
mov edi,txt_tile_path
|
|
|
|
|
@@:
|
|
|
|
|
mov byte[edi],0 ;<EFBFBD><EFBFBD><EFBFBD>⨬ <EFBFBD><EFBFBD>ப<EFBFBD>
|
|
|
|
|
inc edi
|
|
|
|
|
loop @b
|
|
|
|
|
|
|
|
|
|
mov esi,dword[tile] ;<EFBFBD><EFBFBD>६ 㪠<EFBFBD><EFBFBD>⥫<EFBFBD>
|
|
|
|
|
|
|
|
|
|
mov ecx,0x80000000 ;rol 0x80000000,1 = 1
|
|
|
|
|
xor eax,eax
|
|
|
|
|
mov al,byte[esi+8] ;+8 = zoom
|
|
|
|
|
.calc_coord:
|
|
|
|
|
rol ecx,1 ;ecx = maximum coord
|
|
|
|
|
dec ax
|
|
|
|
|
cmp ax,0
|
|
|
|
|
jg .calc_coord
|
|
|
|
|
|
|
|
|
|
mov byte[txt_tile_path],'z'
|
|
|
|
|
mov edi,txt_tile_path
|
|
|
|
|
inc edi
|
|
|
|
|
xor eax,eax
|
|
|
|
|
mov al,byte[esi+8] ;+8 = zoom
|
|
|
|
|
call tl_convert_to_str
|
|
|
|
|
|
|
|
|
|
inc edi
|
|
|
|
|
cmp byte[esi+8],9 ;+8 = zoom
|
|
|
|
|
jle @f
|
|
|
|
|
inc edi
|
|
|
|
|
@@:
|
|
|
|
|
mov byte[edi],'/'
|
|
|
|
|
inc edi
|
|
|
|
|
|
|
|
|
|
mov eax,[esi] ;coord_x
|
|
|
|
|
cmp eax,ecx
|
|
|
|
|
jge .out_of_rang ;coord_x <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨬<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡<EFBFBD>
|
|
|
|
|
shr eax,10
|
|
|
|
|
call tl_convert_to_str
|
|
|
|
|
|
|
|
|
|
@@:
|
|
|
|
|
inc edi
|
|
|
|
|
cmp byte[edi],'0'
|
|
|
|
|
jge @b
|
|
|
|
|
mov byte[edi],'/'
|
|
|
|
|
inc edi
|
|
|
|
|
mov byte[edi],'x'
|
|
|
|
|
inc edi
|
|
|
|
|
|
|
|
|
|
mov eax,[esi] ;coord_x
|
|
|
|
|
call tl_convert_to_str
|
|
|
|
|
|
|
|
|
|
@@:
|
|
|
|
|
inc edi
|
|
|
|
|
cmp byte[edi],'0'
|
|
|
|
|
jl @f
|
|
|
|
|
cmp byte[edi],'9'
|
|
|
|
|
jg @f
|
|
|
|
|
jmp @b
|
|
|
|
|
@@:
|
|
|
|
|
|
|
|
|
|
;coord y
|
|
|
|
|
mov byte[edi],'/'
|
|
|
|
|
inc edi
|
|
|
|
|
|
|
|
|
|
mov eax,[esi+4] ;coord_y
|
|
|
|
|
cmp eax,ecx
|
|
|
|
|
jge .out_of_rang ;coord_y <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨬<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡<EFBFBD>
|
|
|
|
|
shr eax,10
|
|
|
|
|
call tl_convert_to_str
|
|
|
|
|
|
|
|
|
|
@@:
|
|
|
|
|
inc edi
|
|
|
|
|
cmp byte[edi],'0'
|
|
|
|
|
jge @b
|
|
|
|
|
mov byte[edi],'/'
|
|
|
|
|
inc edi
|
|
|
|
|
mov byte[edi],'y'
|
|
|
|
|
inc edi
|
|
|
|
|
|
|
|
|
|
mov eax,[esi+4] ;coord_y]
|
|
|
|
|
call tl_convert_to_str
|
|
|
|
|
|
|
|
|
|
.out_of_rang:
|
|
|
|
|
call get_all_path
|
|
|
|
|
pop esi edi ecx eax
|
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
align 4
|
|
|
|
|
get_all_path: ;<EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ᮡ<EFBFBD>࠭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
mov ecx,dword[edit1.text]
|
|
|
|
|
add ecx,dword[edit1.size]
|
|
|
|
|
dec ecx
|
|
|
|
|
|
|
|
|
|
stdcall [str_copy], file_name,4096-1, dword[edit1.text],dword[edit1.max]
|
|
|
|
|
|
|
|
|
|
cmp byte[ecx],'/'
|
|
|
|
|
je @f
|
|
|
|
|
stdcall [str_catchar],file_name,4096-1, dword '/'
|
|
|
|
|
@@:
|
|
|
|
|
|
|
|
|
|
stdcall [str_cat], file_name,4096-1, txt_tile_path,300
|
|
|
|
|
stdcall [str_cat], file_name,4096-1, dword [txt_tile_type],10
|
2010-03-26 20:16:07 +03:00
|
|
|
|
ret
|