Subversion Repositories Kolibri OS

Rev

Rev 3175 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3175 Rev 5911
1
TILE_LEN	  equ 256
1
TILE_LEN	  equ 256
2
TILE_LEN_W	  equ TILE_LEN
2
TILE_LEN_W	  equ TILE_LEN
3
TILE_LEN_H	  equ TILE_LEN
3
TILE_LEN_H	  equ TILE_LEN
4
RGB_TILE_SIZE_1N4 equ (TILE_LEN*TILE_LEN*3/4) ;1/4 ç áâì ¯ ¬ï⨠ª à⨭ª¨
4
RGB_TILE_SIZE_1N4 equ (TILE_LEN*TILE_LEN*3/4) ;1/4 ç áâì ¯ ¬ï⨠ª à⨭ª¨
5
RGB_TILE_SIZE_1N2 equ (TILE_LEN*TILE_LEN*3/2) ;1/2 ç áâì ¯ ¬ï⨠ª à⨭ª¨
5
RGB_TILE_SIZE_1N2 equ (TILE_LEN*TILE_LEN*3/2) ;1/2 ç áâì ¯ ¬ï⨠ª à⨭ª¨
6
RGB_TILE_SIZE	  equ TILE_LEN*TILE_LEN*3     ;à §¬¥à 1-© ª à⨭ª¨
6
RGB_TILE_SIZE	  equ TILE_LEN*TILE_LEN*3     ;à §¬¥à 1-© ª à⨭ª¨
7
TREE_ICON_SYS16_BMP_SIZE equ 256*3*11+54 ;à §¬¥à bmp ä ©«  á á¨á⥬­ë¬¨ ¨ª®­ª ¬¨
7
TREE_ICON_SYS16_BMP_SIZE equ 256*3*11+54 ;à §¬¥à bmp ä ©«  á á¨á⥬­ë¬¨ ¨ª®­ª ¬¨
8
TREE_ICON_NOD16_BMP_SIZE equ 256*3* 1+54
8
TREE_ICON_NOD16_BMP_SIZE equ 256*3* 1+54
9
TILE_TEXT_MAX_LEN equ 40 ;¬ ªá¨¬ «ì­ ï ¤«¨­­  ⥪áâ  ¤«ï ¢ë¢®¤  ¨¬¥­¨ ä ©« 
9
TILE_TEXT_MAX_LEN equ 40 ;¬ ªá¨¬ «ì­ ï ¤«¨­­  ⥪áâ  ¤«ï ¢ë¢®¤  ¨¬¥­¨ ä ©« 
10
 
10
 
11
FRACT_TILE_00 equ 1 ;¤à®¡­ë© ä ©«, 1/4 - ¢¥àå­¨© «¥¢ë© 㣮«
11
FRACT_TILE_00 equ 1 ;¤à®¡­ë© ä ©«, 1/4 - ¢¥àå­¨© «¥¢ë© 㣮«
12
FRACT_TILE_01 equ 2 ;¤à®¡­ë© ä ©«, 1/4 - ­¨¦­¨© «¥¢ë© 㣮«
12
FRACT_TILE_01 equ 2 ;¤à®¡­ë© ä ©«, 1/4 - ­¨¦­¨© «¥¢ë© 㣮«
13
FRACT_TILE_10 equ 4 ;¤à®¡­ë© ä ©«, 1/4 - ¢¥àå­¨© ¯à ¢ë© 㣮«
13
FRACT_TILE_10 equ 4 ;¤à®¡­ë© ä ©«, 1/4 - ¢¥àå­¨© ¯à ¢ë© 㣮«
14
FRACT_TILE_11 equ 8 ;¤à®¡­ë© ä ©«, 1/4 - ­¨¦­¨© ¯à ¢ë© 㣮«
14
FRACT_TILE_11 equ 8 ;¤à®¡­ë© ä ©«, 1/4 - ­¨¦­¨© ¯à ¢ë© 㣮«
15
FRACT_TILE_ALL equ 15 ;15=1+2+4+8
15
FRACT_TILE_ALL equ 15 ;15=1+2+4+8
16
FRACT_TILE_BIT00 equ 0
16
FRACT_TILE_BIT00 equ 0
17
FRACT_TILE_BIT01 equ 1
17
FRACT_TILE_BIT01 equ 1
18
FRACT_TILE_BIT10 equ 2
18
FRACT_TILE_BIT10 equ 2
19
FRACT_TILE_BIT11 equ 3
19
FRACT_TILE_BIT11 equ 3
20
 
20
 
21
;ä« £¨, ­ã¦­ë¥ ¯à¨ à áâ¢ ­¨¨:
21
;ä« £¨, ­ã¦­ë¥ ¯à¨ à áâ¢ ­¨¨:
22
SCALE_0BIT_USE equ 8
22
SCALE_0BIT_USE equ 8
23
SCALE_1BIT_USE equ 9
23
SCALE_1BIT_USE equ 9
24
SCALE_0_USE equ 0x100 ;ä« £ ®âªàëâ¨ï ª à⨭ª¨ ⥪ã饣® ã஢­ï
24
SCALE_0_USE equ 0x100 ;ä« £ ®âªàëâ¨ï ª à⨭ª¨ ⥪ã饣® ã஢­ï
25
SCALE_1_USE equ 0x200 ;ä« £ ®âªàëâ¨ï ª à⨭ª¨ ¢ëá襣® ã஢­ï (¡ã¤¥â à áâ¢ âáï ¢ ¯à®¯à¨á®¢ª¥)
25
SCALE_1_USE equ 0x200 ;ä« £ ®âªàëâ¨ï ª à⨭ª¨ ¢ëá襣® ã஢­ï (¡ã¤¥â à áâ¢ âáï ¢ ¯à®¯à¨á®¢ª¥)
26
 
26
 
27
met_fr_opn db 0 ;ä« £ ®âªàëâ¨ï ä ©«  á ¬¥âª ¬¨
27
met_fr_opn db 0 ;ä« £ ®âªàëâ¨ï ä ©«  á ¬¥âª ¬¨
28
 
28
 
29
size_tile_struc equ 32 ;à §¬¥à áâàãªâãàë â ©« 
29
size_tile_struc equ 32 ;à §¬¥à áâàãªâãàë â ©« 
30
max_tiles_cols	equ 4 ;¬ ªá¨¬ «ì­®¥ ç¨á«® â ©«®¢ ¯® è¨à¨­¥ ®ª­ 
30
max_tiles_cols	equ 4 ;¬ ªá¨¬ «ì­®¥ ç¨á«® â ©«®¢ ¯® è¨à¨­¥ ®ª­ 
31
max_tiles_rows	equ 3 ;¬ ªá¨¬ «ì­®¥ ç¨á«® â ©«®¢ ¯® ¢ëá®â¥ ®ª­ 
31
max_tiles_rows	equ 3 ;¬ ªá¨¬ «ì­®¥ ç¨á«® â ©«®¢ ¯® ¢ëá®â¥ ®ª­ 
32
max_tiles_count equ (max_tiles_cols*max_tiles_rows) ;¬ ªá¨¬ «ì­®¥ ç¨á«® â ©«®¢ ¢ ¯à®£à ¬¬¥
32
max_tiles_count equ (max_tiles_cols*max_tiles_rows) ;¬ ªá¨¬ «ì­®¥ ç¨á«® â ©«®¢ ¢ ¯à®£à ¬¬¥
33
 
33
 
34
tile_coord_x	equ dword[edi] ;ª®®à¤¨­ â  x (ª ª ¯ à ¬¥âà ¤«ï § £à㧪¨)
34
tile_coord_x	equ dword[edi] ;ª®®à¤¨­ â  x (ª ª ¯ à ¬¥âà ¤«ï § £à㧪¨)
35
tile_coord_y	equ dword[edi+ 4] ;ª®®à¤¨­ â  y (ª ª ¯ à ¬¥âà ¤«ï § £à㧪¨)
35
tile_coord_y	equ dword[edi+ 4] ;ª®®à¤¨­ â  y (ª ª ¯ à ¬¥âà ¤«ï § £à㧪¨)
36
tile_zoom	equ  byte[edi+ 8] ;¬ áèâ ¡ § £à㦠¥¬®£® â ©« 
36
tile_zoom	equ  byte[edi+ 8] ;¬ áèâ ¡ § £à㦠¥¬®£® â ©« 
37
tile_err_f	equ  byte[edi+ 9] ;ª®¤ ®è¨¡ª¨ ¯à¨ ®âªàë⨨ ¨§®¡à ¦¥­¨ï
37
tile_err_f	equ  byte[edi+ 9] ;ª®¤ ®è¨¡ª¨ ¯à¨ ®âªàë⨨ ¨§®¡à ¦¥­¨ï
38
tile_drobn	equ  word[edi+10] ;¯®«¥ ¤«ï á®åà ­¥­¨ï १ã«ìâ â®¢ ®âªàëâ¨ï ¤à®¡­ëå ª à⨭®ª
38
tile_drobn	equ  word[edi+10] ;¯®«¥ ¤«ï á®åà ­¥­¨ï १ã«ìâ â®¢ ®âªàëâ¨ï ¤à®¡­ëå ª à⨭®ª
39
tile_offs_l_load  equ 12 ;offset params last load tile
39
tile_offs_l_load  equ 12 ;offset params last load tile
40
tile_key_coord_x  equ dword[edi+12] ;ª®®à¤¨­ â  x (ª ª ª«îç ¯®á«¥¤­¥© § £à㧪¨)
40
tile_key_coord_x  equ dword[edi+12] ;ª®®à¤¨­ â  x (ª ª ª«îç ¯®á«¥¤­¥© § £à㧪¨)
41
tile_key_coord_y  equ dword[edi+16] ;ª®®à¤¨­ â  y (ª ª ª«îç ¯®á«¥¤­¥© § £à㧪¨)
41
tile_key_coord_y  equ dword[edi+16] ;ª®®à¤¨­ â  y (ª ª ª«îç ¯®á«¥¤­¥© § £à㧪¨)
42
tile_key_path_len equ  byte[edi+21] ;¤«¨­­  ⥪áâ  ¢ ¯®«¥ Cache
42
tile_key_path_len equ  byte[edi+21] ;¤«¨­­  ⥪áâ  ¢ ¯®«¥ Cache
43
tile_rgb_icon	equ dword[edi+22] ;㪠§ â¥«ì ­  ¡ãä¥à ¤«ï åà ­¥­¨ï ®á­®¢­®© ¨«¨ à áâï­ã⮩ ª à⨭ª¨
43
tile_rgb_icon	equ dword[edi+22] ;㪠§ â¥«ì ­  ¡ãä¥à ¤«ï åà ­¥­¨ï ®á­®¢­®© ¨«¨ à áâï­ã⮩ ª à⨭ª¨
44
tile_drobn_icon equ dword[edi+26] ;㪠§ â¥«ì ­  ¡ãä¥à ¤«ï åà ­¥­¨ï 4-å ¤à®¡­ëå ª à⨭®ª
44
tile_drobn_icon equ dword[edi+26] ;㪠§ â¥«ì ­  ¡ãä¥à ¤«ï åà ­¥­¨ï 4-å ¤à®¡­ëå ª à⨭®ª
45
tile_delta_x	equ  byte[edi+30] ;ᤢ¨£ â ©«  ®â­®á¨â¥«ì­® ªãàá®à  ¯® ®á¨ x
45
tile_delta_x	equ  byte[edi+30] ;ᤢ¨£ â ©«  ®â­®á¨â¥«ì­® ªãàá®à  ¯® ®á¨ x
46
tile_delta_y	equ  byte[edi+31] ;ᤢ¨£ â ©«  ®â­®á¨â¥«ì­® ªãàá®à  ¯® ®á¨ y
46
tile_delta_y	equ  byte[edi+31] ;ᤢ¨£ â ©«  ®â­®á¨â¥«ì­® ªãàá®à  ¯® ®á¨ y
47
 
47
 
48
 
48
 
