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 |