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