Rev 5930 | Rev 5938 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5930 | Rev 5935 | ||
---|---|---|---|
1 | ; |
1 | ; |
2 | ; ¢ í⮬ ä ©«¥ ᮡà ë äãªæ¨¨ ã¦ë¥ ¤«ï ᮧ¤ ¨ï ¨ |
2 | ; ¢ í⮬ ä ©«¥ ᮡà ë äãªæ¨¨ ã¦ë¥ ¤«ï ᮧ¤ ¨ï ¨ |
3 | ; à ¡®âë ®ª á ª®®à¤¨ â ¬¨ |
3 | ; à ¡®âë ®ª á ª®®à¤¨ â ¬¨ ¢¥àè¨ |
4 | ; |
4 | ; |
5 | 5 | ||
6 | prop_wnd_width equ 340 ;è¨à¨ ®ª ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ |
6 | prop_wnd_width equ 340 ;è¨à¨ ®ª ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ |
7 | prop_wnd_height equ 460 |
7 | prop_wnd_height equ 460 |
8 | SIZE_ONE_FLOAT equ 14 |
8 | SIZE_ONE_FLOAT equ 14 |
9 | MAX_OBJECT_SIZE equ (4+SIZE_ONE_FLOAT*3+1) |
9 | MAX_OBJECT_SIZE equ (4+SIZE_ONE_FLOAT*3+1) |
- | 10 | ||
- | 11 | bit_vertexes equ 0 |
|
- | 12 | bit_faces equ 1 |
|
- | 13 | bit_faces_fill equ 2 |
|
- | 14 | bit_light equ 3 |
|
- | 15 | def_dr_mode equ 0x1111b |
|
10 | 16 | ||
11 | prop_wnd_run db 0 ;¯¥à¥¬¥ ï á«¥¤ïé ï § ⥬ çâ®-¡ë ¥ § ¯ã᪠âì ¡®«ìè¥ 1-£® ®ª ᮠ᢮©á⢠¬¨ ®¤®¢à¥¬¥® |
17 | prop_wnd_run db 0 ;¯¥à¥¬¥ ï á«¥¤ïé ï § ⥬ çâ®-¡ë ¥ § ¯ã᪠âì ¡®«ìè¥ 1-£® ®ª ᮠ᢮©á⢠¬¨ ®¤®¢à¥¬¥® |
12 | 18 | ||
13 | txt_q db '?',0 |
19 | txt_q db '?',0 |
14 | txt_space: |
20 | txt_space: |
15 | db SIZE_ONE_FLOAT dup(' ') |
21 | db SIZE_ONE_FLOAT dup(' ') |
16 | .end: |
22 | .end: |
17 | db 0 |
23 | db 0 |
18 | 24 | ||
19 | rad_c dd 150 ;¤«ï ¢ëç¨á«¥¨ï à ¤¨ãá |
25 | rad_c dd 150 ;¤«ï ¢ëç¨á«¥¨ï à ¤¨ãá |
20 | 26 | ||
21 | obj_point: ;¤®¡ ¢«ï¥¬ë© ®¡ê¥ªâ |
27 | obj_point: ;¤®¡ ¢«ï¥¬ë© ®¡ê¥ªâ |
22 | dd 0 ;㪠§ ⥫ì |
28 | dd 0 ;㪠§ ⥫ì |
23 | .text: |
29 | .text: |
24 | rb MAX_OBJECT_SIZE |
30 | rb MAX_OBJECT_SIZE |
25 | 31 | ||
26 | 32 | ||
27 | 33 | ||
28 | ;¤ ®¥ ®ª® (¯à®æ¥áá) ¢ë§ë¢ ¥âìáï äãªæ¨¥© but_wnd_coords |
34 | ;¤ ®¥ ®ª® (¯à®æ¥áá) ¢ë§ë¢ ¥âìáï äãªæ¨¥© but_wnd_coords |
29 | align 4 |
35 | align 4 |
30 | prop_start: |
36 | prop_start: |
31 | pushad |
37 | pushad |
32 | mcall 40,0x27 ;¬ ᪠®¦¨¤ ¥¬ëå ᮡë⨩ |
38 | mcall 40,0x27 ;¬ ᪠®¦¨¤ ¥¬ëå ᮡë⨩ |
33 | inc byte[prop_wnd_run] |
39 | inc byte[prop_wnd_run] |
34 | mov dword[w_scr_t3.type],1 |
40 | mov dword[w_scr_t3.type],1 |
- | 41 | call prop_wnd_clear_param |
|
35 | 42 | ||
36 | stdcall [tl_node_get_data],tree1 |
43 | stdcall [tl_node_get_data],tree1 |
37 | xor edx,edx |
44 | xor edx,edx |
38 | mov dword[capt_p],txt_q |
45 | mov dword[capt_p],txt_q |
39 | cmp eax,0 |
46 | cmp eax,0 |
40 | je .no_points |
47 | je .no_points |
41 | mov ebx,dword[eax] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª |
48 | mov ebx,[eax] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª |
42 | add ebx,dword[open_file_lif] |
49 | add ebx,[open_file_lif] |
43 | 50 | ||
44 | cmp word[ebx],CHUNK_VERTLIST |
51 | cmp word[ebx],CHUNK_VERTLIST |
45 | jne @f |
52 | jne .end_vlist |
46 | movzx edx,word[ebx+6] ;ª®««¨ç¥á⢮ â®ç¥ª |
53 | movzx edx,word[ebx+6] ;ª®««¨ç¥á⢮ â®ç¥ª |
47 | add ebx,8 |
54 | add ebx,8 |
48 | mov dword[capt_p],txt_4110 |
55 | mov dword[capt_p],txt_4110 |
- | 56 | ;¯®¨áª ¤ ëå ¤«ï âà¥ã£®«ìª®¢ |
|
- | 57 | mov ecx,eax |
|
- | 58 | stdcall [tl_node_poi_get_info], tree1,0 |
|
- | 59 | @@: |
|
- | 60 | mov esi,eax |
|
- | 61 | stdcall [tl_node_poi_get_data], tree1,esi |
|
- | 62 | cmp eax,ecx |
|
- | 63 | je @f ;¥á«¨ ¯®¯ «¨ ¢ë¡à ë© ã§¥« |
|
- | 64 | stdcall [tl_node_poi_get_next_info], tree1,esi |
|
- | 65 | cmp eax,0 |
|
- | 66 | jne @b |
|
49 | jmp .no_points |
67 | jmp .set_points |
50 | @@: |
68 | @@: |
- | 69 | ;¥á«¨ 諨 ¢ë¡à ë© ã§¥«, â® ¤ «¥¥ ¯ëâ ¥¬áï ©â¨ ã§¥« á âà¥ã£®«ì¨ª ¬¨ |
|
- | 70 | movzx ecx,byte[esi+2] ;cl - ã஢¥ì ¢ë¡à ®£® 㧫 |
|
- | 71 | .cycle_0: |
|
- | 72 | stdcall [tl_node_poi_get_next_info], tree1,esi |
|
- | 73 | cmp eax,0 |
|
- | 74 | je .set_points |
|
- | 75 | mov esi,eax |
|
- | 76 | stdcall [tl_node_poi_get_data], tree1,esi |
|
- | 77 | cmp byte[esi+2],cl |
|
- | 78 | jl .set_points |
|
- | 79 | je .found |
|
- | 80 | jmp .cycle_0 |
|
- | 81 | .found: ;¥á«¨ 諨 㧥« ⮣®¦¥ ã஢ï çâ® ¨ ¢ë¡à ë© ã§¥« |
|
- | 82 | cmp eax,0 |
|
- | 83 | je .set_points |
|
- | 84 | mov eax,[eax] |
|
- | 85 | add eax,[open_file_lif] |
|
- | 86 | cmp word[eax],CHUNK_FACELIST |
|
- | 87 | jne .cycle_0 |
|
- | 88 | movzx ecx,word[eax+6] |
|
- | 89 | mov [obj_tri_count],ecx |
|
- | 90 | add eax,8 ;2+4+2 (chunk+size+count) |
|
- | 91 | mov [obj_tri_data],eax |
|
- | 92 | jmp .set_points |
|
- | 93 | .end_vlist: |
|
51 | cmp word[ebx],0xb013 |
94 | cmp word[ebx],CHUNK_TRACKPIVOT |
52 | jne @f |
95 | jne @f |
53 | inc edx |
96 | inc edx |
54 | add ebx,6 |
97 | add ebx,6 |
55 | mov dword[capt_p],txt_b013 |
98 | mov dword[capt_p],txt_b013 |
56 | jmp .no_points |
99 | jmp .set_points |
57 | @@: |
100 | @@: |
58 | cmp word[ebx],0xb014 |
101 | cmp word[ebx],0xb014 |
59 | jne @f |
102 | jne @f |
60 | mov edx,2 |
103 | mov edx,2 |
61 | add ebx,6 |
104 | add ebx,6 |
62 | mov dword[capt_p],txt_b014 |
105 | mov dword[capt_p],txt_b014 |
63 | ;jmp .no_points |
106 | ;jmp .set_points |
64 | @@: |
107 | @@: |
- | 108 | .set_points: |
|
- | 109 | mov [obj_poi_data],ebx |
|
- | 110 | mov [obj_poi_count],edx |
|
65 | .no_points: |
111 | .no_points: |
66 | 112 | ||
67 | ; áâனª ᯨ᪠®¡ê¥ªâ®¢ |
113 | ; áâனª ᯨ᪠®¡ê¥ªâ®¢ |
68 | mov dword[tree3.info_max_count],2 |
114 | mov dword[tree3.info_max_count],2 |
69 | add dword[tree3.info_max_count],edx ;áâ ¢¨¬ ç¨á«® 㧫®¢, à ¢®¥ ª®««¨ç¥áâ¢ã â®ç¥ª (+2 ç «® ¨ ª®¥æ ᯨ᪠) |
115 | add dword[tree3.info_max_count],edx ;áâ ¢¨¬ ç¨á«® 㧫®¢, à ¢®¥ ª®««¨ç¥áâ¢ã â®ç¥ª (+2 ç «® ¨ ª®¥æ ᯨ᪠) |
70 | stdcall dword[tl_data_init], tree3 |
116 | stdcall dword[tl_data_init], tree3 |
71 | mov eax,dword[icon_tl_sys] |
117 | mov eax,dword[icon_tl_sys] |
72 | mov dword[tree3.data_img_sys],eax |
118 | mov dword[tree3.data_img_sys],eax |
73 | mov eax,dword[icon_toolbar] |
119 | mov eax,dword[icon_toolbar] |
74 | mov dword[tree3.data_img],eax |
120 | mov dword[tree3.data_img],eax |
75 | 121 | ||
76 | cmp edx,0 |
122 | cmp edx,0 |
77 | je .no_object |
123 | je .no_object |
78 | mov word[NumberSymbolsAD],5 |
124 | mov word[NumberSymbolsAD],5 |
79 | finit |
125 | finit |
80 | .new_point: |
126 | .new_point: |
81 | mov dword[obj_point],ebx |
127 | mov dword[obj_point],ebx |
82 | mov dword[obj_point.text],0 |
128 | mov dword[obj_point.text],0 |
83 | cld |
129 | cld |
84 | mov ecx,3 |
130 | mov ecx,3 |
85 | @@: |
131 | @@: |
86 | fld dword[ebx] |
132 | fld dword[ebx] |
87 | fstp qword[Data_Double] |
133 | fstp qword[Data_Double] |
88 | call DoubleFloat_to_String |
134 | call DoubleFloat_to_String |
89 | add ebx,4 |
135 | add ebx,4 |
90 | stdcall str_len, Data_String |
136 | stdcall str_len, Data_String |
91 | mov esi,txt_space |
137 | mov esi,txt_space |
92 | add esi,eax |
138 | add esi,eax |
93 | cmp esi,txt_space.end |
139 | cmp esi,txt_space.end |
94 | jl .normal_size |
140 | jl .normal_size |
95 | mov esi,txt_space.end-1 ;¬¨¨¬ã¬ 1 ¯à®¡¥« 㦮 ¤®¡ ¢¨âì, çâ®-¡ë æ¨äàë ¥ ᫨¯ «¨áì |
141 | mov esi,txt_space.end-1 ;¬¨¨¬ã¬ 1 ¯à®¡¥« 㦮 ¤®¡ ¢¨âì, çâ®-¡ë æ¨äàë ¥ ᫨¯ «¨áì |
96 | .normal_size: |
142 | .normal_size: |
97 | stdcall str_cat, obj_point.text,esi |
143 | stdcall str_cat, obj_point.text,esi |
98 | stdcall str_cat, obj_point.text,Data_String |
144 | stdcall str_cat, obj_point.text,Data_String |
99 | loop @b |
145 | loop @b |
100 | stdcall dword[tl_node_add], tree3,(ID_ICON_DATA shl 16),obj_point |
146 | stdcall dword[tl_node_add], tree3,(ID_ICON_DATA shl 16),obj_point |
101 | stdcall dword[tl_cur_next], tree3 |
147 | stdcall dword[tl_cur_next], tree3 |
102 | dec edx |
148 | dec edx |
103 | cmp edx,0 |
149 | cmp edx,0 |
104 | jg .new_point |
150 | jg .new_point |
105 | stdcall dword[tl_cur_beg], tree3 |
151 | stdcall dword[tl_cur_beg], tree3 |
106 | .no_object: |
152 | .no_object: |
107 | call obj_set_sizes |
153 | call obj_set_sizes |
108 | edit_boxes_set_sys_color edit1,editboxes_end,sc ;ãáâ ®¢ª á¨á⥬ëå 梥⮢ |
154 | edit_boxes_set_sys_color edit1,editboxes_end,sc ;ãáâ ®¢ª á¨á⥬ëå 梥⮢ |
109 | stdcall [edit_box_set_text], edit1, txt_q |
155 | stdcall [edit_box_set_text], edit1, txt_q |
110 | stdcall [edit_box_set_text], edit2, txt_q |
156 | stdcall [edit_box_set_text], edit2, txt_q |
111 | stdcall [edit_box_set_text], edit3, txt_q |
157 | stdcall [edit_box_set_text], edit3, txt_q |
112 | popad |
158 | popad |
113 | 159 | ||
114 | call prop_red_win |
160 | call prop_red_win |
115 | 161 | ||
116 | ;¥ ®âàë¢ âì íâã äãªæ¨î ®â ¯à¥¤ë¤ã饩 |
162 | ;¥ ®âàë¢ âì íâã äãªæ¨î ®â ¯à¥¤ë¤ã饩 |
117 | align 4 |
163 | align 4 |
118 | prop_still: |
164 | prop_still: |
119 | pushad |
165 | pushad |
- | 166 | ||
120 | mcall 10 |
167 | mcall 23,10 |
- | 168 | or eax,eax |
|
- | 169 | jnz @f |
|
- | 170 | call prop_timer_funct |
|
- | 171 | jmp .end |
|
- | 172 | @@: |
|
121 | 173 | ||
122 | cmp al,1 ;¨§¬. ¯®«®¦¥¨¥ ®ª |
174 | cmp al,1 ;¨§¬. ¯®«®¦¥¨¥ ®ª |
123 | jne @f |
175 | jne @f |
124 | call prop_red_win |
176 | call prop_red_win |
125 | jmp .end |
177 | jmp .end |
126 | @@: |
178 | @@: |
127 | cmp al,2 |
179 | cmp al,2 |
128 | jne @f |
180 | jne @f |
129 | call prop_key |
181 | call prop_key |
130 | jmp .end |
182 | jmp .end |
131 | @@: |
183 | @@: |
132 | cmp al,3 |
184 | cmp al,3 |
133 | jz prop_button |
185 | jz prop_button |
134 | cmp al,6 |
186 | cmp al,6 |
135 | jne @f |
187 | jne @f |
136 | call prop_mouse |
188 | call prop_mouse |
137 | @@: |
189 | @@: |
138 | .end: |
190 | .end: |
139 | popad |
191 | popad |
140 | jmp prop_still |
192 | jmp prop_still |
141 | 193 | ||
142 | align 4 |
194 | align 4 |
143 | prop_red_win: |
195 | prop_red_win: |
144 | pushad |
196 | pushad |
145 | mcall 12,1 |
197 | mcall 12,1 |
146 | 198 | ||
147 | xor eax,eax |
199 | xor eax,eax |
148 | mov edi,dword[capt_p] ;children window caption |
200 | mov edi,dword[capt_p] ;children window caption |
149 | mov bx,word[procinfo.box.left] |
201 | mov bx,word[procinfo.box.left] |
150 | add bx,word[buf_0.l] |
202 | add bx,word[buf_0.l] |
151 | add bx,5 ;è¨à¨ ¡®ª®¢®© à ¬ª¨ |
203 | add bx,5 ;è¨à¨ ¡®ª®¢®© à ¬ª¨ |
152 | shl ebx,16 |
204 | shl ebx,16 |
153 | mov bx,prop_wnd_width |
205 | mov bx,prop_wnd_width |
154 | mov cx,word[procinfo.box.top] |
206 | mov cx,word[procinfo.box.top] |
155 | add cx,word[buf_0.t] |
207 | add cx,word[buf_0.t] |
156 | shl ecx,16 |
208 | shl ecx,16 |
157 | mov cx,prop_wnd_height |
209 | mov cx,prop_wnd_height |
158 | mov edx,0xffffd0+0x33000000 |
210 | mov edx,0xffffd0+0x33000000 |
159 | int 0x40 |
211 | int 0x40 |
160 | 212 | ||
161 | mov esi,[sc.work_button] |
213 | mov esi,[sc.work_button] |
162 | mcall 8, (5 shl 16)+20, (246 shl 16)+20, 3 |
214 | mcall 8, (5 shl 16)+20, (266 shl 16)+20, 3 |
163 | mcall , (30 shl 16)+20, (246 shl 16)+20, 4 |
215 | mcall , (30 shl 16)+20, (266 shl 16)+20, 4 |
164 | 216 | ||
165 | mov ebx,[image_data_toolbar] |
217 | mov ebx,[image_data_toolbar] |
166 | add ebx,4*IMAGE_TOOLBAR_ICON_SIZE |
218 | add ebx,4*IMAGE_TOOLBAR_ICON_SIZE |
167 | mcall 7, , (16 shl 16)+16, (7 shl 16)+247 ;load |
219 | mcall 7, , (16 shl 16)+16, (7 shl 16)+268 ;load |
168 | 220 | ||
169 | sub ebx,IMAGE_TOOLBAR_ICON_SIZE |
221 | sub ebx,IMAGE_TOOLBAR_ICON_SIZE |
170 | mov edx,(32 shl 16)+247 ;save |
222 | mov edx,(32 shl 16)+268 ;save |
171 | int 0x40 |
223 | int 0x40 |
172 | 224 | ||
173 | mov dword[w_scr_t3.all_redraw],1 |
225 | mov dword[w_scr_t3.all_redraw],1 |
174 | stdcall [scrollbar_ver_draw],dword w_scr_t3 |
226 | stdcall [scrollbar_ver_draw],dword w_scr_t3 |
175 | stdcall [tl_draw], tree3 |
227 | stdcall [tl_draw], tree3 |
176 | stdcall [edit_box_draw], edit1 |
228 | stdcall [edit_box_draw], edit1 |
177 | stdcall [edit_box_draw], edit2 |
229 | stdcall [edit_box_draw], edit2 |
178 | stdcall [edit_box_draw], edit3 |
230 | stdcall [edit_box_draw], edit3 |
- | 231 | ||
179 | 232 | stdcall [kmainmenu_draw], [main_menu] |
|
180 | call draw_3d |
233 | call draw_3d |
181 | mcall 12,2 |
234 | mcall 12,2 |
182 | popad |
235 | popad |
183 | ret |
236 | ret |
- | 237 | ||
- | 238 | ;ãáâ ®¢ª ¢á¥å ®á®¢ëå ¯¥à¥¬¥ëå ¯® 㬮«ç ¨î |
|
- | 239 | align 4 |
|
- | 240 | prop_wnd_clear_param: |
|
- | 241 | mov dword[angle_x],0.0 |
|
- | 242 | mov dword[angle_y],0.0 |
|
- | 243 | mov dword[angle_z],0.0 |
|
- | 244 | mov dword[obj_poi_data],0 |
|
- | 245 | mov dword[obj_poi_count],0 |
|
- | 246 | mov dword[obj_tri_data],0 |
|
- | 247 | mov dword[obj_tri_count],0 |
|
- | 248 | mov dword[draw_mode],def_dr_mode |
|
- | 249 | ret |
|
- | 250 | ||
184 | 251 | ;ãáâ ®¢ª à §¬¥à®¢ ®¡ê¥ªâ |
|
185 | align 4 |
252 | align 4 |
186 | proc obj_set_sizes uses eax ebx esi |
253 | proc obj_set_sizes uses eax ebx esi |
187 | stdcall dword[tl_node_poi_get_info], tree3,0 |
- | |
188 | cmp eax,0 |
254 | cmp dword[obj_poi_count],0 |
189 | je .end |
- | |
190 | stdcall [tl_node_poi_get_data], tree3,eax |
255 | je .end |
191 | finit |
256 | finit |
192 | mov eax,[eax] |
257 | mov eax,[obj_poi_data] |
193 | mov ebx,dword[eax] |
258 | mov ebx,dword[eax] |
194 | mov [obj_x_min],ebx |
259 | mov [obj_x_min],ebx |
195 | mov [obj_x_max],ebx |
260 | mov [obj_x_max],ebx |
196 | mov ebx,dword[eax+4] |
261 | mov ebx,dword[eax+4] |
197 | mov [obj_y_min],ebx |
262 | mov [obj_y_min],ebx |
198 | mov [obj_y_max],ebx |
263 | mov [obj_y_max],ebx |
199 | mov ebx,dword[eax+8] |
264 | mov ebx,dword[eax+8] |
200 | mov [obj_z_min],ebx |
265 | mov [obj_z_min],ebx |
201 | mov [obj_z_max],ebx |
266 | mov [obj_z_max],ebx |
- | 267 | ||
202 | 268 | mov ebx,[obj_poi_data] |
|
203 | stdcall dword[tl_node_poi_get_info], tree3,0 |
269 | mov esi,[obj_poi_count] |
204 | align 4 |
270 | align 4 |
205 | .cycle_0: ;à ¡®â á ª®®à¤¨ ⮩ x |
- | |
206 | mov esi,eax |
- | |
207 | stdcall [tl_node_poi_get_data], tree3,esi |
- | |
208 | mov ebx,[eax] |
- | |
209 | 271 | .cycle_0: ;à ¡®â á ª®®à¤¨ ⮩ x |
|
210 | fld dword[ebx] |
272 | fld dword[ebx] |
211 | fld dword[obj_x_min] |
273 | fld dword[obj_x_min] |
212 | fcomp |
274 | fcomp |
213 | fstsw ax |
275 | fstsw ax |
214 | sahf |
276 | sahf |
215 | jb @f |
277 | jb @f |
216 | mov eax,[ebx] |
278 | mov eax,[ebx] |
217 | mov [obj_x_min],eax |
279 | mov [obj_x_min],eax |
218 | ffree st0 |
280 | ffree st0 |
219 | fincstp |
281 | fincstp |
220 | jmp .next_x |
282 | jmp .next_x |
221 | @@: |
283 | @@: |
222 | fld dword[obj_x_max] |
284 | fld dword[obj_x_max] |
223 | fcompp |
285 | fcompp |
224 | fstsw ax |
286 | fstsw ax |
225 | sahf |
287 | sahf |
226 | ja .next_x |
288 | ja .next_x |
227 | mov eax,[ebx] |
289 | mov eax,[ebx] |
228 | mov [obj_x_max],eax |
290 | mov [obj_x_max],eax |
229 | .next_x: |
291 | .next_x: |
230 | 292 | ||
231 | stdcall dword[tl_node_poi_get_next_info], tree3,esi |
293 | add ebx,12 |
232 | cmp eax,0 |
294 | dec esi |
233 | jne .cycle_0 |
295 | jnz .cycle_0 |
234 | 296 | ||
235 | fld1 |
297 | fld1 |
236 | fld dword[obj_x_max] |
298 | fld dword[obj_x_max] |
237 | fsub dword[obj_x_min] |
299 | fsub dword[obj_x_min] |
238 | fst dword[obj_x_centr] |
300 | fst dword[obj_x_centr] |
239 | fdivp ;1/size.x |
301 | fdivp ;1/size.x |
240 | fstp dword[obj_x_scale] |
302 | fstp dword[obj_x_scale] |
241 | 303 | ||
242 | fld dword[obj_x_centr] |
304 | fld dword[obj_x_centr] |
243 | fld1 |
305 | fld1 |
244 | fld1 |
306 | fld1 |
245 | faddp |
307 | faddp |
246 | fdivp ;centr.x = size.x/2 |
308 | fdivp ;centr.x = size.x/2 |
247 | fadd dword[obj_x_min] |
309 | fadd dword[obj_x_min] |
248 | fchs |
310 | fchs |
249 | fstp dword[obj_x_centr] |
311 | fstp dword[obj_x_centr] |
- | 312 | ||
250 | 313 | mov ebx,[obj_poi_data] |
|
251 | stdcall dword[tl_node_poi_get_info], tree3,0 |
314 | mov esi,[obj_poi_count] |
252 | align 4 |
315 | align 4 |
253 | .cycle_1: ;à ¡®â á ª®®à¤¨ ⮩ y |
- | |
254 | mov esi,eax |
- | |
255 | stdcall [tl_node_poi_get_data], tree3,esi |
- | |
256 | mov ebx,[eax] |
- | |
257 | 316 | .cycle_1: ;à ¡®â á ª®®à¤¨ ⮩ y |
|
258 | fld dword[ebx+4] |
317 | fld dword[ebx+4] |
259 | fld dword[obj_y_min] |
318 | fld dword[obj_y_min] |
260 | fcomp |
319 | fcomp |
261 | fstsw ax |
320 | fstsw ax |
262 | sahf |
321 | sahf |
263 | jb @f |
322 | jb @f |
264 | mov eax,[ebx+4] |
323 | mov eax,[ebx+4] |
265 | mov [obj_y_min],eax |
324 | mov [obj_y_min],eax |
266 | ffree st0 |
325 | ffree st0 |
267 | fincstp |
326 | fincstp |
268 | jmp .next_y |
327 | jmp .next_y |
269 | @@: |
328 | @@: |
270 | fld dword[obj_y_max] |
329 | fld dword[obj_y_max] |
271 | fcompp |
330 | fcompp |
272 | fstsw ax |
331 | fstsw ax |
273 | sahf |
332 | sahf |
274 | ja .next_y |
333 | ja .next_y |
275 | mov eax,[ebx+4] |
334 | mov eax,[ebx+4] |
276 | mov [obj_y_max],eax |
335 | mov [obj_y_max],eax |
277 | .next_y: |
336 | .next_y: |
278 | 337 | ||
279 | stdcall dword[tl_node_poi_get_next_info], tree3,esi |
338 | add ebx,12 |
280 | cmp eax,0 |
339 | dec esi |
281 | jne .cycle_1 |
340 | jnz .cycle_1 |
282 | 341 | ||
283 | fld1 |
342 | fld1 |
284 | fld dword[obj_y_max] |
343 | fld dword[obj_y_max] |
285 | fsub dword[obj_y_min] |
344 | fsub dword[obj_y_min] |
286 | fst dword[obj_y_centr] |
345 | fst dword[obj_y_centr] |
287 | fdivp ;1/size.y |
346 | fdivp ;1/size.y |
288 | fstp dword[obj_y_scale] |
347 | fstp dword[obj_y_scale] |
289 | 348 | ||
290 | fld dword[obj_y_centr] |
349 | fld dword[obj_y_centr] |
291 | fld1 |
350 | fld1 |
292 | fld1 |
351 | fld1 |
293 | faddp |
352 | faddp |
294 | fdivp ;centr.y = size.y/2 |
353 | fdivp ;centr.y = size.y/2 |
295 | fadd dword[obj_y_min] |
354 | fadd dword[obj_y_min] |
296 | fchs |
355 | fchs |
297 | fstp dword[obj_y_centr] |
356 | fstp dword[obj_y_centr] |
- | 357 | ||
298 | 358 | mov ebx,[obj_poi_data] |
|
299 | stdcall dword[tl_node_poi_get_info], tree3,0 |
359 | mov esi,[obj_poi_count] |
300 | align 4 |
360 | align 4 |
301 | .cycle_2: ;à ¡®â á ª®®à¤¨ ⮩ z |
- | |
302 | mov esi,eax |
- | |
303 | stdcall [tl_node_poi_get_data], tree3,esi |
- | |
304 | mov ebx,[eax] |
- | |
305 | 361 | .cycle_2: ;à ¡®â á ª®®à¤¨ ⮩ z |
|
306 | fld dword[ebx+8] |
362 | fld dword[ebx+8] |
307 | fld dword[obj_z_min] |
363 | fld dword[obj_z_min] |
308 | fcomp |
364 | fcomp |
309 | fstsw ax |
365 | fstsw ax |
310 | sahf |
366 | sahf |
311 | jb @f |
367 | jb @f |
312 | mov eax,[ebx+8] |
368 | mov eax,[ebx+8] |
313 | mov [obj_z_min],eax |
369 | mov [obj_z_min],eax |
314 | ffree st0 |
370 | ffree st0 |
315 | fincstp |
371 | fincstp |
316 | jmp .next_z |
372 | jmp .next_z |
317 | @@: |
373 | @@: |
318 | fld dword[obj_z_max] |
374 | fld dword[obj_z_max] |
319 | fcompp |
375 | fcompp |
320 | fstsw ax |
376 | fstsw ax |
321 | sahf |
377 | sahf |
322 | ja .next_z |
378 | ja .next_z |
323 | mov eax,[ebx+8] |
379 | mov eax,[ebx+8] |
324 | mov [obj_z_max],eax |
380 | mov [obj_z_max],eax |
325 | .next_z: |
381 | .next_z: |
326 | 382 | ||
327 | stdcall dword[tl_node_poi_get_next_info], tree3,esi |
383 | add ebx,12 |
328 | cmp eax,0 |
384 | dec esi |
329 | jne .cycle_2 |
385 | jnz .cycle_2 |
330 | 386 | ||
331 | fld1 |
387 | fld1 |
332 | fld dword[obj_z_max] |
388 | fld dword[obj_z_max] |
333 | fsub dword[obj_z_min] |
389 | fsub dword[obj_z_min] |
334 | fst dword[obj_z_centr] |
390 | fst dword[obj_z_centr] |
335 | fdivp ;1/size.z |
391 | fdivp ;1/size.z |
336 | fstp dword[obj_z_scale] |
392 | fstp dword[obj_z_scale] |
337 | 393 | ||
338 | fld dword[obj_z_centr] |
394 | fld dword[obj_z_centr] |
339 | fld1 |
395 | fld1 |
340 | fld1 |
396 | fld1 |
341 | faddp |
397 | faddp |
342 | fdivp ;centr.z = size.z/2 |
398 | fdivp ;centr.z = size.z/2 |
343 | fadd dword[obj_z_min] |
399 | fadd dword[obj_z_min] |
344 | fchs |
400 | fchs |
345 | fstp dword[obj_z_centr] |
401 | fstp dword[obj_z_centr] |
346 | 402 | ||
347 | ; 室¨¬ à ¤¨ãá ¤«ï áä¥àë |
403 | ; 室¨¬ à ¤¨ãá ¤«ï áä¥àë |
348 | fld dword[obj_x_max] |
404 | fld dword[obj_x_max] |
349 | fsub dword[obj_x_min] |
405 | fsub dword[obj_x_min] |
350 | fld dword[obj_y_max] |
406 | fld dword[obj_y_max] |
351 | fsub dword[obj_y_min] |
407 | fsub dword[obj_y_min] |
352 | faddp |
408 | faddp |
353 | fild dword[rad_c] |
409 | fild dword[rad_c] |
354 | fdivp ;radius=(size.x+size.y)/rad_c |
410 | fdivp ;radius=(size.x+size.y)/rad_c |
355 | fstp dword[sph_radius] |
411 | fstp dword[sph_radius] |
356 | .end: |
412 | .end: |
357 | ret |
413 | ret |
358 | endp |
414 | endp |
359 | 415 | ||
360 | ;à¨á®¢ ¨¥ â®ç¥ª ¢ 3d |
416 | ;à¨á®¢ ¨¥ â®ç¥ª ¢ 3d |
361 | align 4 |
417 | align 4 |
362 | draw_3d: |
418 | draw_3d: |
- | 419 | cmp dword[obj_poi_count],2 |
|
- | 420 | jl .end_f |
|
- | 421 | ||
363 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;®ç¨á⨬ ¡ãä¥à 梥⠨ £«ã¡¨ë |
422 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;®ç¨á⨬ ¡ãä¥à 梥⠨ £«ã¡¨ë |
364 | stdcall [glPushMatrix] |
423 | stdcall [glPushMatrix] |
- | 424 | bt dword[draw_mode],bit_light |
|
- | 425 | jnc @f |
|
- | 426 | call SetLight |
|
- | 427 | jmp .end_l |
|
- | 428 | @@: |
|
- | 429 | stdcall [glDisable],GL_LIGHTING |
|
- | 430 | .end_l: |
|
365 | stdcall [glTranslatef], 0.0,0.0,0.5 ;correct for z |
431 | stdcall [glTranslatef], 0.0,0.0,0.5 ;correct for z |
366 | stdcall [glScalef], [obj_x_scale],[obj_y_scale],[obj_z_scale] |
432 | stdcall [glScalef], [obj_x_scale],[obj_y_scale],[obj_z_scale] |
367 | stdcall [glScalef], 1.0,1.0,0.7 ;correct for z |
433 | stdcall [glScalef], 1.0,1.0,0.7 ;correct for z |
368 | stdcall [glRotatef], [angle_z],0.0,0.0,1.0 |
434 | stdcall [glRotatef], [angle_z],0.0,0.0,1.0 |
369 | stdcall [glRotatef], [angle_y],0.0,1.0,0.0 |
435 | stdcall [glRotatef], [angle_y],0.0,1.0,0.0 |
370 | stdcall [glRotatef], [angle_x],1.0,0.0,0.0 |
436 | stdcall [glRotatef], [angle_x],1.0,0.0,0.0 |
371 | stdcall [glTranslatef], [obj_x_centr],[obj_y_centr],[obj_z_centr] |
437 | stdcall [glTranslatef], [obj_x_centr],[obj_y_centr],[obj_z_centr] |
- | 438 | ||
- | 439 | ;à¨á®¢ ¨¥ â®ç¥ª |
|
- | 440 | bt dword[draw_mode],bit_vertexes |
|
372 | 441 | jnc .end_points |
|
373 | stdcall [glColor3f], 1.0,1.0,1.0 |
442 | stdcall [glColor3f], 1.0,1.0,1.0 |
374 | stdcall [glBegin],GL_POINTS |
- | |
375 | 443 | stdcall [glBegin],GL_POINTS |
|
376 | stdcall dword[tl_node_poi_get_info], tree3,0 |
- | |
377 | @@: |
444 | mov eax,[obj_poi_data] |
378 | cmp eax,0 |
445 | mov ebx,[obj_poi_count] |
379 | je @f |
- | |
380 | mov esi,eax |
446 | @@: |
381 | stdcall [tl_node_poi_get_data], tree3,esi |
447 | stdcall [glVertex3f], [eax],[eax+4],[eax+8] |
382 | mov eax,[eax] |
- | |
383 | stdcall [glVertex3f], [eax],[eax+4],[eax+8] |
- | |
384 | stdcall dword[tl_node_poi_get_next_info], tree3,esi |
448 | add eax,12 |
385 | jmp @b |
449 | dec ebx |
386 | @@: |
450 | jnz @b |
- | 451 | stdcall [glEnd] |
|
- | 452 | .end_points: |
|
387 | stdcall [glEnd] |
453 | |
388 | 454 | ;à¨á®¢ ¨¥ ¢ë¤¥«¥®© â®çª¨ |
|
389 | stdcall [tl_node_get_data],tree3 |
455 | stdcall [tl_node_get_data],tree3 |
390 | cmp eax,0 |
456 | cmp eax,0 |
391 | je @f |
457 | je @f |
392 | ;¢ë¤¥«¥¨¥ ªâ¨¢®© â®çª¨ |
458 | ;¢ë¤¥«¥¨¥ ªâ¨¢®© â®çª¨ |
393 | mov eax,[eax] |
459 | mov eax,[eax] |
394 | 460 | ||
395 | stdcall [glBegin],GL_LINES |
461 | stdcall [glBegin],GL_LINES |
396 | stdcall [glColor3f], 1.0, 0.0, 0.0 |
462 | stdcall [glColor3f], 1.0, 0.0, 0.0 |
397 | stdcall [glVertex3f], [obj_x_min],[eax+4],[eax+8] |
463 | stdcall [glVertex3f], [obj_x_min],[eax+4],[eax+8] |
398 | stdcall [glVertex3f], [obj_x_max],[eax+4],[eax+8] |
464 | stdcall [glVertex3f], [obj_x_max],[eax+4],[eax+8] |
399 | stdcall [glColor3f], 0.0, 0.0, 1.0 |
465 | stdcall [glColor3f], 0.0, 0.0, 1.0 |
400 | stdcall [glVertex3f], [eax],[obj_y_min],[eax+8] |
466 | stdcall [glVertex3f], [eax],[obj_y_min],[eax+8] |
401 | stdcall [glVertex3f], [eax],[obj_y_max],[eax+8] |
467 | stdcall [glVertex3f], [eax],[obj_y_max],[eax+8] |
402 | stdcall [glColor3f], 0.0, 1.0, 0.0 |
468 | stdcall [glColor3f], 0.0, 1.0, 0.0 |
403 | stdcall [glVertex3f], [eax],[eax+4],[obj_z_min] |
469 | stdcall [glVertex3f], [eax],[eax+4],[obj_z_min] |
404 | stdcall [glVertex3f], [eax],[eax+4],[obj_z_max] |
470 | stdcall [glVertex3f], [eax],[eax+4],[obj_z_max] |
405 | stdcall [glEnd] |
471 | stdcall [glEnd] |
406 | 472 | ||
407 | stdcall [glColor3f], 1.0, 1.0, 0.0 |
473 | stdcall [glColor3f], 1.0, 1.0, 0.0 |
- | 474 | stdcall [glPushMatrix] |
|
408 | stdcall [glTranslatef], [eax],[eax+4],[eax+8] |
475 | stdcall [glTranslatef], [eax],[eax+4],[eax+8] |
409 | stdcall [gluSphere], [qObj], [sph_radius], 8,8 |
476 | stdcall [gluSphere], [qObj], [sph_radius], 8,8 |
- | 477 | stdcall [glPopMatrix] |
|
410 | @@: |
478 | @@: |
- | 479 | ||
- | 480 | ;à¨á®¢ ¨¥ £à ¥© |
|
- | 481 | bt dword[draw_mode],bit_faces |
|
- | 482 | jnc .end_triangles |
|
- | 483 | cmp dword[obj_tri_count],0 |
|
- | 484 | je .end_triangles |
|
- | 485 | cmp dword[obj_poi_count],0 |
|
- | 486 | je .end_triangles |
|
- | 487 | stdcall [glColor3f], 0.5,0.5,0.5 |
|
- | 488 | ;bt dword[draw_mode],bit_faces_fill |
|
- | 489 | ;jnc @f |
|
- | 490 | ;@@: |
|
- | 491 | stdcall [glBegin],GL_TRIANGLES |
|
- | 492 | mov eax,[obj_tri_data] |
|
- | 493 | mov ecx,[obj_tri_count] |
|
- | 494 | @@: |
|
- | 495 | movzx ebx,word[eax] ;1-ï ¢¥àè¨ |
|
- | 496 | imul ebx,12 |
|
- | 497 | add ebx,[obj_poi_data] |
|
- | 498 | stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8] |
|
- | 499 | movzx ebx,word[eax+2] ;2-ï ¢¥àè¨ |
|
- | 500 | imul ebx,12 |
|
- | 501 | add ebx,[obj_poi_data] |
|
- | 502 | stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8] |
|
- | 503 | movzx ebx,word[eax+4] ;3-ï ¢¥àè¨ |
|
- | 504 | imul ebx,12 |
|
- | 505 | add ebx,[obj_poi_data] |
|
- | 506 | stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8] |
|
- | 507 | add eax,8 ;à §¬¥à âà¥ã£®«ì¨ª = (3 ¢¥àè¨ë (¯® 2¡) + ᢮©á⢠(2¡)) |
|
- | 508 | dec ecx |
|
- | 509 | jnz @b |
|
- | 510 | stdcall [glEnd] |
|
- | 511 | .end_triangles: |
|
411 | 512 | ||
412 | stdcall [glPopMatrix] |
513 | stdcall [glPopMatrix] |
413 | stdcall [kosglSwapBuffers] |
514 | stdcall [kosglSwapBuffers] |
- | 515 | .end_f: |
|
414 | ret |
516 | ret |
415 | 517 | ||
416 | align 4 |
518 | align 4 |
417 | prop_key: |
519 | SetLight: |
- | 520 | stdcall [glLightfv], GL_LIGHT0, GL_POSITION, light_position |
|
- | 521 | stdcall [glLightfv], GL_LIGHT0, GL_SPOT_DIRECTION, light_dir |
|
- | 522 | ||
- | 523 | stdcall [glLightfv], GL_LIGHT0, GL_DIFFUSE, white_light |
|
- | 524 | stdcall [glLightfv], GL_LIGHT0, GL_SPECULAR, white_light |
|
- | 525 | ||
- | 526 | stdcall [glEnable], GL_COLOR_MATERIAL |
|
- | 527 | stdcall [glColorMaterial], GL_FRONT, GL_AMBIENT_AND_DIFFUSE |
|
- | 528 | stdcall [glMaterialfv], GL_FRONT, GL_SPECULAR, mat_specular |
|
- | 529 | stdcall [glMaterialf], GL_FRONT, GL_SHININESS, mat_shininess |
|
- | 530 | stdcall [glLightModelfv], GL_LIGHT_MODEL_AMBIENT, lmodel_ambient |
|
- | 531 | ||
- | 532 | stdcall [glEnable],GL_LIGHTING |
|
- | 533 | stdcall [glEnable],GL_LIGHT0 |
|
- | 534 | ret |
|
- | 535 | ||
418 | push eax |
536 | align 4 |
- | 537 | proc prop_key uses eax ebx |
|
419 | mcall 2 |
538 | mcall 2 |
420 | 539 | ||
421 | test word [edit1.flags],10b ;ed_focus |
540 | test word [edit1.flags],10b ;ed_focus |
422 | je @f |
541 | je @f |
423 | stdcall [edit_box_key], edit1 |
542 | stdcall [edit_box_key], edit1 |
424 | jmp .end |
543 | jmp .end |
425 | @@: |
544 | @@: |
426 | test word [edit2.flags],10b |
545 | test word [edit2.flags],10b |
427 | je @f |
546 | je @f |
428 | stdcall [edit_box_key], edit2 |
547 | stdcall [edit_box_key], edit2 |
429 | jmp .end |
548 | jmp .end |
430 | @@: |
549 | @@: |
431 | test word [edit3.flags],10b |
550 | test word [edit3.flags],10b |
432 | je @f |
551 | je @f |
433 | stdcall [edit_box_key], edit3 |
552 | stdcall [edit_box_key], edit3 |
434 | jmp .end |
553 | jmp .end |
435 | @@: |
554 | @@: |
- | 555 | cmp dword[el_focus], tree3 |
|
- | 556 | jne @f |
|
436 | stdcall [tl_key], tree3 |
557 | stdcall [tl_key], tree3 |
- | 558 | jmp .end |
|
- | 559 | @@: |
|
437 | 560 | ||
438 | cmp ah,178 ;Up |
561 | cmp ah,178 ;Up |
439 | jne @f |
562 | jne @f |
440 | fld dword[angle_x] |
563 | fld dword[angle_x] |
441 | fadd dword[delt_size] |
564 | fadd dword[delt_size] |
442 | fstp dword[angle_x] |
565 | fstp dword[angle_x] |
443 | call draw_3d |
566 | call draw_3d |
444 | jmp .end |
567 | jmp .end |
445 | @@: |
568 | @@: |
446 | cmp ah,177 ;Down |
569 | cmp ah,177 ;Down |
447 | jne @f |
570 | jne @f |
448 | fld dword[angle_x] |
571 | fld dword[angle_x] |
449 | fsub dword[delt_size] |
572 | fsub dword[delt_size] |
450 | fstp dword[angle_x] |
573 | fstp dword[angle_x] |
451 | call draw_3d |
574 | call draw_3d |
452 | jmp .end |
575 | jmp .end |
453 | @@: |
576 | @@: |
454 | cmp ah,176 ;Left |
577 | cmp ah,176 ;Left |
455 | jne @f |
578 | jne @f |
456 | fld dword[angle_y] |
579 | fld dword[angle_y] |
457 | fadd dword[delt_size] |
580 | fadd dword[delt_size] |
458 | fstp dword[angle_y] |
581 | fstp dword[angle_y] |
459 | call draw_3d |
582 | call draw_3d |
460 | jmp .end |
583 | jmp .end |
461 | @@: |
584 | @@: |
462 | cmp ah,179 ;Right |
585 | cmp ah,179 ;Right |
463 | jne @f |
586 | jne @f |
464 | fld dword[angle_y] |
587 | fld dword[angle_y] |
465 | fsub dword[delt_size] |
588 | fsub dword[delt_size] |
466 | fstp dword[angle_y] |
589 | fstp dword[angle_y] |
467 | call draw_3d |
590 | call draw_3d |
468 | ;jmp .end |
591 | ;jmp .end |
469 | @@: |
592 | @@: |
470 | .end: |
593 | .end: |
471 | pop eax |
- | |
472 | ret |
594 | ret |
- | 595 | endp |
|
473 | 596 | ||
474 | align 4 |
597 | align 4 |
475 | prop_mouse: |
598 | prop_mouse: |
476 | ;push ecx edi |
599 | ;push ecx edi |
- | 600 | stdcall [kmainmenu_dispatch_cursorevent], [main_menu] |
|
477 | stdcall [tl_mouse], tree3 |
601 | stdcall [tl_mouse], tree3 |
478 | stdcall [edit_box_mouse], edit1 |
602 | stdcall [edit_box_mouse], edit1 |
479 | stdcall [edit_box_mouse], edit2 |
603 | stdcall [edit_box_mouse], edit2 |
480 | stdcall [edit_box_mouse], edit3 |
604 | stdcall [edit_box_mouse], edit3 |
481 | ;pop edi ecx |
605 | ;pop edi ecx |
482 | ret |
606 | ret |
483 | 607 | ||
484 | align 4 |
608 | align 4 |
485 | prop_button: |
609 | prop_button: |
486 | mcall 17 ;¯®«ãç¨âì ª®¤ ¦ ⮩ ª®¯ª¨ |
610 | mcall 17 ;¯®«ãç¨âì ª®¤ ¦ ⮩ ª®¯ª¨ |
487 | 611 | ||
488 | cmp ah,3 |
612 | cmp ah,3 |
489 | jne @f |
613 | jne @f |
490 | call get_point_coords |
614 | call get_point_coords |
491 | call draw_3d |
615 | call draw_3d |
492 | jmp prop_still.end |
616 | jmp prop_still.end |
493 | @@: |
617 | @@: |
494 | cmp ah,4 |
618 | cmp ah,4 |
495 | jne @f |
619 | jne @f |
496 | push eax ebx ecx edi esi |
620 | push eax ebx ecx edi esi |
497 | stdcall [tl_node_get_data],tree3 |
621 | stdcall [tl_node_get_data],tree3 |
498 | cmp eax,0 |
622 | cmp eax,0 |
499 | je .no_select_1 |
623 | je .no_select_1 |
500 | mov ebx,[eax] |
624 | mov ebx,[eax] |
501 | finit |
625 | finit |
502 | 626 | ||
503 | mov esi,string1 |
627 | mov esi,string1 |
504 | mov edi,Data_String |
628 | mov edi,Data_String |
505 | cld |
629 | cld |
506 | mov ecx,8 |
630 | mov ecx,8 |
507 | rep movsd |
631 | rep movsd |
508 | call String_to_DoubleFloat |
632 | call String_to_DoubleFloat |
509 | fld qword[Data_Double] ;áç¨âë¢ ¥¬ ª ª double |
633 | fld qword[Data_Double] ;áç¨âë¢ ¥¬ ª ª double |
510 | fstp dword[ebx] ;á®åà 塞 ª ª float |
634 | fstp dword[ebx] ;á®åà 塞 ª ª float |
511 | 635 | ||
512 | mov esi,string2 |
636 | mov esi,string2 |
513 | mov edi,Data_String |
637 | mov edi,Data_String |
514 | cld |
638 | cld |
515 | mov ecx,8 |
639 | mov ecx,8 |
516 | rep movsd |
640 | rep movsd |
517 | call String_to_DoubleFloat |
641 | call String_to_DoubleFloat |
518 | fld qword[Data_Double] ;áç¨âë¢ ¥¬ ª ª double |
642 | fld qword[Data_Double] ;áç¨âë¢ ¥¬ ª ª double |
519 | fstp dword[ebx+4] ;á®åà 塞 ª ª float |
643 | fstp dword[ebx+4] ;á®åà 塞 ª ª float |
520 | 644 | ||
521 | mov esi,string3 |
645 | mov esi,string3 |
522 | mov edi,Data_String |
646 | mov edi,Data_String |
523 | cld |
647 | cld |
524 | mov ecx,8 |
648 | mov ecx,8 |
525 | rep movsd |
649 | rep movsd |
526 | call String_to_DoubleFloat |
650 | call String_to_DoubleFloat |
527 | fld qword[Data_Double] ;áç¨âë¢ ¥¬ ª ª double |
651 | fld qword[Data_Double] ;áç¨âë¢ ¥¬ ª ª double |
528 | fstp dword[ebx+8] ;á®åà 塞 ª ª float |
652 | fstp dword[ebx+8] ;á®åà 塞 ª ª float |
529 | 653 | ||
530 | ;®¡®¢«¥¨¥ ¨§¬¥¥®£® 㧫 ¢ ᯨ᪥ tree3 ¨ £« ¢®£® ®ª (¯® â ©¬¥àã) |
654 | ;®¡®¢«¥¨¥ ¨§¬¥¥®£® 㧫 ¢ ᯨ᪥ tree3 ¨ £« ¢®£® ®ª (¯® â ©¬¥àã) |
531 | mov word[NumberSymbolsAD],5 |
655 | mov word[NumberSymbolsAD],5 |
532 | mov dword[obj_point],ebx |
656 | mov dword[obj_point],ebx |
533 | mov dword[obj_point.text],0 |
657 | mov dword[obj_point.text],0 |
534 | cld |
658 | cld |
535 | mov ecx,3 |
659 | mov ecx,3 |
536 | .coord: |
660 | .coord: |
537 | fld dword[ebx] |
661 | fld dword[ebx] |
538 | fstp qword[Data_Double] |
662 | fstp qword[Data_Double] |
539 | call DoubleFloat_to_String |
663 | call DoubleFloat_to_String |
540 | add ebx,4 |
664 | add ebx,4 |
541 | stdcall str_len, Data_String |
665 | stdcall str_len, Data_String |
542 | mov esi,txt_space |
666 | mov esi,txt_space |
543 | add esi,eax |
667 | add esi,eax |
544 | cmp esi,txt_space.end |
668 | cmp esi,txt_space.end |
545 | jl .normal_size |
669 | jl .normal_size |
546 | mov esi,txt_space.end-1 ;¬¨¨¬ã¬ 1 ¯à®¡¥« 㦮 ¤®¡ ¢¨âì, çâ®-¡ë æ¨äàë ¥ ᫨¯ «¨áì |
670 | mov esi,txt_space.end-1 ;¬¨¨¬ã¬ 1 ¯à®¡¥« 㦮 ¤®¡ ¢¨âì, çâ®-¡ë æ¨äàë ¥ ᫨¯ «¨áì |
547 | .normal_size: |
671 | .normal_size: |
548 | stdcall str_cat, obj_point.text,esi |
672 | stdcall str_cat, obj_point.text,esi |
549 | stdcall str_cat, obj_point.text,Data_String |
673 | stdcall str_cat, obj_point.text,Data_String |
550 | loop .coord |
674 | loop .coord |
551 | stdcall dword[tl_node_set_data], tree3,obj_point |
675 | stdcall dword[tl_node_set_data], tree3,obj_point |
552 | stdcall dword[tl_draw], tree3 |
676 | stdcall dword[tl_draw], tree3 |
553 | mov byte[can_save],1 ;¤«ï ¯®ª § ª®¯ª¨ '®åà ¨âì' |
677 | mov byte[can_save],1 ;¤«ï ¯®ª § ª®¯ª¨ '®åà ¨âì' |
554 | mov dword[offs_last_timer],0 ;¤«ï ®¡®¢«¥¨ï ¡«®ª ¢ â ©¬¥à¥ |
678 | mov dword[offs_last_timer],0 ;¤«ï ®¡®¢«¥¨ï ¡«®ª ¢ â ©¬¥à¥ |
555 | call draw_3d |
679 | call draw_3d |
556 | .no_select_1: |
680 | .no_select_1: |
557 | pop esi edi ecx ebx eax |
681 | pop esi edi ecx ebx eax |
558 | jmp prop_still.end |
682 | jmp prop_still.end |
559 | @@: |
683 | @@: |
- | 684 | cmp ah,5 |
|
- | 685 | jne @f |
|
- | 686 | call mnu_vertexes_on_off |
|
- | 687 | jmp prop_still.end |
|
- | 688 | @@: |
|
- | 689 | cmp ah,6 |
|
- | 690 | jne @f |
|
- | 691 | call mnu_faces_on_off |
|
- | 692 | jmp prop_still.end |
|
- | 693 | @@: |
|
- | 694 | cmp ah,7 |
|
- | 695 | jne @f |
|
- | 696 | call mnu_light_on_off |
|
- | 697 | jmp prop_still.end |
|
- | 698 | @@: |
|
560 | 699 | ||
561 | cmp ah,1 |
700 | cmp ah,1 |
562 | jne prop_still.end |
701 | jne prop_still.end |
563 | .exit: |
702 | .exit: |
564 | mov dword[tree3.data_img],0 ;ç¨á⨬ 㪠§ ⥫¨ ¨ª®ª¨ çâ®-¡ë ¨å ¥ 㤠«¨« ¤¥áâàãªâ®à |
703 | mov dword[tree3.data_img],0 ;ç¨á⨬ 㪠§ ⥫¨ ¨ª®ª¨ çâ®-¡ë ¨å ¥ 㤠«¨« ¤¥áâàãªâ®à |
565 | mov dword[tree3.data_img_sys],0 ;â. ª. ®¨ ¥é¥ ¨á¯®«ì§ãîâìáï ¢ ¤à㣨å í«¥¬¥â å |
704 | mov dword[tree3.data_img_sys],0 ;â. ª. ®¨ ¥é¥ ¨á¯®«ì§ãîâìáï ¢ ¤à㣨å í«¥¬¥â å |
566 | stdcall dword[tl_data_clear], tree3 |
705 | stdcall dword[tl_data_clear], tree3 |
567 | mov byte[prop_wnd_run],0 ;®¡ã«ï¥¬ áç¥â稪 ®ª® |
706 | mov byte[prop_wnd_run],0 ;®¡ã«ï¥¬ áç¥â稪 ®ª® |
568 | mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë |
707 | mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë |
569 | 708 | ||
570 | align 4 |
709 | align 4 |
571 | get_point_coords: |
710 | get_point_coords: |
572 | ;§ £à㧪 ª®®à¤¨ â ¢ editbox-ë |
711 | ;§ £à㧪 ª®®à¤¨ â ¢ editbox-ë |
573 | push eax ebx |
712 | push eax ebx |
574 | stdcall [tl_node_get_data],tree3 |
713 | stdcall [tl_node_get_data],tree3 |
575 | cmp eax,0 |
714 | cmp eax,0 |
576 | je @f |
715 | je @f |
577 | mov ebx,[eax] |
716 | mov ebx,[eax] |
578 | mov word[NumberSymbolsAD],8 |
717 | mov word[NumberSymbolsAD],8 |
579 | finit |
718 | finit |
580 | fld dword[ebx] |
719 | fld dword[ebx] |
581 | fstp qword[Data_Double] |
720 | fstp qword[Data_Double] |
582 | call DoubleFloat_to_String |
721 | call DoubleFloat_to_String |
583 | stdcall [edit_box_set_text], edit1, Data_String |
722 | stdcall [edit_box_set_text], edit1, Data_String |
584 | fld dword[ebx+4] |
723 | fld dword[ebx+4] |
585 | fstp qword[Data_Double] |
724 | fstp qword[Data_Double] |
586 | call DoubleFloat_to_String |
725 | call DoubleFloat_to_String |
587 | stdcall [edit_box_set_text], edit2, Data_String |
726 | stdcall [edit_box_set_text], edit2, Data_String |
588 | fld dword[ebx+8] |
727 | fld dword[ebx+8] |
589 | fstp qword[Data_Double] |
728 | fstp qword[Data_Double] |
590 | call DoubleFloat_to_String |
729 | call DoubleFloat_to_String |
591 | stdcall [edit_box_set_text], edit3, Data_String |
730 | stdcall [edit_box_set_text], edit3, Data_String |
592 | stdcall [edit_box_draw], edit1 |
731 | stdcall [edit_box_draw], edit1 |
593 | stdcall [edit_box_draw], edit2 |
732 | stdcall [edit_box_draw], edit2 |
594 | stdcall [edit_box_draw], edit3 |
733 | stdcall [edit_box_draw], edit3 |
595 | @@: |
734 | @@: |
596 | pop ebx eax |
735 | pop ebx eax |
597 | ret |
736 | ret |
598 | 737 | ||
599 | align 4 |
738 | align 4 |
- | 739 | proc prop_timer_funct uses eax |
|
- | 740 | ;¯à®á¬ âਢ ¥¬ ¢ë¤¥«¥ãî ª®®à¤¨ âã |
|
- | 741 | stdcall [tl_node_get_data],tree3 |
|
- | 742 | cmp [cursor_last_draw],eax |
|
- | 743 | je @f |
|
- | 744 | mov [cursor_last_draw],eax |
|
- | 745 | call draw_3d |
|
- | 746 | @@: |
|
- | 747 | ret |
|
- | 748 | endp |
|
- | 749 | ||
- | 750 | align 4 |
|
- | 751 | mnu_vertexes_on_off: |
|
- | 752 | xor dword[draw_mode], 1 shl bit_vertexes |
|
- | 753 | ret |
|
- | 754 | ||
- | 755 | align 4 |
|
- | 756 | mnu_faces_on_off: |
|
- | 757 | xor dword[draw_mode], 1 shl bit_faces |
|
- | 758 | ret |
|
- | 759 | ||
- | 760 | align 4 |
|
- | 761 | mnu_light_on_off: |
|
- | 762 | xor dword[draw_mode], 1 shl bit_light |
|
- | 763 | ret |
|
- | 764 | ||
- | 765 | align 4 |
|
- | 766 | draw_mode dd 0 |
|
- | 767 | obj_poi_data dd 0 ;㪠§ â¥«ì ª®®à¤¨ âë ¢¥àè¨ |
|
- | 768 | obj_poi_count dd 0 ;ª®««¨ç¥á⢮ ¢¥àè¨ |
|
- | 769 | obj_tri_data dd 0 ;㪠§ â¥«ì ¤ ë¥ âà¥ã£®«ì¨ª®¢ |
|
- | 770 | obj_tri_count dd 0 ;ª®««¨ç¥á⢮ âà¥ã£®«ì¨ª®¢ |
|
- | 771 | cursor_last_draw dd 0 ;¯®«®¦¥¨¥ ªãàá®à ¯à¨ ¯®á«¥¤¥© ¯à®à¨á®¢ª¥ 3d ®ª |
|
600 | sph_radius dd 0 ;à ¤¨ãá áä¥àë ¤«ï ¢ë¤¥«¥¨ï ªâ¨¢®© â®çª¨ |
772 | sph_radius dd 0 ;à ¤¨ãá áä¥àë ¤«ï ¢ë¤¥«¥¨ï ªâ¨¢®© â®çª¨ |
601 | obj_x_max dd 0 |
773 | obj_x_max dd 0 |
602 | obj_x_min dd 0 |
774 | obj_x_min dd 0 |
603 | obj_x_centr dd 0 |
775 | obj_x_centr dd 0 |
604 | obj_x_scale dd 1.0 |
776 | obj_x_scale dd 1.0 |
605 | obj_y_max dd 0 |
777 | obj_y_max dd 0 |
606 | obj_y_min dd 0 |
778 | obj_y_min dd 0 |
607 | obj_y_centr dd 0 |
779 | obj_y_centr dd 0 |
608 | obj_y_scale dd 1.0 |
780 | obj_y_scale dd 1.0 |
609 | obj_z_max dd 0 |
781 | obj_z_max dd 0 |
610 | obj_z_min dd 0 |
782 | obj_z_min dd 0 |
611 | obj_z_centr dd 0 |
783 | obj_z_centr dd 0 |
612 | obj_z_scale dd 1.0 |
784 | obj_z_scale dd 1.0 |
613 | 785 | ||
614 | capt_p dd 0 |
786 | capt_p dd 0 |
615 | 787 | ||
616 | ;¤¥à¥¢® á ®¡ê¥ªâ ¬¨ ¢ ¯®«ì§®¢ ⥫ì᪮¬ ä ©«¥ |
788 | ;¤¥à¥¢® á ®¡ê¥ªâ ¬¨ ¢ ¯®«ì§®¢ ⥫ì᪮¬ ä ©«¥ |
617 | tree3 tree_list MAX_OBJECT_SIZE,3, tl_key_no_edit+tl_list_box_mode,\ |
789 | tree3 tree_list MAX_OBJECT_SIZE,3, tl_key_no_edit+tl_list_box_mode,\ |
618 | 16,16, 0xffffff,0xb0d0ff,0x400040, 5,270,303,160, 16, 4,0, el_focus,\ |
790 | 16,16, 0xffffff,0xb0d0ff,0x400040, 5,290,303,140, 16, 4,0, el_focus,\ |
619 | w_scr_t3,get_point_coords |
791 | w_scr_t3,get_point_coords |
620 | 792 | ||
621 | edit1 edit_box 80, 76, 249, 0xffd0d0, 0xff, 0x80ff, 0, 0x8000, 34, string1, mouse_dd, 0 |
793 | edit1 edit_box 80, 76, 269, 0xffd0d0, 0xff, 0x80ff, 0, 0x8000, 34, string1, mouse_dd, 0 |
622 | edit2 edit_box 80, 160, 249, 0xd0d0ff, 0xff, 0x80ff, 0, 0x8000, 34, string2, mouse_dd, 0 |
794 | edit2 edit_box 80, 160, 269, 0xd0d0ff, 0xff, 0x80ff, 0, 0x8000, 34, string2, mouse_dd, 0 |
623 | edit3 edit_box 80, 244, 249, 0xd0ffd0, 0xff, 0x80ff, 0, 0x8000, 34, string3, mouse_dd, 0 |
795 | edit3 edit_box 80, 244, 269, 0xd0ffd0, 0xff, 0x80ff, 0, 0x8000, 34, string3, mouse_dd, 0 |
624 | editboxes_end: |
796 | editboxes_end: |
625 | 797 | ||
626 | string1 rb 34 |
798 | string1 rb 34 |
627 | string2 rb 34 |
799 | string2 rb 34 |
628 | string3 rb 34 |
800 | string3 rb 34 |
629 | 801 | ||
630 | align 4 |
802 | align 4 |
631 | w_scr_t3 scrollbar 16, 0,0,0, 15, 100,0,0, 0,0,0, 1 |
803 | w_scr_t3 scrollbar 16, 0,0,0, 15, 100,0,0, 0,0,0, 1 |