49
; *** ¯®à冷ª ¢ë§®¢  ä㭪権 ¯à¨ § £à㧪¥ â ©«®¢ ***
49
; *** ¯®à冷ª ¢ë§®¢  ä㭪権 ¯à¨ § £à㧪¥ â ©«®¢ ***
50
;load_tile
50
;load_tile
51
;       get_tile_path
51
;       get_tile_path
52
;       load_new_tile (⥪ãé ï ª à⨭ª )
52
;       load_new_tile (⥪ãé ï ª à⨭ª )
53
;       get_tile_path
53
;       get_tile_path
54
;       load_new_tile (­¨¦­ïï ª à⨭ª )
54
;       load_new_tile (­¨¦­ïï ª à⨭ª )
55
;       get_tile_path
55
;       get_tile_path
56
;       load_new_tile (­¨¦­ïï ª à⨭ª )
56
;       load_new_tile (­¨¦­ïï ª à⨭ª )
57
;       get_tile_path
57
;       get_tile_path
58
;       load_new_tile (­¨¦­ïï ª à⨭ª )
58
;       load_new_tile (­¨¦­ïï ª à⨭ª )
59
;       get_tile_path
59
;       get_tile_path
60
;       load_new_tile (­¨¦­ïï ª à⨭ª )
60
;       load_new_tile (­¨¦­ïï ª à⨭ª )
61
;       get_parent_tiles (横«¨ç¥áª¨© ¯à®á¬®âà த¨â¥«ì᪨å â ©«®¢)
61
;       get_parent_tiles (横«¨ç¥áª¨© ¯à®á¬®âà த¨â¥«ì᪨å â ©«®¢)
62
;               get_tile_path
62
;               get_tile_path
63
;               load_new_tile (¢¥àå­ïï ª à⨭ª )
63
;               load_new_tile (¢¥àå­ïï ª à⨭ª )
64
 
64
 
65
 
-
 
-
 
65
 
66
;???
66
;¯¥à¥¤¢¨£ ¥¬ ª®®à¤¨­ âã ªãàá®à  ¢¯à ¢®
67
align 4
67
align 4
68
CursorMoveRight: ;¯¥à¥¤¢¨£ ¥¬ ª®®à¤¨­ âã ªãàá®à  ¢¯à ¢®
68
CursorMoveRight:
69
  push ebx ecx
69
  push ebx ecx
70
  xor ebx,ebx
70
  xor ebx,ebx
71
  xor ecx,ecx
71
  xor ecx,ecx
72
  mov cl,byte[map.zoom]
72
  mov cl,byte[map.zoom]
73
  dec ecx
73
  dec ecx
74
  cmp cx,0
74
  cmp cx,0
75
  jle .no_move ;¯à¨ 0-¬ ¬ áèâ ¡¥ ­¥ ¤¢¨£ ¥¬áï
75
  jle .no_move ;¯à¨ 0-¬ ¬ áèâ ¡¥ ­¥ ¤¢¨£ ¥¬áï
76
  @@:
76
  @@:
77
    rol ebx,1
77
    rol ebx,1
78
    or ebx,1 ;­ ª ¯«¨¢ ¥¬ ¬ ªá¨¬ «ì­ãî ª®®à¤¨­ âã, ¯à¨ ¤ ­®¬ ¬ áèâ ¡¥
78
    or ebx,1 ;­ ª ¯«¨¢ ¥¬ ¬ ªá¨¬ «ì­ãî ª®®à¤¨­ âã, ¯à¨ ¤ ­®¬ ¬ áèâ ¡¥
79
    loop @b
79
    loop @b
80
  cmp dword[map.coord_x],ebx
80
  cmp dword[map.coord_x],ebx
81
  jge .no_move ;¥á«¨ ª®®à¤¨­ â  ªà ©­ïï, ­¥ ¤¢¨£ ¥¬áï
81
  jge .no_move ;¥á«¨ ª®®à¤¨­ â  ªà ©­ïï, ­¥ ¤¢¨£ ¥¬áï
82
    inc dword[map.coord_x]
82
    inc dword[map.coord_x]
83
    ;ᤢ¨£ ¥¬ á¥âªã â ©«®¢ ¢«¥¢®, çâ®-¡ë ç áâì â ©«®¢ ᮢ¯ «¨ ¨ ¯à¨è«®áì ¬¥­ìè¥ § £à㦠âì ­®¢ëå
83
    ;ᤢ¨£ ¥¬ á¥âªã â ©«®¢ ¢«¥¢®, çâ®-¡ë ç áâì â ©«®¢ ᮢ¯ «¨ ¨ ¯à¨è«®áì ¬¥­ìè¥ § £à㦠âì ­®¢ëå
84
    stdcall tiles_grid_move_left, tile_00,max_tiles_count,max_tiles_cols
84
    stdcall tiles_grid_move_left, tile_00,max_tiles_count,max_tiles_cols
85
    call but_Refresh
85
    call but_Refresh
86
  .no_move:
86
  .no_move:
87
  pop ecx ebx
87
  pop ecx ebx
88
  ret
88
  ret
89
 
-
 
-
 
89
 
90
;???
90
;¯¥à¥¤¢¨£ ¥¬ ª®®à¤¨­ âã ªãàá®à  ¢­¨§
91
align 4
91
align 4
92
CursorMoveDown: ;¯¥à¥¤¢¨£ ¥¬ ª®®à¤¨­ âã ªãàá®à  ¢­¨§
92
CursorMoveDown:
93
  push ebx ecx
93
  push ebx ecx
94
  xor ebx,ebx
94
  xor ebx,ebx
95
  xor ecx,ecx
95
  xor ecx,ecx
96
  mov cl,byte[map.zoom]
96
  mov cl,byte[map.zoom]
97
  dec ecx
97
  dec ecx
98
  cmp cx,0
98
  cmp cx,0
99
  jle .no_move ;¯à¨ 0-¬ ¬ áèâ ¡¥ ­¥ ¤¢¨£ ¥¬áï
99
  jle .no_move ;¯à¨ 0-¬ ¬ áèâ ¡¥ ­¥ ¤¢¨£ ¥¬áï
100
  @@:
100
  @@:
101
    rol ebx,1
101
    rol ebx,1
102
    or ebx,1 ;­ ª ¯«¨¢ ¥¬ ¬ ªá¨¬ «ì­ãî ª®®à¤¨­ âã, ¯à¨ ¤ ­®¬ ¬ áèâ ¡¥
102
    or ebx,1 ;­ ª ¯«¨¢ ¥¬ ¬ ªá¨¬ «ì­ãî ª®®à¤¨­ âã, ¯à¨ ¤ ­®¬ ¬ áèâ ¡¥
103
    loop @b
103
    loop @b
104
  cmp dword[map.coord_y],ebx
104
  cmp dword[map.coord_y],ebx
105
  jge .no_move ;¥á«¨ ª®®à¤¨­ â  ªà ©­ïï, ­¥ ¤¢¨£ ¥¬áï
105
  jge .no_move ;¥á«¨ ª®®à¤¨­ â  ªà ©­ïï, ­¥ ¤¢¨£ ¥¬áï
106
    inc dword[map.coord_y]
106
    inc dword[map.coord_y]
107
    ;ᤢ¨£ ¥¬ á¥âªã â ©«®¢ ¢¢¥àå
107
    ;ᤢ¨£ ¥¬ á¥âªã â ©«®¢ ¢¢¥àå
108
    stdcall tiles_grid_move_up, tile_00,max_tiles_count,max_tiles_rows
108
    stdcall tiles_grid_move_up, tile_00,max_tiles_count,max_tiles_rows
109
    call but_Refresh
109
    call but_Refresh
110
  .no_move:
110
  .no_move:
111
  pop ecx ebx
111
  pop ecx ebx
112
  ret
112
  ret
113
 
-
 
-
 
113
 
114
;???
114
;¯¥à¥¬¥é¥­¨¥ ¬¥âª¨ ¢¢¥àå, ¯® ᯨáªã
115
align 4
115
align 4
116
but_met_up: ;¯¥à¥¬¥é¥­¨¥ ¬¥âª¨ ¢¢¥àå, ¯® ᯨáªã
116
but_met_up:
117
  stdcall dword[tl_node_move_up], tree2
117
  stdcall dword[tl_node_move_up], tree2
118
  ret
118
  ret
119
 
-
 
-
 
119
 
120
;???
120
;¯¥à¥¬¥é¥­¨¥ ¬¥âª¨ ¢­¨§, ¯® ᯨáªã?
121
align 4
121
align 4
122
but_met_dn: ;¯¥à¥¬¥é¥­¨¥ ¬¥âª¨ ¢­¨§, ¯® ᯨáªã
122
but_met_dn:
123
  stdcall dword[tl_node_move_down], tree2
123
  stdcall dword[tl_node_move_down], tree2
124
  ret
124
  ret
125
 
-
 
-
 
125
 
126
;???
126
;¬¥­ï¥¬ à áè¨à¥­¨¥ ¤«ï ª àâë
127
align 4
127
align 4
128
fun_new_map_type: ;¬¥­ï¥¬ à áè¨à¥­¨¥ ¤«ï ª àâë
128
fun_new_map_type:
129
  push eax
129
  push eax
130
    stdcall dword[tl_node_get_data], tree1
-
 
131
    pop eax
130
    stdcall dword[tl_node_get_data], tree1
132
    cmp eax,0
131
    cmp eax,0
133
    je @f
132
    je @f
134
      mov dword[txt_tile_type],eax
133
      mov dword[txt_tile_type],eax
135
    @@:
134
    @@:
136
  pop eax
135
  pop eax
137
  ret
136
  ret
138
 
137
 
139
;§ ¤ ¥¬ à á¯®«®¦¥­¨¥ â ©«®¢ ¯® á¥âª¥
138
;§ ¤ ¥¬ à á¯®«®¦¥­¨¥ â ©«®¢ ¯® á¥âª¥
140
align 4
139
align 4
141
proc tiles_init_grid, beg_tiles:dword, count:dword, cols:dword
140
proc tiles_init_grid uses eax ebx ecx edx edi, beg_tiles:dword, count:dword, cols:dword
142
  push eax ebx ecx edx edi
-
 
143
  xor eax,eax
141
  xor eax,eax
144
  xor ebx,ebx
142
  xor ebx,ebx
145
  mov edi,[beg_tiles]
143
  mov edi,[beg_tiles]
146
  mov ecx,[count]
144
  mov ecx,[count]
147
  mov edx,[cols]
145
  mov edx,[cols]
148
  @@:
146
  @@:
149
    mov tile_delta_x,al
147
    mov tile_delta_x,al
150
    mov tile_delta_y,bl
148
    mov tile_delta_y,bl
151
    add edi,size_tile_struc
149
    add edi,size_tile_struc
152
    inc ax
150
    inc ax
153
    cmp eax,edx
151
    cmp eax,edx
154
    jl .old_lin
152
    jl .old_lin
155
      xor eax,eax
153
      xor eax,eax
156
      inc bx
154
      inc bx
157
    .old_lin:
155
    .old_lin:
158
    loop @b
156
    loop @b
159
  pop edi edx ecx ebx eax
-
 
160
  ret
157
  ret
161
endp
158
endp
162
 
159
 
163
;ᤢ¨£ ¥¬ á¥âªã ¢«¥¢®, ¢ë«¥§è¨¥ á⮫¡æë ¡ã¤ãâ ¯¥à¥ª¨­ãâë ­  ¯à ¢ãî áâ®à®­ã
160
;ᤢ¨£ ¥¬ á¥âªã ¢«¥¢®, ¢ë«¥§è¨¥ á⮫¡æë ¡ã¤ãâ ¯¥à¥ª¨­ãâë ­  ¯à ¢ãî áâ®à®­ã
164
;äã­ªæ¨ï ­ã¦­  ¤«ï ®¯â¨¬¨§ æ¨¨ ®¡à é¥­¨ï ª ¤¨áªã, ¯à¨ ¤¢¨¦¥­¨¨ ªãàá®à  ¬ë ¤¢¨£ ¥¬
161
;äã­ªæ¨ï ­ã¦­  ¤«ï ®¯â¨¬¨§ æ¨¨ ®¡à é¥­¨ï ª ¤¨áªã, ¯à¨ ¤¢¨¦¥­¨¨ ªãàá®à  ¬ë ¤¢¨£ ¥¬
165
;â ©«ë ¢ ¯à®â¨¢®¯®«®¦­ãî áâ®à®­ã, ¢ १ã«ìâ â¥ ª®®à¤¨­ âë ¡®«ì設á⢠ â ©«®¢ ­¥ ¬¥­ïîâáï
162
;â ©«ë ¢ ¯à®â¨¢®¯®«®¦­ãî áâ®à®­ã, ¢ १ã«ìâ â¥ ª®®à¤¨­ âë ¡®«ì設á⢠ â ©«®¢ ­¥ ¬¥­ïîâáï
166
;  §­ ç¨â ¯à®£à ¬¬  ­¥ ¡ã¤¥â ¯¥à¥ç¨â뢠âì ¨å § ­®¢®, 祬 ¨ ¤®á⨣ ¥âáï ®¯â¨¬¨§ æ¨ï
163
;  §­ ç¨â ¯à®£à ¬¬  ­¥ ¡ã¤¥â ¯¥à¥ç¨â뢠âì ¨å § ­®¢®, 祬 ¨ ¤®á⨣ ¥âáï ®¯â¨¬¨§ æ¨ï
167
align 4
164
align 4
168
proc tiles_grid_move_left, beg_tiles:dword, count:dword, cols:dword
165
proc tiles_grid_move_left uses eax ebx ecx edx edi, beg_tiles:dword, count:dword, cols:dword
169
  push eax ebx ecx edx edi
