Subversion Repositories Kolibri OS

Rev

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

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