Rev 1727 | Rev 3014 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1727 | Rev 2051 | ||
---|---|---|---|
1 | use32 |
1 | use32 |
2 | org 0x0 |
2 | org 0x0 |
3 | db 'MENUET01' ;¨¤¥â¨ä. ¨á¯®«ï¥¬®£® ä ©« ¢á¥£¤ 8 ¡ ©â |
3 | db 'MENUET01' ;¨¤¥â¨ä. ¨á¯®«ï¥¬®£® ä ©« ¢á¥£¤ 8 ¡ ©â |
4 | dd 0x1 |
4 | dd 0x1 |
5 | dd start |
5 | dd start |
6 | dd i_end ;à §¬¥à ¯à¨«®¦¥¨ï |
6 | dd i_end ;à §¬¥à ¯à¨«®¦¥¨ï |
7 | dd mem |
7 | dd mem |
8 | dd stacktop |
8 | dd stacktop |
9 | dd 0x0 |
9 | dd 0x0 |
10 | dd sys_path |
10 | dd sys_path |
11 | 11 | ||
12 | include '../../../macros.inc' |
12 | include '../../../macros.inc' |
13 | include '../../../proc32.inc' |
13 | include '../../../proc32.inc' |
14 | include '../../../develop/libraries/box_lib/load_lib.mac' |
14 | include '../../../develop/libraries/box_lib/load_lib.mac' |
15 | include '../../../develop/libraries/box_lib/trunk/box_lib.mac' ;¬ ªà®áë ¤«ï § ¤ ¨ï í«¥¬¥â®¢ box_lib |
15 | include '../../../develop/libraries/box_lib/trunk/box_lib.mac' ;¬ ªà®áë ¤«ï § ¤ ¨ï í«¥¬¥â®¢ box_lib |
16 | include 'mem.inc' |
16 | include 'mem.inc' |
17 | include 'dll.inc' |
17 | include 'dll.inc' |
18 | 18 | ||
19 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load |
19 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load |
20 | 20 | ||
21 | ;ä« £¨, ¤«ï äãªæ¨¨ ®¡à¥§ ¨ï ¡ãä¥à |
21 | ;ä« £¨, ¤«ï äãªæ¨¨ ®¡à¥§ ¨ï ¡ãä¥à |
22 | BUF2D_OPT_CROP_TOP equ 1 ;®¡à¥§ª ᢥàåã |
22 | BUF2D_OPT_CROP_TOP equ 1 ;®¡à¥§ª ᢥàåã |
23 | BUF2D_OPT_CROP_LEFT equ 2 ;®¡à¥§ª á«¥¢ |
23 | BUF2D_OPT_CROP_LEFT equ 2 ;®¡à¥§ª á«¥¢ |
24 | BUF2D_OPT_CROP_BOTTOM equ 4 ;®¡à¥§ª ᨧã |
24 | BUF2D_OPT_CROP_BOTTOM equ 4 ;®¡à¥§ª ᨧã |
25 | BUF2D_OPT_CROP_RIGHT equ 8 ;®¡à¥§ª á¯à ¢ |
25 | BUF2D_OPT_CROP_RIGHT equ 8 ;®¡à¥§ª á¯à ¢ |
26 | BUF2D_BIT_OPT_CROP_TOP equ 0 |
26 | BUF2D_BIT_OPT_CROP_TOP equ 0 |
27 | BUF2D_BIT_OPT_CROP_LEFT equ 1 |
27 | BUF2D_BIT_OPT_CROP_LEFT equ 1 |
28 | BUF2D_BIT_OPT_CROP_BOTTOM equ 2 |
28 | BUF2D_BIT_OPT_CROP_BOTTOM equ 2 |
29 | BUF2D_BIT_OPT_CROP_RIGHT equ 3 |
29 | BUF2D_BIT_OPT_CROP_RIGHT equ 3 |
30 | 30 | ||
31 | BUF_STRUCT_SIZE equ 21 |
31 | BUF_STRUCT_SIZE equ 21 |
32 | buf2d_data equ dword[edi] ;¤ ë¥ ¡ãä¥à ¨§®¡à ¦¥¨ï |
32 | buf2d_data equ dword[edi] ;¤ ë¥ ¡ãä¥à ¨§®¡à ¦¥¨ï |
33 | buf2d_w equ dword[edi+8] ;è¨à¨ ¡ãä¥à |
33 | buf2d_w equ dword[edi+8] ;è¨à¨ ¡ãä¥à |
34 | buf2d_h equ dword[edi+12] ;¢ëá®â ¡ãä¥à |
34 | buf2d_h equ dword[edi+12] ;¢ëá®â ¡ãä¥à |
35 | buf2d_l equ word[edi+4] ;®âáâ㯠᫥¢ |
35 | buf2d_l equ word[edi+4] ;®âáâ㯠᫥¢ |
36 | buf2d_t equ word[edi+6] ;®âáâ㯠ᢥàåã |
36 | buf2d_t equ word[edi+6] ;®âáâ㯠ᢥàåã |
37 | buf2d_size_lt equ dword[edi+4] ;®âáâ㯠᫥¢ ¨ á¯à ¢ ¤«ï ¡ãä¥à |
37 | buf2d_size_lt equ dword[edi+4] ;®âáâ㯠᫥¢ ¨ á¯à ¢ ¤«ï ¡ãä¥à |
38 | buf2d_color equ dword[edi+16] ;梥â ä® ¡ãä¥à |
38 | buf2d_color equ dword[edi+16] ;梥â ä® ¡ãä¥à |
39 | buf2d_bits equ byte[edi+20] ;ª®«¨ç¥á⢮ ¡¨â ¢ 1-© â®çª¥ ¨§®¡à ¦¥¨ï |
39 | buf2d_bits equ byte[edi+20] ;ª®«¨ç¥á⢮ ¡¨â ¢ 1-© â®çª¥ ¨§®¡à ¦¥¨ï |
40 | 40 | ||
41 | struct FileInfoBlock |
41 | struct FileInfoBlock |
42 | Function dd ? |
42 | Function dd ? |
43 | Position dd ? |
43 | Position dd ? |
44 | Flags dd ? |
44 | Flags dd ? |
45 | Count dd ? |
45 | Count dd ? |
46 | Buffer dd ? |
46 | Buffer dd ? |
47 | db ? |
47 | db ? |
48 | FileName dd ? |
48 | FileName dd ? |
49 | ends |
49 | ends |
50 | 50 | ||
51 | displ_w dd ? ;è¨à¨ ¯®«ï |
51 | displ_w dd ? ;è¨à¨ ¯®«ï |
52 | displ_h dd ? ;¢ëá®â ¯®«ï |
52 | displ_h dd ? ;¢ëá®â ¯®«ï |
53 | displ_bytes dd ? ;à §¬¥à 1-£® ä ©« á ¨§®¡à ¦¥¨¥¬ |
53 | displ_bytes dd ? ;à §¬¥à 1-£® ä ©« á ¨§®¡à ¦¥¨¥¬ |
54 | offs_shadow_x dd ? ;ᤢ¨£ ⥥© ¯® ®á¨ 'x' |
54 | offs_shadow_x dd ? ;ᤢ¨£ ⥥© ¯® ®á¨ 'x' |
55 | offs_shadow_y dd ? ;ᤢ¨£ ⥥© ¯® ®á¨ 'y' |
55 | offs_shadow_y dd ? ;ᤢ¨£ ⥥© ¯® ®á¨ 'y' |
56 | 56 | ||
57 | IMAGE_FONT_SIZE equ 128*144*3 |
57 | IMAGE_FONT_SIZE equ 128*144*3 |
58 | 58 | ||
59 | BUT1_T equ 10 ;®âáâ㯠ᢥàåã |
59 | BUT1_T equ 10 ;®âáâ㯠ᢥàåã |
60 | BUT1_L equ 15 ;®âáâ㯠᫥¢ |
60 | BUT1_L equ 15 ;®âáâ㯠᫥¢ |
61 | BUT1_W equ 50 ;è¨à¨ |
61 | BUT1_W equ 50 ;è¨à¨ |
62 | BUT1_H equ 20 ;¢ëá®â |
62 | BUT1_H equ 20 ;¢ëá®â |
63 | BUT1_NEXT_TOP equ (BUT1_T+BUT1_H)*65536 |
63 | BUT1_NEXT_TOP equ (BUT1_T+BUT1_H)*65536 |
64 | 64 | ||
65 | game_select_mode db 1 ;०¨¬ ¢ë¡®à ¨£àë |
65 | game_select_mode db 1 ;०¨¬ ¢ë¡®à ¨£àë |
66 | 66 | ||
67 | FILE_NAME_MAX equ 20 ;¬ ªá¨¬ «ì ï ¤«¨ ¨¬¥¨ ä ©« (¡¥§ ¯ ¯®ª, ®â®á¨â¥«ì® ⥪ã饩) |
67 | FILE_NAME_MAX equ 20 ;¬ ªá¨¬ «ì ï ¤«¨ ¨¬¥¨ ä ©« (¡¥§ ¯ ¯®ª, ®â®á¨â¥«ì® ⥪ã饩) |
68 | ;§ ç¥¨ï ¨¬¥ ¯® 㬮«ç ¨î |
68 | ;§ ç¥¨ï ¨¬¥ ¯® 㬮«ç ¨î |
69 | ini_def_decorat_file db 'curici.png',0 |
69 | ini_def_decorat_file db 'curici.png',0 |
70 | ini_def_unit_file db 'wolf.png',0 |
70 | ini_def_unit_file db 'wolf.png',0 |
71 | ini_def_objects_file db 'eggs.png',0 |
71 | ini_def_objects_file db 'eggs.png',0 |
72 | ini_def_lost_file db 'chi.png',0 |
72 | ini_def_lost_file db 'chi.png',0 |
73 | ;¨¬¥ ä ©«®¢ |
73 | ;¨¬¥ ä ©«®¢ |
74 | fn_icon0 rb FILE_NAME_MAX ;¨¬ï ä ©« á ¤¥ª®à æ¨ï¬¨ |
74 | fn_icon0 rb FILE_NAME_MAX ;¨¬ï ä ©« á ¤¥ª®à æ¨ï¬¨ |
75 | fn_icon1 rb FILE_NAME_MAX ;¨¬ï ä ©« á ¢®«ª®¬ ¨ § ©æ¥¬ |
75 | fn_icon1 rb FILE_NAME_MAX ;¨¬ï ä ©« á ¢®«ª®¬ ¨ § ©æ¥¬ |
76 | fn_icon2 rb FILE_NAME_MAX ;¨¬ï ä ©« á ï©æ ¬¨ |
76 | fn_icon2 rb FILE_NAME_MAX ;¨¬ï ä ©« á ï©æ ¬¨ |
77 | fn_icon3 rb FILE_NAME_MAX ;¨¬ï ä ©« á 樯«ïâ ¬¨ |
77 | fn_icon3 rb FILE_NAME_MAX ;¨¬ï ä ©« á 樯«ïâ ¬¨ |
78 | fn_font db 'font8x9.bmp',0 |
- | |
79 | - | ||
80 | fn_icon_tl_sys db 'tl_sys_16.png',0 |
78 | |
81 | TREE_ICON_SYS16_BMP_SIZE equ 256*3*11+54 ;à §¬¥à bmp ä ©« á á¨á⥬묨 ¨ª®ª ¬¨ |
79 | TREE_ICON_SYS16_BMP_SIZE equ 256*3*11+54 ;à §¬¥à bmp ä ©« á á¨á⥬묨 ¨ª®ª ¬¨ |
82 | 80 | ||
83 | ini_m_name db 'main.ini',0 |
81 | ini_m_name db 'main.ini',0 |
84 | key_count db 'count',0 |
82 | key_count db 'count',0 |
85 | key_game db 'g' |
83 | key_game db 'g' |
86 | key_game_ind db 0,0,0 |
84 | key_game_ind db 0,0,0 |
87 | 85 | ||
88 | ini_name rb FILE_NAME_MAX ;¨¬ï ini ä ©« c ¢ë¡à ®© ¨£à®© |
86 | ini_name rb FILE_NAME_MAX ;¨¬ï ini ä ©« c ¢ë¡à ®© ¨£à®© |
89 | ini_sec_files db 'Files',0 |
87 | ini_sec_files db 'Files',0 |
90 | key_file_decorat db 'file_decorat',0 |
88 | key_file_decorat db 'file_decorat',0 |
91 | key_file_unit db 'file_unit',0 |
89 | key_file_unit db 'file_unit',0 |
92 | key_file_objects db 'file_objects',0 |
90 | key_file_objects db 'file_objects',0 |
93 | key_file_lost db 'file_lost',0 |
91 | key_file_lost db 'file_lost',0 |
94 | key_displ_w db 'displ_w',0 |
92 | key_displ_w db 'displ_w',0 |
95 | key_displ_h db 'displ_h',0 |
93 | key_displ_h db 'displ_h',0 |
96 | key_shadow_x db 'offs_shadow_x',0 |
94 | key_shadow_x db 'offs_shadow_x',0 |
97 | key_shadow_y db 'offs_shadow_y',0 |
95 | key_shadow_y db 'offs_shadow_y',0 |
98 | 96 | ||
99 | ini_sec_game db 'Game',0 |
97 | ini_sec_game db 'Game',0 |
100 | key_delay_a db 'delay_a',0 |
98 | key_delay_a db 'delay_a',0 |
101 | key_delay_b db 'delay_b',0 |
99 | key_delay_b db 'delay_b',0 |
102 | key_delay_min db 'delay_min',0 |
100 | key_delay_min db 'delay_min',0 |
103 | 101 | ||
104 | ini_sec_color db 'Colors',0 |
102 | ini_sec_color db 'Colors',0 |
105 | ;ª«îç¨ ¤«ï áç¨âë¢ ¨ï 梥⮢ ¨§ *.ini ä ©« |
103 | ;ª«îç¨ ¤«ï áç¨âë¢ ¨ï 梥⮢ ¨§ *.ini ä ©« |
106 | key_color_fon db 'background',0 |
104 | key_color_fon db 'background',0 |
107 | key_color_shadows db 'shadows',0 |
105 | key_color_shadows db 'shadows',0 |
108 | key_color_egg db 'objects',0 |
106 | key_color_egg db 'objects',0 |
109 | key_color_chick db 'lost',0 |
107 | key_color_chick db 'lost',0 |
110 | key_color_decorat: db 'dec' |
108 | key_color_decorat: db 'dec' |
111 | .ind: db '?',0 |
109 | .ind: db '?',0 |
112 | key_color_unit db 'unit',0 |
110 | key_color_unit db 'unit',0 |
113 | 111 | ||
114 | ;梥⠢ ¨£à¥ |
112 | ;梥⠢ ¨£à¥ |
115 | color_fon dd ? ;梥â ä® |
113 | color_fon dd ? ;梥â ä® |
116 | color_shadows dd ? ;梥â ⥥© |
114 | color_shadows dd ? ;梥â ⥥© |
117 | color_wolf dd ? ;梥⠢®«ª ¨ § ©æ |
115 | color_wolf dd ? ;梥⠢®«ª ¨ § ©æ |
118 | color_egg dd ? ;梥â ï©æ |
116 | color_egg dd ? ;梥â ï©æ |
119 | color_chick dd ? ;梥â 樯«¥ª |
117 | color_chick dd ? ;梥â 樯«¥ª |
120 | color_decorat dd ?,?,? ;梥⠤¥ª®à 権 (ªãà¨æë, ¯¥à¨« , ...) |
118 | color_decorat dd ?,?,? ;梥⠤¥ª®à 権 (ªãà¨æë, ¯¥à¨« , ...) |
121 | 119 | ||
122 | ;梥⠨â¥à䥩á |
120 | ;梥⠨â¥à䥩á |
123 | color_but_sm dd 0x808080 ;梥⠬ «¥ìª¨å ª®¯®ª |
121 | color_but_sm dd 0x808080 ;梥⠬ «¥ìª¨å ª®¯®ª |
124 | color_but_te dd 0xffffff ;梥â ⥪áâ ª®¯ª å |
122 | color_but_te dd 0xffffff ;梥â ⥪áâ ª®¯ª å |
125 | 123 | ||
126 | macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥¨© |
124 | macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥¨© |
- | 125 | ;path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬ |
|
- | 126 | if path eqtype '' ;¯à®¢¥à塞 § ¤ «¨ áâப®© ¯ à ¬¥âà path |
|
- | 127 | jmp @f |
|
- | 128 | local .path_str |
|
- | 129 | .path_str db path ;ä®à¬¨à㥬 «®ª «ìãî ¯¥à¥¬¥ãî |
|
- | 130 | db 0 |
|
- | 131 | @@: |
|
- | 132 | ;32 - áâ ¤ àâë© ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥ ¡ëâì ¡ãä¥à á á¨áâ¥¬ë¬ ¯ã⥬ |
|
- | 133 | copy_path .path_str,[32],file_name,0x0 |
|
- | 134 | else |
|
127 | copy_path path,sys_path,file_name,0x0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®© |
135 | copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®© |
- | 136 | end if |
|
128 | 137 | ||
129 | stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
138 | stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
130 | mov [buf],eax |
139 | mov [buf],eax |
131 | 140 | ||
132 | mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
141 | mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
133 | mov [run_file_70.Function], 0 |
142 | mov [run_file_70.Function], 0 |
134 | mov [run_file_70.Position], 0 |
143 | mov [run_file_70.Position], 0 |
135 | mov [run_file_70.Flags], 0 |
144 | mov [run_file_70.Flags], 0 |
136 | mov [run_file_70.Count], dword size |
145 | mov [run_file_70.Count], dword size |
137 | m2m [run_file_70.Buffer], [buf] |
146 | m2m [run_file_70.Buffer], [buf] |
138 | mov byte[run_file_70+20], 0 |
147 | mov byte[run_file_70+20], 0 |
139 | mov [run_file_70.FileName], file_name |
148 | mov [run_file_70.FileName], file_name |
140 | mov ebx,run_file_70 |
149 | mov ebx,run_file_70 |
141 | int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
150 | int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
142 | cmp ebx,0xffffffff |
151 | cmp ebx,0xffffffff |
143 | je @f |
152 | je @f |
144 | ;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à image_data |
153 | ;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à image_data |
145 | stdcall dword[img_decode], dword[buf],ebx,0 |
154 | stdcall dword[img_decode], dword[buf],ebx,0 |
146 | mov dword[image_data],eax |
155 | mov dword[image_data],eax |
147 | ;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥¨¥ ª ä®à¬ âã rgb |
156 | ;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥¨¥ ª ä®à¬ âã rgb |
148 | stdcall dword[img_to_rgb2], dword[image_data],dword[buf] |
157 | stdcall dword[img_to_rgb2], dword[image_data],dword[buf] |
149 | ;㤠«ï¥¬ ¢à¥¬¥ë© ¡ãä¥à image_data |
158 | ;㤠«ï¥¬ ¢à¥¬¥ë© ¡ãä¥à image_data |
150 | stdcall dword[img_destroy], dword[image_data] |
159 | stdcall dword[img_destroy], dword[image_data] |
151 | @@: |
160 | @@: |
152 | } |
161 | } |
153 | 162 | ||
154 | ;¤ ë¥ ¨£àë |
163 | ;¤ ë¥ ¨£àë |
155 | bit_zaac equ 2 ;¡¨â § ©æ |
164 | bit_zaac equ 2 ;¡¨â § ©æ |
156 | val_zaac equ 4 ;æ¨äà ®â¢¥ç îé ï § ¡¨â § ©æ |
165 | val_zaac equ 4 ;æ¨äà ®â¢¥ç îé ï § ¡¨â § ©æ |
157 | bit_mig equ 3 ;¡¨â ¬¨£ ¨ï |
166 | bit_mig equ 3 ;¡¨â ¬¨£ ¨ï |
158 | val_mig equ 8 ;æ¨äà ®â¢¥ç îé ï § ¡¨â ¬¨£ ¨ï |
167 | val_mig equ 8 ;æ¨äà ®â¢¥ç îé ï § ¡¨â ¬¨£ ¨ï |
159 | mask_lot_lu equ 1b ;¬ ᪠¤«ï «¥¢®£® ¢¥à奣® «®âª |
168 | mask_lot_lu equ 1b ;¬ ᪠¤«ï «¥¢®£® ¢¥à奣® «®âª |
160 | mask_lot_ld equ 100000b ;¬ ᪠¤«ï «¥¢®£® ¨¦¥£® «®âª |
169 | mask_lot_ld equ 100000b ;¬ ᪠¤«ï «¥¢®£® ¨¦¥£® «®âª |
161 | mask_lot_ru equ 10000000000b ;¬ ᪠¤«ï ¯à ¢®£® ¢¥à奣® «®âª |
170 | mask_lot_ru equ 10000000000b ;¬ ᪠¤«ï ¯à ¢®£® ¢¥à奣® «®âª |
162 | mask_lot_rd equ 1000000000000000b ;¬ ᪠¤«ï ¯à ¢®£® ¨¦¥£® «®âª |
171 | mask_lot_rd equ 1000000000000000b ;¬ ᪠¤«ï ¯à ¢®£® ¨¦¥£® «®âª |
163 | mask_clear_all equ 11111011111011110111101111011110b ;¬ ᪠¤«ï ®ç¨á⪨ ¯ ¤ îé¨å ï¨æ ¨ ¯à¨¡¥¦ ¢è¨å 樯«ïâ |
172 | mask_clear_all equ 11111011111011110111101111011110b ;¬ ᪠¤«ï ®ç¨á⪨ ¯ ¤ îé¨å ï¨æ ¨ ¯à¨¡¥¦ ¢è¨å 樯«ïâ |
164 | mask_move_eggs equ 11111111111111111111b ;¬ ᪠¤¢¨¦ãé¨åáï ï¨æ |
173 | mask_move_eggs equ 11111111111111111111b ;¬ ᪠¤¢¨¦ãé¨åáï ï¨æ |
165 | mask_fail_eggs equ 100001000010000100000b ;¬ ᪠¯ ¤ îé¨å ï¨æ |
174 | mask_fail_eggs equ 100001000010000100000b ;¬ ᪠¯ ¤ îé¨å ï¨æ |
166 | mask_chi_left equ 11111000000000000000000000b ;¬ ᪠«¥¢ëå 樯«ïâ |
175 | mask_chi_left equ 11111000000000000000000000b ;¬ ᪠«¥¢ëå 樯«ïâ |
167 | mask_chi_right equ 11111000000000000000000000000000b ;¬ ᪠¯à ¢ëå 樯«ïâ |
176 | mask_chi_right equ 11111000000000000000000000000000b ;¬ ᪠¯à ¢ëå 樯«ïâ |
168 | mask_chi_cr_l equ 1000000000000000000000b ;¬ ᪠¤«ï ᮧ¤ ¨ï «¥¢®£® |
177 | mask_chi_cr_l equ 1000000000000000000000b ;¬ ᪠¤«ï ᮧ¤ ¨ï «¥¢®£® |
169 | mask_chi_cr_r equ 1000000000000000000000000000b ;¬ ᪠¤«ï ᮧ¤ ¨ï ¯à ¢®£® |
178 | mask_chi_cr_r equ 1000000000000000000000000000b ;¬ ᪠¤«ï ᮧ¤ ¨ï ¯à ¢®£® |
170 | bit_chi_left equ 21 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â § ¡¥£ã饣® á«¥¢ |
179 | bit_chi_left equ 21 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â § ¡¥£ã饣® á«¥¢ |
171 | bit_chi_right equ 27 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â § ¡¥£ã饣® ¯à ¢ |
180 | bit_chi_right equ 27 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â § ¡¥£ã饣® ¯à ¢ |
172 | val_zaac_time_y equ 5 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì® ¤®«¦¥ ¯à®¢¨á¥âì § ïæ |
181 | val_zaac_time_y equ 5 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì® ¤®«¦¥ ¯à®¢¨á¥âì § ïæ |
173 | val_zaac_time_n equ 7 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì® ¤®«¦¥ ¡ëâì á¯àïâ ë¬ § ïæ |
182 | val_zaac_time_n equ 7 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì® ¤®«¦¥ ¡ëâì á¯àïâ ë¬ § ïæ |
174 | 183 | ||
175 | txt_game_a db '£à ',0 |
184 | txt_game_a db '£à ',0 |
176 | txt_game_b db '£à ',0 |
185 | txt_game_b db '£à ',0 |
177 | 186 | ||
178 | zaac_status db 0 ;ç¨á«® ⠪⮢, ª®â®à®¥ § ïæ ¥ ¤®«¦¥ ¬¥ïâì ᢮¥ ¯®«®¦¥¨¥ |
187 | zaac_status db 0 ;ç¨á«® ⠪⮢, ª®â®à®¥ § ïæ ¥ ¤®«¦¥ ¬¥ïâì ᢮¥ ¯®«®¦¥¨¥ |
179 | pos_wolf db 0 ;¯®§¨æ¨ï ¢®«ª 0-© ¡¨â á«¥¢ /á¯à ¢ , 1-© ¡¨â ᢥàåã/¢¨§ |
188 | pos_wolf db 0 ;¯®§¨æ¨ï ¢®«ª 0-© ¡¨â á«¥¢ /á¯à ¢ , 1-© ¡¨â ᢥàåã/¢¨§ |
180 | ;rb 1 |
189 | ;rb 1 |
181 | pos_eggs dd 0 ;¯®§¨æ¨¨ à ᯮ«®¦¥¨ï ï¨æ ¨ 樯«ïâ |
190 | pos_eggs dd 0 ;¯®§¨æ¨¨ à ᯮ«®¦¥¨ï ï¨æ ¨ 樯«ïâ |
182 | eggs_count dw 0 ;ª®««¨ç¥á⢮ ¯®©¬ ëå ï¨æ |
191 | eggs_count dw 0 ;ª®««¨ç¥á⢮ ¯®©¬ ëå ï¨æ |
183 | game_text db '£à _',13 |
192 | game_text db '£à _',13 |
184 | some_text db '0' |
193 | some_text db '0' |
185 | rb 8 ;⥪áâ á ç¨á«®¬ ¯®©¬ ëå ï¨æ |
194 | rb 8 ;⥪áâ á ç¨á«®¬ ¯®©¬ ëå ï¨æ |
186 | count_last db 0 ;áç¥â稪 ¯à®¯ãé¥ëå ï¨æ |
195 | count_last db 0 ;áç¥â稪 ¯à®¯ãé¥ëå ï¨æ |
187 | game_spd dd 0 ;§ ¤¥à¦ª ¨£àë |
196 | game_spd dd 0 ;§ ¤¥à¦ª ¨£àë |
188 | game_delay_a dd ? ;¯¥à¢® ç «ì ï § ¤¥à¦ª ¤«ï ¨£àë |
197 | game_delay_a dd ? ;¯¥à¢® ç «ì ï § ¤¥à¦ª ¤«ï ¨£àë |
189 | game_delay_b dd ? ;¯¥à¢® ç «ì ï § ¤¥à¦ª ¤«ï ¨£àë |
198 | game_delay_b dd ? ;¯¥à¢® ç «ì ï § ¤¥à¦ª ¤«ï ¨£àë |
190 | game_delay_min dd ? ;¬¨¨¬ «ì ï § ¤¥à¦ª |
199 | game_delay_min dd ? ;¬¨¨¬ «ì ï § ¤¥à¦ª |
191 | 200 | ||
192 | ;¤«ï £¥¥à 樨 á«ãç ©ëå ç¨á¥« |
201 | ;¤«ï £¥¥à 樨 á«ãç ©ëå ç¨á¥« |
193 | rand_x dd 0 |
202 | rand_x dd 0 |
194 | 203 | ||
195 | align 4 |
204 | align 4 |
196 | rand_next: |
205 | rand_next: |
197 | ;x(k+1) = (a*x(k)+c) mod m |
206 | ;x(k+1) = (a*x(k)+c) mod m |
198 | ; a=22695477, c=1, m=2^32 |
207 | ; a=22695477, c=1, m=2^32 |
199 | push eax |
208 | push eax |
200 | mov eax,dword[rand_x] |
209 | mov eax,dword[rand_x] |
201 | imul eax,22695477 |
210 | imul eax,22695477 |
202 | inc eax |
211 | inc eax |
203 | mov dword[rand_x],eax |
212 | mov dword[rand_x],eax |
204 | pop eax |
213 | pop eax |
205 | ret |
214 | ret |
206 | 215 | ||
207 | ;ᮧ¤ ¥¬ ¯à®§à çë¥ ¡ãä¥à ¯® 8 ¡¨â (âà ä à¥âë), ¤«ï à¨á®¢ ¨ï |
216 | ;ᮧ¤ ¥¬ ¯à®§à çë¥ ¡ãä¥à ¯® 8 ¡¨â (âà ä à¥âë), ¤«ï à¨á®¢ ¨ï |
208 | ;£¤¥ buf - ¡ãä¥à ®á®¢¥ ª®â®à®£® ¡ã¤¥â ᮧ¤ âà ä à¥â |
217 | ;£¤¥ buf - ¡ãä¥à ®á®¢¥ ª®â®à®£® ¡ã¤¥â ᮧ¤ âà ä à¥â |
209 | ;ä®®¢ë© 梥⠡ãä¥à ¤®«¦¥ ¡ëâì 0xffffff, ¨ ç¥ ¥ ¯à®¨§®©¤¥â ®¡à¥§ª |
218 | ;ä®®¢ë© 梥⠡ãä¥à ¤®«¦¥ ¡ëâì 0xffffff, ¨ ç¥ ¥ ¯à®¨§®©¤¥â ®¡à¥§ª |
210 | ;¯® ä®®¢®¬ã 梥âã ¨ âà ä à¥â ¡ã¤¥â § ¨¬ â 쬮£® ¬¥áâ ¢ ¯ ¬ï⨠|
219 | ;¯® ä®®¢®¬ã 梥âã ¨ âà ä à¥â ¡ã¤¥â § ¨¬ â 쬮£® ¬¥áâ ¢ ¯ ¬ï⨠|
211 | align 4 |
220 | align 4 |
212 | proc CreateTrapharetBuffer, buf:dword, img_data:dword |
221 | proc CreateTrapharetBuffer, buf:dword, img_data:dword |
213 | push eax edi |
222 | push eax edi |
214 | mov edi,dword[buf] |
223 | mov edi,dword[buf] |
215 | 224 | ||
216 | ;§ ¯®«¥¨¥ ¤ ëå ¡ãä¥à |
225 | ;§ ¯®«¥¨¥ ¤ ëå ¡ãä¥à |
217 | mov buf2d_size_lt,0 |
226 | mov buf2d_size_lt,0 |
218 | mov eax,dword[displ_w] |
227 | mov eax,dword[displ_w] |
219 | mov buf2d_w,eax |
228 | mov buf2d_w,eax |
220 | mov eax,dword[displ_h] |
229 | mov eax,dword[displ_h] |
221 | mov buf2d_h,eax |
230 | mov buf2d_h,eax |
222 | mov buf2d_color,0xffffff |
231 | mov buf2d_color,0xffffff |
223 | mov buf2d_bits,24 |
232 | mov buf2d_bits,24 |
224 | 233 | ||
225 | stdcall [buf2d_create_f_img], edi,[img_data] ;ᮧ¤ ¥¬ ¡ãä¥à |
234 | stdcall [buf2d_create_f_img], edi,[img_data] ;ᮧ¤ ¥¬ ¡ãä¥à |
226 | stdcall [buf2d_conv_24_to_8], edi,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç®á⨠8¡¨â |
235 | stdcall [buf2d_conv_24_to_8], edi,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç®á⨠8¡¨â |
227 | ;®¡à¥§ ¥¬ «¨è¨¥ ªà ï ¡ãä¥à , ¤«ï ¡®«¥¥ ¡ëáâண® à¨á®¢ ¨ï |
236 | ;®¡à¥§ ¥¬ «¨è¨¥ ªà ï ¡ãä¥à , ¤«ï ¡®«¥¥ ¡ëáâண® à¨á®¢ ¨ï |
228 | stdcall [buf2d_crop_color], edi,buf2d_color,BUF2D_OPT_CROP_TOP+BUF2D_OPT_CROP_BOTTOM+BUF2D_OPT_CROP_RIGHT+BUF2D_OPT_CROP_LEFT |
237 | stdcall [buf2d_crop_color], edi,buf2d_color,BUF2D_OPT_CROP_TOP+BUF2D_OPT_CROP_BOTTOM+BUF2D_OPT_CROP_RIGHT+BUF2D_OPT_CROP_LEFT |
229 | pop edi eax |
238 | pop edi eax |
230 | ret |
239 | ret |
231 | endp |
240 | endp |
232 | 241 | ||
233 | align 4 |
242 | align 4 |
234 | InitBackgroundBuffer: ;ᮧ¤ ¨¥ ä®®¢®£® ¨§®¡à ¦¥¨ï |
243 | InitBackgroundBuffer: ;ᮧ¤ ¨¥ ä®®¢®£® ¨§®¡à ¦¥¨ï |
235 | pushad |
244 | pushad |
236 | mov edi,buf_fon |
245 | mov edi,buf_fon |
237 | mov eax,[color_fon] |
246 | mov eax,[color_fon] |
238 | mov buf2d_color,eax |
247 | mov buf2d_color,eax |
239 | stdcall [buf2d_clear], edi,eax |
248 | stdcall [buf2d_clear], edi,eax |
240 | mov esi,edi |
249 | mov esi,edi |
241 | 250 | ||
242 | xor eax,eax |
251 | xor eax,eax |
243 | cld |
252 | cld |
244 | cmp dword[offs_shadow_x],0 |
253 | cmp dword[offs_shadow_x],0 |
245 | jne @f |
254 | jne @f |
246 | cmp dword[offs_shadow_y],0 |
255 | cmp dword[offs_shadow_y],0 |
247 | jne @f |
256 | jne @f |
248 | jmp .end_shadows |
257 | jmp .end_shadows |
249 | @@: |
258 | @@: |
250 | mov edi,buf_decor |
259 | mov edi,buf_decor |
251 | xor ebx,ebx |
260 | xor ebx,ebx |
252 | mov ecx,3 |
261 | mov ecx,3 |
253 | @@: |
262 | @@: |
254 | mov ax,buf2d_t |
263 | mov ax,buf2d_t |
255 | add eax,[offs_shadow_y] |
264 | add eax,[offs_shadow_y] |
256 | mov bx,buf2d_l |
265 | mov bx,buf2d_l |
257 | add ebx,[offs_shadow_x] |
266 | add ebx,[offs_shadow_x] |
258 | stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥨ ¤¥ª®à 権 |
267 | stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥨ ¤¥ª®à 権 |
259 | add edi,BUF_STRUCT_SIZE |
268 | add edi,BUF_STRUCT_SIZE |
260 | loop @b |
269 | loop @b |
261 | .end_shadows: |
270 | .end_shadows: |
262 | 271 | ||
263 | mov edi,buf_decor |
272 | mov edi,buf_decor |
264 | mov ebx,color_decorat |
273 | mov ebx,color_decorat |
265 | mov ecx,3 |
274 | mov ecx,3 |
266 | @@: |
275 | @@: |
267 | mov ax,buf2d_t |
276 | mov ax,buf2d_t |
268 | stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[ebx] ;à¨á㥬 ¤¥ª®à 樨 |
277 | stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[ebx] ;à¨á㥬 ¤¥ª®à 樨 |
269 | add edi,BUF_STRUCT_SIZE |
278 | add edi,BUF_STRUCT_SIZE |
270 | add ebx,4 |
279 | add ebx,4 |
271 | loop @b |
280 | loop @b |
272 | popad |
281 | popad |
273 | ret |
282 | ret |
274 | 283 | ||
275 | ;à¨áã¥â ª à⨪㠢 ¡ãä¥à¥ buf ¨§ ¬ áᨢ ¡ãä¥à®¢ buf_img á ¨¤¥ªá®¬ ind |
284 | ;à¨áã¥â ª à⨪㠢 ¡ãä¥à¥ buf ¨§ ¬ áᨢ ¡ãä¥à®¢ buf_img á ¨¤¥ªá®¬ ind |
276 | ;â. ¥. buf <- buf_img[ind] |
285 | ;â. ¥. buf <- buf_img[ind] |
277 | align 4 |
286 | align 4 |
278 | proc DrawArrayImg, buf:dword, buf_img:dword, ind:dword, color:dword |
287 | proc DrawArrayImg, buf:dword, buf_img:dword, ind:dword, color:dword |
279 | pushad |
288 | pushad |
280 | mov edi,dword[ind] |
289 | mov edi,dword[ind] |
281 | imul edi,BUF_STRUCT_SIZE |
290 | imul edi,BUF_STRUCT_SIZE |
282 | add edi,dword[buf_img] |
291 | add edi,dword[buf_img] |
283 | 292 | ||
284 | mov esi,dword[buf] |
293 | mov esi,dword[buf] |
285 | xor eax,eax |
294 | xor eax,eax |
286 | mov ax,buf2d_t |
295 | mov ax,buf2d_t |
287 | xor ebx,ebx |
296 | xor ebx,ebx |
288 | mov bx,buf2d_l |
297 | mov bx,buf2d_l |
289 | stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color] |
298 | stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color] |
290 | popad |
299 | popad |
291 | ret |
300 | ret |
292 | endp |
301 | endp |
293 | 302 | ||
294 | align 4 |
303 | align 4 |
295 | DrawZaac: ;à¨á®¢ ¨¥ § ©æ |
304 | DrawZaac: ;à¨á®¢ ¨¥ § ©æ |
296 | push eax |
305 | push eax |
297 | bt word[pos_wolf],bit_zaac |
306 | bt word[pos_wolf],bit_zaac |
298 | jae .end_mig |
307 | jae .end_mig |
299 | 308 | ||
300 | stdcall DrawArrayImg, buf_displ,buf_wolf,6,[color_wolf] ;à¨á㥬 ⥫® § ©æ |
309 | stdcall DrawArrayImg, buf_displ,buf_wolf,6,[color_wolf] ;à¨á㥬 ⥫® § ©æ |
301 | mov eax,dword[pos_eggs] |
310 | mov eax,dword[pos_eggs] |
302 | and eax,mask_chi_right+mask_chi_left |
311 | and eax,mask_chi_right+mask_chi_left |
303 | cmp eax,0 |
312 | cmp eax,0 |
304 | je .end_mig ;¥á«¨ ¥â ¡¥£ îé¨å 樯«ïâ, â® § ïæ à㪮© ¥ ¬ è¥â |
313 | je .end_mig ;¥á«¨ ¥â ¡¥£ îé¨å 樯«ïâ, â® § ïæ à㪮© ¥ ¬ è¥â |
305 | bt word[pos_wolf],bit_mig |
314 | bt word[pos_wolf],bit_mig |
306 | jc @f |
315 | jc @f |
307 | stdcall DrawArrayImg, buf_displ,buf_wolf,7,[color_wolf] ;à¨á㥬 àãªã § ©æ ¢¢¥àåã |
316 | stdcall DrawArrayImg, buf_displ,buf_wolf,7,[color_wolf] ;à¨á㥬 àãªã § ©æ ¢¢¥àåã |
308 | jmp .end_mig |
317 | jmp .end_mig |
309 | @@: |
318 | @@: |
310 | stdcall DrawArrayImg, buf_displ,buf_wolf,8,[color_wolf] ;à¨á㥬 àãªã § ©æ ¢¨§ã |
319 | stdcall DrawArrayImg, buf_displ,buf_wolf,8,[color_wolf] ;à¨á㥬 àãªã § ©æ ¢¨§ã |
311 | .end_mig: |
320 | .end_mig: |
312 | pop eax |
321 | pop eax |
313 | ret |
322 | ret |
314 | 323 | ||
315 | align 4 |
324 | align 4 |
316 | DrawWolf: ;à¨áã¥â ¢®«ª á ª®à§¨ ¬¨ |
325 | DrawWolf: ;à¨áã¥â ¢®«ª á ª®à§¨ ¬¨ |
317 | bt word[pos_wolf],0 |
326 | bt word[pos_wolf],0 |
318 | jc @f |
327 | jc @f |
319 | stdcall DrawArrayImg, buf_displ,buf_wolf,0,[color_wolf] |
328 | stdcall DrawArrayImg, buf_displ,buf_wolf,0,[color_wolf] |
320 | bt word[pos_wolf],1 |
329 | bt word[pos_wolf],1 |
321 | jc .corz_ldn |
330 | jc .corz_ldn |
322 | stdcall DrawArrayImg, buf_displ,buf_wolf,1,[color_wolf] |
331 | stdcall DrawArrayImg, buf_displ,buf_wolf,1,[color_wolf] |
323 | jmp .corz_lend |
332 | jmp .corz_lend |
324 | .corz_ldn: |
333 | .corz_ldn: |
325 | stdcall DrawArrayImg, buf_displ,buf_wolf,2,[color_wolf] |
334 | stdcall DrawArrayImg, buf_displ,buf_wolf,2,[color_wolf] |
326 | .corz_lend: |
335 | .corz_lend: |
327 | jmp .wolf_b |
336 | jmp .wolf_b |
328 | @@: |
337 | @@: |
329 | stdcall DrawArrayImg, buf_displ,buf_wolf,3,[color_wolf] |
338 | stdcall DrawArrayImg, buf_displ,buf_wolf,3,[color_wolf] |
330 | bt word[pos_wolf],1 |
339 | bt word[pos_wolf],1 |
331 | jc .corz_rdn |
340 | jc .corz_rdn |
332 | stdcall DrawArrayImg, buf_displ,buf_wolf,4,[color_wolf] |
341 | stdcall DrawArrayImg, buf_displ,buf_wolf,4,[color_wolf] |
333 | jmp .corz_rend |
342 | jmp .corz_rend |
334 | .corz_rdn: |
343 | .corz_rdn: |
335 | stdcall DrawArrayImg, buf_displ,buf_wolf,5,[color_wolf] |
344 | stdcall DrawArrayImg, buf_displ,buf_wolf,5,[color_wolf] |
336 | .corz_rend: |
345 | .corz_rend: |
337 | .wolf_b: |
346 | .wolf_b: |
338 | ret |
347 | ret |
339 | 348 | ||
340 | align 4 |
349 | align 4 |
341 | DrawEggs: ;à¨áã¥â ï©æ |
350 | DrawEggs: ;à¨áã¥â ï©æ |
342 | pushad |
351 | pushad |
343 | cld |
352 | cld |
344 | 353 | ||
345 | mov eax,dword[pos_eggs] |
354 | mov eax,dword[pos_eggs] |
346 | xor ebx,ebx |
355 | xor ebx,ebx |
347 | mov ecx,20 ;横« ¤«ï à¨á®¢ ¨ï ª®âïé¨åáï ï¨æ |
356 | mov ecx,20 ;横« ¤«ï à¨á®¢ ¨ï ª®âïé¨åáï ï¨æ |
348 | @@: |
357 | @@: |
349 | bt eax,ebx |
358 | bt eax,ebx |
350 | jae .draw_egg |
359 | jae .draw_egg |
351 | stdcall DrawArrayImg, buf_displ,buf_egg,ebx,[color_egg] |
360 | stdcall DrawArrayImg, buf_displ,buf_egg,ebx,[color_egg] |
352 | .draw_egg: |
361 | .draw_egg: |
353 | inc ebx |
362 | inc ebx |
354 | loop @b |
363 | loop @b |
355 | 364 | ||
356 | ;mov eax,dword[pos_eggs] |
365 | ;mov eax,dword[pos_eggs] |
357 | and eax,mask_chi_left |
366 | and eax,mask_chi_left |
358 | cmp eax,0 |
367 | cmp eax,0 |
359 | je @f |
368 | je @f |
360 | stdcall DrawArrayImg, buf_displ,buf_egg,20,[color_egg] ;à §¡¨â®¥ ï©æ® á«¥¢ |
369 | stdcall DrawArrayImg, buf_displ,buf_egg,20,[color_egg] ;à §¡¨â®¥ ï©æ® á«¥¢ |
361 | @@: |
370 | @@: |
362 | mov eax,dword[pos_eggs] |
371 | mov eax,dword[pos_eggs] |
363 | and eax,mask_chi_right |
372 | and eax,mask_chi_right |
364 | cmp eax,0 |
373 | cmp eax,0 |
365 | je @f |
374 | je @f |
366 | stdcall DrawArrayImg, buf_displ,buf_egg,21,[color_egg] ;à §¡¨â®¥ ï©æ® á¯à ¢ |
375 | stdcall DrawArrayImg, buf_displ,buf_egg,21,[color_egg] ;à §¡¨â®¥ ï©æ® á¯à ¢ |
367 | @@: |
376 | @@: |
368 | 377 | ||
369 | mov eax,dword[pos_eggs] |
378 | mov eax,dword[pos_eggs] |
370 | xor edx,edx |
379 | xor edx,edx |
371 | mov ebx,bit_chi_left |
380 | mov ebx,bit_chi_left |
372 | mov ecx,5 ;横« ¤«ï à¨á®¢ ¨ï «¥¢ëå 樯«ïâ |
381 | mov ecx,5 ;横« ¤«ï à¨á®¢ ¨ï «¥¢ëå 樯«ïâ |
373 | @@: |
382 | @@: |
374 | bt eax,ebx |
383 | bt eax,ebx |
375 | jae .draw_chick_l |
384 | jae .draw_chick_l |
376 | stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick] |
385 | stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick] |
377 | .draw_chick_l: |
386 | .draw_chick_l: |
378 | inc ebx |
387 | inc ebx |
379 | inc edx |
388 | inc edx |
380 | loop @b |
389 | loop @b |
381 | mov ebx,bit_chi_right |
390 | mov ebx,bit_chi_right |
382 | mov ecx,5 ;横« ¤«ï à¨á®¢ ¨ï ¯à ¢ëå 樯«ïâ |
391 | mov ecx,5 ;横« ¤«ï à¨á®¢ ¨ï ¯à ¢ëå 樯«ïâ |
383 | @@: |
392 | @@: |
384 | bt eax,ebx |
393 | bt eax,ebx |
385 | jae .draw_chick_r |
394 | jae .draw_chick_r |
386 | stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick] |
395 | stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick] |
387 | .draw_chick_r: |
396 | .draw_chick_r: |
388 | inc ebx |
397 | inc ebx |
389 | inc edx |
398 | inc edx |
390 | loop @b |
399 | loop @b |
391 | 400 | ||
392 | xor eax,eax |
401 | xor eax,eax |
393 | mov al,byte[count_last] |
402 | mov al,byte[count_last] |
394 | mov ecx,eax ;横« ¤«ï à¨á®¢ ¨ï èâà äëå ®çª®¢ |
403 | mov ecx,eax ;横« ¤«ï à¨á®¢ ¨ï èâà äëå ®çª®¢ |
395 | shr ecx,1 |
404 | shr ecx,1 |
396 | mov edx,10 ;¨¤¥ªá ç « èâà äëå ¨ª®®ª ¢ ¡ãä¥à¥ buf_chi |
405 | mov edx,10 ;¨¤¥ªá ç « èâà äëå ¨ª®®ª ¢ ¡ãä¥à¥ buf_chi |
397 | cmp ecx,0 |
406 | cmp ecx,0 |
398 | je .no_unit_last |
407 | je .no_unit_last |
399 | @@: |
408 | @@: |
400 | stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick] |
409 | stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick] |
401 | inc edx |
410 | inc edx |
402 | loop @b |
411 | loop @b |
403 | .no_unit_last: |
412 | .no_unit_last: |
404 | 413 | ||
405 | bt ax,0 ;¯à®¢¥à塞 ¬¨£ î饥 ¥ ç¥â®¥ ®çª® |
414 | bt ax,0 ;¯à®¢¥à塞 ¬¨£ î饥 ¥ ç¥â®¥ ®çª® |
406 | jae @f |
415 | jae @f |
407 | bt word[pos_wolf],bit_mig |
416 | bt word[pos_wolf],bit_mig |
408 | jc @f |
417 | jc @f |
409 | stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick] ;¬¨£ î饥 èâà 䮥 ®çª® |
418 | stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick] ;¬¨£ î饥 èâà 䮥 ®çª® |
410 | @@: |
419 | @@: |
411 | 420 | ||
412 | popad |
421 | popad |
413 | ret |
422 | ret |
414 | 423 | ||
415 | align 4 |
424 | align 4 |
416 | CountEggsInc: ;㢥«¨ç¨¢ ¥¬ áç¥â稪 ï¨æ 1 |
425 | CountEggsInc: ;㢥«¨ç¨¢ ¥¬ áç¥â稪 ï¨æ 1 |
417 | push eax edi |
426 | push eax edi |
418 | xor eax,eax |
427 | xor eax,eax |
419 | inc word[eggs_count] ;㢥«¨ç¨¢ ¥¬ áç¥â稪 ï¨æ |
428 | inc word[eggs_count] ;㢥«¨ç¨¢ ¥¬ áç¥â稪 ï¨æ |
420 | cmp word[eggs_count],200 ;¡®ãáë¥ ®çª¨ |
429 | cmp word[eggs_count],200 ;¡®ãáë¥ ®çª¨ |
421 | je @f |
430 | je @f |
422 | cmp word[eggs_count],500 ;¡®ãáë¥ ®çª¨ |
431 | cmp word[eggs_count],500 ;¡®ãáë¥ ®çª¨ |
423 | je @f |
432 | je @f |
424 | jmp .no_bonus |
433 | jmp .no_bonus |
425 | @@: |
434 | @@: |
426 | mov byte[count_last],0 |
435 | mov byte[count_last],0 |
427 | .no_bonus: |
436 | .no_bonus: |
428 | 437 | ||
429 | mov ax,word[eggs_count] |
438 | mov ax,word[eggs_count] |
430 | mov edi,some_text |
439 | mov edi,some_text |
431 | call convert_to_str ;®¡®¢«ï¥¬ ⥪á⮢ãî áâபã |
440 | call convert_to_str ;®¡®¢«ï¥¬ ⥪á⮢ãî áâபã |
432 | and ax,0xf ;ç¥à¥§ ª ¦¤ë¥ 16 ï¨æ 㬥ìè ¥¬ ¢à¥¬ï |
441 | and ax,0xf ;ç¥à¥§ ª ¦¤ë¥ 16 ï¨æ 㬥ìè ¥¬ ¢à¥¬ï |
433 | cmp ax,0 |
442 | cmp ax,0 |
434 | jne @f |
443 | jne @f |
435 | mov edi,dword[game_delay_min] ;¬¨¨¬ «ì ï § ¤¥à¦ª |
444 | mov edi,dword[game_delay_min] ;¬¨¨¬ «ì ï § ¤¥à¦ª |
436 | cmp dword[game_spd],edi |
445 | cmp dword[game_spd],edi |
437 | jle @f |
446 | jle @f |
438 | dec dword[game_spd] |
447 | dec dword[game_spd] |
439 | @@: |
448 | @@: |
440 | pop edi eax |
449 | pop edi eax |
441 | ret |
450 | ret |
442 | 451 | ||
443 | ;input: |
452 | ;input: |
444 | ; eax - ¬ ᪠, 㪠§ë¢ îé ï á ª ª®© áâà®ë 㯠«® ï©æ® |
453 | ; eax - ¬ ᪠, 㪠§ë¢ îé ï á ª ª®© áâà®ë 㯠«® ï©æ® |
445 | align 4 |
454 | align 4 |
446 | CountLastInc: ; ç¨á«¥¨¥ èâà äëå ®çª®¢ |
455 | CountLastInc: ; ç¨á«¥¨¥ èâà äëå ®çª®¢ |
447 | inc byte[count_last] ;¯®«®¢¨ ® èâà 䮣® ®çª |
456 | inc byte[count_last] ;¯®«®¢¨ ® èâà 䮣® ®çª |
448 | bt word[pos_wolf],bit_zaac |
457 | bt word[pos_wolf],bit_zaac |
449 | jc @f |
458 | jc @f |
450 | inc byte[count_last] ;¥á«¨ ¥â § ©æ â® ¥é¥ 1- ¯®«®¢¨ èâà 䮣® ®çª |
459 | inc byte[count_last] ;¥á«¨ ¥â § ©æ â® ¥é¥ 1- ¯®«®¢¨ èâà 䮣® ®çª |
451 | @@: |
460 | @@: |
452 | cmp byte[count_last],6 |
461 | cmp byte[count_last],6 |
453 | jle @f |
462 | jle @f |
454 | mov byte[count_last],6 ;áâ ¢¨¬ ®£à ¨ç¥¨ ç¨á«® èâà äëå ®çª®¢ |
463 | mov byte[count_last],6 ;áâ ¢¨¬ ®£à ¨ç¥¨ ç¨á«® èâà äëå ®çª®¢ |
455 | @@: |
464 | @@: |
456 | or dword[pos_eggs],eax ;ᮧ¤ ¥¬ ¡¥£ã饣® 樯«¥ª |
465 | or dword[pos_eggs],eax ;ᮧ¤ ¥¬ ¡¥£ã饣® 樯«¥ª |
457 | ret |
466 | ret |
458 | 467 | ||
459 | align 4 |
468 | align 4 |
460 | MoveEggs: |
469 | MoveEggs: |
461 | pushad |
470 | pushad |
462 | xor byte[pos_wolf],val_mig ;¡¨â ¤«ï ¬¨£ ¨ï |
471 | xor byte[pos_wolf],val_mig ;¡¨â ¤«ï ¬¨£ ¨ï |
463 | 472 | ||
464 | cmp byte[count_last],6 ;¬ ªá¨¬ «ì®¥ ç¨á«® èâà äëå ®çª®¢ |
473 | cmp byte[count_last],6 ;¬ ªá¨¬ «ì®¥ ç¨á«® èâà äëå ®çª®¢ |
465 | je .end_fun |
474 | je .end_fun |
466 | 475 | ||
467 | rol dword[pos_eggs],1 |
476 | rol dword[pos_eggs],1 |
468 | mov ecx,dword[pos_eggs] |
477 | mov ecx,dword[pos_eggs] |
469 | and ecx,mask_fail_eggs |
478 | and ecx,mask_fail_eggs |
470 | cmp ecx,0 |
479 | cmp ecx,0 |
471 | je .no_fail ;¥â ¯ ¤ îé¨å ï¨æ |
480 | je .no_fail ;¥â ¯ ¤ îé¨å ï¨æ |
472 | ; ç¨á«¥¨¥ ï¨æ ¯®¯ ¢è¨å ¢ ª®à§¨ã |
481 | ; ç¨á«¥¨¥ ï¨æ ¯®¯ ¢è¨å ¢ ª®à§¨ã |
473 | ;¨«¨ ç¨á«¥¨¥ èâà äëå ®çª®¢ |
482 | ;¨«¨ ç¨á«¥¨¥ èâà äëå ®çª®¢ |
474 | xor ebx,ebx |
483 | xor ebx,ebx |
475 | mov bl,byte[pos_wolf] ;¡¥à¥¬ ¯ à ¬¥âàë (¯®§¨æ¨î) ¢®«ª |
484 | mov bl,byte[pos_wolf] ;¡¥à¥¬ ¯ à ¬¥âàë (¯®§¨æ¨î) ¢®«ª |
476 | and bl,3 ; ¢á直© á«ãç © |
485 | and bl,3 ; ¢á直© á«ãç © |
477 | 486 | ||
478 | bt ecx,5 ;¯à®¢¥à塞 ¢¥à奥 «¥¢®¥ ¯¥à¨«® |
487 | bt ecx,5 ;¯à®¢¥à塞 ¢¥à奥 «¥¢®¥ ¯¥à¨«® |
479 | jae .perilo_lu |
488 | jae .perilo_lu |
480 | cmp bx,0 ;¯à®¢¥à塞 «¨ç¨¥ ª®à§¨ë |
489 | cmp bx,0 ;¯à®¢¥à塞 «¨ç¨¥ ª®à§¨ë |
481 | jne @f |
490 | jne @f |
482 | call CountEggsInc |
491 | call CountEggsInc |
483 | jmp .perilo_lu |
492 | jmp .perilo_lu |
484 | @@: |
493 | @@: |
485 | mov eax,mask_chi_cr_l |
494 | mov eax,mask_chi_cr_l |
486 | call CountLastInc |
495 | call CountLastInc |
487 | .perilo_lu: |
496 | .perilo_lu: |
488 | bt ecx,10 ;¯à®¢¥à塞 ¨¦¥¥ «¥¢®¥ ¯¥à¨«® |
497 | bt ecx,10 ;¯à®¢¥à塞 ¨¦¥¥ «¥¢®¥ ¯¥à¨«® |
489 | jae .perilo_ld |
498 | jae .perilo_ld |
490 | cmp bx,2 ;¯à®¢¥à塞 «¨ç¨¥ ª®à§¨ë |
499 | cmp bx,2 ;¯à®¢¥à塞 «¨ç¨¥ ª®à§¨ë |
491 | jne @f |
500 | jne @f |
492 | call CountEggsInc |
501 | call CountEggsInc |
493 | jmp .perilo_ld |
502 | jmp .perilo_ld |
494 | @@: |
503 | @@: |
495 | mov eax,mask_chi_cr_l |
504 | mov eax,mask_chi_cr_l |
496 | call CountLastInc |
505 | call CountLastInc |
497 | .perilo_ld: |
506 | .perilo_ld: |
498 | bt ecx,15 ;¯à®¢¥à塞 ¢¥à奥 ¯à ¢®¥ ¯¥à¨«® |
507 | bt ecx,15 ;¯à®¢¥à塞 ¢¥à奥 ¯à ¢®¥ ¯¥à¨«® |
499 | jae .perilo_ru |
508 | jae .perilo_ru |
500 | cmp bx,1 ;¯à®¢¥à塞 «¨ç¨¥ ª®à§¨ë |
509 | cmp bx,1 ;¯à®¢¥à塞 «¨ç¨¥ ª®à§¨ë |
501 | jne @f |
510 | jne @f |
502 | call CountEggsInc |
511 | call CountEggsInc |
503 | jmp .perilo_ru |
512 | jmp .perilo_ru |
504 | @@: |
513 | @@: |
505 | mov eax,mask_chi_cr_r |
514 | mov eax,mask_chi_cr_r |
506 | call CountLastInc |
515 | call CountLastInc |
507 | .perilo_ru: |
516 | .perilo_ru: |
508 | bt ecx,20 ;¯à®¢¥à塞 ¨¦¥¥ ¯à ¢®¥ ¯¥à¨«® |
517 | bt ecx,20 ;¯à®¢¥à塞 ¨¦¥¥ ¯à ¢®¥ ¯¥à¨«® |
509 | jae .perilo_rd |
518 | jae .perilo_rd |
510 | cmp bx,3 ;¯à®¢¥à塞 «¨ç¨¥ ª®à§¨ë |
519 | cmp bx,3 ;¯à®¢¥à塞 «¨ç¨¥ ª®à§¨ë |
511 | jne @f |
520 | jne @f |
512 | call CountEggsInc |
521 | call CountEggsInc |
513 | jmp .perilo_rd |
522 | jmp .perilo_rd |
514 | @@: |
523 | @@: |
515 | mov eax,mask_chi_cr_r |
524 | mov eax,mask_chi_cr_r |
516 | call CountLastInc |
525 | call CountLastInc |
517 | .perilo_rd: |
526 | .perilo_rd: |
518 | .no_fail: |
527 | .no_fail: |
519 | 528 | ||
520 | and dword[pos_eggs],mask_clear_all ;®ç¨á⪠㯠¢è¨å ï¨æ ¨ ¤®¡¥¦ ¢è¨å ªã३ |
529 | and dword[pos_eggs],mask_clear_all ;®ç¨á⪠㯠¢è¨å ï¨æ ¨ ¤®¡¥¦ ¢è¨å ªã३ |
521 | 530 | ||
522 | call rand_next |
531 | call rand_next |
523 | cmp byte[zaac_status],0 |
532 | cmp byte[zaac_status],0 |
524 | jle @f |
533 | jle @f |
525 | dec byte[zaac_status] |
534 | dec byte[zaac_status] |
526 | jmp .no_zaac_move ;§ ïæ ¯®ª ¥ ¤¢¨£ ¥âáï |
535 | jmp .no_zaac_move ;§ ïæ ¯®ª ¥ ¤¢¨£ ¥âáï |
527 | @@: |
536 | @@: |
528 | 537 | ||
529 | bt dword[rand_x],6 ;§ ïæ ®â ä® àï ¬¥ï¥â áâ âãá |
538 | bt dword[rand_x],6 ;§ ïæ ®â ä® àï ¬¥ï¥â áâ âãá |
530 | jc @f |
539 | jc @f |
531 | xor byte[pos_wolf],val_zaac ;¢ëá®¢ë¢ ¥¬/§ á®¢ë¢ ¥¬ § ©æ |
540 | xor byte[pos_wolf],val_zaac ;¢ëá®¢ë¢ ¥¬/§ á®¢ë¢ ¥¬ § ©æ |
532 | bt word[pos_wolf],val_zaac |
541 | bt word[pos_wolf],val_zaac |
533 | jc .zaac_n |
542 | jc .zaac_n |
534 | mov byte[zaac_status],val_zaac_time_y ;áâ ¢¨¬ ¬¨¨¬ «ì®¥ ¢à¥¬ï ¤«ï ᬥë áâ âãá |
543 | mov byte[zaac_status],val_zaac_time_y ;áâ ¢¨¬ ¬¨¨¬ «ì®¥ ¢à¥¬ï ¤«ï ᬥë áâ âãá |
535 | jmp @f |
544 | jmp @f |
536 | .zaac_n: |
545 | .zaac_n: |
537 | mov byte[zaac_status],val_zaac_time_n ;áâ ¢¨¬ ¬¨¨¬ «ì®¥ ¢à¥¬ï ¤«ï ᬥë áâ âãá |
546 | mov byte[zaac_status],val_zaac_time_n ;áâ ¢¨¬ ¬¨¨¬ «ì®¥ ¢à¥¬ï ¤«ï ᬥë áâ âãá |
538 | @@: |
547 | @@: |
539 | .no_zaac_move: |
548 | .no_zaac_move: |
540 | 549 | ||
541 | ;ᮧ¤ ¨¥ ®¢ëå ï¨æ |
550 | ;ᮧ¤ ¨¥ ®¢ëå ï¨æ |
542 | cmp word[eggs_count],5 ;¯¥à¢ë¥ 5 ï¨æ ª âïâáï ¯® 1-¬ã |
551 | cmp word[eggs_count],5 ;¯¥à¢ë¥ 5 ï¨æ ª âïâáï ¯® 1-¬ã |
543 | jge @f |
552 | jge @f |
544 | mov ecx,dword[pos_eggs] |
553 | mov ecx,dword[pos_eggs] |
545 | and ecx,mask_move_eggs |
554 | and ecx,mask_move_eggs |
546 | ;cmp ecx,0 |
555 | ;cmp ecx,0 |
547 | jnz .end_creat |
556 | jnz .end_creat |
548 | @@: |
557 | @@: |
549 | 558 | ||
550 | bt dword[rand_x],4 ;¯à®¢¥à塞 ¡ã¤¥¬ «¨ ᮧ¤ ¢ âì ®¢®¥ ï©æ® |
559 | bt dword[rand_x],4 ;¯à®¢¥à塞 ¡ã¤¥¬ «¨ ᮧ¤ ¢ âì ®¢®¥ ï©æ® |
551 | jc .end_creat |
560 | jc .end_creat |
552 | bt dword[rand_x],5 ;¯à®¢¥à塞 á ª ª®© áâ®à®ë ¡ã¤¥¬ ᮧ¤ ¢ âì ®¢®¥ ï©æ® |
561 | bt dword[rand_x],5 ;¯à®¢¥à塞 á ª ª®© áâ®à®ë ¡ã¤¥¬ ᮧ¤ ¢ âì ®¢®¥ ï©æ® |
553 | jc .creat_r |
562 | jc .creat_r |
554 | bt dword[rand_x],7 |
563 | bt dword[rand_x],7 |
555 | jc @f |
564 | jc @f |
556 | or dword[pos_eggs],mask_lot_lu |
565 | or dword[pos_eggs],mask_lot_lu |
557 | jmp .end_creat |
566 | jmp .end_creat |
558 | @@: |
567 | @@: |
559 | or dword[pos_eggs],mask_lot_ld |
568 | or dword[pos_eggs],mask_lot_ld |
560 | jmp .end_creat |
569 | jmp .end_creat |
561 | .creat_r: |
570 | .creat_r: |
562 | bt dword[rand_x],7 |
571 | bt dword[rand_x],7 |
563 | jc @f |
572 | jc @f |
564 | or dword[pos_eggs],mask_lot_ru |
573 | or dword[pos_eggs],mask_lot_ru |
565 | jmp .end_creat |
574 | jmp .end_creat |
566 | @@: |
575 | @@: |
567 | or dword[pos_eggs],mask_lot_rd |
576 | or dword[pos_eggs],mask_lot_rd |
568 | ;jmp .end_creat |
577 | ;jmp .end_creat |
569 | .end_creat: |
578 | .end_creat: |
570 | 579 | ||
571 | .end_fun: |
580 | .end_fun: |
572 | popad |
581 | popad |
573 | ret |
582 | ret |
574 | 583 | ||
575 | align 4 |
584 | align 4 |
576 | proc InitGame, b:dword ;¯¥à¢® ç «ìë¥ áâனª¨ ¨£àë |
585 | proc InitGame, b:dword ;¯¥à¢® ç «ìë¥ áâனª¨ ¨£àë |
577 | mov word[eggs_count],0 ;ª®««¨ç¥á⢮ ¯®©¬ ëå ï¨æ |
586 | mov word[eggs_count],0 ;ª®««¨ç¥á⢮ ¯®©¬ ëå ï¨æ |
578 | mov byte[some_text],'0' |
587 | mov byte[some_text],'0' |
579 | mov byte[some_text+1],0 ;⥪áâ á ç¨á«®¬ ¯®©¬ ëå ï¨æ |
588 | mov byte[some_text+1],0 ;⥪áâ á ç¨á«®¬ ¯®©¬ ëå ï¨æ |
580 | mov byte[count_last],0 ;èâà äë¥ ®çª¨ |
589 | mov byte[count_last],0 ;èâà äë¥ ®çª¨ |
581 | mov dword[pos_eggs],0 |
590 | mov dword[pos_eggs],0 |
582 | mov byte[zaac_status],0 |
591 | mov byte[zaac_status],0 |
583 | 592 | ||
584 | push eax ebx |
593 | push eax ebx |
585 | cmp dword[b],0 |
594 | cmp dword[b],0 |
586 | jne @f |
595 | jne @f |
587 | mov byte[game_text+5],'' |
596 | mov byte[game_text+5],'' |
588 | mov eax,dword[game_delay_a] |
597 | mov eax,dword[game_delay_a] |
589 | mov dword[game_spd],eax ;§ ¤¥à¦ª ¨£àë |
598 | mov dword[game_spd],eax ;§ ¤¥à¦ª ¨£àë |
590 | jmp .end_init |
599 | jmp .end_init |
591 | @@: |
600 | @@: |
592 | mov byte[game_text+5],'' |
601 | mov byte[game_text+5],'' |
593 | mov eax,dword[game_delay_b] |
602 | mov eax,dword[game_delay_b] |
594 | mov dword[game_spd],eax ;§ ¤¥à¦ª ¨£àë |
603 | mov dword[game_spd],eax ;§ ¤¥à¦ª ¨£àë |
595 | .end_init: |
604 | .end_init: |
596 | 605 | ||
597 | mcall 26,9 |
606 | mcall 26,9 |
598 | mov dword[rand_x],eax ;§ ¯®«ï¥¬ 1-¥ á«ãç ©®¥ ç¨á«® |
607 | mov dword[rand_x],eax ;§ ¯®«ï¥¬ 1-¥ á«ãç ©®¥ ç¨á«® |
599 | pop ebx eax |
608 | pop ebx eax |
600 | 609 | ||
601 | ret |
610 | ret |
602 | endp |
611 | endp |
603 | 612 | ||
604 | align 4 |
613 | align 4 |
605 | proc LoadArrayBuffer, f_name:dword, buf_start:dword, count:dword |
614 | proc LoadArrayBuffer, f_name:dword, buf_start:dword, count:dword |
606 | pushad |
615 | pushad |
607 | mov edx,dword[displ_bytes] |
616 | mov edx,dword[displ_bytes] |
608 | mov ecx,edx |
617 | mov ecx,edx |
609 | imul ecx,dword[count] |
618 | imul ecx,dword[count] |
610 | mov eax,dword[f_name] |
619 | mov eax,dword[f_name] |
611 | load_image_file eax,image_data_gray,ecx |
620 | load_image_file eax,image_data_gray,ecx |
612 | mov edx,dword[displ_bytes] |
621 | mov edx,dword[displ_bytes] |
613 | mov eax,[image_data_gray] |
622 | mov eax,[image_data_gray] |
614 | mov edi,dword[buf_start] |
623 | mov edi,dword[buf_start] |
615 | mov ecx,dword[count] |
624 | mov ecx,dword[count] |
616 | cld |
625 | cld |
617 | @@: ;áç¨âë¢ ¥¬ 3 ¡ãä¥à á ¤¥ª®à æ¨ï¬¨ |
626 | @@: ;áç¨âë¢ ¥¬ 3 ¡ãä¥à á ¤¥ª®à æ¨ï¬¨ |
618 | stdcall CreateTrapharetBuffer,edi,eax |
627 | stdcall CreateTrapharetBuffer,edi,eax |
619 | add eax,edx |
628 | add eax,edx |
620 | add edi,BUF_STRUCT_SIZE |
629 | add edi,BUF_STRUCT_SIZE |
621 | loop @b |
630 | loop @b |
622 | stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì |
631 | stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì |
623 | popad |
632 | popad |
624 | ret |
633 | ret |
625 | endp |
634 | endp |
626 | 635 | ||
627 | txt_tile_type_0 rb FILE_NAME_MAX |
636 | txt_tile_type_0 rb FILE_NAME_MAX |
628 | 637 | ||
629 | align 4 |
638 | align 4 |
630 | user_is_select: |
639 | user_is_select: |
631 | push ecx esi edi |
640 | push ecx esi edi |
632 | 641 | ||
633 | stdcall [tl_node_get_data], tree1 |
642 | stdcall [tl_node_get_data], tree1 |
634 | pop esi |
643 | pop esi |
635 | cmp esi,0 ;¥á«¨ ¨¬ï ¨£àë ¯ãá⮥ |
644 | cmp esi,0 ;¥á«¨ ¨¬ï ¨£àë ¯ãá⮥ |
636 | je @f |
645 | je @f |
637 | mov edi,ini_name |
646 | mov edi,ini_name |
638 | mov ecx,FILE_NAME_MAX |
647 | mov ecx,FILE_NAME_MAX |
639 | cld |
648 | cld |
640 | rep movsb |
649 | rep movsb |
641 | 650 | ||
642 | mov byte[game_select_mode],0 |
651 | mov byte[game_select_mode],0 |
643 | call InitAll |
652 | call InitAll |
644 | @@: |
653 | @@: |
645 | pop edi esi ecx |
654 | pop edi esi ecx |
646 | 655 | ||
647 | call draw_window |
656 | call draw_window |
648 | ret |
657 | ret |
649 | 658 | ||
650 | ;****************************************************************************** |
659 | ;****************************************************************************** |
651 | ; äãªæ¨ï, ª®â®à ï 1 à § ¤¥« ¥â ¢á¥ áâனª¨ ã¦ë¥ ¤«ï ¨£àë |
660 | ; äãªæ¨ï, ª®â®à ï 1 à § ¤¥« ¥â ¢á¥ áâனª¨ ã¦ë¥ ¤«ï ¨£àë |
652 | ;****************************************************************************** |
661 | ;****************************************************************************** |
653 | align 4 |
662 | align 4 |
654 | InitAll: |
663 | InitAll: |
655 | pushad |
664 | pushad |
656 | ;à ¡®â á ä ©«®¬ áâ஥ª |
665 | ;à ¡®â á ä ©«®¬ áâ஥ª |
657 | copy_path ini_name,sys_path,file_name,0x0 |
666 | copy_path ini_name,sys_path,file_name,0x0 |
658 | stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_w,210 |
667 | stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_w,210 |
659 | mov dword[displ_w],eax |
668 | mov dword[displ_w],eax |
660 | stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_h,140 |
669 | stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_h,140 |
661 | mov dword[displ_h],eax |
670 | mov dword[displ_h],eax |
662 | stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_decorat,fn_icon0,FILE_NAME_MAX,ini_def_decorat_file |
671 | stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_decorat,fn_icon0,FILE_NAME_MAX,ini_def_decorat_file |
663 | stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_unit,fn_icon1,FILE_NAME_MAX,ini_def_unit_file |
672 | stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_unit,fn_icon1,FILE_NAME_MAX,ini_def_unit_file |
664 | stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_objects,fn_icon2,FILE_NAME_MAX,ini_def_objects_file |
673 | stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_objects,fn_icon2,FILE_NAME_MAX,ini_def_objects_file |
665 | stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_lost,fn_icon3,FILE_NAME_MAX,ini_def_lost_file |
674 | stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_lost,fn_icon3,FILE_NAME_MAX,ini_def_lost_file |
666 | 675 | ||
667 | stdcall dword[ini_get_int],file_name,ini_sec_files,key_shadow_x,2 |
676 | stdcall dword[ini_get_int],file_name,ini_sec_files,key_shadow_x,2 |
668 | mov dword[offs_shadow_x],eax |
677 | mov dword[offs_shadow_x],eax |
669 | stdcall dword[ini_get_int],file_name,ini_sec_files,key_shadow_y,2 |
678 | stdcall dword[ini_get_int],file_name,ini_sec_files,key_shadow_y,2 |
670 | mov dword[offs_shadow_y],eax |
679 | mov dword[offs_shadow_y],eax |
671 | 680 | ||
672 | ;áç¨âë¢ ¨¥ áâ஥ª ¢«¨ïîé¨å ᪮àáâì ¨£àë |
681 | ;áç¨âë¢ ¨¥ áâ஥ª ¢«¨ïîé¨å ᪮àáâì ¨£àë |
673 | stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_a,65 |
682 | stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_a,65 |
674 | mov dword[game_delay_a],eax |
683 | mov dword[game_delay_a],eax |
675 | stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_b,35 |
684 | stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_b,35 |
676 | mov dword[game_delay_b],eax |
685 | mov dword[game_delay_b],eax |
677 | stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_min,15 |
686 | stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_min,15 |
678 | mov dword[game_delay_min],eax |
687 | mov dword[game_delay_min],eax |
679 | 688 | ||
680 | stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_fon,0xffffff |
689 | stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_fon,0xffffff |
681 | mov dword[color_fon],eax |
690 | mov dword[color_fon],eax |
682 | stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_shadows,0xd0d0d0 |
691 | stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_shadows,0xd0d0d0 |
683 | mov dword[color_shadows],eax |
692 | mov dword[color_shadows],eax |
684 | stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_unit,0 |
693 | stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_unit,0 |
685 | mov dword[color_wolf],eax |
694 | mov dword[color_wolf],eax |
686 | stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_egg,0x404080 |
695 | stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_egg,0x404080 |
687 | mov dword[color_egg],eax |
696 | mov dword[color_egg],eax |
688 | stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_chick,0x00d0d0 |
697 | stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_chick,0x00d0d0 |
689 | mov dword[color_chick],eax |
698 | mov dword[color_chick],eax |
690 | 699 | ||
691 | mov ebx,color_decorat |
700 | mov ebx,color_decorat |
692 | mov byte[key_color_decorat.ind],'0' |
701 | mov byte[key_color_decorat.ind],'0' |
693 | mov ecx,3 |
702 | mov ecx,3 |
694 | cld |
703 | cld |
695 | @@: |
704 | @@: |
696 | push ecx ;äãªæ¨ï ini_get_color ¨¬¥¥â ¯à ¢® ¬ ïâì ॣ¨áâà ecx |
705 | push ecx ;äãªæ¨ï ini_get_color ¨¬¥¥â ¯à ¢® ¬ ïâì ॣ¨áâà ecx |
697 | stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_decorat,0x000080 |
706 | stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_decorat,0x000080 |
698 | pop ecx |
707 | pop ecx |
699 | mov dword[ebx],eax |
708 | mov dword[ebx],eax |
700 | add ebx,4 |
709 | add ebx,4 |
701 | inc byte[key_color_decorat.ind] |
710 | inc byte[key_color_decorat.ind] |
702 | loop @b |
711 | loop @b |
703 | 712 | ||
704 | mov edx,dword[displ_w] |
713 | mov edx,dword[displ_w] |
705 | imul edx,dword[displ_h] |
714 | imul edx,dword[displ_h] |
706 | lea edx,[edx+edx*2] |
715 | lea edx,[edx+edx*2] |
707 | mov dword[displ_bytes],edx ;¢ëç¨á«ï¥¬ à §¬¥à ¨£à®¢®£® ¯®«ï |
716 | mov dword[displ_bytes],edx ;¢ëç¨á«ï¥¬ à §¬¥à ¨£à®¢®£® ¯®«ï |
708 | 717 | ||
709 | stdcall LoadArrayBuffer, fn_icon0, buf_decor,3 ;áç¨âë¢ ¥¬ 3 ¡ãä¥à á ¤¥ª®à æ¨ï¬¨ |
718 | stdcall LoadArrayBuffer, fn_icon0, buf_decor,3 ;áç¨âë¢ ¥¬ 3 ¡ãä¥à á ¤¥ª®à æ¨ï¬¨ |
710 | stdcall LoadArrayBuffer, fn_icon1, buf_wolf,9 ;áç¨âë¢ ¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬ |
719 | stdcall LoadArrayBuffer, fn_icon1, buf_wolf,9 ;áç¨âë¢ ¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬ |
711 | stdcall LoadArrayBuffer, fn_icon2, buf_egg,22 ;áç¨âë¢ ¥¬ 22 ¡ãä¥à®¢ á ï©æ ¬¨ |
720 | stdcall LoadArrayBuffer, fn_icon2, buf_egg,22 ;áç¨âë¢ ¥¬ 22 ¡ãä¥à®¢ á ï©æ ¬¨ |
712 | stdcall LoadArrayBuffer, fn_icon3, buf_chi,13 ;áç¨âë¢ ¥¬ 13 ¡ãä¥à®¢ á 樯«ïâ ¬¨ |
721 | stdcall LoadArrayBuffer, fn_icon3, buf_chi,13 ;áç¨âë¢ ¥¬ 13 ¡ãä¥à®¢ á 樯«ïâ ¬¨ |
713 | 722 | ||
714 | load_image_file fn_font, image_data_gray,IMAGE_FONT_SIZE |
723 | load_image_file 'font8x9.bmp', image_data_gray,IMAGE_FONT_SIZE |
715 | stdcall [buf2d_create_f_img], buf_font,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à |
724 | stdcall [buf2d_create_f_img], buf_font,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à |
716 | stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì |
725 | stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì |
717 | 726 | ||
718 | stdcall [buf2d_conv_24_to_8], buf_font,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç®á⨠8 ¡¨â |
727 | stdcall [buf2d_conv_24_to_8], buf_font,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç®á⨠8 ¡¨â |
719 | stdcall [buf2d_convert_text_matrix], buf_font |
728 | stdcall [buf2d_convert_text_matrix], buf_font |
720 | 729 | ||
721 | ;¯à®¢¥àª § ¨¬ ¥¬®£® ¡ãä¥à®¬ ¬¥áâ |
730 | ;¯à®¢¥àª § ¨¬ ¥¬®£® ¡ãä¥à®¬ ¬¥áâ |
722 | ;mov edi,buf_wolf |
731 | ;mov edi,buf_wolf |
723 | ;add edi,BUF_STRUCT_SIZE ;¯¥à¥å®¤¨¬ ¡ãä¥à ª®à§¨ë |
732 | ;add edi,BUF_STRUCT_SIZE ;¯¥à¥å®¤¨¬ ¡ãä¥à ª®à§¨ë |
724 | ;stdcall [buf2d_clear],edi,0x808080 ;§ «¨¢ ¥¬ ¥£® á¥àë¬ æ¢¥â®¬ |
733 | ;stdcall [buf2d_clear],edi,0x808080 ;§ «¨¢ ¥¬ ¥£® á¥àë¬ æ¢¥â®¬ |
725 | 734 | ||
726 | mov ebx,dword[displ_w] |
735 | mov ebx,dword[displ_w] |
727 | mov edx,dword[displ_h] |
736 | mov edx,dword[displ_h] |
728 | 737 | ||
729 | mov edi,buf_displ |
738 | mov edi,buf_displ |
730 | mov buf2d_w,ebx |
739 | mov buf2d_w,ebx |
731 | mov buf2d_h,edx |
740 | mov buf2d_h,edx |
732 | stdcall [buf2d_create], buf_displ ;ᮧ¤ ¥¬ ¡ãä¥à ¤«ï ¢ë¢®¤ íªà |
741 | stdcall [buf2d_create], buf_displ ;ᮧ¤ ¥¬ ¡ãä¥à ¤«ï ¢ë¢®¤ íªà |
733 | 742 | ||
734 | mov edi,buf_fon |
743 | mov edi,buf_fon |
735 | mov buf2d_w,ebx |
744 | mov buf2d_w,ebx |
736 | mov buf2d_h,edx |
745 | mov buf2d_h,edx |
737 | stdcall [buf2d_create], buf_fon ;ᮧ¤ ¥¬ ¡ãä¥à á ä®®¢ë¬¨ ¤¥ª®à æ¨ï¬¨ |
746 | stdcall [buf2d_create], buf_fon ;ᮧ¤ ¥¬ ¡ãä¥à á ä®®¢ë¬¨ ¤¥ª®à æ¨ï¬¨ |
738 | 747 | ||
739 | call InitBackgroundBuffer ;§ ¯®«ï¥¬ ¡ãä¥à á ä®®¢ë¬¨ ¤¥ª®à æ¨ï¬¨ |
748 | call InitBackgroundBuffer ;§ ¯®«ï¥¬ ¡ãä¥à á ä®®¢ë¬¨ ¤¥ª®à æ¨ï¬¨ |
740 | stdcall InitGame,0 |
749 | stdcall InitGame,0 |
741 | popad |
750 | popad |
742 | ret |
751 | ret |
743 | 752 | ||
744 | align 4 |
753 | align 4 |
745 | start: |
754 | start: |
746 | load_libraries l_libs_start,load_lib_end |
755 | load_libraries l_libs_start,load_lib_end |
747 | 756 | ||
748 | ;¯à®¢¥àª ᪮«ìª® ã¤ ç® § £ã§¨« áì è «¨¡ |
757 | ;¯à®¢¥àª ᪮«ìª® ã¤ ç® § £ã§¨« áì è «¨¡ |
749 | mov ebp,lib0 |
758 | mov ebp,lib0 |
750 | cmp dword [ebp+ll_struc_size-4],0 |
759 | cmp dword [ebp+ll_struc_size-4],0 |
751 | jz @f |
760 | jz @f |
752 | mcall -1 ;exit not correct |
761 | mcall -1 ;exit not correct |
753 | @@: |
762 | @@: |
754 | mov ebp,lib1 |
763 | mov ebp,lib1 |
755 | cmp dword [ebp+ll_struc_size-4],0 |
764 | cmp dword [ebp+ll_struc_size-4],0 |
756 | jz @f |
765 | jz @f |
757 | mcall -1 ;exit not correct |
766 | mcall -1 ;exit not correct |
758 | @@: |
767 | @@: |
759 | 768 | ||
760 | mcall 40,0x27 |
769 | mcall 40,0x27 |
761 | mcall 48,3,sc,sizeof.system_colors ;¯®«ãç ¥¬ á¨áâ¥¬ë¥ æ¢¥â |
770 | mcall 48,3,sc,sizeof.system_colors ;¯®«ãç ¥¬ á¨áâ¥¬ë¥ æ¢¥â |
762 | 771 | ||
763 | ;****************************************************************************** |
772 | ;****************************************************************************** |
764 | ; ¯®¤£®â®¢ª ᯨ᪠¨£®à |
773 | ; ¯®¤£®â®¢ª ᯨ᪠¨£®à |
765 | ;****************************************************************************** |
774 | ;****************************************************************************** |
766 | stdcall dword[tl_data_init], tree1 |
775 | stdcall dword[tl_data_init], tree1 |
767 | 776 | ||
768 | load_image_file fn_icon_tl_sys, image_data_gray,TREE_ICON_SYS16_BMP_SIZE |
777 | load_image_file 'tl_sys_16.png', image_data_gray,TREE_ICON_SYS16_BMP_SIZE |
769 | stdcall [buf2d_create_f_img], buf_tree_sys,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à |
778 | stdcall [buf2d_create_f_img], buf_tree_sys,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à |
770 | stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì |
779 | stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì |
771 | 780 | ||
772 | mov edi,buf_tree_sys |
781 | mov edi,buf_tree_sys |
773 | m2m dword[tree1.data_img_sys],buf2d_data |
782 | m2m dword[tree1.data_img_sys],buf2d_data |
774 | 783 | ||
775 | ;à ¡®â á £« ¢ë¬ ä ©«®¬ áâ஥ª |
784 | ;à ¡®â á £« ¢ë¬ ä ©«®¬ áâ஥ª |
776 | copy_path ini_m_name,sys_path,file_name,0x0 |
785 | copy_path ini_m_name,sys_path,file_name,0x0 |
777 | 786 | ||
778 | stdcall dword[ini_get_int],file_name,ini_sec_files,key_count,1 |
787 | stdcall dword[ini_get_int],file_name,ini_sec_files,key_count,1 |
779 | mov ecx,eax |
788 | mov ecx,eax |
780 | mov dl,'0' |
789 | mov dl,'0' |
781 | cld |
790 | cld |
782 | @@: |
791 | @@: |
783 | mov byte[key_game_ind],dl |
792 | mov byte[key_game_ind],dl |
784 | inc dl |
793 | inc dl |
785 | push ecx edx |
794 | push ecx edx |
786 | stdcall dword[ini_get_str],file_name,ini_sec_files,key_game,txt_tile_type_0,FILE_NAME_MAX,ini_def_decorat_file |
795 | stdcall dword[ini_get_str],file_name,ini_sec_files,key_game,txt_tile_type_0,FILE_NAME_MAX,ini_def_decorat_file |
787 | stdcall dword[tl_node_add], txt_tile_type_0, 0, tree1 ;¤®¡ ¢«ï¥¬ §¢ ¨¥ ¨£àë |
796 | stdcall dword[tl_node_add], txt_tile_type_0, 0, tree1 ;¤®¡ ¢«ï¥¬ §¢ ¨¥ ¨£àë |
788 | stdcall dword[tl_cur_next], tree1 ;¯¥à¥®á¨¬ ªãàá®à ¢¨§, çâ®-¡ë ¥ ¯®¬¥ï«áï ¯®à冷ª ¨£à |
797 | stdcall dword[tl_cur_next], tree1 ;¯¥à¥®á¨¬ ªãàá®à ¢¨§, çâ®-¡ë ¥ ¯®¬¥ï«áï ¯®à冷ª ¨£à |
789 | pop edx ecx |
798 | pop edx ecx |
790 | loop @b |
799 | loop @b |
791 | stdcall dword[tl_cur_beg], tree1 ;¯¥à¥®á¨¬ ªãàá®à ¢¢¥àå |
800 | stdcall dword[tl_cur_beg], tree1 ;¯¥à¥®á¨¬ ªãàá®à ¢¢¥àå |
792 | 801 | ||
793 | mcall 26,9 |
802 | mcall 26,9 |
794 | mov [last_time],ebx |
803 | mov [last_time],eax |
795 | 804 | ||
796 | 805 | ||
797 | 806 | ||
798 | align 4 |
807 | align 4 |
799 | red_win: |
808 | red_win: |
800 | call draw_window |
809 | call draw_window |
801 | 810 | ||
802 | align 4 |
811 | align 4 |
803 | still: ;£« ¢ë© 横« |
812 | still: ;£« ¢ë© 横« |
804 | 813 | ||
805 | cmp byte[game_select_mode],0 |
814 | cmp byte[game_select_mode],0 |
806 | jne .select_mode |
815 | jne .select_mode |
807 | 816 | ||
808 | mcall 26,9 ;¡¥à¥¬ á¨á⥬®¥ ¢à¥¬ï |
817 | mcall 26,9 ;¡¥à¥¬ á¨á⥬®¥ ¢à¥¬ï |
809 | mov ebx,[last_time] |
818 | mov ebx,[last_time] |
810 | add ebx,dword[game_spd] ;delay |
819 | add ebx,dword[game_spd] ;delay |
811 | sub ebx,eax |
820 | sub ebx,eax |
812 | cmp ebx,dword[game_spd] ;delay |
821 | cmp ebx,dword[game_spd] ;delay |
813 | ja it_is_time_now |
822 | ja it_is_time_now |
814 | test ebx,ebx |
823 | test ebx,ebx |
815 | jz it_is_time_now |
824 | jz it_is_time_now |
816 | mcall 23 |
825 | mcall 23 |
817 | - | ||
818 | cmp eax,0 |
826 | cmp eax,0 |
819 | je it_is_time_now |
827 | je it_is_time_now |
820 | 828 | ||
821 | jmp @f |
829 | jmp @f |
822 | .select_mode: |
830 | .select_mode: |
823 | mcall 10 |
831 | mcall 10 |
824 | @@: |
832 | @@: |
825 | 833 | ||
826 | cmp al,1 ;¨§¬¥¨«®áì ¯®«®¦¥¨¥ ®ª |
834 | cmp al,1 ;¨§¬¥¨«®áì ¯®«®¦¥¨¥ ®ª |
827 | jz red_win |
835 | jz red_win |
828 | cmp al,2 |
836 | cmp al,2 |
829 | jz key |
837 | jz key |
830 | cmp al,3 |
838 | cmp al,3 |
831 | jz button |
839 | jz button |
832 | cmp al,6 |
840 | cmp al,6 |
833 | jz mouse |
841 | jz mouse |
834 | 842 | ||
835 | jmp still |
843 | jmp still |
836 | 844 | ||
837 | align 4 |
845 | align 4 |
838 | mouse: |
846 | mouse: |
839 | cmp byte[game_select_mode],0 |
847 | cmp byte[game_select_mode],0 |
840 | je @f |
848 | je @f |
841 | stdcall [tl_mouse], tree1 ;¥á«¨ ¨£à ¥é¥ ¥ ¢ë¡à |
849 | stdcall [tl_mouse], tree1 ;¥á«¨ ¨£à ¥é¥ ¥ ¢ë¡à |
842 | @@: |
850 | @@: |
843 | jmp still |
851 | jmp still |
844 | 852 | ||
845 | align 4 |
853 | align 4 |
846 | it_is_time_now: |
854 | it_is_time_now: |
847 | mcall 26,9 |
855 | mcall 26,9 |
848 | mov [last_time],eax |
856 | mov [last_time],eax |
849 | 857 | ||
850 | cmp byte[game_select_mode],0 |
858 | ;cmp byte[game_select_mode],0 |
851 | jne still |
859 | ;jne still |
852 | 860 | ||
853 | ;...§¤¥áì ¨¤ãâ ¤¥©á⢨ï, ¢ë§ë¢ ¥¬ë¥ ª ¦¤ë¥ delay á®âëå ¤®«¥© ᥪã¤... |
861 | ;...§¤¥áì ¨¤ãâ ¤¥©á⢨ï, ¢ë§ë¢ ¥¬ë¥ ª ¦¤ë¥ delay á®âëå ¤®«¥© ᥪã¤... |
854 | call MoveEggs |
862 | call MoveEggs |
855 | call draw_display |
863 | call draw_display |
856 | jmp still |
864 | jmp still |
857 | 865 | ||
858 | align 4 |
866 | align 4 |
859 | key: |
867 | key: |
860 | push eax ebx |
868 | push eax ebx |
861 | mcall 2 |
869 | mcall 2 |
862 | 870 | ||
863 | cmp byte[game_select_mode],0 |
871 | cmp byte[game_select_mode],0 |
864 | je @f |
872 | je @f |
865 | stdcall [tl_key], tree1 |
873 | stdcall [tl_key], tree1 |
866 | @@: |
874 | @@: |
867 | 875 | ||
868 | cmp ah,176 ;Left |
876 | cmp ah,176 ;Left |
869 | jne @f |
877 | jne @f |
870 | and byte[pos_wolf],0xfe |
878 | and byte[pos_wolf],0xfe |
871 | @@: |
879 | @@: |
872 | cmp ah,179 ;Right |
880 | cmp ah,179 ;Right |
873 | jne @f |
881 | jne @f |
874 | or byte[pos_wolf],1 |
882 | or byte[pos_wolf],1 |
875 | @@: |
883 | @@: |
876 | cmp ah,178 ;Up |
884 | cmp ah,178 ;Up |
877 | jne @f |
885 | jne @f |
878 | and byte[pos_wolf],0xff-2 |
886 | and byte[pos_wolf],0xff-2 |
879 | @@: |
887 | @@: |
880 | cmp ah,177 ;Down |
888 | cmp ah,177 ;Down |
881 | jne @f |
889 | jne @f |
882 | or byte[pos_wolf],2 |
890 | or byte[pos_wolf],2 |
883 | @@: |
891 | @@: |
884 | 892 | ||
885 | cmp ah,97 ;a |
893 | cmp ah,97 ;a |
886 | jne @f |
894 | jne @f |
887 | and byte[pos_wolf],0xff-3 ;00 |
895 | and byte[pos_wolf],0xff-3 ;00 |
888 | @@: |
896 | @@: |
889 | cmp ah,122 ;z |
897 | cmp ah,122 ;z |
890 | jne @f |
898 | jne @f |
891 | and byte[pos_wolf],0xff-1 |
899 | and byte[pos_wolf],0xff-1 |
892 | or byte[pos_wolf],2 ;10 |
900 | or byte[pos_wolf],2 ;10 |
893 | @@: |
901 | @@: |
894 | cmp ah,39 ;' |
902 | cmp ah,39 ;' |
895 | jne @f |
903 | jne @f |
896 | and byte[pos_wolf],0xff-2 |
904 | and byte[pos_wolf],0xff-2 |
897 | or byte[pos_wolf],1 ;01 |
905 | or byte[pos_wolf],1 ;01 |
898 | @@: |
906 | @@: |
899 | cmp ah,47 ;/ |
907 | cmp ah,47 ;/ |
900 | jne @f |
908 | jne @f |
901 | or byte[pos_wolf],3 ;11 |
909 | or byte[pos_wolf],3 ;11 |
902 | @@: |
910 | @@: |
903 | 911 | ||
904 | pop ebx eax |
912 | pop ebx eax |
905 | jmp still |
913 | jmp still |
906 | 914 | ||
907 | 915 | ||
908 | align 4 |
916 | align 4 |
909 | draw_window: |
917 | draw_window: |
910 | pushad |
918 | pushad |
911 | mcall 12,1 |
919 | mcall 12,1 |
912 | 920 | ||
913 | xor eax,eax |
921 | xor eax,eax |
914 | mov ebx,20*65536+480 |
922 | mov ebx,20*65536+480 |
915 | mov ecx,20*65536+270 |
923 | mov ecx,20*65536+270 |
916 | mov edx,[sc.work] |
924 | mov edx,[sc.work] |
917 | ;or edx,0x33000000 |
925 | ;or edx,0x33000000 |
918 | or edx,0x73000000 |
926 | or edx,0x73000000 |
919 | mov edi,hed |
927 | mov edi,hed |
920 | mcall ;ᮧ¤ ¨¥ ®ª |
928 | mcall ;ᮧ¤ ¨¥ ®ª |
921 | mcall 9,procinfo,-1 |
929 | mcall 9,procinfo,-1 |
922 | 930 | ||
923 | cmp byte[game_select_mode],0 |
931 | cmp byte[game_select_mode],0 |
924 | jne .select_mode |
932 | jne .select_mode |
925 | 933 | ||
926 | mov edi,buf_displ |
934 | mov edi,buf_displ |
927 | mov eax,dword[procinfo.client_box.width] |
935 | mov eax,dword[procinfo.client_box.width] |
928 | cmp eax,dword[displ_w] |
936 | cmp eax,dword[displ_w] |
929 | jle @f |
937 | jle @f |
930 | sub eax,dword[displ_w] |
938 | sub eax,dword[displ_w] |
931 | shr eax,1 |
939 | shr eax,1 |
932 | mov buf2d_l,ax ;¢ë¯à ¢¨¢ ¥¬ ¡ãä¥à ¯® æ¥âàã ®ª |
940 | mov buf2d_l,ax ;¢ë¯à ¢¨¢ ¥¬ ¡ãä¥à ¯® æ¥âàã ®ª |
933 | @@: |
941 | @@: |
934 | 942 | ||
935 | call draw_display |
943 | call draw_display |
936 | 944 | ||
937 | mov eax,13 ;à¨á®¢ ¨¥ ¯àאַ㣮«ì¨ª |
945 | mov eax,13 ;à¨á®¢ ¨¥ ¯àאַ㣮«ì¨ª |
938 | mov edx,[sc.work] |
946 | mov edx,[sc.work] |
939 | xor esi,esi |
947 | xor esi,esi |
940 | mov si,buf2d_l |
948 | mov si,buf2d_l |
941 | add esi,dword[displ_w] |
949 | add esi,dword[displ_w] |
942 | mov ebx,dword[procinfo.client_box.width] |
950 | mov ebx,dword[procinfo.client_box.width] |
943 | inc ebx |
951 | inc ebx |
944 | cmp esi,ebx |
952 | cmp esi,ebx |
945 | jge @f |
953 | jge @f |
946 | sub ebx,esi |
954 | sub ebx,esi |
947 | rol ebx,16 |
955 | rol ebx,16 |
948 | mov bx,si |
956 | mov bx,si |
949 | rol ebx,16 |
957 | rol ebx,16 |
950 | mov ecx,dword[procinfo.client_box.height] |
958 | mov ecx,dword[procinfo.client_box.height] |
951 | inc ecx |
959 | inc ecx |
952 | int 0x40 ;à¨á®¢ ¨¥ ¯à ¢®£® ¡®ª®¢®£® ¯®«ï |
960 | int 0x40 ;à¨á®¢ ¨¥ ¯à ¢®£® ¡®ª®¢®£® ¯®«ï |
953 | jmp .draw_s |
961 | jmp .draw_s |
954 | @@: |
962 | @@: |
955 | mov esi,dword[procinfo.client_box.width] ;ª®£¤ ¯® è¨à¨¥ ¥ ¢« §¨â |
963 | mov esi,dword[procinfo.client_box.width] ;ª®£¤ ¯® è¨à¨¥ ¥ ¢« §¨â |
956 | inc esi |
964 | inc esi |
957 | .draw_s: |
965 | .draw_s: |
958 | 966 | ||
959 | ; *** à¨á®¢ ¨¥ ª®¯®ª *** |
967 | ; *** à¨á®¢ ¨¥ ª®¯®ª *** |
960 | push esi |
968 | push esi |
961 | mov eax,8 |
969 | mov eax,8 |
962 | xor ebx,ebx |
970 | xor ebx,ebx |
963 | mov bx,buf2d_l |
971 | mov bx,buf2d_l |
964 | add ebx,buf2d_w |
972 | add ebx,buf2d_w |
965 | add ebx,BUT1_L |
973 | add ebx,BUT1_L |
966 | shl ebx,16 |
974 | shl ebx,16 |
967 | mov bx,BUT1_W |
975 | mov bx,BUT1_W |
968 | mov ecx,BUT1_T*65536+BUT1_H |
976 | mov ecx,BUT1_T*65536+BUT1_H |
969 | mov edx,5 |
977 | mov edx,5 |
970 | ;or edx,0x40000000 |
978 | ;or edx,0x40000000 |
971 | mov esi,dword[color_but_sm] |
979 | mov esi,dword[color_but_sm] |
972 | int 0x40 |
980 | int 0x40 |
973 | 981 | ||
974 | inc edx |
982 | inc edx |
975 | add ecx,BUT1_NEXT_TOP |
983 | add ecx,BUT1_NEXT_TOP |
976 | int 0x40 |
984 | int 0x40 |
977 | pop esi |
985 | pop esi |
978 | 986 | ||
979 | mov eax,4 ; ð¡R÷ÿ-ð? ¢?ò¡¢ÿ |
987 | mov eax,4 ; ð¡R÷ÿ-ð? ¢?ò¡¢ÿ |
980 | mov bx,BUT1_H |
988 | mov bx,BUT1_H |
981 | add ebx,3*65536;+3 |
989 | add ebx,3*65536;+3 |
982 | mov ecx,dword[color_but_te] |
990 | mov ecx,dword[color_but_te] |
983 | or ecx,0x80000000 |
991 | or ecx,0x80000000 |
984 | mov edx,txt_game_a |
992 | mov edx,txt_game_a |
985 | int 0x40 |
993 | int 0x40 |
986 | 994 | ||
987 | ror ebx,16 |
995 | ror ebx,16 |
988 | add ebx,BUT1_NEXT_TOP |
996 | add ebx,BUT1_NEXT_TOP |
989 | ror ebx,16 |
997 | ror ebx,16 |
990 | mov edx,txt_game_b |
998 | mov edx,txt_game_b |
991 | int 0x40 |
999 | int 0x40 |
992 | 1000 | ||
993 | ; *** ¢®ááâ ®¢«¥¨¥ ¯ à ¬¥â஢ *** |
1001 | ; *** ¢®ááâ ®¢«¥¨¥ ¯ à ¬¥â஢ *** |
994 | mov eax,13 ;à¨á®¢ ¨¥ ¯àאַ㣮«ì¨ª |
1002 | mov eax,13 ;à¨á®¢ ¨¥ ¯àאַ㣮«ì¨ª |
995 | mov edx,[sc.work] |
1003 | mov edx,[sc.work] |
996 | 1004 | ||
997 | mov ebx,esi |
1005 | mov ebx,esi |
998 | mov ecx,dword[procinfo.client_box.height] |
1006 | mov ecx,dword[procinfo.client_box.height] |
999 | inc ecx |
1007 | inc ecx |
1000 | mov esi,dword[displ_h] |
1008 | mov esi,dword[displ_h] |
1001 | cmp esi,ebx |
1009 | cmp esi,ebx |
1002 | jge @f |
1010 | jge @f |
1003 | sub ecx,esi |
1011 | sub ecx,esi |
1004 | rol ecx,16 |
1012 | rol ecx,16 |
1005 | mov cx,si |
1013 | mov cx,si |
1006 | rol ecx,16 |
1014 | rol ecx,16 |
1007 | int 0x40 ;à¨á®¢ ¨¥ ¨¦¥£® ¯®«ï |
1015 | int 0x40 ;à¨á®¢ ¨¥ ¨¦¥£® ¯®«ï |
1008 | @@: |
1016 | @@: |
1009 | 1017 | ||
1010 | xor ebx,ebx |
1018 | xor ebx,ebx |
1011 | mov bx,buf2d_l |
1019 | mov bx,buf2d_l |
1012 | mov ecx,dword[displ_h] |
1020 | mov ecx,dword[displ_h] |
1013 | int 0x40 ;à¨á®¢ ¨¥ «¥¢®£® ¡®ª®¢®£® ¯®«ï |
1021 | int 0x40 ;à¨á®¢ ¨¥ «¥¢®£® ¡®ª®¢®£® ¯®«ï |
1014 | 1022 | ||
1015 | jmp @f |
1023 | jmp @f |
1016 | .select_mode: |
1024 | .select_mode: |
1017 | stdcall dword[tl_draw],dword tree1 |
1025 | stdcall dword[tl_draw],dword tree1 |
1018 | mov edi,tree1 |
1026 | mov edi,tree1 |
1019 | add edi,tl_offs_box |
1027 | add edi,tl_offs_box |
1020 | stdcall draw_rect_border, procinfo.client_box, edi |
1028 | stdcall draw_rect_border, procinfo.client_box, edi |
1021 | @@: |
1029 | @@: |
1022 | 1030 | ||
1023 | mcall 12,2 |
1031 | mcall 12,2 |
1024 | popad |
1032 | popad |
1025 | ret |
1033 | ret |
1026 | 1034 | ||
1027 | ; äãªæ¨ï à¨áã¥â ¯®«ï ¢®ªà㣠¯àאַ㣮«ì¨ª user_box |
1035 | ; äãªæ¨ï à¨áã¥â ¯®«ï ¢®ªà㣠¯àאַ㣮«ì¨ª user_box |
1028 | ; à §¬¥à ¯®«¥© ¢ëç¨á«ï¥âáï ¨áå®¤ï ¨§ à §¬¥à®¢ client_rect |
1036 | ; à §¬¥à ¯®«¥© ¢ëç¨á«ï¥âáï ¨áå®¤ï ¨§ à §¬¥à®¢ client_rect |
1029 | ; ¯à¥¤¯®« £ ¥âáï, çâ® ¢ ¡®«ìè¨á⢥ á«ãç ¥¢ client_rect > user_box |
1037 | ; ¯à¥¤¯®« £ ¥âáï, çâ® ¢ ¡®«ìè¨á⢥ á«ãç ¥¢ client_rect > user_box |
1030 | align 4 |
1038 | align 4 |
1031 | proc draw_rect_border, client_rect:dword, user_box:dword |
1039 | proc draw_rect_border, client_rect:dword, user_box:dword |
1032 | pushad |
1040 | pushad |
1033 | mov edi,dword[client_rect] |
1041 | mov edi,dword[client_rect] |
1034 | mov esi,dword[user_box] |
1042 | mov esi,dword[user_box] |
1035 | cmp esi,0 |
1043 | cmp esi,0 |
1036 | je @f |
1044 | je @f |
1037 | mov ebx,dword[edi+8] ;+8 = width |
1045 | mov ebx,dword[edi+8] ;+8 = width |
1038 | inc bx |
1046 | inc bx |
1039 | mov ecx,dword[esi+4] ;+4 = top |
1047 | mov ecx,dword[esi+4] ;+4 = top |
1040 | mov edx,[sc.work] |
1048 | mov edx,[sc.work] |
1041 | mov eax,13 |
1049 | mov eax,13 |
1042 | int 0x40 ;top |
1050 | int 0x40 ;top |
1043 | 1051 | ||
1044 | mov eax,dword[esi+4] ;+4 = top |
1052 | mov eax,dword[esi+4] ;+4 = top |
1045 | add eax,dword[esi+12] ;+12 = height |
1053 | add eax,dword[esi+12] ;+12 = height |
1046 | cmp eax,dword[edi+12] |
1054 | cmp eax,dword[edi+12] |
1047 | jge .no_bottom |
1055 | jge .no_bottom |
1048 | mov ecx,eax |
1056 | mov ecx,eax |
1049 | shl ecx,16 |
1057 | shl ecx,16 |
1050 | mov cx,word[edi+12] ;+12 = bottom |
1058 | mov cx,word[edi+12] ;+12 = bottom |
1051 | inc cx |
1059 | inc cx |
1052 | sub cx,ax |
1060 | sub cx,ax |
1053 | mov eax,13 |
1061 | mov eax,13 |
1054 | int 0x40 ;bottom |
1062 | int 0x40 ;bottom |
1055 | .no_bottom: |
1063 | .no_bottom: |
1056 | 1064 | ||
1057 | mov ebx,dword[esi] ;+0 left |
1065 | mov ebx,dword[esi] ;+0 left |
1058 | mov ecx,dword[esi+4] ;+4 = top |
1066 | mov ecx,dword[esi+4] ;+4 = top |
1059 | shl ecx,16 |
1067 | shl ecx,16 |
1060 | mov cx,word[esi+12] ;+12 = height |
1068 | mov cx,word[esi+12] ;+12 = height |
1061 | inc cx |
1069 | inc cx |
1062 | mov eax,13 |
1070 | mov eax,13 |
1063 | int 0x40 ;left |
1071 | int 0x40 ;left |
1064 | 1072 | ||
1065 | mov eax,dword[esi] ;+0 left |
1073 | mov eax,dword[esi] ;+0 left |
1066 | add eax,dword[esi+8] ;+8 = width |
1074 | add eax,dword[esi+8] ;+8 = width |
1067 | mov ebx,eax |
1075 | mov ebx,eax |
1068 | shl ebx,16 |
1076 | shl ebx,16 |
1069 | mov bx,word[edi+8] ;+8 = right |
1077 | mov bx,word[edi+8] ;+8 = right |
1070 | sub bx,ax |
1078 | sub bx,ax |
1071 | inc bx |
1079 | inc bx |
1072 | mov eax,13 |
1080 | mov eax,13 |
1073 | int 0x40 ;right |
1081 | int 0x40 ;right |
1074 | @@: |
1082 | @@: |
1075 | popad |
1083 | popad |
1076 | ret |
1084 | ret |
1077 | endp |
1085 | endp |
1078 | 1086 | ||
1079 | align 4 |
1087 | align 4 |
1080 | draw_display: |
1088 | draw_display: |
1081 | 1089 | ||
1082 | stdcall mem_copy, dword[buf_fon],dword[buf_displ],dword[displ_bytes] ;ª®¯¨à®¢ ¨¥ ¨§®¡à ¦¥¨ï ¨§ ä®®¢®£® ¡ãä¥à |
1090 | stdcall mem_copy, dword[buf_fon],dword[buf_displ],dword[displ_bytes] ;ª®¯¨à®¢ ¨¥ ¨§®¡à ¦¥¨ï ¨§ ä®®¢®£® ¡ãä¥à |
1083 | call DrawZaac ;à¨á㥬 § ©æ |
1091 | call DrawZaac ;à¨á㥬 § ©æ |
1084 | call DrawWolf ;à¨á㥬 ¢®«ª |
1092 | call DrawWolf ;à¨á㥬 ¢®«ª |
1085 | call DrawEggs ;à¨á㥬 ï©æ |
1093 | call DrawEggs ;à¨á㥬 ï©æ |
1086 | 1094 | ||
1087 | push eax |
1095 | push eax |
1088 | mov eax,dword[displ_w] |
1096 | mov eax,dword[displ_w] |
1089 | shr eax,1 |
1097 | shr eax,1 |
1090 | stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,eax,[offs_shadow_x],[color_wolf] ;à¨á㥬 áâபã á ⥪á⮬ |
1098 | stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,eax,[offs_shadow_x],[color_wolf] ;à¨á㥬 áâபã á ⥪á⮬ |
1091 | pop eax |
1099 | pop eax |
1092 | stdcall [buf2d_draw], buf_displ |
1100 | stdcall [buf2d_draw], buf_displ |
1093 | ret |
1101 | ret |
1094 | 1102 | ||
1095 | align 4 |
1103 | align 4 |
1096 | button: |
1104 | button: |
1097 | mcall 17 ;¯®«ãç¨âì ª®¤ ¦ ⮩ ª®¯ª¨ |
1105 | mcall 17 ;¯®«ãç¨âì ª®¤ ¦ ⮩ ª®¯ª¨ |
1098 | 1106 | ||
1099 | cmp ah,5 |
1107 | cmp ah,5 |
1100 | jne @f |
1108 | jne @f |
1101 | stdcall InitGame,0 |
1109 | stdcall InitGame,0 |
1102 | @@: |
1110 | @@: |
1103 | cmp ah,6 |
1111 | cmp ah,6 |
1104 | jne @f |
1112 | jne @f |
1105 | stdcall InitGame,1 |
1113 | stdcall InitGame,1 |
1106 | @@: |
1114 | @@: |
1107 | cmp ah,1 |
1115 | cmp ah,1 |
1108 | jne still |
1116 | jne still |
1109 | .exit: |
1117 | .exit: |
1110 | stdcall [buf2d_delete],buf_fon ;㤠«ï¥¬ ¡ãä¥à |
1118 | stdcall [buf2d_delete],buf_fon ;㤠«ï¥¬ ¡ãä¥à |
1111 | stdcall [buf2d_delete],buf_displ ;㤠«ï¥¬ ¡ãä¥à |
1119 | stdcall [buf2d_delete],buf_displ ;㤠«ï¥¬ ¡ãä¥à |
1112 | 1120 | ||
1113 | stdcall [buf2d_delete],buf_tree_sys |
1121 | stdcall [buf2d_delete],buf_tree_sys |
1114 | stdcall [buf2d_delete],buf_font |
1122 | stdcall [buf2d_delete],buf_font |
1115 | 1123 | ||
1116 | cld |
1124 | cld |
1117 | mov ecx,3 |
1125 | mov ecx,3 |
1118 | mov edi,buf_decor |
1126 | mov edi,buf_decor |
1119 | @@: ;㤠«ï¥¬ 3 ¡ãä¥à |
1127 | @@: ;㤠«ï¥¬ 3 ¡ãä¥à |
1120 | stdcall [buf2d_delete],edi |
1128 | stdcall [buf2d_delete],edi |
1121 | add edi,BUF_STRUCT_SIZE |
1129 | add edi,BUF_STRUCT_SIZE |
1122 | loop @b |
1130 | loop @b |
1123 | mov ecx,9 |
1131 | mov ecx,9 |
1124 | mov edi,buf_wolf |
1132 | mov edi,buf_wolf |
1125 | @@: ;㤠«ï¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬ |
1133 | @@: ;㤠«ï¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬ |
1126 | stdcall [buf2d_delete],edi |
1134 | stdcall [buf2d_delete],edi |
1127 | add edi,BUF_STRUCT_SIZE |
1135 | add edi,BUF_STRUCT_SIZE |
1128 | loop @b |
1136 | loop @b |
1129 | mov ecx,13 |
1137 | mov ecx,13 |
1130 | mov edi,buf_chi |
1138 | mov edi,buf_chi |
1131 | @@: ;㤠«ï¥¬ 13 ¡ãä¥à®¢ |
1139 | @@: ;㤠«ï¥¬ 13 ¡ãä¥à®¢ |
1132 | stdcall [buf2d_delete],edi |
1140 | stdcall [buf2d_delete],edi |
1133 | add edi,BUF_STRUCT_SIZE |
1141 | add edi,BUF_STRUCT_SIZE |
1134 | loop @b |
1142 | loop @b |
1135 | mov ecx,22 |
1143 | mov ecx,22 |
1136 | mov edi,buf_egg |
1144 | mov edi,buf_egg |
1137 | @@: ;㤠«ï¥¬ 22 ¡ãä¥à |
1145 | @@: ;㤠«ï¥¬ 22 ¡ãä¥à |
1138 | stdcall [buf2d_delete],edi |
1146 | stdcall [buf2d_delete],edi |
1139 | add edi,BUF_STRUCT_SIZE |
1147 | add edi,BUF_STRUCT_SIZE |
1140 | loop @b |
1148 | loop @b |
1141 | 1149 | ||
1142 | mov dword[tree1.data_img_sys],0 ;ç¨á⨬ 㪠§ â¥«ì ¨§®¡à ¦¥¨¥ |
1150 | mov dword[tree1.data_img_sys],0 ;ç¨á⨬ 㪠§ â¥«ì ¨§®¡à ¦¥¨¥ |
1143 | stdcall dword[tl_data_clear], tree1 |
1151 | stdcall dword[tl_data_clear], tree1 |
1144 | mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë |
1152 | mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë |
1145 | 1153 | ||
1146 | head_f_i: |
1154 | head_f_i: |
1147 | head_f_l db '¨á⥬ ï ®è¨¡ª ',0 |
1155 | head_f_l db '¨á⥬ ï ®è¨¡ª ',0 |
1148 | 1156 | ||
1149 | system_dir0 db '/sys/lib/' |
1157 | system_dir0 db '/sys/lib/' |
1150 | lib0_name db 'buf2d.obj',0 |
1158 | lib0_name db 'buf2d.obj',0 |
1151 | err_message_found_lib0 db '¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã buf2d.obj',0 |
1159 | err_message_found_lib0 db '¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã buf2d.obj',0 |
1152 | err_message_import0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ buf2d.obj',0 |
1160 | err_message_import0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ buf2d.obj',0 |
1153 | 1161 | ||
1154 | system_dir1 db '/sys/lib/' |
1162 | system_dir1 db '/sys/lib/' |
1155 | lib1_name db 'libimg.obj',0 |
1163 | lib1_name db 'libimg.obj',0 |
1156 | err_message_found_lib1 db '¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã libimg.obj',0 |
1164 | err_message_found_lib1 db '¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã libimg.obj',0 |
1157 | err_message_import1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libimg.obj',0 |
1165 | err_message_import1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libimg.obj',0 |
1158 | 1166 | ||
1159 | system_dir2 db '/sys/lib/' |
1167 | system_dir2 db '/sys/lib/' |
1160 | lib2_name db 'libini.obj',0 |
1168 | lib2_name db 'libini.obj',0 |
1161 | err_message_found_lib2 db '¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã libini.obj',0 |
1169 | err_message_found_lib2 db '¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã libini.obj',0 |
1162 | err_message_import2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libini.obj',0 |
1170 | err_message_import2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libini.obj',0 |
1163 | 1171 | ||
1164 | system_dir3 db '/sys/lib/' |
1172 | system_dir3 db '/sys/lib/' |
1165 | lib3_name db 'box_lib.obj',0 |
1173 | lib3_name db 'box_lib.obj',0 |
1166 | err_message_found_lib3 db '¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã box_lib.obj',0 |
1174 | err_message_found_lib3 db '¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã box_lib.obj',0 |
1167 | err_message_import3 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ box_lib.obj',0 |
1175 | err_message_import3 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ box_lib.obj',0 |
1168 | 1176 | ||
1169 | ;library structures |
1177 | ;library structures |
1170 | l_libs_start: |
1178 | l_libs_start: |
1171 | lib0 l_libs lib0_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, import_buf2d_lib, err_message_import0, head_f_i |
1179 | lib0 l_libs lib0_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, import_buf2d_lib, err_message_import0, head_f_i |
1172 | lib1 l_libs lib1_name, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l, import_libimg, err_message_import1, head_f_i |
1180 | lib1 l_libs lib1_name, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l, import_libimg, err_message_import1, head_f_i |
1173 | lib2 l_libs lib2_name, sys_path, file_name, system_dir2, err_message_found_lib2, head_f_l, import_libini, err_message_import2, head_f_i |
1181 | lib2 l_libs lib2_name, sys_path, file_name, system_dir2, err_message_found_lib2, head_f_l, import_libini, err_message_import2, head_f_i |
1174 | lib3 l_libs lib3_name, sys_path, file_name, system_dir3, err_message_found_lib3, head_f_l, import_box_lib, err_message_import3, head_f_i |
1182 | lib3 l_libs lib3_name, sys_path, file_name, system_dir3, err_message_found_lib3, head_f_l, import_box_lib, err_message_import3, head_f_i |
1175 | load_lib_end: |
1183 | load_lib_end: |
1176 | 1184 | ||
1177 | align 4 |
1185 | align 4 |
1178 | proc mem_copy, source:dword, destination:dword, len:dword |
1186 | proc mem_copy, source:dword, destination:dword, len:dword |
1179 | push ecx esi edi |
1187 | push ecx esi edi |
1180 | cld |
1188 | cld |
1181 | mov esi, dword[source] |
1189 | mov esi, dword[source] |
1182 | mov edi, dword[destination] |
1190 | mov edi, dword[destination] |
1183 | mov ecx, dword[len] |
1191 | mov ecx, dword[len] |
1184 | rep movsb |
1192 | rep movsb |
1185 | pop edi esi ecx |
1193 | pop edi esi ecx |
1186 | ret |
1194 | ret |
1187 | endp |
1195 | endp |
1188 | 1196 | ||
1189 | align 4 |
1197 | align 4 |
1190 | convert_to_str: |
1198 | convert_to_str: |
1191 | pushad |
1199 | pushad |
1192 | ;mov eax,dword[value] |
1200 | ;mov eax,dword[value] |
1193 | ;mov edi,dword[text] |
1201 | ;mov edi,dword[text] |
1194 | mov dword[edi+1],0 |
1202 | mov dword[edi+1],0 |
1195 | cld |
1203 | cld |
1196 | call .str |
1204 | call .str |
1197 | popad |
1205 | popad |
1198 | ret |
1206 | ret |
1199 | 1207 | ||
1200 | 1208 | ||
1201 | align 4 |
1209 | align 4 |
1202 | .str: |
1210 | .str: |
1203 | mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬ áç¨á«¥¨ï ¨§¬¥ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤ë¥ ¯ à ¬¥âàë eax - ç¨á«® |
1211 | mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬ áç¨á«¥¨ï ¨§¬¥ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤ë¥ ¯ à ¬¥âàë eax - ç¨á«® |
1204 | ;¯à¥à¥¢®¤ ç¨á« ¢ ASCII áâப㠢§®¤ë¥ ¤ ë¥ ecx=á¨á⥬ áç¨á«¥ï edi ¤à¥á ªã¤ § ¯¨áë¢ âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®¥æ ¯¥à¥¬¥®© |
1212 | ;¯à¥à¥¢®¤ ç¨á« ¢ ASCII áâப㠢§®¤ë¥ ¤ ë¥ ecx=á¨á⥬ áç¨á«¥ï edi ¤à¥á ªã¤ § ¯¨áë¢ âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®¥æ ¯¥à¥¬¥®© |
1205 | cmp eax,ecx ;áà ¢¨âì ¥á«¨ ¢ eax ¬¥ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ @@-1 â.¥. pop eax |
1213 | cmp eax,ecx ;áà ¢¨âì ¥á«¨ ¢ eax ¬¥ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ @@-1 â.¥. pop eax |
1206 | jb @f |
1214 | jb @f |
1207 | xor edx,edx ;®ç¨áâ¨âì edx |
1215 | xor edx,edx ;®ç¨áâ¨âì edx |
1208 | div ecx ;à §¤¥«¨âì - ®áâ ⮪ ¢ edx |
1216 | div ecx ;à §¤¥«¨âì - ®áâ ⮪ ¢ edx |
1209 | push edx ;¯®«®¦¨âì ¢ á⥪ |
1217 | push edx ;¯®«®¦¨âì ¢ á⥪ |
1210 | ;dec edi ;ᬥ饨¥ ¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®æ áâப¨ |
1218 | ;dec edi ;ᬥ饨¥ ¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®æ áâப¨ |
1211 | call .str;¯¥à¥©â¨ á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx |
1219 | call .str;¯¥à¥©â¨ á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx |
1212 | pop eax |
1220 | pop eax |
1213 | @@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥ï 10 ¤ ï ª®¬ ¤ - «¨è ï)) |
1221 | @@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥ï 10 ¤ ï ª®¬ ¤ - «¨è ï)) |
1214 | ;sbb al,$69 ;- ç¥áâ® ¤ ï ¨áâàãªæ¨ï ¬¥ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ¥ § î ª ª íâ® à ¡®â ¥â |
1222 | ;sbb al,$69 ;- ç¥áâ® ¤ ï ¨áâàãªæ¨ï ¬¥ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ¥ § î ª ª íâ® à ¡®â ¥â |
1215 | ;das ;¯®á«¥ ¤ ®© ª®¬ ¤ë ª ª ¡ë ¯à®¨á室¨â 㬥ì襨¥ al 66h (¢ ª¨£¥ ¯¨á ® ¤à㣮¥) |
1223 | ;das ;¯®á«¥ ¤ ®© ª®¬ ¤ë ª ª ¡ë ¯à®¨á室¨â 㬥ì襨¥ al 66h (¢ ª¨£¥ ¯¨á ® ¤à㣮¥) |
1216 | or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥ |
1224 | or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥ |
1217 | stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祪㠯 ¬ï⨠es:edi |
1225 | stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祪㠯 ¬ï⨠es:edi |
1218 | ret ;¢¥àãâìáï ç¥ì ¨â¥à¥áë© å®¤ â.ª. ¯®ª ¢ á⥪¥ åà ¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï |
1226 | ret ;¢¥àãâìáï ç¥ì ¨â¥à¥áë© å®¤ â.ª. ¯®ª ¢ á⥪¥ åà ¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï |
1219 | 1227 | ||
1220 | 1228 | ||
1221 | last_time dd ? |
1229 | last_time dd 0 |
1222 | image_data dd 0 ;¯ ¬ïâì ¤«ï ¯à¥®¡à §®¢ ¨ï ª à⨪¨ äãªæ¨ï¬¨ libimg |
1230 | image_data dd 0 ;¯ ¬ïâì ¤«ï ¯à¥®¡à §®¢ ¨ï ª à⨪¨ äãªæ¨ï¬¨ libimg |
1223 | image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥ë¬¨ á¥à묨 ¨§®¡à ¦¥¨ï¬¨ ¢ ä®à¬ ⥠24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë |
1231 | image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥ë¬¨ á¥à묨 ¨§®¡à ¦¥¨ï¬¨ ¢ ä®à¬ ⥠24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë |
1224 | 1232 | ||
1225 | run_file_70 FileInfoBlock |
1233 | run_file_70 FileInfoBlock |
1226 | hed db 'Nu pogodi 17.09.10',0 ;¯®¤¯¨áì ®ª |
1234 | hed db 'Nu pogodi 17.09.10',0 ;¯®¤¯¨áì ®ª |
1227 | sc system_colors ;á¨áâ¥¬ë¥ æ¢¥â |
1235 | sc system_colors ;á¨áâ¥¬ë¥ æ¢¥â |
1228 | 1236 | ||
1229 | count_of_dir_list_files equ 10 |
1237 | count_of_dir_list_files equ 10 |
1230 | el_focus dd tree1 |
1238 | el_focus dd tree1 |
1231 | tree1 tree_list FILE_NAME_MAX,count_of_dir_list_files+2, tl_key_no_edit+tl_draw_par_line+tl_list_box_mode,\ |
1239 | tree1 tree_list FILE_NAME_MAX,count_of_dir_list_files+2, tl_key_no_edit+tl_draw_par_line+tl_list_box_mode,\ |
1232 | 16,16, 0x8080ff,0x0000ff,0xffffff, 10,10,140,100, 0,0,0, el_focus,\ |
1240 | 16,16, 0x8080ff,0x0000ff,0xffffff, 10,10,140,100, 0,0,0, el_focus,\ |
1233 | 0,user_is_select |
1241 | 0,user_is_select |
1234 | 1242 | ||
1235 | align 4 |
1243 | align 4 |
1236 | buf_tree_sys: |
1244 | buf_tree_sys: |
1237 | dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
1245 | dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
1238 | dw 0 ;+4 left |
1246 | dw 0 ;+4 left |
1239 | dw 0 ;+6 top |
1247 | dw 0 ;+6 top |
1240 | dd 16 ;+8 w |
1248 | dd 16 ;+8 w |
1241 | dd 16*11 ;+12 h |
1249 | dd 16*11 ;+12 h |
1242 | dd 0 ;+16 color |
1250 | dd 0 ;+16 color |
1243 | db 24 ;+20 bit in pixel |
1251 | db 24 ;+20 bit in pixel |
1244 | 1252 | ||
1245 | align 4 |
1253 | align 4 |
1246 | buf_font: ;¡ãä¥à á® èà¨ä⮬ |
1254 | buf_font: ;¡ãä¥à á® èà¨ä⮬ |
1247 | dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
1255 | dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
1248 | dw 25 ;+4 left |
1256 | dw 25 ;+4 left |
1249 | dw 25 ;+6 top |
1257 | dw 25 ;+6 top |
1250 | dd 128 ;+8 w |
1258 | dd 128 ;+8 w |
1251 | dd 144 ;+12 h |
1259 | dd 144 ;+12 h |
1252 | dd 0 ;+16 color |
1260 | dd 0 ;+16 color |
1253 | db 24 ;+20 bit in pixel |
1261 | db 24 ;+20 bit in pixel |
1254 | 1262 | ||
1255 | align 4 |
1263 | align 4 |
1256 | buf_displ: |
1264 | buf_displ: |
1257 | dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
1265 | dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
1258 | dw 25,0 |
1266 | dw 25,0 |
1259 | dd ? ;+8 w |
1267 | dd ? ;+8 w |
1260 | dd ? ;+12 h |
1268 | dd ? ;+12 h |
1261 | dd 0 ;+16 color |
1269 | dd 0 ;+16 color |
1262 | db 24 ;+20 bit in pixel |
1270 | db 24 ;+20 bit in pixel |
1263 | 1271 | ||
1264 | align 4 |
1272 | align 4 |
1265 | buf_fon: ;ä®®¢ë© ¡ãä¥à |
1273 | buf_fon: ;ä®®¢ë© ¡ãä¥à |
1266 | dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
1274 | dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
1267 | dw 0 ;+4 left |
1275 | dw 0 ;+4 left |
1268 | dw 0 ;+6 top |
1276 | dw 0 ;+6 top |
1269 | dd ? ;+8 w |
1277 | dd ? ;+8 w |
1270 | dd ? ;+12 h |
1278 | dd ? ;+12 h |
1271 | dd 0xffffff ;+16 color |
1279 | dd 0xffffff ;+16 color |
1272 | db 24 ;+20 bit in pixel |
1280 | db 24 ;+20 bit in pixel |
1273 | 1281 | ||
1274 | align 4 |
1282 | align 4 |
1275 | buf_decor: ;¡ãä¥à á ¤¥ª®à æ¨ï¬¨: ¤®¬¨ª ¬¨ ¨ ३ª ¬¨; á ªãà¨æ ¬¨; á à á⥨ﬨ |
1283 | buf_decor: ;¡ãä¥à á ¤¥ª®à æ¨ï¬¨: ¤®¬¨ª ¬¨ ¨ ३ª ¬¨; á ªãà¨æ ¬¨; á à á⥨ﬨ |
1276 | rb 3*BUF_STRUCT_SIZE |
1284 | rb 3*BUF_STRUCT_SIZE |
1277 | 1285 | ||
1278 | align 4 |
1286 | align 4 |
1279 | buf_wolf: |
1287 | buf_wolf: |
1280 | rb 9*BUF_STRUCT_SIZE |
1288 | rb 9*BUF_STRUCT_SIZE |
1281 | 1289 | ||
1282 | align 4 |
1290 | align 4 |
1283 | buf_egg: |
1291 | buf_egg: |
1284 | rb 22*BUF_STRUCT_SIZE |
1292 | rb 22*BUF_STRUCT_SIZE |
1285 | 1293 | ||
1286 | align 4 |
1294 | align 4 |
1287 | buf_chi: |
1295 | buf_chi: |
1288 | rb 13*BUF_STRUCT_SIZE |
1296 | rb 13*BUF_STRUCT_SIZE |
1289 | 1297 | ||
1290 | 1298 | ||
1291 | 1299 | ||
1292 | align 4 |
1300 | align 4 |
1293 | import_libini: |
1301 | import_libini: |
1294 | dd alib_init0 |
1302 | dd alib_init0 |
1295 | ini_get_str dd aini_get_str |
1303 | ini_get_str dd aini_get_str |
1296 | ini_get_int dd aini_get_int |
1304 | ini_get_int dd aini_get_int |
1297 | ini_get_color dd aini_get_color |
1305 | ini_get_color dd aini_get_color |
1298 | dd 0,0 |
1306 | dd 0,0 |
1299 | alib_init0 db 'lib_init',0 |
1307 | alib_init0 db 'lib_init',0 |
1300 | aini_get_str db 'ini_get_str',0 |
1308 | aini_get_str db 'ini_get_str',0 |
1301 | aini_get_int db 'ini_get_int',0 |
1309 | aini_get_int db 'ini_get_int',0 |
1302 | aini_get_color db 'ini_get_color',0 |
1310 | aini_get_color db 'ini_get_color',0 |
1303 | 1311 | ||
1304 | align 4 |
1312 | align 4 |
1305 | import_libimg: |
1313 | import_libimg: |
1306 | dd alib_init1 |
1314 | dd alib_init1 |
1307 | img_is_img dd aimg_is_img |
1315 | img_is_img dd aimg_is_img |
1308 | img_info dd aimg_info |
1316 | img_info dd aimg_info |
1309 | img_from_file dd aimg_from_file |
1317 | img_from_file dd aimg_from_file |
1310 | img_to_file dd aimg_to_file |
1318 | img_to_file dd aimg_to_file |
1311 | img_from_rgb dd aimg_from_rgb |
1319 | img_from_rgb dd aimg_from_rgb |
1312 | img_to_rgb dd aimg_to_rgb |
1320 | img_to_rgb dd aimg_to_rgb |
1313 | img_to_rgb2 dd aimg_to_rgb2 |
1321 | img_to_rgb2 dd aimg_to_rgb2 |
1314 | img_decode dd aimg_decode |
1322 | img_decode dd aimg_decode |
1315 | img_encode dd aimg_encode |
1323 | img_encode dd aimg_encode |
1316 | img_create dd aimg_create |
1324 | img_create dd aimg_create |
1317 | img_destroy dd aimg_destroy |
1325 | img_destroy dd aimg_destroy |
1318 | img_destroy_layer dd aimg_destroy_layer |
1326 | img_destroy_layer dd aimg_destroy_layer |
1319 | img_count dd aimg_count |
1327 | img_count dd aimg_count |
1320 | img_lock_bits dd aimg_lock_bits |
1328 | img_lock_bits dd aimg_lock_bits |
1321 | img_unlock_bits dd aimg_unlock_bits |
1329 | img_unlock_bits dd aimg_unlock_bits |
1322 | img_flip dd aimg_flip |
1330 | img_flip dd aimg_flip |
1323 | img_flip_layer dd aimg_flip_layer |
1331 | img_flip_layer dd aimg_flip_layer |
1324 | img_rotate dd aimg_rotate |
1332 | img_rotate dd aimg_rotate |
1325 | img_rotate_layer dd aimg_rotate_layer |
1333 | img_rotate_layer dd aimg_rotate_layer |
1326 | img_draw dd aimg_draw |
1334 | img_draw dd aimg_draw |
1327 | 1335 | ||
1328 | dd 0,0 |
1336 | dd 0,0 |
1329 | alib_init1 db 'lib_init',0 |
1337 | alib_init1 db 'lib_init',0 |
1330 | aimg_is_img db 'img_is_img',0 ;®¯à¥¤¥«ï¥â ¯® ¤ ë¬, ¬®¦¥â «¨ ¡¨¡«¨®â¥ª ᤥ« âì ¨§ ¨å ¨§®¡à ¦¥¨¥ |
1338 | aimg_is_img db 'img_is_img',0 ;®¯à¥¤¥«ï¥â ¯® ¤ ë¬, ¬®¦¥â «¨ ¡¨¡«¨®â¥ª ᤥ« âì ¨§ ¨å ¨§®¡à ¦¥¨¥ |
1331 | aimg_info db 'img_info',0 |
1339 | aimg_info db 'img_info',0 |
1332 | aimg_from_file db 'img_from_file',0 |
1340 | aimg_from_file db 'img_from_file',0 |
1333 | aimg_to_file db 'img_to_file',0 |
1341 | aimg_to_file db 'img_to_file',0 |
1334 | aimg_from_rgb db 'img_from_rgb',0 |
1342 | aimg_from_rgb db 'img_from_rgb',0 |
1335 | aimg_to_rgb db 'img_to_rgb',0 ;¯à¥®¡à §®¢ ¨¥ ¨§®¡à ¦¥¨ï ¢ ¤ ë¥ RGB |
1343 | aimg_to_rgb db 'img_to_rgb',0 ;¯à¥®¡à §®¢ ¨¥ ¨§®¡à ¦¥¨ï ¢ ¤ ë¥ RGB |
1336 | aimg_to_rgb2 db 'img_to_rgb2',0 |
1344 | aimg_to_rgb2 db 'img_to_rgb2',0 |
1337 | aimg_decode db 'img_decode',0 ; ¢â®¬ â¨ç¥áª¨ ®¯à¥¤¥«ï¥â ä®à¬ â £à ä¨ç¥áª¨å ¤ ëå |
1345 | aimg_decode db 'img_decode',0 ; ¢â®¬ â¨ç¥áª¨ ®¯à¥¤¥«ï¥â ä®à¬ â £à ä¨ç¥áª¨å ¤ ëå |
1338 | aimg_encode db 'img_encode',0 |
1346 | aimg_encode db 'img_encode',0 |
1339 | aimg_create db 'img_create',0 |
1347 | aimg_create db 'img_create',0 |
1340 | aimg_destroy db 'img_destroy',0 |
1348 | aimg_destroy db 'img_destroy',0 |
1341 | aimg_destroy_layer db 'img_destroy_layer',0 |
1349 | aimg_destroy_layer db 'img_destroy_layer',0 |
1342 | aimg_count db 'img_count',0 |
1350 | aimg_count db 'img_count',0 |
1343 | aimg_lock_bits db 'img_lock_bits',0 |
1351 | aimg_lock_bits db 'img_lock_bits',0 |
1344 | aimg_unlock_bits db 'img_unlock_bits',0 |
1352 | aimg_unlock_bits db 'img_unlock_bits',0 |
1345 | aimg_flip db 'img_flip',0 |
1353 | aimg_flip db 'img_flip',0 |
1346 | aimg_flip_layer db 'img_flip_layer',0 |
1354 | aimg_flip_layer db 'img_flip_layer',0 |
1347 | aimg_rotate db 'img_rotate',0 |
1355 | aimg_rotate db 'img_rotate',0 |
1348 | aimg_rotate_layer db 'img_rotate_layer',0 |
1356 | aimg_rotate_layer db 'img_rotate_layer',0 |
1349 | aimg_draw db 'img_draw',0 |
1357 | aimg_draw db 'img_draw',0 |
1350 | 1358 | ||
1351 | align 4 |
1359 | align 4 |
1352 | import_buf2d_lib: |
1360 | import_buf2d_lib: |
1353 | dd sz_lib_init |
1361 | dd sz_lib_init |
1354 | buf2d_create dd sz_buf2d_create |
1362 | buf2d_create dd sz_buf2d_create |
1355 | buf2d_create_f_img dd sz_buf2d_create_f_img |
1363 | buf2d_create_f_img dd sz_buf2d_create_f_img |
1356 | buf2d_clear dd sz_buf2d_clear |
1364 | buf2d_clear dd sz_buf2d_clear |
1357 | buf2d_draw dd sz_buf2d_draw |
1365 | buf2d_draw dd sz_buf2d_draw |
1358 | buf2d_delete dd sz_buf2d_delete |
1366 | buf2d_delete dd sz_buf2d_delete |
1359 | buf2d_line dd sz_buf2d_line |
1367 | buf2d_line dd sz_buf2d_line |
1360 | buf2d_circle dd sz_buf2d_circle |
1368 | buf2d_circle dd sz_buf2d_circle |
1361 | buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2 |
1369 | buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2 |
1362 | buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2 |
1370 | buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2 |
1363 | buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8 |
1371 | buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8 |
1364 | buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32 |
1372 | buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32 |
1365 | buf2d_bit_blt dd sz_buf2d_bit_blt |
1373 | buf2d_bit_blt dd sz_buf2d_bit_blt |
1366 | buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp |
1374 | buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp |
1367 | buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha |
1375 | buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha |
1368 | buf2d_curve_bezier dd sz_buf2d_curve_bezier |
1376 | buf2d_curve_bezier dd sz_buf2d_curve_bezier |
1369 | buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix |
1377 | buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix |
1370 | buf2d_draw_text dd sz_buf2d_draw_text |
1378 | buf2d_draw_text dd sz_buf2d_draw_text |
1371 | buf2d_crop_color dd sz_buf2d_crop_color |
1379 | buf2d_crop_color dd sz_buf2d_crop_color |
1372 | buf2d_offset_h dd sz_buf2d_offset_h |
1380 | buf2d_offset_h dd sz_buf2d_offset_h |
1373 | dd 0,0 |
1381 | dd 0,0 |
1374 | sz_lib_init db 'lib_init',0 |
1382 | sz_lib_init db 'lib_init',0 |
1375 | sz_buf2d_create db 'buf2d_create',0 |
1383 | sz_buf2d_create db 'buf2d_create',0 |
1376 | sz_buf2d_create_f_img db 'buf2d_create_f_img',0 |
1384 | sz_buf2d_create_f_img db 'buf2d_create_f_img',0 |
1377 | sz_buf2d_clear db 'buf2d_clear',0 |
1385 | sz_buf2d_clear db 'buf2d_clear',0 |
1378 | sz_buf2d_draw db 'buf2d_draw',0 |
1386 | sz_buf2d_draw db 'buf2d_draw',0 |
1379 | sz_buf2d_delete db 'buf2d_delete',0 |
1387 | sz_buf2d_delete db 'buf2d_delete',0 |
1380 | sz_buf2d_line db 'buf2d_line',0 |
1388 | sz_buf2d_line db 'buf2d_line',0 |
1381 | sz_buf2d_circle db 'buf2d_circle',0 ;à¨á®¢ ¨¥ ®ªà㦮á⨠|
1389 | sz_buf2d_circle db 'buf2d_circle',0 ;à¨á®¢ ¨¥ ®ªà㦮á⨠|
1382 | sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0 |
1390 | sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0 |
1383 | sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0 |
1391 | sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0 |
1384 | sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0 |
1392 | sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0 |
1385 | sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0 |
1393 | sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0 |
1386 | sz_buf2d_bit_blt db 'buf2d_bit_blt',0 |
1394 | sz_buf2d_bit_blt db 'buf2d_bit_blt',0 |
1387 | sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0 |
1395 | sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0 |
1388 | sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0 |
1396 | sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0 |
1389 | sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0 |
1397 | sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0 |
1390 | sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0 |
1398 | sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0 |
1391 | sz_buf2d_draw_text db 'buf2d_draw_text',0 |
1399 | sz_buf2d_draw_text db 'buf2d_draw_text',0 |
1392 | sz_buf2d_crop_color db 'buf2d_crop_color',0 |
1400 | sz_buf2d_crop_color db 'buf2d_crop_color',0 |
1393 | sz_buf2d_offset_h db 'buf2d_offset_h',0 |
1401 | sz_buf2d_offset_h db 'buf2d_offset_h',0 |
1394 | 1402 | ||
1395 | align 4 |
1403 | align 4 |
1396 | import_box_lib: |
1404 | import_box_lib: |
1397 | dd alib_init2 |
1405 | dd alib_init2 |
1398 | 1406 | ||
1399 | ;scrollbar_ver_draw dd aScrollbar_ver_draw |
1407 | ;scrollbar_ver_draw dd aScrollbar_ver_draw |
1400 | 1408 | ||
1401 | tl_data_init dd sz_tl_data_init |
1409 | tl_data_init dd sz_tl_data_init |
1402 | tl_data_clear dd sz_tl_data_clear |
1410 | tl_data_clear dd sz_tl_data_clear |
1403 | tl_info_clear dd sz_tl_info_clear |
1411 | tl_info_clear dd sz_tl_info_clear |
1404 | tl_key dd sz_tl_key |
1412 | tl_key dd sz_tl_key |
1405 | tl_mouse dd sz_tl_mouse |
1413 | tl_mouse dd sz_tl_mouse |
1406 | tl_draw dd sz_tl_draw |
1414 | tl_draw dd sz_tl_draw |
1407 | tl_info_undo dd sz_tl_info_undo |
1415 | tl_info_undo dd sz_tl_info_undo |
1408 | tl_info_redo dd sz_tl_info_redo |
1416 | tl_info_redo dd sz_tl_info_redo |
1409 | tl_node_add dd sz_tl_node_add |
1417 | tl_node_add dd sz_tl_node_add |
1410 | tl_node_set_data dd sz_tl_node_set_data |
1418 | tl_node_set_data dd sz_tl_node_set_data |
1411 | tl_node_get_data dd sz_tl_node_get_data |
1419 | tl_node_get_data dd sz_tl_node_get_data |
1412 | tl_node_delete dd sz_tl_node_delete |
1420 | tl_node_delete dd sz_tl_node_delete |
1413 | tl_cur_beg dd sz_tl_cur_beg |
1421 | tl_cur_beg dd sz_tl_cur_beg |
1414 | tl_cur_next dd sz_tl_cur_next |
1422 | tl_cur_next dd sz_tl_cur_next |
1415 | tl_cur_perv dd sz_tl_cur_perv |
1423 | tl_cur_perv dd sz_tl_cur_perv |
1416 | tl_node_close_open dd sz_tl_node_close_open |
1424 | tl_node_close_open dd sz_tl_node_close_open |
1417 | tl_node_lev_inc dd sz_tl_node_lev_inc |
1425 | tl_node_lev_inc dd sz_tl_node_lev_inc |
1418 | tl_node_lev_dec dd sz_tl_node_lev_dec |
1426 | tl_node_lev_dec dd sz_tl_node_lev_dec |
1419 | 1427 | ||
1420 | dd 0,0 |
1428 | dd 0,0 |
1421 | alib_init2 db 'lib_init',0 |
1429 | alib_init2 db 'lib_init',0 |
1422 | 1430 | ||
1423 | ;aScrollbar_ver_draw db 'scrollbar_v_draw',0 |
1431 | ;aScrollbar_ver_draw db 'scrollbar_v_draw',0 |
1424 | 1432 | ||
1425 | sz_tl_data_init db 'tl_data_init',0 |
1433 | sz_tl_data_init db 'tl_data_init',0 |
1426 | sz_tl_data_clear db 'tl_data_clear',0 |
1434 | sz_tl_data_clear db 'tl_data_clear',0 |
1427 | sz_tl_info_clear db 'tl_info_clear',0 |
1435 | sz_tl_info_clear db 'tl_info_clear',0 |
1428 | sz_tl_key db 'tl_key',0 |
1436 | sz_tl_key db 'tl_key',0 |
1429 | sz_tl_mouse db 'tl_mouse',0 |
1437 | sz_tl_mouse db 'tl_mouse',0 |
1430 | sz_tl_draw db 'tl_draw',0 |
1438 | sz_tl_draw db 'tl_draw',0 |
1431 | sz_tl_info_undo db 'tl_info_undo',0 |
1439 | sz_tl_info_undo db 'tl_info_undo',0 |
1432 | sz_tl_info_redo db 'tl_info_redo',0 |
1440 | sz_tl_info_redo db 'tl_info_redo',0 |
1433 | sz_tl_node_add db 'tl_node_add',0 |
1441 | sz_tl_node_add db 'tl_node_add',0 |
1434 | sz_tl_node_set_data db 'tl_node_set_data',0 |
1442 | sz_tl_node_set_data db 'tl_node_set_data',0 |
1435 | sz_tl_node_get_data db 'tl_node_get_data',0 |
1443 | sz_tl_node_get_data db 'tl_node_get_data',0 |
1436 | sz_tl_node_delete db 'tl_node_delete',0 |
1444 | sz_tl_node_delete db 'tl_node_delete',0 |
1437 | sz_tl_cur_beg db 'tl_cur_beg',0 |
1445 | sz_tl_cur_beg db 'tl_cur_beg',0 |
1438 | sz_tl_cur_next db 'tl_cur_next',0 |
1446 | sz_tl_cur_next db 'tl_cur_next',0 |
1439 | sz_tl_cur_perv db 'tl_cur_perv',0 |
1447 | sz_tl_cur_perv db 'tl_cur_perv',0 |
1440 | sz_tl_node_close_open db 'tl_node_close_open',0 |
1448 | sz_tl_node_close_open db 'tl_node_close_open',0 |
1441 | sz_tl_node_lev_inc db 'tl_node_lev_inc',0 |
1449 | sz_tl_node_lev_inc db 'tl_node_lev_inc',0 |
1442 | sz_tl_node_lev_dec db 'tl_node_lev_dec',0 |
1450 | sz_tl_node_lev_dec db 'tl_node_lev_dec',0 |
1443 | 1451 | ||
1444 | 1452 | ||
1445 | 1453 | ||
1446 | i_end: |
1454 | i_end: |
1447 | rb 1024 |
1455 | rb 1024 |
1448 | align 16 |
1456 | align 16 |
1449 | procinfo process_information |
1457 | procinfo process_information |
1450 | stacktop: |
1458 | stacktop: |
1451 | sys_path rb 4096 |
1459 | sys_path rb 4096 |
1452 | file_name: |
1460 | file_name: |
1453 | rb 4096 |
1461 | rb 4096 |
1454 | openfile_path: |
1462 | openfile_path: |
1455 | rb 4096 |
1463 | rb 4096 |
1456 | filename_area: |
1464 | filename_area: |
1457 | rb 256 |
1465 | rb 256 |
1458 | mem:-> |
1466 | mem:-> |