-
 
170
  xor eax,eax
166
  xor eax,eax
171
  xor ebx,ebx
167
  xor ebx,ebx
172
  mov edi,[beg_tiles]
168
  mov edi,[beg_tiles]
173
  mov ecx,[count]
169
  mov ecx,[count]
174
  mov edx,[cols]
170
  mov edx,[cols]
175
  @@:
171
  @@:
176
    cmp tile_delta_x,0
172
    cmp tile_delta_x,0
177
    jne .no_jump
173
    jne .no_jump
178
      add tile_delta_x,dl ;¥á«¨ á⮫¡¥æ = 0, â® ¤®¡ ¢«ï¥¬ 'cols' çâ®-¡ë ­¥ ¢ë« §¨« ¢«¥¢®
174
      add tile_delta_x,dl ;¥á«¨ á⮫¡¥æ = 0, â® ¤®¡ ¢«ï¥¬ 'cols' çâ®-¡ë ­¥ ¢ë« §¨« ¢«¥¢®
179
    .no_jump:
175
    .no_jump:
180
    dec tile_delta_x
176
    dec tile_delta_x
181
    add edi,size_tile_struc
177
    add edi,size_tile_struc
182
    loop @b
178
    loop @b
183
  pop edi edx ecx ebx eax
-
 
184
  ret
179
  ret
185
endp
180
endp
186
 
181
 
187
;ᤢ¨£ ¥¬ á¥âªã ¢¯à ¢®, ¢ë«¥§è¨¥ á⮫¡æë ¡ã¤ãâ ¯¥à¥ª¨­ãâë ­  «¥¢ãî áâ®à®­ã
182
;ᤢ¨£ ¥¬ á¥âªã ¢¯à ¢®, ¢ë«¥§è¨¥ á⮫¡æë ¡ã¤ãâ ¯¥à¥ª¨­ãâë ­  «¥¢ãî áâ®à®­ã
188
;¤¥« ¥â ⮦¥ çâ® ¨ tiles_grid_move_left ⮫쪮 ¤¢¨£ ¥â ª®®à¤¨­ âë ¢ ¤àã£ãî áâ®à®­ã
183
;¤¥« ¥â ⮦¥ çâ® ¨ tiles_grid_move_left ⮫쪮 ¤¢¨£ ¥â ª®®à¤¨­ âë ¢ ¤àã£ãî áâ®à®­ã
189
align 4
184
align 4
190
proc tiles_grid_move_right, beg_tiles:dword, count:dword, cols:dword
185
proc tiles_grid_move_right uses eax ebx ecx edx edi, beg_tiles:dword, count:dword, cols:dword
191
  push eax ebx ecx edx edi
-
 
192
  xor eax,eax
186
  xor eax,eax
193
  xor ebx,ebx
187
  xor ebx,ebx
194
  mov edi,[beg_tiles]
188
  mov edi,[beg_tiles]
195
  mov ecx,[count]
189
  mov ecx,[count]
196
  mov edx,[cols]
190
  mov edx,[cols]
197
  @@:
191
  @@:
198
    inc tile_delta_x
192
    inc tile_delta_x
199
    cmp tile_delta_x,dl
193
    cmp tile_delta_x,dl
200
    jl .no_jump
194
    jl .no_jump
201
      mov tile_delta_x,0 ;¥á«¨ á⮫¡¥æ = 'cols', â® áâ ¢¨¬ ¥¬ã 0 çâ®-¡ë ­¥ ¢ë« §¨« ¢¯à ¢®
195
      mov tile_delta_x,0 ;¥á«¨ á⮫¡¥æ = 'cols', â® áâ ¢¨¬ ¥¬ã 0 çâ®-¡ë ­¥ ¢ë« §¨« ¢¯à ¢®
202
    .no_jump:
196
    .no_jump:
203
    add edi,size_tile_struc
197
    add edi,size_tile_struc
204
    loop @b
198
    loop @b
205
  pop edi edx ecx ebx eax
-
 
206
  ret
199
  ret
207
endp
200
endp
208
 
201
 
209
align 4
202
align 4
210
proc tiles_grid_move_up, beg_tiles:dword, count:dword, rows:dword
203
proc tiles_grid_move_up uses eax ebx ecx edx edi, beg_tiles:dword, count:dword, rows:dword
211
  push eax ebx ecx edx edi
-
 
212
  xor eax,eax
204
  xor eax,eax
213
  xor ebx,ebx
205
  xor ebx,ebx
214
  mov edi,[beg_tiles]
206
  mov edi,[beg_tiles]
215
  mov ecx,[count]
207
  mov ecx,[count]
216
  mov edx,[rows]
208
  mov edx,[rows]
217
  @@:
209
  @@:
218
    cmp tile_delta_y,0
210
    cmp tile_delta_y,0
219
    jne .no_jump
211
    jne .no_jump
220
      add tile_delta_y,dl ;¥á«¨ áâப  = 0, â® ¤®¡ ¢«ï¥¬ 'rows' çâ®-¡ë ­¥ ¢ë« §¨«  ¢­¨§
212
      add tile_delta_y,dl ;¥á«¨ áâப  = 0, â® ¤®¡ ¢«ï¥¬ 'rows' çâ®-¡ë ­¥ ¢ë« §¨«  ¢­¨§
221
    .no_jump:
213
    .no_jump:
222
    dec tile_delta_y
214
    dec tile_delta_y
223
    add edi,size_tile_struc
215
    add edi,size_tile_struc
224
    loop @b
216
    loop @b
225
  pop edi edx ecx ebx eax
-
 
226
  ret
217
  ret
227
endp
218
endp
228
 
219
 
229
align 4
220
align 4
230
proc tiles_grid_move_down, beg_tiles:dword, count:dword, rows:dword
221
proc tiles_grid_move_down uses eax ebx ecx edx edi, beg_tiles:dword, count:dword, rows:dword
231
  push eax ebx ecx edx edi
-
 
232
  xor eax,eax
222
  xor eax,eax
233
  xor ebx,ebx
223
  xor ebx,ebx
234
  mov edi,[beg_tiles]
224
  mov edi,[beg_tiles]
235
  mov ecx,[count]
225
  mov ecx,[count]
236
  mov edx,[rows]
226
  mov edx,[rows]
237
  @@:
227
  @@:
238
    inc tile_delta_y
228
    inc tile_delta_y
239
    cmp tile_delta_y,dl
229
    cmp tile_delta_y,dl
240
    jl .no_jump
230
    jl .no_jump
241
      mov tile_delta_y,0 ;¥á«¨ áâப  = 'rows', â® áâ ¢¨¬ ¥© 0 çâ®-¡ë ­¥ ¢ë« §¨«  ¢¢¥àå
231
      mov tile_delta_y,0 ;¥á«¨ áâப  = 'rows', â® áâ ¢¨¬ ¥© 0 çâ®-¡ë ­¥ ¢ë« §¨«  ¢¢¥àå
242
    .no_jump:
232
    .no_jump:
243
    add edi,size_tile_struc
233
    add edi,size_tile_struc
244
    loop @b
234
    loop @b
245
  pop edi edx ecx ebx eax
-
 
246
  ret
235
  ret
247
endp
236
endp
248
 
237
 
249
align 4
238
align 4
250
proc array_tile_function, beg_tiles:dword, count:dword, funct:dword
239
proc array_tile_function uses ecx edi, beg_tiles:dword, count:dword, funct:dword
251
  push ecx edi
-
 
252
  mov edi,[beg_tiles]
240
  mov edi,[beg_tiles]
253
  mov ecx,[count]
241
  mov ecx,[count]
254
  @@:
242
  @@:
255
    stdcall [funct],edi
243
    stdcall [funct],edi
256
    add edi,size_tile_struc
244
    add edi,size_tile_struc
257
    loop @b
245
    loop @b
258
  pop edi ecx
-
 
259
  ret
246
  ret
260
endp
247
endp
261
 
248
 
262
align 4
249
align 4
263
draw_tiles:
250
draw_tiles:
264
pushad
251
pushad
265
  mov eax,47
-
 
266
  mov ebx,0x20000
-
 
267
  xor ecx,ecx
-
 
268
  mov cl,byte[map.zoom]
252
  movzx ecx,byte[map.zoom]
269
  mov edx,128*65536+13
-
 
270
  mov esi,[sc.work_text]
253
  mov esi,[sc.work_text]
271
  or  esi,0x40000000
254
  or  esi,0x40000000
272
  mov edi,[sc.work]
255
  mov edi,[sc.work]
273
  int 0x40
256
  mcall 47,0x20000,, (128 shl 16)+13
274
 
257
 
275
  stdcall array_tile_function, tile_00,max_tiles_count,draw_tile
258
  stdcall array_tile_function, tile_00,max_tiles_count,draw_tile
276
popad
259
popad
277
  ret
260
  ret
278
 
261
 
279
; edi - pointer tile struct
262
; edi - pointer tile struct
280
;output:
263
;output:
281
; eax - 7
264
; eax - 7
282
; edx - coordinates to tile draw
265
; edx - coordinates to tile draw
283
 
266
 
284
align 4
267
align 4
285
proc tile_clear_area, height:dword
268
proc tile_clear_area, height:dword
286
  pushad
269
  pushad
287
    mov eax,13 ;draw rect
270
    mov eax,13 ;draw rect
288
 
271
 
289
    mov cx,dx
272
    mov cx,dx
290
    shl ecx,16
273
    shl ecx,16
291
    mov cx,word[height]
274
    mov cx,word[height]
292
 
275
 
293
    shr edx,16
276
    shr edx,16
294
    mov bx,dx
277
    mov bx,dx
295
    shl ebx,16
278
    shl ebx,16
296
    mov bx,TILE_LEN_W
279
    mov bx,TILE_LEN_W
297
 
280
 
298
    mov edx,0xffffd0
281
    mov edx,0xffffd0
299
    int 0x40
282
    int 0x40
300
  popad
283
  popad
301
  ret
284
  ret
302
endp
285
endp
303
 
286
 
304
;???
287
;???
305
align 4
288
align 4
306
proc draw_tile, tile:dword
289
proc draw_tile, tile:dword
307
  pushad
290
  pushad
308
  mov edi,[tile]
291
  mov edi,[tile]
309
 
292
 
310
;*** set base point ***
293
;*** set base point ***
311
  mov edx,5*65536+35
294
  mov edx,5*65536+35
312
  xor eax,eax
295
  xor eax,eax
313
  mov al,tile_delta_y
296
  mov al,tile_delta_y
314
  shl ax,8 ;*256
297
  shl ax,8 ;*256
315
  add edx,eax
298
  add edx,eax
316
  xor eax,eax
299
  xor eax,eax
317
  mov al,tile_delta_x
300
  mov al,tile_delta_x
318
  shl eax,8+16
301
  shl eax,8+16
319
  add edx,eax
302
  add edx,eax
320
;*** set base point ***
303
;*** set base point ***
321
 
304
 
322
  mov ebx,dword[procinfo.box.width] ;¯à®¢¥à塞 ¢« §¨â «¨ ª à⨭ª  ¯® ®á¨ x
305
  mov ebx,dword[procinfo.box.width] ;¯à®¢¥à塞 ¢« §¨â «¨ ª à⨭ª  ¯® ®á¨ x
323
  sub ebx,min_window_w-5 ;5 - ®âáâ㯠᫥¢  ¤«ï 1-© ª à⨭ª¨
306
  sub ebx,min_window_w-5 ;5 - ®âáâ㯠᫥¢  ¤«ï 1-© ª à⨭ª¨
324
  shl ebx,16
307
  shl ebx,16
325
  mov bx,dx ;­¨¦­ïï ª®®à¤¨­ â  ¯®ª  ­¥ ãç¨â뢠¥âáï, ¯®â®¬ã ¤¥« ¥¬ ¨å à ¢­ë¬¨
