Rev 6060 | Rev 6083 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6060 | Rev 6081 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | use32 |
1 | use32 |
2 | org 0x0 |
2 | org 0x0 |
3 | db 'MENUET01' ;¨¤¥â¨ä. ¨á¯®«ï¥¬®£® ä ©« ¢á¥£¤ 8 ¡ ©â |
3 | db 'MENUET01' ;¨¤¥â¨ä. ¨á¯®«ï¥¬®£® ä ©« ¢á¥£¤ 8 ¡ ©â |
4 | dd 1, start, i_end, mem, stacktop, 0, sys_path |
4 | dd 1, start, i_end, mem, stacktop, file_name, sys_path |
Line 5... | Line 5... | ||
5 | 5 | ||
6 | include '../../macros.inc' |
6 | include '../../macros.inc' |
- | 7 | include '../../proc32.inc' |
|
7 | include '../../proc32.inc' |
8 | include '../../kosfuncs.inc' |
8 | include '../../develop/libraries/box_lib/load_lib.mac' |
9 | include '../../develop/libraries/box_lib/load_lib.mac' |
9 | include '../../develop/libraries/box_lib/trunk/box_lib.mac' |
10 | include '../../develop/libraries/box_lib/trunk/box_lib.mac' |
10 | include '../../develop/libraries/TinyGL/asm_fork/opengl_const.inc' |
11 | include '../../develop/libraries/TinyGL/asm_fork/opengl_const.inc' |
11 | include '../../dll.inc' |
12 | include '../../dll.inc' |
Line 53... | Line 54... | ||
53 | image_data_toolbar dd 0 |
54 | image_data_toolbar dd 0 |
54 | ; |
55 | ; |
55 | TREE_ICON_SYS16_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*11+54 ;à §¬¥à bmp ä ©« á á¨á⥬묨 ¨ª®ª ¬¨ |
56 | TREE_ICON_SYS16_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*11+54 ;à §¬¥à bmp ä ©« á á¨á⥬묨 ¨ª®ª ¬¨ |
56 | icon_tl_sys dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï á¨á⥬ëå ¨ª®®ª |
57 | icon_tl_sys dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï á¨á⥬ëå ¨ª®®ª |
57 | icon_toolbar dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï ¨ª®®ª ®¡ê¥ªâ®¢ |
58 | icon_toolbar dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï ¨ª®®ª ®¡ê¥ªâ®¢ |
58 | IMAGE_CHUNKS_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*10+54 ;à §¬¥à bmp ä ©« á ¨ª®ª ¬¨ ®¡ê¥ªâ®¢ |
59 | IMAGE_CHUNKS_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*12+54 ;à §¬¥à bmp ä ©« á ¨ª®ª ¬¨ ®¡ê¥ªâ®¢ |
59 | ; |
60 | ; |
60 | IMAGE_FILE1_SIZE equ 128*144*3+54 ;à §¬¥à ä ©« á ¨§®¡à ¦¥¨¥¬ |
61 | IMAGE_FILE1_SIZE equ 128*144*3+54 ;à §¬¥à ä ©« á ¨§®¡à ¦¥¨¥¬ |
Line 61... | Line 62... | ||
61 | 62 | ||
62 | macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥¨© |
63 | macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥¨© |
Line 74... | Line 75... | ||
74 | end if |
75 | end if |
Line 75... | Line 76... | ||
75 | 76 | ||
76 | stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
77 | stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
Line 77... | Line 78... | ||
77 | mov [buf],eax |
78 | mov [buf],eax |
78 | 79 | ||
79 | mov [run_file_70.Function], 0 |
80 | mov [run_file_70.Function], SSF_READ_FILE |
80 | mov [run_file_70.Position], 0 |
81 | mov [run_file_70.Position], 0 |
81 | mov [run_file_70.Flags], 0 |
82 | mov [run_file_70.Flags], 0 |
82 | mov [run_file_70.Count], dword size |
83 | mov [run_file_70.Count], dword size |
83 | mov [run_file_70.Buffer], eax |
84 | mov [run_file_70.Buffer], eax |
84 | mov byte[run_file_70+20], 0 |
85 | mov byte[run_file_70+20], 0 |
85 | mov [run_file_70.FileName], file_name |
86 | mov [run_file_70.FileName], file_name |
86 | mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
87 | mcall SF_FILE,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
87 | cmp ebx,0xffffffff |
88 | cmp ebx,0xffffffff |
88 | je @f |
89 | je @f |
89 | ;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à image_data |
90 | ;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à image_data |
Line 118... | Line 119... | ||
118 | 119 | ||
Line 119... | Line 120... | ||
119 | include 'info_wnd_coords.inc' |
120 | include 'info_wnd_coords.inc' |
120 | 121 | ||
- | 122 | align 4 |
|
- | 123 | start: |
|
- | 124 | ;--- copy cmd line --- |
|
- | 125 | mov esi,file_name |
|
- | 126 | mov edi,openfile_path |
|
- | 127 | @@: |
|
- | 128 | lodsd |
|
- | 129 | cmp eax,0 |
|
- | 130 | je @f ;¢ë室, ¥á«¨ 0 |
|
- | 131 | stosd |
|
- | 132 | jmp @b |
|
- | 133 | @@: |
|
121 | align 4 |
134 | stosd |
122 | start: |
135 | |
123 | load_libraries l_libs_start,l_libs_end |
136 | load_libraries l_libs_start,l_libs_end |
124 | ;¯à®¢¥àª ᪮«ìª® ã¤ ç® § £ã§¨«¨áì ¡¨¡«¨®â¥ª¨ |
137 | ;¯à®¢¥àª ᪮«ìª® ã¤ ç® § £ã§¨«¨áì ¡¨¡«¨®â¥ª¨ |
125 | mov ebp,lib_0 |
138 | mov ebp,lib_0 |
126 | .test_lib_open: |
139 | .test_lib_open: |
127 | cmp dword [ebp+ll_struc_size-4],0 |
140 | cmp dword [ebp+ll_struc_size-4],0 |
128 | jz @f |
141 | jz @f |
129 | mcall -1 ;exit not correct |
142 | mcall SF_TERMINATE_PROCESS ;exit not correct |
130 | @@: |
143 | @@: |
131 | add ebp,ll_struc_size |
144 | add ebp,ll_struc_size |
132 | cmp ebp,l_libs_end |
145 | cmp ebp,l_libs_end |
133 | jl .test_lib_open |
146 | jl .test_lib_open |
- | 147 | mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.sys_colors_new |
|
134 | mcall 48,3,sc,sizeof.sys_colors_new |
148 | mcall SF_SET_EVENTS_MASK,0x27 |
Line 135... | Line 149... | ||
135 | mcall 40,0x27 |
149 | |
136 | stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª ¤¨ «®£ |
150 | stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª ¤¨ «®£ |
137 | 151 | ||
Line 253... | Line 267... | ||
253 | mov [color_bk],eax |
267 | mov [color_bk],eax |
254 | fild dword[color_bk] |
268 | fild dword[color_bk] |
255 | fdiv dword[fl255] |
269 | fdiv dword[fl255] |
256 | fstp dword[color_bk] |
270 | fstp dword[color_bk] |
Line 257... | Line 271... | ||
257 | 271 | ||
258 | mcall 26,9 |
272 | mcall SF_SYSTEM_GET,SSF_TIME_COUNT |
Line 259... | Line 273... | ||
259 | mov [last_time],eax |
273 | mov [last_time],eax |
260 | 274 | ||
261 | stdcall [kosglMakeCurrent], 3d_wnd_l,3d_wnd_t,3d_wnd_w,3d_wnd_h,ctx1 |
275 | stdcall [kosglMakeCurrent], 3d_wnd_l,3d_wnd_t,3d_wnd_w,3d_wnd_h,ctx1 |
262 | stdcall [glEnable], GL_DEPTH_TEST |
276 | stdcall [glEnable], GL_DEPTH_TEST |
263 | stdcall [glEnable], GL_NORMALIZE ;¤¥« ¬ ®à¬ «¨ ®¤¨ ª®¢®© ¢¥«¨ç¨ë ¢® ¨§¡¥¦ ¨¥ àâ¥ä ªâ®¢ |
277 | stdcall [glEnable], GL_NORMALIZE ;¤¥« ¬ ®à¬ «¨ ®¤¨ ª®¢®© ¢¥«¨ç¨ë ¢® ¨§¡¥¦ ¨¥ àâ¥ä ªâ®¢ |
264 | stdcall [glClearColor], [color_bk+8],[color_bk+4],[color_bk],0.0 |
278 | stdcall [glClearColor], [color_bk+8],[color_bk+4],[color_bk],0.0 |
265 | stdcall [glShadeModel], GL_SMOOTH |
279 | stdcall [glShadeModel], GL_SMOOTH |
Line -... | Line 280... | ||
- | 280 | stdcall [gluNewQuadric] |
|
- | 281 | mov [qObj],eax |
|
- | 282 | ||
- | 283 | mov eax,dword[ctx1] ;eax -> TinyGLContext.GLContext |
|
- | 284 | mov eax,[eax] ;eax -> ZBuffer |
|
- | 285 | mov eax,[eax+offs_zbuf_pbuf] ;eax -> ZBuffer.pbuf |
|
- | 286 | mov dword[buf_ogl],eax |
|
- | 287 | ||
- | 288 | ;open file from cmd line |
|
- | 289 | cmp dword[openfile_path],0 |
|
266 | stdcall [gluNewQuadric] |
290 | je @f |
Line 267... | Line 291... | ||
267 | mov [qObj],eax |
291 | call but_open_file.no_dlg |
268 | 292 | @@: |
|
269 | call draw_window |
293 | call draw_window |
270 | 294 | ||
271 | align 4 |
295 | align 4 |
272 | still: |
296 | still: |
273 | mcall 26,9 |
297 | mcall SF_SYSTEM_GET,SSF_TIME_COUNT |
274 | mov ebx,[last_time] |
298 | mov ebx,[last_time] |
275 | add ebx,10 ;§ ¤¥à¦ª |
299 | add ebx,10 ;§ ¤¥à¦ª |
276 | cmp ebx,eax |
300 | cmp ebx,eax |
277 | jge @f |
301 | jge @f |
278 | mov ebx,eax |
302 | mov ebx,eax |
279 | @@: |
303 | @@: |
Line 280... | Line 304... | ||
280 | sub ebx,eax |
304 | sub ebx,eax |
281 | mcall 23 |
305 | mcall SF_WAIT_EVENT_TIMEOUT |
Line 291... | Line 315... | ||
291 | jz key |
315 | jz key |
292 | cmp al,3 |
316 | cmp al,3 |
293 | jz button |
317 | jz button |
294 | cmp al,6 |
318 | cmp al,6 |
295 | jne @f |
319 | jne @f |
296 | mcall 9,procinfo,-1 |
320 | mcall SF_THREAD_INFO,procinfo,-1 |
297 | cmp ax,word[procinfo+4] |
321 | cmp ax,word[procinfo+4] |
298 | jne @f ;®ª® ¥ ªâ¨¢® |
322 | jne @f ;®ª® ¥ ªâ¨¢® |
299 | call mouse |
323 | call mouse |
300 | @@: |
324 | @@: |
301 | jmp still |
325 | jmp still |
Line 306... | Line 330... | ||
306 | ret |
330 | ret |
Line 307... | Line 331... | ||
307 | 331 | ||
308 | align 4 |
332 | align 4 |
309 | timer_funct: |
333 | timer_funct: |
310 | pushad |
334 | pushad |
311 | mcall 26,9 |
335 | mcall SF_SYSTEM_GET,SSF_TIME_COUNT |
Line 312... | Line 336... | ||
312 | mov [last_time],eax |
336 | mov [last_time],eax |
313 | 337 | ||
314 | ;¯à®á¬ âਢ ¥¬ ¢ë¤¥«¥ë© ¡«®ª ¤ ëå |
338 | ;¯à®á¬ âਢ ¥¬ ¢ë¤¥«¥ë© ¡«®ª ¤ ëå |
315 | stdcall [tl_node_get_data],tree1 |
339 | stdcall [tl_node_get_data],tree1 |
316 | cmp eax,0 |
340 | cmp eax,0 |
317 | je @f |
341 | je @f |
318 | mov ebx,eax |
342 | mov ebx,eax |
319 | mov eax,dword[ebx] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª ®â®á¨â¥«ì® ç « ä ©« |
343 | mov eax,dword[ebx] |
320 | mov ecx,dword[ebx+4] ;à §¬¥à ¡«®ª |
344 | mov ecx,dword[ebx+4] ;à §¬¥à ¡«®ª |
Line 321... | Line 345... | ||
321 | stdcall hex_in_str, txt_3ds_offs.dig, eax,8 |
345 | stdcall hex_in_str, txt_3ds_offs.dig, eax,8 |
322 | stdcall hex_in_str, txt_3ds_offs.siz, ecx,8 |
346 | stdcall hex_in_str, txt_3ds_offs.siz, ecx,8 |
323 | 347 | ||
324 | add eax,dword[open_file_data] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ ¯ ¬ï⨠|
348 | add eax,dword[open_file_data] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ ¯ ¬ï⨠|
325 | cmp dword[offs_last_timer],eax |
349 | cmp dword[offs_last_timer],eax |
326 | je @f |
350 | je @f |
327 | ;¥á«¨ ¢ë¤¥«¥ë© ¡«®ª ¤ ëå ¥ ᮢ¯ ¤ ¥â á ¯®á«¥¤¨¬ § ¯®¬¥ë¬ |
351 | ;¥á«¨ ¢ë¤¥«¥ë© ¡«®ª ¤ ëå ¥ ᮢ¯ ¤ ¥â á ¯®á«¥¤¨¬ § ¯®¬¥ë¬ |
328 | mov dword[offs_last_timer],eax |
352 | mov dword[offs_last_timer],eax |
329 | call buf_draw_beg |
353 | stdcall buf_draw_beg, buf_0 |
330 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_3ds_offs,5,35,0xb000 |
354 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_3ds_offs,5,35,0xb000 |
331 | mov edx,dword[ebx+list_offs_p_data] |
355 | mov edx,dword[ebx+list_offs_p_data] |
Line 339... | Line 363... | ||
339 | @@: |
363 | @@: |
340 | popad |
364 | popad |
341 | jmp still |
365 | jmp still |
Line 342... | Line 366... | ||
342 | 366 | ||
343 | align 4 |
- | |
344 | buf_draw_beg: |
- | |
345 | stdcall [buf2d_clear], buf_0, [buf_0.color] ;ç¨á⨬ ¡ãä¥à |
- | |
346 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_open_3ds,5,5,0xff |
- | |
347 | stdcall [buf2d_draw_text], buf_0, buf_1,openfile_path,5,15,0xff |
- | |
348 | cmp dword[level_stack],FILE_ERROR_CHUNK_SIZE ;¢®§¬®¦ ®è¨¡ª ä ©« |
- | |
349 | jne @f |
- | |
350 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_3ds_err_sizes,5,25,0xff0000 |
- | |
351 | @@: |
- | |
352 | ret |
- | |
353 | - | ||
354 | align 4 |
367 | align 4 |
355 | proc buf_draw_hex_table, offs:dword, size_line:dword |
368 | proc buf_draw_hex_table, offs:dword, size_line:dword |
356 | pushad |
369 | pushad |
357 | locals |
370 | locals |
358 | coord_y dd 55 ;ª®®à¤¨ â y ¤«ï ç « ¢ë¢®¤ â ¡«¨æë |
371 | coord_y dd 55 ;ª®®à¤¨ â y ¤«ï ç « ¢ë¢®¤ â ¡«¨æë |
Line 406... | Line 419... | ||
406 | endp |
419 | endp |
Line 407... | Line 420... | ||
407 | 420 | ||
408 | align 4 |
421 | align 4 |
409 | draw_window: |
422 | draw_window: |
410 | pushad |
423 | pushad |
411 | mcall 12,1 |
424 | mcall SF_REDRAW,SSF_BEGIN_DRAW |
412 | xor eax,eax |
425 | xor eax,eax |
413 | mov edx,[sc.work] |
426 | mov edx,[sc.work] |
414 | or edx,0x33000000 |
427 | or edx,0x33000000 |
415 | mov edi,capt |
428 | mov edi,capt |
Line 416... | Line 429... | ||
416 | mcall , (20 shl 16)+560, (20 shl 16)+main_wnd_height |
429 | mcall , (20 shl 16)+560, (20 shl 16)+main_wnd_height |
417 | 430 | ||
418 | mcall 9,procinfo,-1 |
431 | mcall SF_THREAD_INFO,procinfo,-1 |
419 | mov eax,dword[procinfo.box.height] |
432 | mov eax,dword[procinfo.box.height] |
420 | cmp eax,250 |
433 | cmp eax,250 |
421 | jge @f |
434 | jge @f |
Line 442... | Line 455... | ||
442 | mov word[w_scr_t1.x_pos],ax |
455 | mov word[w_scr_t1.x_pos],ax |
443 | add ax,16+5 |
456 | add ax,16+5 |
444 | mov word[buf_0.l],ax |
457 | mov word[buf_0.l],ax |
Line 445... | Line 458... | ||
445 | 458 | ||
446 | mov esi,[sc.work_button] |
459 | mov esi,[sc.work_button] |
447 | mcall 8,(5 shl 16)+20,(5 shl 16)+20,3 |
- | |
448 | 460 | mcall SF_DEFINE_BUTTON,(5 shl 16)+20,(5 shl 16)+20,3 |
|
449 | mov ebx,(30 shl 16)+20 |
- | |
450 | mov edx,4 |
- | |
Line 451... | Line 461... | ||
451 | int 0x40 |
461 | mcall ,(30 shl 16)+20,,4 |
452 | 462 | ||
453 | cmp byte[can_save],0 |
463 | cmp byte[can_save],0 |
454 | je @f |
- | |
455 | mov ebx,(55 shl 16)+20 |
- | |
456 | mov edx,5 |
464 | je @f |
457 | int 0x40 |
- | |
458 | @@: |
465 | mcall ,(55 shl 16)+20,,5 |
459 | 466 | @@: |
|
Line 460... | Line 467... | ||
460 | mcall ,(85 shl 16)+20,,6 ;®ª® á ª®®à¤¨ â ¬¨ |
467 | mcall ,(85 shl 16)+20,,6 ;®ª® á ª®®à¤¨ â ¬¨ |
Line 461... | Line 468... | ||
461 | mcall ,(110 shl 16)+20,,7 ;㤠«¥¨¥ ¡«®ª |
468 | mcall ,(110 shl 16)+20,,7 ;㤠«¥¨¥ ¡«®ª |
462 | 469 | ||
463 | mcall 7,[image_data_toolbar],(16 shl 16)+16,(7 shl 16)+7 ;new |
470 | mcall SF_PUT_IMAGE,[image_data_toolbar],(16 shl 16)+16,(7 shl 16)+7 ;new |
Line 485... | Line 492... | ||
485 | mov dword[w_scr_t1.all_redraw],1 |
492 | mov dword[w_scr_t1.all_redraw],1 |
486 | stdcall [tl_draw],dword tree1 |
493 | stdcall [tl_draw],dword tree1 |
Line 487... | Line 494... | ||
487 | 494 | ||
Line 488... | Line 495... | ||
488 | stdcall [buf2d_draw], buf_0 |
495 | stdcall [buf2d_draw], buf_0 |
489 | 496 | ||
490 | mcall 12,2 |
497 | mcall SF_REDRAW,SSF_END_DRAW |
Line 491... | Line 498... | ||
491 | popad |
498 | popad |
492 | ret |
499 | ret |
493 | 500 | ||
494 | align 4 |
501 | align 4 |
495 | key: |
502 | key: |
Line 496... | Line 503... | ||
496 | mcall 2 |
503 | mcall SF_GET_KEY |
497 | stdcall [tl_key], dword tree1 |
504 | stdcall [tl_key], dword tree1 |
498 | jmp still |
505 | jmp still |
499 | 506 | ||
500 | 507 | ||
501 | align 4 |
508 | align 4 |
502 | button: |
509 | button: |
503 | mcall 17 |
510 | mcall SF_GET_BUTTON |
Line 536... | Line 543... | ||
536 | stdcall [buf2d_delete],buf_0 |
543 | stdcall [buf2d_delete],buf_0 |
537 | stdcall [buf2d_delete],buf_1 ;㤠«ï¥¬ ¡ãä¥à |
544 | stdcall [buf2d_delete],buf_1 ;㤠«ï¥¬ ¡ãä¥à |
538 | stdcall mem.Free,[image_data_toolbar] |
545 | stdcall mem.Free,[image_data_toolbar] |
539 | stdcall mem.Free,[open_file_data] |
546 | stdcall mem.Free,[open_file_data] |
540 | stdcall [gluDeleteQuadric], [qObj] |
547 | stdcall [gluDeleteQuadric], [qObj] |
541 | mcall -1 |
548 | mcall SF_TERMINATE_PROCESS |
Line 542... | Line 549... | ||
542 | 549 | ||
543 | 550 | ||
544 | align 4 |
551 | align 4 |
Line 557... | Line 564... | ||
557 | mov [OpenDialog_data.type],0 |
564 | mov [OpenDialog_data.type],0 |
558 | stdcall [OpenDialog_Start],OpenDialog_data |
565 | stdcall [OpenDialog_Start],OpenDialog_data |
559 | cmp [OpenDialog_data.status],2 |
566 | cmp [OpenDialog_data.status],2 |
560 | je .end_open_file |
567 | je .end_open_file |
561 | ;ª®¤ ¯à¨ 㤠箬 ®âªàë⨨ ¤¨ «®£ |
568 | ;ª®¤ ¯à¨ 㤠箬 ®âªàë⨨ ¤¨ «®£ |
- | 569 | jmp @f |
|
- | 570 | .no_dlg: ;¥á«¨ ¬¨ã¥¬ ¤¨ «®£ ®âªàëâ¨ï ä ©« |
|
- | 571 | pushad |
|
562 | 572 | @@: |
|
563 | mov [run_file_70.Function], 5 |
573 | mov [run_file_70.Function], SSF_GET_INFO |
564 | mov [run_file_70.Position], 0 |
574 | mov [run_file_70.Position], 0 |
565 | mov [run_file_70.Flags], 0 |
575 | mov [run_file_70.Flags], 0 |
566 | mov dword[run_file_70.Count], 0 |
576 | mov dword[run_file_70.Count], 0 |
567 | mov dword[run_file_70.Buffer], open_b |
577 | mov dword[run_file_70.Buffer], open_b |
568 | mov byte[run_file_70+20], 0 |
578 | mov byte[run_file_70+20], 0 |
569 | mov dword[run_file_70.FileName], openfile_path |
579 | mov dword[run_file_70.FileName], openfile_path |
570 | mcall 70,run_file_70 |
580 | mcall SF_FILE,run_file_70 |
Line 571... | Line 581... | ||
571 | 581 | ||
572 | mov ecx,dword[open_b+32] ;+32 qword: à §¬¥à ä ©« ¢ ¡ ©â å |
582 | mov ecx,dword[open_b+32] ;+32 qword: à §¬¥à ä ©« ¢ ¡ ©â å |
573 | stdcall mem.ReAlloc,[open_file_data],ecx |
583 | stdcall mem.ReAlloc,[open_file_data],ecx |
Line 574... | Line 584... | ||
574 | mov [open_file_data],eax |
584 | mov [open_file_data],eax |
575 | 585 | ||
576 | mov [run_file_70.Function], 0 |
586 | mov [run_file_70.Function], SSF_READ_FILE |
577 | mov [run_file_70.Position], 0 |
587 | mov [run_file_70.Position], 0 |
578 | mov [run_file_70.Flags], 0 |
588 | mov [run_file_70.Flags], 0 |
579 | mov dword[run_file_70.Count], ecx |
589 | mov dword[run_file_70.Count], ecx |
580 | m2m dword[run_file_70.Buffer], dword[open_file_data] |
590 | m2m dword[run_file_70.Buffer], dword[open_file_data] |
581 | mov byte[run_file_70+20], 0 |
591 | mov byte[run_file_70+20], 0 |
582 | mov dword[run_file_70.FileName], openfile_path |
592 | mov dword[run_file_70.FileName], openfile_path |
583 | mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©« 3ds |
593 | mcall SF_FILE,run_file_70 ;§ £à㦠¥¬ ä ©« 3ds |
Line 584... | Line 594... | ||
584 | cmp ebx,0xffffffff |
594 | cmp ebx,0xffffffff |
585 | je .end_open_file |
595 | je .end_open_file |
Line 586... | Line 596... | ||
586 | 596 | ||
587 | mov [open_file_size],ebx |
597 | mov [open_file_size],ebx |
588 | ;mcall 71,1,openfile_path |
598 | ;mcall SF_SET_CAPTION,1,openfile_path |
589 | 599 | ||
Line 606... | Line 616... | ||
606 | stdcall [tl_info_clear], tree1 ;®ç¨á⪠ᯨ᪠®¡ê¥ªâ®¢ |
616 | stdcall [tl_info_clear], tree1 ;®ç¨á⪠ᯨ᪠®¡ê¥ªâ®¢ |
Line 607... | Line 617... | ||
607 | 617 | ||
608 | mov esi,dword[open_file_data] |
618 | mov esi,dword[open_file_data] |
609 | cmp word[esi],CHUNK_MAIN |
619 | cmp word[esi],CHUNK_MAIN |
610 | je @f |
620 | je @f |
611 | call buf_draw_beg |
621 | stdcall buf_draw_beg, buf_0 |
612 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_no_3ds,5,25,0xff0000 ;à¨á㥬 áâபã á ⥪á⮬ |
622 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_no_3ds,5,25,0xff0000 ;à¨á㥬 áâபã á ⥪á⮬ |
613 | jmp .end_open |
623 | jmp .end_open |
614 | @@: |
624 | @@: |
615 | ;--- ®¡à ¡®âª ®âªàë⮣® *.3ds ä ©« |
625 | ;--- ®¡à ¡®âª ®âªàë⮣® *.3ds ä ©« |
Line 657... | Line 667... | ||
657 | .end_open: |
667 | .end_open: |
658 | ret |
668 | ret |
Line 659... | Line 669... | ||
659 | 669 | ||
660 | ; «¨§ ¤ ëå ¡«®ª |
670 | ; «¨§ ¤ ëå ¡«®ª |
- | 671 | ;input: |
|
661 | ;input: |
672 | ; eax - stack pointer |
662 | ; esi - memory pointer |
673 | ; esi - memory pointer |
663 | ;output: |
674 | ;output: |
664 | ; eax - new stack pointer |
675 | ; eax - new stack pointer |
665 | ; esi - new memory pointer |
676 | ; esi - new memory pointer |
Line 714... | Line 725... | ||
714 | stdcall add_3ds_object, ID_ICON_DATA,ebx,eax,0 ;¤ ë¥ £à ¥© |
725 | stdcall add_3ds_object, ID_ICON_DATA,ebx,eax,0 ;¤ ë¥ £à ¥© |
Line 715... | Line 726... | ||
715 | 726 | ||
716 | sub ecx,eax |
727 | sub ecx,eax |
717 | cmp ecx,1 |
728 | cmp ecx,1 |
- | 729 | jl .data_3 ;¯à®¢¥à塞 ¥áâì «¨ ¡«®ª ®¯¨áë¢ î騩 ¬ â¥à¨ «, ¯à¨¬¥ï¥¬ë© ª ®¡ê¥ªâã |
|
- | 730 | if 0 |
|
- | 731 | add esi,eax |
|
- | 732 | mov ecx,dword[esi+2] |
|
- | 733 | stdcall add_3ds_object, 10,ebx,ecx,0 ;¤ ë¥ ¬ â¥à¨ « |
|
- | 734 | sub esi,eax |
|
718 | jl .data_3 ;¯à®¢¥à塞 ¥áâì «¨ ¡«®ª ®¯¨áë¢ î騩 ¬ â¥à¨ «, ¯à¨¬¥ï¥¬ë© ª ®¡ê¥ªâã |
735 | else |
719 | add esi,eax |
736 | add esi,eax |
720 | pop eax |
737 | pop eax |
721 | jmp .next_bl |
- | |
722 | ;stdcall add_3ds_object, ID_ICON_DATA,ebx,ecx,0 ;¤ ë¥ ¬ â¥à¨ « |
- | |
- | 738 | jmp .next_bl |
|
723 | ;sub esi,eax ;¢®ááâ ®¢«¥¨¥ esi |
739 | end if |
Line 724... | Line 740... | ||
724 | .data_3: |
740 | .data_3: |
725 | 741 | ||
726 | sub esi,8 ;¢®ááâ ®¢«¥¨¥ esi |
742 | sub esi,8 ;¢®ááâ ®¢«¥¨¥ esi |
Line 927... | Line 943... | ||
927 | mov byte[edi],0 |
943 | mov byte[edi],0 |
928 | @@: |
944 | @@: |
929 | ret |
945 | ret |
Line 930... | Line 946... | ||
930 | 946 | ||
931 | align 4 |
- | |
932 | proc hex_in_str, buf:dword,val:dword,zif:dword |
- | |
933 | pushad |
- | |
934 | mov edi,dword[buf] |
- | |
935 | mov ecx,dword[zif] |
- | |
936 | add edi,ecx |
- | |
937 | dec edi |
- | |
938 | mov ebx,dword[val] |
- | |
939 | - | ||
940 | .cycle: |
- | |
941 | mov al,bl |
- | |
942 | and al,0xf |
- | |
943 | cmp al,10 |
- | |
944 | jl @f |
- | |
945 | add al,'a'-'0'-10 |
- | |
946 | @@: |
- | |
947 | add al,'0' |
- | |
948 | mov byte[edi],al |
- | |
949 | dec edi |
- | |
950 | shr ebx,4 |
- | |
951 | loop .cycle |
- | |
952 | - | ||
953 | popad |
- | |
954 | ret |
- | |
955 | endp |
- | |
956 | - | ||
957 | align 4 |
947 | align 4 |
958 | but_save_file: |
948 | but_save_file: |
959 | pushad |
949 | pushad |
960 | copy_path open_dialog_name,communication_area_default_path,file_name,0 |
950 | copy_path open_dialog_name,communication_area_default_path,file_name,0 |
961 | mov [OpenDialog_data.type],1 |
951 | mov [OpenDialog_data.type],1 |
962 | stdcall [OpenDialog_Start],OpenDialog_data |
952 | stdcall [OpenDialog_Start],OpenDialog_data |
963 | cmp [OpenDialog_data.status],2 |
953 | cmp [OpenDialog_data.status],2 |
964 | je .end_save_file |
954 | je .end_save_file |
Line 965... | Line 955... | ||
965 | ;ª®¤ ¯à¨ 㤠箬 ®âªàë⨨ ¤¨ «®£ |
955 | ;ª®¤ ¯à¨ 㤠箬 ®âªàë⨨ ¤¨ «®£ |
966 | 956 | ||
967 | mov [run_file_70.Function], 2 |
957 | mov [run_file_70.Function], SSF_CREATE_FILE |
968 | mov [run_file_70.Position], 0 |
958 | mov [run_file_70.Position], 0 |
969 | mov [run_file_70.Flags], 0 |
959 | mov [run_file_70.Flags], 0 |
970 | mov ebx, dword[open_file_data] |
960 | mov ebx, dword[open_file_data] |
971 | mov [run_file_70.Buffer], ebx |
961 | mov [run_file_70.Buffer], ebx |
972 | mov ebx,dword[ebx+2] |
962 | mov ebx,dword[ebx+2] |
973 | mov dword[run_file_70.Count], ebx ;à §¬¥à ä ©« |
963 | mov dword[run_file_70.Count], ebx ;à §¬¥à ä ©« |
974 | mov byte[run_file_70+20], 0 |
964 | mov byte[run_file_70+20], 0 |
975 | mov dword[run_file_70.FileName], openfile_path |
965 | mov dword[run_file_70.FileName], openfile_path |
976 | mcall 70,run_file_70 |
966 | mcall SF_FILE,run_file_70 |
977 | cmp ebx,0xffffffff |
967 | cmp ebx,0xffffffff |
978 | je .end_save_file |
968 | je .end_save_file |
979 | ;...á®®¡é¥¨¥... |
969 | ;...á®®¡é¥¨¥... |
Line 984... | Line 974... | ||
984 | align 4 |
974 | align 4 |
985 | but_wnd_coords: |
975 | but_wnd_coords: |
986 | cmp byte[prop_wnd_run],0 |
976 | cmp byte[prop_wnd_run],0 |
987 | jne @f |
977 | jne @f |
988 | pushad |
978 | pushad |
989 | mcall 51,1,prop_start,thread_coords |
979 | mcall SF_CREATE_THREAD,1,prop_start,thread_coords |
990 | popad |
980 | popad |
991 | @@: |
981 | @@: |
992 | ret |
982 | ret |
Line 993... | Line 983... | ||
993 | 983 | ||
Line 1004... | Line 994... | ||
1004 | 994 | ||
1005 | ;(1) ª®¯¨à®¢ ¨¥ ¨¦¥© ç áâ¨ ä ©« |
995 | ;(1) ª®¯¨à®¢ ¨¥ ¨¦¥© ç áâ¨ ä ©« |
1006 | mov edx,dword[eax+4] ;à §¬¥à ¡«®ª |
996 | mov edx,dword[eax+4] ;à §¬¥à ¡«®ª |
1007 | sub [open_file_size],edx ;¨§¬¥¥¨¥ à §¬¥à®¢ ä ©« |
997 | sub [open_file_size],edx ;¨§¬¥¥¨¥ à §¬¥à®¢ ä ©« |
1008 | mov ecx,[open_file_size] |
998 | mov ecx,[open_file_size] |
1009 | mov ebx,dword[eax] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª ®â®á¨â¥«ì® ç « ä ©« |
999 | mov ebx,dword[eax] |
1010 | sub ecx,ebx ;ecx - à §¬¥à ¨¦¥© ᤢ¨£ ¥¬®© ç áâ¨ ä ©« |
1000 | sub ecx,ebx ;ecx - à §¬¥à ¨¦¥© ᤢ¨£ ¥¬®© ç áâ¨ ä ©« |
1011 | add ebx,dword[open_file_data] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ ¯ ¬ï⨠|
1001 | add ebx,dword[open_file_data] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ ¯ ¬ï⨠|
1012 | mov edi,ebx |
1002 | mov edi,ebx |
1013 | mov esi,ebx |
1003 | mov esi,ebx |
Line 1427... | Line 1417... | ||
1427 | mat_shininess dd 3.0 ; §¬¥à ¡«¨ª (®¡à â ï ¯à®¯®àæ¨ï) |
1417 | mat_shininess dd 3.0 ; §¬¥à ¡«¨ª (®¡à â ï ¯à®¯®àæ¨ï) |
1428 | white_light dd 0.8, 0.8, 0.8, 1.0 ; ¢¥â ¨ ¨â¥á¨¢®áâì ®á¢¥é¥¨ï, £¥¥à¨à㥬®£® ¨áâ®ç¨ª®¬ |
1418 | white_light dd 0.8, 0.8, 0.8, 1.0 ; ¢¥â ¨ ¨â¥á¨¢®áâì ®á¢¥é¥¨ï, £¥¥à¨à㥬®£® ¨áâ®ç¨ª®¬ |
1429 | lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ; à ¬¥âàë ä®®¢®£® ®á¢¥é¥¨ï |
1419 | lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ; à ¬¥âàë ä®®¢®£® ®á¢¥é¥¨ï |
Line 1430... | Line 1420... | ||
1430 | 1420 | ||
1431 | if lang eq ru |
1421 | if lang eq ru |
1432 | capt db 'info 3ds ¢¥àá¨ï 16.01.16',0 ;¯®¤¯¨áì ®ª |
1422 | capt db 'info 3ds ¢¥àá¨ï 19.01.16',0 ;¯®¤¯¨áì ®ª |
1433 | else |
1423 | else |
1434 | capt db 'info 3ds version 16.01.16',0 ;window caption |
1424 | capt db 'info 3ds version 19.01.16',0 ;window caption |
Line 1435... | Line 1425... | ||
1435 | end if |
1425 | end if |
1436 | 1426 | ||
1437 | align 16 |
1427 | align 16 |