308
  mov bx,dx ;­¨¦­ïï ª®®à¤¨­ â  ¯®ª  ­¥ ãç¨â뢠¥âáï, ¯®â®¬ã ¤¥« ¥¬ ¨å à ¢­ë¬¨
326
  cmp edx,ebx
309
  cmp edx,ebx
327
  jg .end_f
310
  jg .end_f
328
 
311
 
329
  ;¯à®¢¥à塞 ¢« §¨â «¨ ª à⨭ª  ¯® ®á¨ y
312
  ;¯à®¢¥à塞 ¢« §¨â «¨ ª à⨭ª  ¯® ®á¨ y
330
  mcall 48,4 ;eax = ¢ëá®â  ᪨­ 
313
  mcall 48,4 ;eax = ¢ëá®â  ᪨­ 
331
  mov ecx,dword[procinfo.box.height]
314
  mov ecx,dword[procinfo.box.height]
332
  mov ebx,edx
315
  mov ebx,edx
333
  and ebx,0xffff ;ebx = ª®®à¤¨­ â  'y' ¤«ï ¢ë¢®¤  â ©« 
316
  and ebx,0xffff ;ebx = ª®®à¤¨­ â  'y' ¤«ï ¢ë¢®¤  â ©« 
334
  add eax,ebx
317
  add eax,ebx
335
  add eax,5+5 ;5-à ¬ª 
318
  add eax,5+5 ;5-à ¬ª 
336
 
319
 
337
  cmp ecx,eax
320
  cmp ecx,eax
338
  jle .end_f
321
  jle .end_f
339
 
322
 
340
  sub ecx,eax
323
  sub ecx,eax
341
  cmp ecx,TILE_LEN_H
324
  cmp ecx,TILE_LEN_H
342
  jle @f
325
  jle @f
343
    mov ecx,TILE_LEN_H
326
    mov ecx,TILE_LEN_H
344
  @@:
327
  @@:
345
 
328
 
346
  mov eax,7
329
  mov eax,7
347
  bt tile_drobn,SCALE_0BIT_USE
330
  bt tile_drobn,SCALE_0BIT_USE
348
  jc .draw
331
  jc .draw
349
  bt tile_drobn,SCALE_1BIT_USE
332
  bt tile_drobn,SCALE_1BIT_USE
350
  jc .draw
333
  jc .draw
351
  jmp @f
334
  jmp @f
352
    .draw:
335
    .draw:
353
    mov ebx,tile_rgb_icon
336
    mov ebx,tile_rgb_icon
354
    or ecx,TILE_LEN_W*65536 ;§ ¤ ­¨¥ è¨à¨­ë ¤«ï 楫®© ª à⨭ª¨
337
    or ecx,TILE_LEN_W*65536 ;§ ¤ ­¨¥ è¨à¨­ë ¤«ï 楫®© ª à⨭ª¨
355
    int 0x40 ;¢ë¢®¤ ­  íªà ­ 楫®© ¨«¨ 㢥«¨ç¨­®© ª à⨭ª¨
338
    int 0x40 ;¢ë¢®¤ ­  íªà ­ 楫®© ¨«¨ 㢥«¨ç¨­®© ª à⨭ª¨
356
    jmp .end_clear_tile
339
    jmp .end_clear_tile
357
  @@:
340
  @@:
358
    cmp tile_drobn,FRACT_TILE_ALL
341
    cmp tile_drobn,FRACT_TILE_ALL
359
    je .end_clear_tile
342
    je .end_clear_tile
360
      stdcall tile_clear_area, ecx ;ç¨á⪠ ®¡« á⨠⠩« 
343
      stdcall tile_clear_area, ecx ;ç¨á⪠ ®¡« á⨠⠩« 
361
  .end_clear_tile:
344
  .end_clear_tile:
362
 
345
 
363
    cmp tile_drobn,0
346
    cmp tile_drobn,0
364
    je .info ;¥á«¨ ­¥â ­¨ ®¤­®© ¤à®¡­®© ª à⨭ª¨
347
    je .info ;¥á«¨ ­¥â ­¨ ®¤­®© ¤à®¡­®© ª à⨭ª¨
365
 
348
 
366
mov si,cx ;si - ¢ëá®â  ­¨¦­¥© ¤à®¡­®© ª à⨭ª¨
349
mov si,cx ;si - ¢ëá®â  ­¨¦­¥© ¤à®¡­®© ª à⨭ª¨
367
sub si,TILE_LEN_H/2 ;si - ¢ëá®â  ­¨¦­¥© ¤à®¡­®© ª à⨭ª¨
350
sub si,TILE_LEN_H/2 ;si - ¢ëá®â  ­¨¦­¥© ¤à®¡­®© ª à⨭ª¨
368
cmp cx,TILE_LEN_H/2
351
cmp cx,TILE_LEN_H/2
369
jl @f
352
jl @f
370
  mov cx,TILE_LEN_H/2 ;§ ¤ ­¨¥ ¢ëá®âë ¤«ï ¢¥àå­¥© ¤à®¡­®© ª à⨭ª¨
353
  mov cx,TILE_LEN_H/2 ;§ ¤ ­¨¥ ¢ëá®âë ¤«ï ¢¥àå­¥© ¤à®¡­®© ª à⨭ª¨
371
@@:
354
@@:
372
 
355
 
373
    and ecx,0xffff ;áâ¨à ­¨¥ áâ à®© è¨à¨­ë
356
    and ecx,0xffff ;áâ¨à ­¨¥ áâ à®© è¨à¨­ë
374
    or ecx,(TILE_LEN_W/2)*65536 ;§ ¤ ­¨¥ è¨à¨­ë ¤«ï ¤à®¡­®© ª à⨭ª¨
357
    or ecx,(TILE_LEN_W/2)*65536 ;§ ¤ ­¨¥ è¨à¨­ë ¤«ï ¤à®¡­®© ª à⨭ª¨
375
    mov ebx,tile_drobn_icon
358
    mov ebx,tile_drobn_icon
376
    bt tile_drobn,FRACT_TILE_BIT00
359
    bt tile_drobn,FRACT_TILE_BIT00
377
    jae @f
360
    jae @f
378
      int 0x40
361
      int 0x40
379
    @@:
362
    @@:
380
    add dx,TILE_LEN_H/2
363
    add dx,TILE_LEN_H/2
381
    add ebx,RGB_TILE_SIZE_1N4
364
    add ebx,RGB_TILE_SIZE_1N4
382
    bt tile_drobn,FRACT_TILE_BIT01
365
    bt tile_drobn,FRACT_TILE_BIT01
383
    jae @f
366
    jae @f
384
      xchg cx,si
367
      xchg cx,si
385
      int 0x40
368
      int 0x40
386
      xchg cx,si
369
      xchg cx,si
387
    @@:
370
    @@:
388
 
371
 
389
    sub dx,TILE_LEN_H/2
372
    sub dx,TILE_LEN_H/2
390
    ror edx,16
373
    ror edx,16
391
    add dx,TILE_LEN_W/2
374
    add dx,TILE_LEN_W/2
392
    ror edx,16
375
    ror edx,16
393
    add ebx,RGB_TILE_SIZE_1N4
376
    add ebx,RGB_TILE_SIZE_1N4
394
    bt tile_drobn,FRACT_TILE_BIT10
377
    bt tile_drobn,FRACT_TILE_BIT10
395
    jae @f
378
    jae @f
396
      int 0x40
379
      int 0x40
397
    @@:
380
    @@:
398
 
381
 
399
    add dx,TILE_LEN_H/2
382
    add dx,TILE_LEN_H/2
400
    add ebx,RGB_TILE_SIZE_1N4
383
    add ebx,RGB_TILE_SIZE_1N4
401
    bt tile_drobn,FRACT_TILE_BIT11
384
    bt tile_drobn,FRACT_TILE_BIT11
402
    jae @f
385
    jae @f
403
      xchg cx,si
386
      xchg cx,si
404
      int 0x40
387
      int 0x40
405
    @@:
388
    @@:
406
 
389
 
407
    jmp .end_f
390
    jmp .end_f
408
  .info: ;¢ë¢®¤ ¨­ä®à¬ æ¨¨, ¯à¨ ­¥ 㤠筮¬ ®âªàë⨨ ª à⨭®ª
391
  .info: ;¢ë¢®¤ ¨­ä®à¬ æ¨¨, ¯à¨ ­¥ 㤠筮¬ ®âªàë⨨ ª à⨭®ª
409
 
392
 
410
;;;jmp .end_f ;test
393
;;;jmp .end_f ;test
411
  bt tile_drobn,SCALE_0BIT_USE
394
  bt tile_drobn,SCALE_0BIT_USE
412
  jc .end_f
395
  jc .end_f
413
  bt tile_drobn,SCALE_1BIT_USE
396
  bt tile_drobn,SCALE_1BIT_USE
414
  jc .end_f
397
  jc .end_f
415
 
398
 
416
    mov ebx,edx
399
    mov ebx,edx
417
    add ebx,0x30003
400
    add ebx,0x30003
418
    mov edx,tile_rgb_icon ;¯à¨ ­¥ã¤ ç­®¬ ®âªàë⨨ ¢ tile_rgb_icon ¯ãâì ª ä ©«ã
401
    mov edx,tile_rgb_icon ;¯à¨ ­¥ã¤ ç­®¬ ®âªàë⨨ ¢ tile_rgb_icon ¯ãâì ª ä ©«ã
419
;;;    mov dword[edx+RGB_TILE_SIZE_1N4],0 ;áâ ¢¨¬ ­ã«¨, ­  á«ãç © ¥á«¨ ¢ áâப¥ á ¨¬¥­¥¬ ä ©«  ¬ãá®à
402
;;;    mov dword[edx+RGB_TILE_SIZE_1N4],0 ;áâ ¢¨¬ ­ã«¨, ­  á«ãç © ¥á«¨ ¢ áâப¥ á ¨¬¥­¥¬ ä ©«  ¬ãá®à
420
    stdcall [str_len],tile_rgb_icon,RGB_TILE_SIZE_1N4
403
    stdcall [str_len],tile_rgb_icon,RGB_TILE_SIZE_1N4
421
    mov edi,eax
404
    mov edi,eax
422
 
405
 
423
    mov eax,4 ;draw text
406
    mov eax,4 ;draw text
424
    mov ecx,0xff
407
    mov ecx,0xff
425
;or ecx,0x80000000
408
;or ecx,0x80000000
426
    mov esi,TILE_TEXT_MAX_LEN
409
    mov esi,TILE_TEXT_MAX_LEN
427
 
410
 
428
    @@:
411
    @@:
429
      cmp edi,TILE_TEXT_MAX_LEN
412
      cmp edi,TILE_TEXT_MAX_LEN
430
      jg .no_line_last
413
      jg .no_line_last
431
	mov esi,edi
414
	mov esi,edi
432
	int 0x40
415
	int 0x40
433
	jmp .end_f
416
	jmp .end_f
434
      .no_line_last:
417
      .no_line_last:
435
      int 0x40
418
      int 0x40
436
      add edx,esi
419
      add edx,esi
437
      sub edi,esi
420
      sub edi,esi
438
      add ebx,10 ;®¯ã᪠¥¬áï ­  ­¨¦­îî áâபã
421
      add ebx,10 ;®¯ã᪠¥¬áï ­  ­¨¦­îî áâபã
439
      jmp @b
422
      jmp @b
440
  .end_f:
423
  .end_f:
441
  popad
424
  popad
442
  ret
425
  ret
443
endp
426
endp
444
 
427
 
445
;㢥«¨ç¥­¨¥ ¬ áèâ ¡ 
428
;㢥«¨ç¥­¨¥ ¬ áèâ ¡ 
446
align 4
429
align 4
447
but_ZoomP:
430
but_ZoomP:
448
  cmp byte[map.zoom],24
431
  cmp byte[map.zoom],24
449
  jge @f
432
  jge @f
450
    inc byte[map.zoom]
433
    inc byte[map.zoom]
451
    shl dword[map.coord_x],1
434
    shl dword[map.coord_x],1
452
    shl dword[map.coord_y],1
435
    shl dword[map.coord_y],1
453
    call but_Refresh
436
    call but_Refresh
454
  @@:
437
  @@:
455
  ret
438
  ret
456
 
439
 
457
;㬥­ì襭¨¥ ¬ áèâ ¡ 
440
;㬥­ì襭¨¥ ¬ áèâ ¡ 
458
align 4
441
align 4
459
but_ZoomM:
442
but_ZoomM:
460
  cmp byte[map.zoom],1
443
  cmp byte[map.zoom],1
461
  jle @f
444
  jle @f
462
    dec byte[map.zoom]
445
    dec byte[map.zoom]
463
    shr dword[map.coord_x],1
446
    shr dword[map.coord_x],1
464
    shr dword[map.coord_y],1
447
    shr dword[map.coord_y],1
465
    call but_Refresh
448
    call but_Refresh
466
  @@:
449
  @@:
467
  ret
450
  ret
468
 
-
 
-
 
451
 
469
;???
452
;á®åà ­¥­¨¥ ä ©«  á ¬¥âª ¬¨
470
align 4
453
align 4
471
but_MetSave: ;á®åà ­¥­¨¥ ä ©«  á ¬¥âª ¬¨
454
but_MetSave:
-
 
455
	stdcall dword[tl_save_mem], tree2,0,[bmp_icon],TREE_ICON_SYS16_BMP_SIZE
472
  stdcall dword[tl_save_mem], TREE_ICON_SYS16_BMP_SIZE,[bmp_icon],0,tree2
456
 
473
 
457
	copy_path fn_metki,sys_path,file_name,0
-
 
458
	push eax ebx ecx edi
474
  push eax ebx ecx edi
-
 
475
    copy_path fn_metki,sys_path,file_name,0x0
-
 
476
 
-
 
477
    stdcall dword[tl_get_mem_size], [bmp_icon],tree2
-
 
478
    pop ecx
-
 
479
    inc ecx ;¤«ï § ¯¨á¨ ¢ ä ©« § ¢¥àè î饣® ­ã«ï
459
		stdcall dword[tl_get_mem_size], tree2,[bmp_icon]
480
 
460
		inc eax ;¤«ï § ¯¨á¨ ¢ ä ©« § ¢¥àè î饣® ­ã«ï
481
    mov eax,70
461
 
482
    m2m [run_file_70.Buffer], [bmp_icon]
462
		m2m [run_file_70.Buffer], [bmp_icon]
483
    mov [run_file_70.Function], 2
463
		mov [run_file_70.Function], 2
484
    mov [run_file_70.Position], 0
464
		mov [run_file_70.Position], 0
485
    mov [run_file_70.Flags], 0
465
		mov [run_file_70.Flags], 0
486
    mov [run_file_70.Count], ecx
466
		mov [run_file_70.Count], eax
487
    mov byte[run_file_70+20], 0
467
		mov byte[run_file_70+20], 0
488
    mov [run_file_70.FileName], file_name
468
		mov [run_file_70.FileName], file_name
489
    mov ebx,run_file_70
469
		mcall 70,run_file_70
490
    int 0x40
-
 
491
  pop edi ecx ebx eax
470
	pop edi ecx ebx eax
492
  jmp still
471
	jmp still
493
 
-
 
-
 
472
 
494
;???
473
;áç¨â뢠¥¬ ä ©« á ¬¥âª ¬¨
495
align 4
474
align 4
496
but_MetLoad: ;áç¨â뢠¥¬ ä ©« á ¬¥âª ¬¨
475
but_MetLoad:
497
  cmp byte[met_fr_opn],0
476
	cmp byte[met_fr_opn],0
-
 
477
	jne .end_f
498
  jne .end_f
478
	copy_path fn_metki,sys_path,file_name,0
499
  pushad
479
	pushad
500
    mov byte[met_fr_opn],1
-
 
501
    copy_path fn_metki,sys_path,file_name,0x0
-
 
502
    mov eax,70 ;load icon file
480
		mov byte[met_fr_opn],1
503
    mov [run_file_70.Function], 0
481
		mov [run_file_70.Function], 0
504
    mov [run_file_70.Position], 0
482
		mov [run_file_70.Position], 0
505
    mov [run_file_70.Flags], 0
483
		mov [run_file_70.Flags], 0
506
    mov [run_file_70.Count], TREE_ICON_SYS16_BMP_SIZE
484
		mov [run_file_70.Count], TREE_ICON_SYS16_BMP_SIZE
507
    mov byte[run_file_70+20], 0
485
		mov byte[run_file_70+20], 0
508
    mov [run_file_70.FileName], file_name
486
		mov [run_file_70.FileName], file_name
509
    m2m [run_file_70.Buffer], [bmp_icon]
487
		m2m [run_file_70.Buffer], [bmp_icon]
510
    mov eax,70
-
 
511
    mov ebx,run_file_70
488
		mcall 70,run_file_70
512
    int 0x40
-
 
513
    cmp ebx,0xffffffff
489
		cmp ebx,0xffffffff
514
    je @f
490
		je @f
515
      stdcall [tl_load_mem], TREE_ICON_SYS16_BMP_SIZE,dword[bmp_icon],0,tree2
491
			stdcall [tl_load_mem], tree2,0,[bmp_icon],TREE_ICON_SYS16_BMP_SIZE
516
      stdcall [tl_cur_beg], tree2 ;?
492
			stdcall [tl_cur_beg], tree2
517
      stdcall [tl_draw], tree2 ;?
493
			stdcall [tl_draw], tree2
518
      pop eax
-
 
519
    @@:
494
		@@:
520
    mov byte[file_name],0 ;clear file name
495
		mov byte[file_name],0 ;clear file name
521
  popad
496
	popad
522
  .end_f:
497
	.end_f:
523
  ret
498
	ret
524
 
499
 
525
;???
500
;¤®¡ ¢«¥­¨¥ ¬¥âª¨
526
align 4
501
align 4
527
but_MetAdd: ;¤®¡ ¢«¥­¨¥ ¬¥âª¨
502
but_MetAdd:
528
  push eax
503
  push eax
529
    mov eax,dword[bmp_icon]
504
    mov eax,dword[bmp_icon]
530
    m2m dword[eax],  dword[map.coord_x]
505
    m2m dword[eax],  dword[map.coord_x]
531
    m2m dword[eax+4],dword[map.coord_y]
506
    m2m dword[eax+4],dword[map.coord_y]
532
    m2m  word[eax+8], word[map.zoom]
507
    m2m  word[eax+8], word[map.zoom]
533
    add eax,12
508
    add eax,12
534
    stdcall dword[str_copy], eax,30,dword[edit2.text],30
509
    stdcall dword[str_copy], eax,30,dword[edit2.text],30
535
    stdcall dword[tl_node_add], dword[bmp_icon], 0, tree2
510
    stdcall dword[tl_node_add], tree2, 0, dword[bmp_icon] 
536
    stdcall dword[tl_draw], tree2
511
    stdcall dword[tl_draw], tree2
537
  pop eax
512
  pop eax
538
  jmp still
513
  jmp still
539
 
-
 
-
 
514
 
540
;???
515
;¯¥à¥å®¤ ª ¢ë¡à ­­®© ¬¥âª¥
541
align 4
516
align 4
542
fun_goto_met: ;¯¥à¥å®¤ ª ¢ë¡à ­­®© ¬¥âª¥
517
fun_goto_met:
543
  push eax
518
	push eax
544
  stdcall dword[tl_node_get_data], tree2
-
 
545
  pop eax
519
	stdcall dword[tl_node_get_data], tree2
546
  cmp eax,0
520
	cmp eax,0
547
  je @f ;ªãàá®à ­¥ á⮨⠭  ¬¥âª¥
521
	je @f ;ªãàá®à ­¥ á⮨⠭  ¬¥âª¥
548
    m2m dword[map.coord_x],dword[eax]
522
		m2m dword[map.coord_x],dword[eax]
549
    m2m dword[map.coord_y],dword[eax+4]
523
		m2m dword[map.coord_y],dword[eax+4]
550
    m2m word[map.zoom],word[eax+8]
524
		m2m word[map.zoom],word[eax+8]
551
    call but_Refresh
525
		call but_Refresh
552
  @@:
526
	@@:
553
  pop eax
527
	pop eax
554
  ret
528
	ret
555
 
529
 
556
;???
530
;???
557
align 4
531
align 4
558
but_Refresh:
532
but_Refresh:
559
  call fun_new_map_type ;¯à®¢¥à塞 ­¥ ¯®¬¥­ï«áï «¨ ⨯ ¯à®á¬ âਢ ¥¬ëå ä ©«®¢
533
  call fun_new_map_type ;¯à®¢¥à塞 ­¥ ¯®¬¥­ï«áï «¨ ⨯ ¯à®á¬ âਢ ¥¬ëå ä ©«®¢
560
 
534
 
561
  stdcall array_tile_function, tile_00,max_tiles_count,load_tile
535
  stdcall array_tile_function, tile_00,max_tiles_count,load_tile
562
  stdcall draw_tiles
536
  stdcall draw_tiles
563
  ret
537
  ret
564
 
538
 
565
align 4
539
align 4
566
proc tile_init, tile:dword
540
proc tile_init uses eax edi, tile:dword
567
  push eax edi
-
 
568
    mov edi,[tile]
541
	mov edi,[tile]
569
 
-
 
570
    push dword RGB_TILE_SIZE+300
542
	stdcall mem.Alloc, RGB_TILE_SIZE+300
571
    call mem.Alloc
-
 
572
    mov tile_rgb_icon,eax
543
	mov tile_rgb_icon,eax
573
 
-
 
574
    push dword RGB_TILE_SIZE
544
	stdcall mem.Alloc, RGB_TILE_SIZE
575
    call mem.Alloc
-
 
576
    mov tile_drobn_icon,eax
545
	mov tile_drobn_icon,eax
577
  pop edi eax
-
 
578
  ret
546
	ret
579
endp
547
endp
580
 
548
 
581
align 4
549
align 4
582
proc tile_destroy, tile:dword
550
proc tile_destroy uses edi, tile:dword
583
  push edi
-
 
584
    mov edi,[tile]
551
	mov edi,[tile]
585
    push tile_rgb_icon
552
	stdcall mem.Free,tile_rgb_icon
586
    call mem.Free
-
 
587
    push tile_drobn_icon
553
	stdcall mem.Free,tile_drobn_icon
588
    call mem.Free
-
 
589
  pop edi
-
 
590
  ret
554
	ret
591
endp
555
endp
592
 
556
 
593
 
-
 
594
;???
557
 
595
align 4 ;§ £à㦠¥â â ©«ë, ¢ ®¯à¥¤¥«¥­­®© ®¡« áâ¨
558
;§ £à㦠¥â â ©«ë, ¢ ®¯à¥¤¥«¥­­®© ®¡« áâ¨
596
proc load_tile, tile:dword
559
align 4
597
  push eax ebx ecx edi
560
proc load_tile uses eax ebx ecx edi, tile:dword
598
  mov edi,dword[tile] ;ª®¯¨à㥬 㪠§ â¥«ì ­  áâàãªâãàã â ©« , çâ®-¡ë à ¡®â «¨ ª®­áâ ­âë
561
  mov edi,dword[tile] ;ª®¯¨à㥬 㪠§ â¥«ì ­  áâàãªâãàã â ©« , çâ®-¡ë à ¡®â «¨ ª®­áâ ­âë
599
 
562
 
600
  stdcall mem_copy, map,edi, 9 ;ª®¯¨à㥬 ª®®à¤¨­ âë ªãàá®à  ¢ áâàãªâãàã â ©« 
563
  stdcall mem_copy, map,edi, 9 ;ª®¯¨à㥬 ª®®à¤¨­ âë ªãàá®à  ¢ áâàãªâãàã â ©« 
601
  xor eax,eax
564
  xor eax,eax
602
  mov al,tile_delta_x
565
  mov al,tile_delta_x
603
  add tile_coord_x,eax ;ᤢ¨£ ¥¬ ª®®à¤¨­ âë â ©« , ®â­®á¨â¥«ì­® ªãàá®à 
566
  add tile_coord_x,eax ;ᤢ¨£ ¥¬ ª®®à¤¨­ âë â ©« , ®â­®á¨â¥«ì­® ªãàá®à 
604
  mov al,tile_delta_y
567
  mov al,tile_delta_y
605
  add tile_coord_y,eax
568
  add tile_coord_y,eax
606
  stdcall get_tile_path,edi    ;¡¥à¥¬ ¯ãâì ª â ©«ã
569
  stdcall get_tile_path,edi    ;¡¥à¥¬ ¯ãâì ª â ©«ã
607
 
570
 
608
;***
571
;***
609
  ; ¯à®¢¥àª  ª®®à¤¨­ â ¯®á«¥¤­¥© § £à㦥­­®© ª à⨭ª¨
572
  ; ¯à®¢¥àª  ª®®à¤¨­ â ¯®á«¥¤­¥© § £à㦥­­®© ª à⨭ª¨
610
  mov eax,edi
573
  mov eax,edi
611
  mov ecx,9
574
  mov ecx,9
612
  @@:
575
  @@:
613
    mov bl,byte[eax+tile_offs_l_load]
576
    mov bl,byte[eax+tile_offs_l_load]
614
    cmp byte[eax],bl
577
    cmp byte[eax],bl
615
    jne .st_load
578
    jne .st_load
616
    inc eax
579
    inc eax
617
    loop @b
580
    loop @b
618
  mov ebx,dword[edit1.size];¯à®¢¥à塞 â ª¦¥ ⨯ ª àâ, ª®â®àë© ¡ë« à ­¥¥ § £à㦥­
581
  mov ebx,dword[edit1.size];¯à®¢¥à塞 â ª¦¥ ⨯ ª àâ, ª®â®àë© ¡ë« à ­¥¥ § £à㦥­
619
  cmp tile_key_path_len,bl ;¯à¨ ¨§¬¥­¥­¨¨ ⨯  ª àâë ­ã¦­® â ª¦¥ ¯¥à¥ç¨â뢠âì ä ©«ë
582
  cmp tile_key_path_len,bl ;¯à¨ ¨§¬¥­¥­¨¨ ⨯  ª àâë ­ã¦­® â ª¦¥ ¯¥à¥ç¨â뢠âì ä ©«ë
620
  jne .st_load
583
  jne .st_load
621
 
584
 
622
  jmp @f    ;¥á«¨ ª®®à¤¨­ âë ᮢ¯ «¨ ⮠㦥 ­¥ § £à㦠¥¬
585
  jmp @f    ;¥á«¨ ª®®à¤¨­ âë ᮢ¯ «¨ ⮠㦥 ­¥ § £à㦠¥¬
623
  .st_load: ;start load tile
586
  .st_load: ;start load tile
624
 
587
 
625
  ; ãáâ ­®¢ª  ­®¢ëå ª®®à¤¨­ â ¤«ï ¯®á«¥¤­¥© § £à㦥­­®© ª à⨭ª¨
588
  ; ãáâ ­®¢ª  ­®¢ëå ª®®à¤¨­ â ¤«ï ¯®á«¥¤­¥© § £à㦥­­®© ª à⨭ª¨
626
  mov eax,edi
589
  mov eax,edi
627
  add eax,tile_offs_l_load
590
  add eax,tile_offs_l_load
628
  stdcall mem_copy, edi,eax,9
591
  stdcall mem_copy, edi,eax,9
629
  mov ebx,dword[edit1.size]
592
  mov ebx,dword[edit1.size]
630
  mov tile_key_path_len,bl
593
  mov tile_key_path_len,bl
631
;***
594
;***
632
 
595
 
633
  ;mov tile_drobn,0
596
  ;mov tile_drobn,0
634
  mov tile_drobn,SCALE_0_USE ;áâ ¢¨¬ ä« £ ®âªàëâ¨ï ª à⨭ª¨ ⥪ã饣® ã஢­ï
597
  mov tile_drobn,SCALE_0_USE ;áâ ¢¨¬ ä« £ ®âªàëâ¨ï ª à⨭ª¨ ⥪ã饣® ã஢­ï
635
  stdcall load_new_tile,edi
598
  stdcall load_new_tile,edi
636
  cmp tile_err_f,0
599
  cmp tile_err_f,0
637
  je @f ;¥á«¨ 㤠筮 ®âªà뫨 ⥪ã騩 ä ©« â® ®áâ «ì­ë¥ ¤¥©áâ¢¨ï ¯à®¯ã᪠¥¬
600
  je @f ;¥á«¨ 㤠筮 ®âªà뫨 ⥪ã騩 ä ©« â® ®áâ «ì­ë¥ ¤¥©áâ¢¨ï ¯à®¯ã᪠¥¬
638
;  cmp tile_err_f,6
601
;  cmp tile_err_f,6
639
;  je @f
602
;  je @f
640
    mov tile_drobn,0
603
    mov tile_drobn,0
641
    bt dword[ch2.flags],1 ;¯à®¢¥à塞 ®¯æ¨î '¡à âì á­¨§ã'
604
    bt dword[ch2.flags],1 ;¯à®¢¥à塞 ®¯æ¨î '¡à âì á­¨§ã'
642
    jae .opt_drobn_false
605
    jae .opt_drobn_false
643
 
606
 
644
    ;¥á«¨ ä ©« ­¥ ­ ©¤¥­, ¯®¯ ¤ ¥¬ á
607
    ;¥á«¨ ä ©« ­¥ ­ ©¤¥­, ¯®¯ ¤ ¥¬ á
645
    inc tile_zoom
608
    inc tile_zoom
646
    shl tile_coord_y,1
609
    shl tile_coord_y,1
647
    shl tile_coord_x,1
610
    shl tile_coord_x,1
648
    stdcall get_tile_path,edi
611
    stdcall get_tile_path,edi
649
    stdcall load_new_tile,edi
612
    stdcall load_new_tile,edi
650
 
613
 
651
    cmp tile_err_f,0
614
    cmp tile_err_f,0
652
    jne .no_tile_00 ;¥á«¨ ­¥ã¤ ç­® ®âªà뫨 â® ­¥ 㬥­ìè ¥¬ ¨§®¡à ¦¥­¨¥
615
    jne .no_tile_00 ;¥á«¨ ­¥ã¤ ç­® ®âªà뫨 â® ­¥ 㬥­ìè ¥¬ ¨§®¡à ¦¥­¨¥
653
      or tile_drobn,FRACT_TILE_00
616
      or tile_drobn,FRACT_TILE_00
654
; 1 ᦠ⨥ ª à⨭ª¨ ¯® ¢ëá®â¥
617
; 1 ᦠ⨥ ª à⨭ª¨ ¯® ¢ëá®â¥
655
      stdcall img_rgb_hdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN, TILE_LEN
618
      stdcall img_rgb_hdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN, TILE_LEN
656
; 2 ᦠ⨥ ª à⨭ª¨ ¯® è¨à¨­¥
619
; 2 ᦠ⨥ ª à⨭ª¨ ¯® è¨à¨­¥
657
      stdcall img_rgb_wdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN/2
620
      stdcall img_rgb_wdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN/2
658
; 3 ª®¯¨à®¢ ­¨¥ 1-© ª à⨭ª¨ ¢ १¥à¢­ë© ¡ãä¥à
621
; 3 ª®¯¨à®¢ ­¨¥ 1-© ª à⨭ª¨ ¢ १¥à¢­ë© ¡ãä¥à
659
      stdcall mem_copy, tile_rgb_icon, tile_drobn_icon, RGB_TILE_SIZE_1N4
622
      stdcall mem_copy, tile_rgb_icon, tile_drobn_icon, RGB_TILE_SIZE_1N4
660
    .no_tile_00:
623
    .no_tile_00:
661
 
624
 
662
    ;¥á«¨ ä ©« ­¥ ­ ©¤¥­, ¯®¯ ¤ ¥¬ á
625
    ;¥á«¨ ä ©« ­¥ ­ ©¤¥­, ¯®¯ ¤ ¥¬ á
663
    inc tile_coord_y
626
    inc tile_coord_y
664
    stdcall get_tile_path,edi
627
    stdcall get_tile_path,edi
665
    stdcall load_new_tile,edi
628
    stdcall load_new_tile,edi
666
 
629
 
667
    cmp tile_err_f,0
630
    cmp tile_err_f,0
668
    jne .no_tile_01 ;¥á«¨ ­¥ã¤ ç­® ®âªà뫨 â® ­¥ 㬥­ìè ¥¬ ¨§®¡à ¦¥­¨¥
631
    jne .no_tile_01 ;¥á«¨ ­¥ã¤ ç­® ®âªà뫨 â® ­¥ 㬥­ìè ¥¬ ¨§®¡à ¦¥­¨¥
669
;      mov byte[map.drobn],0
632
;      mov byte[map.drobn],0
670
      or tile_drobn,FRACT_TILE_01
633
      or tile_drobn,FRACT_TILE_01
671
; 1 ᦠ⨥ ª à⨭ª¨ ¯® ¢ëá®â¥
634
; 1 ᦠ⨥ ª à⨭ª¨ ¯® ¢ëá®â¥
672
      stdcall img_rgb_hdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN, TILE_LEN
635
      stdcall img_rgb_hdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN, TILE_LEN
673
; 2 ᦠ⨥ ª à⨭ª¨ ¯® è¨à¨­¥
636
; 2 ᦠ⨥ ª à⨭ª¨ ¯® è¨à¨­¥
674
      stdcall img_rgb_wdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN/2
637
      stdcall img_rgb_wdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN/2
675
; 3 ª®¯¨à®¢ ­¨¥ 2-© ª à⨭ª¨ ¢ १¥à¢­ë© ¡ãä¥à
638
; 3 ª®¯¨à®¢ ­¨¥ 2-© ª à⨭ª¨ ¢ १¥à¢­ë© ¡ãä¥à
676
      mov eax,tile_drobn_icon
639
      mov eax,tile_drobn_icon
677
      add eax,RGB_TILE_SIZE_1N4 ; ᤢ¨£ ª à⨭ª¨ ¢­¨§ (â. ª. ®­  ­¨¦­ïï)
640
      add eax,RGB_TILE_SIZE_1N4 ; ᤢ¨£ ª à⨭ª¨ ¢­¨§ (â. ª. ®­  ­¨¦­ïï)
678
      stdcall mem_copy, tile_rgb_icon, eax, RGB_TILE_SIZE_1N4
641
      stdcall mem_copy, tile_rgb_icon, eax, RGB_TILE_SIZE_1N4
679
    .no_tile_01:
642
    .no_tile_01:
680
 
643
 
681
    ;¥á«¨ ä ©« ­¥ ­ ©¤¥­, ¯®¯ ¤ ¥¬ á
644
    ;¥á«¨ ä ©« ­¥ ­ ©¤¥­, ¯®¯ ¤ ¥¬ á
682
    dec tile_coord_y
645
    dec tile_coord_y
683
    inc tile_coord_x
646
    inc tile_coord_x
684
    stdcall get_tile_path,edi
647
    stdcall get_tile_path,edi
685
    stdcall load_new_tile,edi
648
    stdcall load_new_tile,edi
686
 
649
 
687
    cmp tile_err_f,0
650
    cmp tile_err_f,0
688
    jne .no_tile_10 ;¥á«¨ ­¥ã¤ ç­® ®âªà뫨 â® ­¥ 㬥­ìè ¥¬ ¨§®¡à ¦¥­¨¥
651
    jne .no_tile_10 ;¥á«¨ ­¥ã¤ ç­® ®âªà뫨 â® ­¥ 㬥­ìè ¥¬ ¨§®¡à ¦¥­¨¥
689
;      mov byte[map.drobn],0
652
;      mov byte[map.drobn],0
690
      or tile_drobn,FRACT_TILE_10
653
      or tile_drobn,FRACT_TILE_10
691
; 1 ᦠ⨥ ª à⨭ª¨ ¯® ¢ëá®â¥
654
; 1 ᦠ⨥ ª à⨭ª¨ ¯® ¢ëá®â¥
692
      stdcall img_rgb_hdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN, TILE_LEN
655
      stdcall img_rgb_hdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN, TILE_LEN
693
; 2 ᦠ⨥ ª à⨭ª¨ ¯® è¨à¨­¥
656
; 2 ᦠ⨥ ª à⨭ª¨ ¯® è¨à¨­¥
694
      stdcall img_rgb_wdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN/2
657
      stdcall img_rgb_wdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN/2
695
; 3 ª®¯¨à®¢ ­¨¥ 3-© ª à⨭ª¨ ¢ १¥à¢­ë© ¡ãä¥à
658
; 3 ª®¯¨à®¢ ­¨¥ 3-© ª à⨭ª¨ ¢ १¥à¢­ë© ¡ãä¥à
696
      mov eax,tile_drobn_icon
659
      mov eax,tile_drobn_icon
697
      add eax,RGB_TILE_SIZE_1N2 ; ᤢ¨£ ª à⨭ª¨ ¢­¨§ (â. ª. ®­  ­¨¦­ïï)
660
      add eax,RGB_TILE_SIZE_1N2 ; ᤢ¨£ ª à⨭ª¨ ¢­¨§ (â. ª. ®­  ­¨¦­ïï)
698
      stdcall mem_copy, tile_rgb_icon, eax, RGB_TILE_SIZE_1N4
661
      stdcall mem_copy, tile_rgb_icon, eax, RGB_TILE_SIZE_1N4
699
    .no_tile_10:
662
    .no_tile_10:
700
 
663
 
701
    ;¥á«¨ ä ©« ­¥ ­ ©¤¥­, ¯®¯ ¤ ¥¬ á
664
    ;¥á«¨ ä ©« ­¥ ­ ©¤¥­, ¯®¯ ¤ ¥¬ á
702
    inc tile_coord_y
665
    inc tile_coord_y
703
    stdcall get_tile_path,edi
666
    stdcall get_tile_path,edi
704
    stdcall load_new_tile,edi
667
    stdcall load_new_tile,edi
705
 
668
 
706
    cmp tile_err_f,0
669
    cmp tile_err_f,0
707
    jne .no_tile_11 ;¥á«¨ ­¥ã¤ ç­® ®âªà뫨 â® ­¥ 㬥­ìè ¥¬ ¨§®¡à ¦¥­¨¥
670
    jne .no_tile_11 ;¥á«¨ ­¥ã¤ ç­® ®âªà뫨 â® ­¥ 㬥­ìè ¥¬ ¨§®¡à ¦¥­¨¥
708
;      mov byte[map.drobn],0
671
;      mov byte[map.drobn],0
709
      or tile_drobn,FRACT_TILE_11
672
      or tile_drobn,FRACT_TILE_11
710
; 1 ᦠ⨥ ª à⨭ª¨ ¯® ¢ëá®â¥
673
; 1 ᦠ⨥ ª à⨭ª¨ ¯® ¢ëá®â¥
711
      stdcall img_rgb_hdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN, TILE_LEN
674
      stdcall img_rgb_hdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN, TILE_LEN
712
; 2 ᦠ⨥ ª à⨭ª¨ ¯® è¨à¨­¥
675
; 2 ᦠ⨥ ª à⨭ª¨ ¯® è¨à¨­¥
713
      stdcall img_rgb_wdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN/2
676
      stdcall img_rgb_wdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN/2
714
; 3 ᤢ¨£ ª à⨭ª¨ ¢­¨§ ¡¥§ ª®¯¨à®¢ ­¨ï (â. ª. ®­  ­¨¦­ïï)
677
; 3 ᤢ¨£ ª à⨭ª¨ ¢­¨§ ¡¥§ ª®¯¨à®¢ ­¨ï (â. ª. ®­  ­¨¦­ïï)
715
      stdcall img_rgb_hoffs, tile_rgb_icon, TILE_LEN*TILE_LEN/4, TILE_LEN/2, TILE_LEN*3/2
678
      stdcall img_rgb_hoffs, tile_rgb_icon, TILE_LEN*TILE_LEN/4, TILE_LEN/2, TILE_LEN*3/2
716
 
679
 
717
      ;ª®¯¨à㥬 ¯®á«¥¤­îî ¤à®¡­ãî ª à⨭ªã ¢ ¡ãä¥à drobn_icon
680
      ;ª®¯¨à㥬 ¯®á«¥¤­îî ¤à®¡­ãî ª à⨭ªã ¢ ¡ãä¥à drobn_icon
718
      ;¢ ª®â®à®¬ 㦥 ¡ë«¨ áä®à¬¨à®¢ ­ë 3 ¤à㣨¥
681
      ;¢ ª®â®à®¬ 㦥 ¡ë«¨ áä®à¬¨à®¢ ­ë 3 ¤à㣨¥
719
      mov eax,tile_drobn_icon
682
      mov eax,tile_drobn_icon
720
      add eax,RGB_TILE_SIZE_1N4*3
683
      add eax,RGB_TILE_SIZE_1N4*3
721
      stdcall mem_copy, tile_rgb_icon, eax, RGB_TILE_SIZE_1N4
684
      stdcall mem_copy, tile_rgb_icon, eax, RGB_TILE_SIZE_1N4
722
    .no_tile_11:
685
    .no_tile_11:
723
  .opt_drobn_false:
686
  .opt_drobn_false:
724
 
687
 
725
 
688
 
726
  bt dword[ch1.flags],1 ;¯à®¢¥à塞 ®¯æ¨î '¡à âì ᢥàåã'
689
  bt dword[ch1.flags],1 ;¯à®¢¥à塞 ®¯æ¨î '¡à âì ᢥàåã'
727
  jae @f
690
  jae @f
728
  cmp tile_drobn,FRACT_TILE_ALL ;¥á«¨ ᮡ࠭  ¢áï ª à⨭ª , ⮠ᢥàåã 㦥 ­¥ ¡¥à¥¬
691
  cmp tile_drobn,FRACT_TILE_ALL ;¥á«¨ ᮡ࠭  ¢áï ª à⨭ª , ⮠ᢥàåã 㦥 ­¥ ¡¥à¥¬
729
  je @f
692
  je @f
730
    ;­¥ §­ ¥¬ ¡ë« -«¨ ¢ª«î祭  ®¯æ¨ï '¡à âì á­¨§ã', ¤«ï ª®â®à®© ¨§¬¥­ï«¨áì ª®®à¤¨­ âë
693
    ;­¥ §­ ¥¬ ¡ë« -«¨ ¢ª«î祭  ®¯æ¨ï '¡à âì á­¨§ã', ¤«ï ª®â®à®© ¨§¬¥­ï«¨áì ª®®à¤¨­ âë
731
    ;¯®â®¬ã ®¯ïâì ª®¯¨à㥬 ª®®à¤¨­ âë ªãàá®à  ¢ áâàãªâãàã â ©« 
694
    ;¯®â®¬ã ®¯ïâì ª®¯¨à㥬 ª®®à¤¨­ âë ªãàá®à  ¢ áâàãªâãàã â ©« 
732
    stdcall mem_copy, map,edi, 9
695
    stdcall mem_copy, map,edi, 9
733
    xor eax,eax
696
    xor eax,eax
734
    mov al,tile_delta_x
697
    mov al,tile_delta_x
735
    add tile_coord_x,eax ;ᤢ¨£ ¥¬ ª®®à¤¨­ âë â ©« , ®â­®á¨â¥«ì­® ªãàá®à 
698
    add tile_coord_x,eax ;ᤢ¨£ ¥¬ ª®®à¤¨­ âë â ©« , ®â­®á¨â¥«ì­® ªãàá®à 
736
    mov al,tile_delta_y
699
    mov al,tile_delta_y
737
    add tile_coord_y,eax
700
    add tile_coord_y,eax
738
 
701
 
739
    xor ecx,ecx
702
    xor ecx,ecx
740
    .zoom:
703
    .zoom:
741
      cmp tile_zoom,0
704
      cmp tile_zoom,0
742
      je @f ;¯à®á¬ âਢ ¥âáï á ¬ ï ¢¥àå­ïï ª à⨭ª , ¢ë室¨¬
705
      je @f ;¯à®á¬ âਢ ¥âáï á ¬ ï ¢¥àå­ïï ª à⨭ª , ¢ë室¨¬
743
      call get_parent_tiles ;横«¨ç¥áª¨© ¯à®á¬®âà த¨â¥«ì᪨å â ©«®¢
706
      call get_parent_tiles ;横«¨ç¥áª¨© ¯à®á¬®âà த¨â¥«ì᪨å â ©«®¢
744
      bt tile_drobn,SCALE_1BIT_USE
707
      bt tile_drobn,SCALE_1BIT_USE
745
      jc @f
708
      jc @f
746
      cmp ecx,5 ;5 - ®£à ­¨ç¥­¨¥ ­  á⥯¥­ì à áâ¢ ­¨ï ª à⨭ª¨
709
      cmp ecx,5 ;5 - ®£à ­¨ç¥­¨¥ ­  á⥯¥­ì à áâ¢ ­¨ï ª à⨭ª¨
747
      je @f
710
      je @f
748
      jmp .zoom
711
      jmp .zoom
749
    @@:
712
    @@:
750
 
-
 
751
  pop edi ecx ebx eax
713
 
752
  ret
714
  ret
753
endp
715
endp
754
 
716
 
755
;output:
717
;output:
756
;ecx - if not file = count parent levels else = 0
718
;ecx - if not file = count parent levels else = 0
757
align 4
719
align 4
758
proc get_parent_tiles
720
proc get_parent_tiles
759
  dec tile_zoom
721
  dec tile_zoom
760
  shr tile_coord_y,1
722
  shr tile_coord_y,1
761
  shr tile_coord_x,1
723
  shr tile_coord_x,1
762
  inc ecx
724
  inc ecx
763
 
725
 
764
  stdcall get_tile_path,edi ;¡¥à¥¬ ¯ãâì ª â ©«ã
726
  stdcall get_tile_path,edi ;¡¥à¥¬ ¯ãâì ª â ©«ã
765
  stdcall load_new_tile,edi
727
  stdcall load_new_tile,edi
766
  cmp tile_err_f,0
728
  cmp tile_err_f,0
767
  jne @f ;¥á«¨ ­¥ã¤ ç­® ®âªà뫨 â® ­¥ à áâ¢ ¥¬ ¨§®¡à ¦¥­¨¥
729
  jne @f ;¥á«¨ ­¥ã¤ ç­® ®âªà뫨 â® ­¥ à áâ¢ ¥¬ ¨§®¡à ¦¥­¨¥
768
    or tile_drobn,SCALE_1_USE
730
    or tile_drobn,SCALE_1_USE
769
    mov ebx,ecx
731
    mov ebx,ecx
770
  .zoom_cycle:
732
  .zoom_cycle:
771
    xor eax,eax
733
    xor eax,eax
772
    dec ebx
734
    dec ebx
773
    bt tile_key_coord_y,ebx
735
    bt tile_key_coord_y,ebx
774
    jae .scale_bot_l
736
    jae .scale_bot_l
775
      add eax,RGB_TILE_SIZE_1N2
737
      add eax,RGB_TILE_SIZE_1N2
776
    .scale_bot_l:
738
    .scale_bot_l:
777
    bt tile_key_coord_x,ebx
739
    bt tile_key_coord_x,ebx
778
    jae .scale_rig_l
740
    jae .scale_rig_l
779
      add eax,TILE_LEN_W*3/2
741
      add eax,TILE_LEN_W*3/2
780
    .scale_rig_l:
742
    .scale_rig_l:
781
    cmp eax,0
743
    cmp eax,0
782
    je .scale_top_left
744
    je .scale_top_left
783
      add eax,tile_rgb_icon
745
      add eax,tile_rgb_icon
784
      stdcall mem_copy, eax, tile_rgb_icon, RGB_TILE_SIZE_1N2
746
      stdcall mem_copy, eax, tile_rgb_icon, RGB_TILE_SIZE_1N2
785
    .scale_top_left:
747
    .scale_top_left:
786
 
748
 
787
    ;à áâ¢ ­¨¥ ¢¥àå­¥© ª à⨭ª¨
749
    ;à áâ¢ ­¨¥ ¢¥àå­¥© ª à⨭ª¨
788
    stdcall img_rgb_wcrop, tile_rgb_icon,TILE_LEN_W,TILE_LEN_W/2,TILE_LEN_H ;®â१ ¥¬ «¨è­¥¥
750
    stdcall img_rgb_wcrop, tile_rgb_icon,TILE_LEN_W,TILE_LEN_W/2,TILE_LEN_H ;®â१ ¥¬ «¨è­¥¥
789
    stdcall img_rgb_wmul2, tile_rgb_icon,RGB_TILE_SIZE_1N4/3 ;à á⨣¨¢ ¥¬ ¯® è¨à¨­¥
751
    stdcall img_rgb_wmul2, tile_rgb_icon,RGB_TILE_SIZE_1N4/3 ;à á⨣¨¢ ¥¬ ¯® è¨à¨­¥
790
    stdcall img_rgb_hmul2, tile_rgb_icon,RGB_TILE_SIZE_1N2/3,TILE_LEN_W ;à áâ¢ ¥¬ ¯® ¢ëá®â¥
752
    stdcall img_rgb_hmul2, tile_rgb_icon,RGB_TILE_SIZE_1N2/3,TILE_LEN_W ;à áâ¢ ¥¬ ¯® ¢ëá®â¥
791
  loop .zoom_cycle
753
  loop .zoom_cycle
792
  @@:
754
  @@:
793
  ret
755
  ret
794
endp
756
endp
795
 
757
 
796
;tile - 㪠§ â¥«ì ­  áâàãªâãàã â ©« 
758
;tile - 㪠§ â¥«ì ­  áâàãªâãàã â ©« 
797
align 4 ;§ £à㦠¥â ®¯à¥¤¥«¥­­ë© â ©«
759
align 4 ;§ £à㦠¥â ®¯à¥¤¥«¥­­ë© â ©«
798
proc load_new_tile, tile:dword
760
proc load_new_tile, tile:dword
799
  pushad
761
  pushad
800
 
-
 
801
  mov eax,70 ;load icon file
762
 
802
  mov [run_file_70.Function], 0
763
  mov [run_file_70.Function], 0
803
  mov [run_file_70.Position], 0
764
  mov [run_file_70.Position], 0
804
  mov [run_file_70.Flags], 0
765
  mov [run_file_70.Flags], 0
805
  mov [run_file_70.Count], RGB_TILE_SIZE+300 ;+54
766
  mov [run_file_70.Count], RGB_TILE_SIZE+300 ;+54
806
  m2m [run_file_70.Buffer], [bmp_icon]
767
  m2m [run_file_70.Buffer], [bmp_icon]
807
  mov byte[run_file_70+20], 0
768
  mov byte[run_file_70+20], 0
808
  mov [run_file_70.FileName], file_name
769
  mov [run_file_70.FileName], file_name
809
  mov ebx,run_file_70
770
  mcall 70,run_file_70
810
  int 0x40
-
 
811
  mov edi,[tile]
771
  mov edi,[tile]
812
;  cmp ebx,0xffffffff
772
;  cmp ebx,0xffffffff
813
;  je .no_load
773
;  je .no_load
814
  cmp al,6 ;®è¨¡ª  6 - ª®£¤  ä ©« § ª®­ç¨«áï à ­ìè¥ ç¥¬ ¡ãä¥à
774
  cmp al,6 ;®è¨¡ª  6 - ª®£¤  ä ©« § ª®­ç¨«áï à ­ìè¥ ç¥¬ ¡ãä¥à
815
  jne @f
775
  jne @f
816
    xor al,al ;­ ¬ íâ  ®è¨¡ª  ­¥ áâà è­ , ¯®â®¬ã áâ ¢¨¬ ª®¤ à ¢­ë¬ 0, ª ª ¯à¨ ®¡ëç­®¬ ®âªàë⨨
776
    xor al,al ;­ ¬ íâ  ®è¨¡ª  ­¥ áâà è­ , ¯®â®¬ã áâ ¢¨¬ ª®¤ à ¢­ë¬ 0, ª ª ¯à¨ ®¡ëç­®¬ ®âªàë⨨
817
  @@:
777
  @@:
818
  mov tile_err_f,al
778
  mov tile_err_f,al
819
  cmp al,0
779
  cmp al,0
820
  jne .no_load
780
  jne .no_load
821
 
781
 
822
  stdcall dword[img_decode], dword[bmp_icon],ebx,0
782
  stdcall dword[img_decode], dword[bmp_icon],ebx,0
823
  mov dword[data_icon],eax
783
  mov dword[data_icon],eax
824
  stdcall dword[img_to_rgb2], dword[data_icon],tile_rgb_icon
784
  stdcall dword[img_to_rgb2], dword[data_icon],tile_rgb_icon
825
  stdcall dword[img_destroy], dword[data_icon]
785
  stdcall dword[img_destroy], dword[data_icon]
826
    jmp @f
786
    jmp @f
827
  .no_load:
787
  .no_load:
828
 
788
 
829
  mov al,byte[map.zoom]
789
  mov al,byte[map.zoom]
830
  cmp tile_zoom,al
790
  cmp tile_zoom,al
831
  jne @f
791
  jne @f
832
    mov eax,tile_rgb_icon
792
    mov eax,tile_rgb_icon
833
    mov bl,tile_err_f
793
    mov bl,tile_err_f
834
    add bl,'0' ;bl - ª®¤ ®è¨¡ª¨ ®âªàëâ¨ï
794
    add bl,'0' ;bl - ª®¤ ®è¨¡ª¨ ®âªàëâ¨ï
835
    mov byte[eax],bl
795
    mov byte[eax],bl
836
    inc eax
796
    inc eax
837
    mov byte[eax],' '
797
    mov byte[eax],' '
838
    inc eax
798
    inc eax
839
    stdcall mem_copy, file_name,eax,250 ;ª®¯¨à㥬 ¯ãâì ª ä ©«ã ¯à¨ ®è¨¡®ç­®¬ ®âªàë⨨
799
    stdcall mem_copy, file_name,eax,250 ;ª®¯¨à㥬 ¯ãâì ª ä ©«ã ¯à¨ ®è¨¡®ç­®¬ ®âªàë⨨
840
  @@:
800
  @@:
841
  popad
801
  popad
842
  ret
802
  ret
843
endp
803
endp
844
 
804
 
845
;äã­ªæ¨ï £¥­¥à¨àã¥â ç áâì ¯ã⨠ª ä ©«ã ¢ ¢¨¤¥: \z?\?\x?\?\y?
805
;äã­ªæ¨ï £¥­¥à¨àã¥â ç áâì ¯ã⨠ª ä ©«ã ¢ ¢¨¤¥: \z?\?\x?\?\y?
846
align 4
806
align 4
847
proc get_tile_path, tile:dword
807
proc get_tile_path uses eax ecx edi esi, tile:dword
848
  push eax ecx edi esi
-
 
849
    mov ecx,300
808
    mov ecx,300
850
    mov edi,txt_tile_path
809
    mov edi,txt_tile_path
851
    @@:
810
    @@:
852
      mov byte[edi],0 ;ç¨á⨬ áâபã
811
      mov byte[edi],0 ;ç¨á⨬ áâபã
853
      inc edi
812
      inc edi
854
      loop @b
813
      loop @b
855
 
814
 
856
    mov esi,dword[tile] ;¡¥à¥¬ 㪠§ â¥«ì
815
    mov esi,dword[tile] ;¡¥à¥¬ 㪠§ â¥«ì
857
 
816
 
858
    mov ecx,0x80000000 ;rol 0x80000000,1 = 1
817
    mov ecx,0x80000000 ;rol 0x80000000,1 = 1
859
    xor eax,eax
818
    xor eax,eax
860
    mov al,byte[esi+8] ;+8 = zoom
819
    mov al,byte[esi+8] ;+8 = zoom
861
    .calc_coord:
820
    .calc_coord:
862
      rol ecx,1 ;ecx = maximum coord
821
      rol ecx,1 ;ecx = maximum coord
863
      dec ax
822
      dec ax
864
      cmp ax,0
823
      cmp ax,0
865
      jg .calc_coord
824
      jg .calc_coord
866
 
825
 
867
    mov byte[txt_tile_path],'z'
826
    mov byte[txt_tile_path],'z'
868
    mov edi,txt_tile_path
827
    mov edi,txt_tile_path
869
    inc edi
828
    inc edi
870
    xor eax,eax
829
    xor eax,eax
871
    mov al,byte[esi+8] ;+8 = zoom
830
    mov al,byte[esi+8] ;+8 = zoom
872
    call tl_convert_to_str
831
    stdcall convert_int_to_str, 300
873
 
832
 
874
    inc edi
833
    inc edi
875
    cmp byte[esi+8],9 ;+8 = zoom
834
    cmp byte[esi+8],9 ;+8 = zoom
876
    jle @f
835
    jle @f
877
      inc edi
836
      inc edi
878
    @@:
837
    @@:
879
    mov byte[edi],'/'
838
    mov byte[edi],'/'
880
    inc edi
839
    inc edi
881
 
840
 
882
    mov eax,[esi] ;coord_x
841
    mov eax,[esi] ;coord_x
883
cmp eax,ecx
842
cmp eax,ecx
884
jge .out_of_rang ;coord_x ¡®«ìè¥ ¤®¯ãá⨬®£® §­ ç¥­¨ï ¯à¨ § ¤ ­­®¬ ¬ áèâ ¡¥
843
jge .out_of_rang ;coord_x ¡®«ìè¥ ¤®¯ãá⨬®£® §­ ç¥­¨ï ¯à¨ § ¤ ­­®¬ ¬ áèâ ¡¥
885
    shr eax,10
844
    shr eax,10
886
    call tl_convert_to_str
845
    stdcall convert_int_to_str, 300
887
 
846
 
888
    @@:
847
    @@:
889
      inc edi
848
      inc edi
890
      cmp byte[edi],'0'
849
      cmp byte[edi],'0'
891
      jge @b
850
      jge @b
892
    mov byte[edi],'/'
851
    mov byte[edi],'/'
893
    inc edi
852
    inc edi
894
    mov byte[edi],'x'
853
    mov byte[edi],'x'
895
    inc edi
854
    inc edi
896
 
855
 
897
    mov eax,[esi] ;coord_x
856
    mov eax,[esi] ;coord_x
898
    call tl_convert_to_str
857
    stdcall convert_int_to_str, 300
899
 
858
 
900
    @@:
859
    @@:
901
      inc edi
860
      inc edi
902
      cmp byte[edi],'0'
861
      cmp byte[edi],'0'
903
      jl @f
862
      jl @f
904
      cmp byte[edi],'9'
863
      cmp byte[edi],'9'
905
      jg @f
864
      jg @f
906
      jmp @b
865
      jmp @b
907
    @@:
866
    @@:
908
 
867
 
909
    ;coord y
868
    ;coord y
910
    mov byte[edi],'/'
869
    mov byte[edi],'/'
911
    inc edi
870
    inc edi
912
 
871
 
913
    mov eax,[esi+4] ;coord_y
872
    mov eax,[esi+4] ;coord_y
914
cmp eax,ecx
873
cmp eax,ecx
915
jge .out_of_rang ;coord_y ¡®«ìè¥ ¤®¯ãá⨬®£® §­ ç¥­¨ï ¯à¨ § ¤ ­­®¬ ¬ áèâ ¡¥
874
jge .out_of_rang ;coord_y ¡®«ìè¥ ¤®¯ãá⨬®£® §­ ç¥­¨ï ¯à¨ § ¤ ­­®¬ ¬ áèâ ¡¥
916
    shr eax,10
875
    shr eax,10
917
    call tl_convert_to_str
876
    stdcall convert_int_to_str, 300
918
 
877
 
919
    @@:
878
    @@:
920
      inc edi
879
      inc edi
921
      cmp byte[edi],'0'
880
      cmp byte[edi],'0'
922
      jge @b
881
      jge @b
923
    mov byte[edi],'/'
882
    mov byte[edi],'/'
924
    inc edi
883
    inc edi
925
    mov byte[edi],'y'
884
    mov byte[edi],'y'
926
    inc edi
885
    inc edi
927
 
886
 
928
    mov eax,[esi+4] ;coord_y]
887
    mov eax,[esi+4] ;coord_y]
929
    call tl_convert_to_str
888
    stdcall convert_int_to_str, 300
930
 
889
 
931
.out_of_rang:
890
.out_of_rang:
932
    call get_all_path
891
    call get_all_path
933
  pop esi edi ecx eax
-
 
934
  ret
892
  ret
935
endp
893
endp
936
 
894
 
937
align 4
895
align 4
938
get_all_path: ;äã­ªæ¨ï ¤«ï ᮡ¨à ­¨ï ¯®«­®£® ¯ã⨠¨§ ¢á¥å ªã᪮¢
896
get_all_path: ;äã­ªæ¨ï ¤«ï ᮡ¨à ­¨ï ¯®«­®£® ¯ã⨠¨§ ¢á¥å ªã᪮¢
939
  mov ecx,dword[edit1.text]
897
  mov ecx,dword[edit1.text]
940
  add ecx,dword[edit1.size]
898
  add ecx,dword[edit1.size]
941
  dec ecx
899
  dec ecx
942
 
900
 
943
  stdcall [str_copy], file_name,4096-1, dword[edit1.text],dword[edit1.max]
901
  stdcall [str_copy], file_name,4096-1, dword[edit1.text],dword[edit1.max]
944
 
902
 
945
  cmp byte[ecx],'/'
903
  cmp byte[ecx],'/'
946
  je @f
904
  je @f
947
    stdcall [str_catchar],file_name,4096-1, dword '/'
905
    stdcall [str_catchar],file_name,4096-1, dword '/'
948
  @@:
906
  @@:
949
 
907
 
950
  stdcall [str_cat], file_name,4096-1, txt_tile_path,300
908
  stdcall [str_cat], file_name,4096-1, txt_tile_path,300
951
  stdcall [str_cat], file_name,4096-1, dword [txt_tile_type],10
909
  stdcall [str_cat], file_name,4096-1, dword [txt_tile_type],10
952
ret
910
ret