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 59... | Line 59... | ||
59 | image_data_toolbar dd 0 |
59 | image_data_toolbar dd 0 |
60 | ; |
60 | ; |
61 | TREE_ICON_SYS16_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*11+54 ;à §¬¥à bmp ä ©« á á¨á⥬묨 ¨ª®ª ¬¨ |
61 | TREE_ICON_SYS16_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*11+54 ;à §¬¥à bmp ä ©« á á¨á⥬묨 ¨ª®ª ¬¨ |
62 | icon_tl_sys dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï á¨á⥬ëå ¨ª®®ª |
62 | icon_tl_sys dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï á¨á⥬ëå ¨ª®®ª |
63 | icon_toolbar dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï ¨ª®®ª ®¡ê¥ªâ®¢ |
63 | icon_toolbar dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï ¨ª®®ª ®¡ê¥ªâ®¢ |
64 | IMAGE_CHUNKS_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*10+54 ;à §¬¥à bmp ä ©« á ¨ª®ª ¬¨ ®¡ê¥ªâ®¢ |
64 | IMAGE_CHUNKS_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*12+54 ;à §¬¥à bmp ä ©« á ¨ª®ª ¬¨ ®¡ê¥ªâ®¢ |
65 | ; |
65 | ; |
66 | IMAGE_FILE1_SIZE equ 128*144*3+54 ;à §¬¥à ä ©« á ¨§®¡à ¦¥¨¥¬ |
66 | IMAGE_FILE1_SIZE equ 128*144*3+54 ;à §¬¥à ä ©« á ¨§®¡à ¦¥¨¥¬ |
Line 67... | Line 67... | ||
67 | 67 | ||
68 | macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥¨© |
68 | macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥¨© |
Line 318... | Line 318... | ||
318 | bt eax,0 |
318 | bt eax,0 |
319 | jnc .end_m |
319 | jnc .end_m |
320 | ;mouse l. but. move |
320 | ;mouse l. but. move |
321 | cmp dword[mouse_drag],1 |
321 | cmp dword[mouse_drag],1 |
322 | jne .end_m |
322 | jne .end_m |
- | 323 | ||
- | 324 | stdcall [tl_node_get_data],tree1 |
|
- | 325 | cmp eax,0 |
|
- | 326 | je .end_d |
|
- | 327 | mov ebx,dword[eax] |
|
- | 328 | add ebx,dword[open_file_data] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ ¯ ¬ï⨠|
|
- | 329 | cmp word[ebx],CHUNK_OBJBLOCK |
|
- | 330 | jne .end_d |
|
- | 331 | ||
323 | mcall SF_MOUSE_GET,SSF_WINDOW_POSITION |
332 | mcall SF_MOUSE_GET,SSF_WINDOW_POSITION |
324 | mov ebx,eax |
333 | mov ebx,eax |
325 | shr ebx,16 ;mouse.x |
334 | shr ebx,16 ;mouse.x |
326 | cmp ebx,3d_wnd_l |
335 | cmp ebx,3d_wnd_l |
327 | jg @f |
336 | jg @f |
Line 356... | Line 365... | ||
356 | fdiv dword[angle_dym] ;¥á«¨ ªãàá®à ¤¢¨¦¥âáï ¯® ®á¨ x (¢¢¥àå ¨«¨ ¢¨§) â® ¯®¢®à®â ¤¥« ¥¬ ¢®ªà㣠®á¨ y |
365 | fdiv dword[angle_dym] ;¥á«¨ ªãàá®à ¤¢¨¦¥âáï ¯® ®á¨ x (¢¢¥àå ¨«¨ ¢¨§) â® ¯®¢®à®â ¤¥« ¥¬ ¢®ªà㣠®á¨ y |
357 | fadd dword[angle_y] |
366 | fadd dword[angle_y] |
358 | fstp dword[angle_y] |
367 | fstp dword[angle_y] |
Line 359... | Line 368... | ||
359 | 368 | ||
360 | stdcall [tl_node_get_data],tree1 |
369 | stdcall [tl_node_get_data],tree1 |
361 | cmp eax,0 |
- | |
362 | je .end_d |
370 | ;cmp eax,0 - ¥ ¤®, ¡ë«® ᤥ« ® ¢ëè¥ |
363 | add eax,list_offs_obj3d |
371 | add eax,list_offs_obj3d |
364 | stdcall draw_3d, eax |
372 | stdcall draw_3d, eax |
365 | jmp .end_d |
373 | jmp .end_d |
366 | .end_m: |
374 | .end_m: |
Line 408... | Line 416... | ||
408 | cmp eax,0 |
416 | cmp eax,0 |
409 | je .end_f |
417 | je .end_f |
410 | mov edi,eax |
418 | mov edi,eax |
411 | add edi,list_offs_obj3d |
419 | add edi,list_offs_obj3d |
412 | mov ebx,eax |
420 | mov ebx,eax |
413 | mov eax,dword[ebx] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª ®â®á¨â¥«ì® ç « ä ©« |
421 | mov eax,dword[ebx] |
414 | mov ecx,dword[ebx+4] ;à §¬¥à ¡«®ª |
422 | mov ecx,dword[ebx+4] ;à §¬¥à ¡«®ª |
415 | stdcall hex_in_str, txt_3ds_offs.dig, eax,8 |
423 | stdcall hex_in_str, txt_3ds_offs.dig, eax,8 |
416 | stdcall hex_in_str, txt_3ds_offs.siz, ecx,8 |
424 | stdcall hex_in_str, txt_3ds_offs.siz, ecx,8 |
Line 417... | Line 425... | ||
417 | 425 | ||
Line 432... | Line 440... | ||
432 | cmp dword[edi+offs_obj_poi_count],2 |
440 | cmp dword[edi+offs_obj_poi_count],2 |
433 | jl .end_f |
441 | jl .end_f |
434 | call mnu_reset_settings ;á¡à®á 㣫®¢ ¯®¢®à®â ¨ ०¨¬®¢ à¨á®¢ ¨ï |
442 | call mnu_reset_settings ;á¡à®á 㣫®¢ ¯®¢®à®â ¨ ०¨¬®¢ à¨á®¢ ¨ï |
435 | jmp .end_f |
443 | jmp .end_f |
436 | .end_oblo: |
444 | .end_oblo: |
- | 445 | ||
- | 446 | cmp word[eax],CHUNK_MATERIAL |
|
- | 447 | jne .end_mblo |
|
- | 448 | cmp dword[edi+offs_mat_name],0 |
|
- | 449 | je .ini_mblo |
|
- | 450 | stdcall draw_material,edi |
|
- | 451 | jmp .end_f |
|
- | 452 | .ini_mblo: |
|
- | 453 | stdcall mat_init,edi ;¯®¯ë⪠áâநâì ¤ ë¥ ¬ â¥à¨ « |
|
- | 454 | cmp dword[edi+offs_mat_name],0 |
|
- | 455 | je .end_f |
|
- | 456 | stdcall draw_material,edi |
|
- | 457 | jmp .end_f |
|
- | 458 | .end_mblo: |
|
- | 459 | ||
437 | call buf_draw_beg |
460 | stdcall buf_draw_beg, buf_ogl |
438 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_3ds_offs,5,35,0xb000 |
461 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_3ds_offs,5,35,0xb000 |
439 | mov edx,dword[ebx+list_offs_p_data] |
462 | mov edx,dword[ebx+list_offs_p_data] |
440 | cmp edx,0 ;ᬮâਬ ¥áâì «¨ ®¯¨á ¨¥ ¡«®ª |
463 | cmp edx,0 ;ᬮâਬ ¥áâì «¨ ®¯¨á ¨¥ ¡«®ª |
441 | je .no_info |
464 | je .no_info |
442 | stdcall [buf2d_draw_text], buf_ogl, buf_1,edx,5,45,0xb000 |
465 | stdcall [buf2d_draw_text], buf_ogl, buf_1,edx,5,45,0xb000 |
Line 445... | Line 468... | ||
445 | .end_f: |
468 | .end_f: |
446 | popad |
469 | popad |
447 | jmp still |
470 | jmp still |
Line 448... | Line 471... | ||
448 | 471 | ||
449 | align 4 |
- | |
450 | buf_draw_beg: |
- | |
451 | stdcall [buf2d_clear], buf_ogl, [buf_ogl.color] ;ç¨á⨬ ¡ãä¥à |
- | |
452 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_open_3ds,5,5,0xff |
- | |
453 | stdcall [buf2d_draw_text], buf_ogl, buf_1,openfile_path,5,15,0xff |
- | |
454 | cmp dword[level_stack],FILE_ERROR_CHUNK_SIZE ;¢®§¬®¦ ®è¨¡ª ä ©« |
- | |
455 | jne @f |
- | |
456 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_3ds_err_sizes,5,25,0xff0000 |
- | |
457 | @@: |
- | |
458 | ret |
- | |
459 | - | ||
460 | align 4 |
472 | align 4 |
461 | draw_window: |
473 | draw_window: |
462 | pushad |
474 | pushad |
463 | mcall SF_REDRAW,SSF_BEGIN_DRAW |
475 | mcall SF_REDRAW,SSF_BEGIN_DRAW |
464 | mov edx,[sc.work] |
476 | mov edx,[sc.work] |
Line 713... | Line 725... | ||
713 | stdcall [tl_info_clear], tree1 ;®ç¨á⪠ᯨ᪠®¡ê¥ªâ®¢ |
725 | stdcall [tl_info_clear], tree1 ;®ç¨á⪠ᯨ᪠®¡ê¥ªâ®¢ |
Line 714... | Line 726... | ||
714 | 726 | ||
715 | mov esi,dword[open_file_data] |
727 | mov esi,dword[open_file_data] |
716 | cmp word[esi],CHUNK_MAIN |
728 | cmp word[esi],CHUNK_MAIN |
717 | je @f |
729 | je @f |
718 | call buf_draw_beg |
730 | stdcall buf_draw_beg, buf_ogl |
719 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_no_3ds,5,25,0xff0000 ;à¨á㥬 áâபã á ⥪á⮬ |
731 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_no_3ds,5,25,0xff0000 ;à¨á㥬 áâபã á ⥪á⮬ |
720 | jmp .end_open |
732 | jmp .end_open |
721 | @@: |
733 | @@: |
722 | ;--- ®¡à ¡®âª ®âªàë⮣® *.3ds ä ©« |
734 | ;--- ®¡à ¡®âª ®âªàë⮣® *.3ds ä ©« |
Line 736... | Line 748... | ||
736 | cmp esi,edi ;¥á«¨ ª®¥æ ä ©« |
748 | cmp esi,edi ;¥á«¨ ª®¥æ ä ©« |
737 | jge .end_cycle |
749 | jge .end_cycle |
Line 738... | Line 750... | ||
738 | 750 | ||
739 | mov edx,dword[esi+2] ;à §¬¥à ¡«®ª |
751 | mov edx,dword[esi+2] ;à §¬¥à ¡«®ª |
740 | call block_analiz |
752 | call block_analiz |
741 | ;cmp word[esi],CHUNK_MATERIAL |
753 | cmp word[esi],CHUNK_MATERIAL |
742 | ;je @f |
754 | je @f |
743 | cmp word[esi],CHUNK_OBJMESH |
755 | cmp word[esi],CHUNK_OBJMESH |
744 | je @f |
756 | je @f |
745 | cmp word[esi],CHUNK_OBJBLOCK |
757 | cmp word[esi],CHUNK_OBJBLOCK |
746 | je @f |
758 | je @f |
Line 758... | Line 770... | ||
758 | cmp word[esi],CHUNK_OBJBLOCK |
770 | cmp word[esi],CHUNK_OBJBLOCK |
759 | jne .pod1 |
771 | jne .pod1 |
760 | add esi,6 |
772 | add esi,6 |
761 | push esi |
773 | push esi |
762 | sub esi,6 |
774 | sub esi,6 |
763 | jmp .pod2 |
775 | jmp .pod3 |
764 | .pod1: |
776 | .pod1: |
- | 777 | cmp word[esi],CHUNK_MATERIAL |
|
- | 778 | jne .pod2 |
|
765 | push dword[ecx+5] ;áâ ¤ à⮥ §¢ ¨¥ ¡«®ª |
779 | cmp word[esi+6],CHUNK_MATNAME |
- | 780 | jne .pod2 |
|
- | 781 | add esi,12 |
|
- | 782 | push esi |
|
- | 783 | sub esi,12 |
|
- | 784 | jmp .pod3 |
|
766 | .pod2: |
785 | .pod2: |
- | 786 | push dword[ecx+5] ;áâ ¤ à⮥ §¢ ¨¥ ¡«®ª |
|
- | 787 | .pod3: |
|
767 | stdcall add_3ds_object, ebx,dword[level_stack],edx |
788 | stdcall add_3ds_object, ebx,dword[level_stack],edx |
768 | cmp byte[ecx+4],1 |
789 | cmp byte[ecx+4],1 |
769 | je .bl_data |
790 | je .bl_data |
770 | ;¡«®ª ᮤ¥à¦¨â ¤®ç¥à¨¥ ¡«®ª¨ |
791 | ;¡«®ª ᮤ¥à¦¨â ¤®ç¥à¨¥ ¡«®ª¨ |
771 | call block_children ;¢å®¤ ¢ ¤®ç¥à¨© ¡«®ª |
792 | call block_children ;¢å®¤ ¢ ¤®ç¥à¨© ¡«®ª |
Line 780... | Line 801... | ||
780 | .end_open: |
801 | .end_open: |
781 | ret |
802 | ret |
Line 782... | Line 803... | ||
782 | 803 | ||
783 | ; «¨§ ¤ ëå ¡«®ª |
804 | ; «¨§ ¤ ëå ¡«®ª |
- | 805 | ;input: |
|
784 | ;input: |
806 | ; eax - stack pointer |
785 | ; esi - memory pointer |
807 | ; esi - memory pointer |
786 | ;output: |
808 | ;output: |
787 | ; eax - new stack pointer |
809 | ; eax - new stack pointer |
788 | ; esi - new memory pointer |
810 | ; esi - new memory pointer |
Line 831... | Line 853... | ||
831 | sub ecx,2 |
853 | sub ecx,2 |
Line 832... | Line 854... | ||
832 | 854 | ||
833 | sub ecx,eax |
855 | sub ecx,eax |
834 | cmp ecx,1 |
856 | cmp ecx,1 |
- | 857 | jl .data_3 ;¯à®¢¥à塞 ¥áâì «¨ ¡«®ª ®¯¨áë¢ î騩 ¬ â¥à¨ «, ¯à¨¬¥ï¥¬ë© ª ®¡ê¥ªâã |
|
- | 858 | if 1 |
|
- | 859 | add esi,eax |
|
- | 860 | mov ecx,dword[esi+2] |
|
- | 861 | stdcall add_3ds_object, 10,ebx,ecx,0 ;¤ ë¥ ¬ â¥à¨ « |
|
- | 862 | sub esi,eax |
|
835 | jl .data_3 ;¯à®¢¥à塞 ¥áâì «¨ ¡«®ª ®¯¨áë¢ î騩 ¬ â¥à¨ «, ¯à¨¬¥ï¥¬ë© ª ®¡ê¥ªâã |
863 | else |
836 | add esi,eax |
864 | add esi,eax |
837 | pop eax |
865 | pop eax |
- | 866 | jmp .next_bl |
|
838 | jmp .next_bl |
867 | end if |
Line 839... | Line 868... | ||
839 | .data_3: |
868 | .data_3: |
840 | 869 | ||
841 | sub esi,8 ;¢®ááâ ®¢«¥¨¥ esi |
870 | sub esi,8 ;¢®ááâ ®¢«¥¨¥ esi |
Line 1042... | Line 1071... | ||
1042 | stosb |
1071 | stosb |
1043 | mov byte[edi],0 |
1072 | mov byte[edi],0 |
1044 | @@: |
1073 | @@: |
1045 | ret |
1074 | ret |
Line 1046... | Line -... | ||
1046 | - | ||
1047 | align 4 |
- | |
1048 | proc hex_in_str, buf:dword,val:dword,zif:dword |
- | |
1049 | pushad |
- | |
1050 | mov edi,dword[buf] |
- | |
1051 | mov ecx,dword[zif] |
- | |
1052 | add edi,ecx |
- | |
1053 | dec edi |
- | |
1054 | mov ebx,dword[val] |
- | |
1055 | - | ||
1056 | .cycle: |
- | |
1057 | mov al,bl |
- | |
1058 | and al,0xf |
- | |
1059 | cmp al,10 |
- | |
1060 | jl @f |
- | |
1061 | add al,'a'-'0'-10 |
- | |
1062 | @@: |
- | |
1063 | add al,'0' |
- | |
1064 | mov byte[edi],al |
- | |
1065 | dec edi |
- | |
1066 | shr ebx,4 |
- | |
1067 | loop .cycle |
- | |
1068 | popad |
- | |
1069 | ret |
- | |
1070 | endp |
- | |
1071 | 1075 | ||
1072 | ;¤ ë¥ ¤«ï ¤¨ «®£ ®âªàëâ¨ï ä ©«®¢ |
1076 | ;¤ ë¥ ¤«ï ¤¨ «®£ ®âªàëâ¨ï ä ©«®¢ |
1073 | align 4 |
1077 | align 4 |
1074 | OpenDialog_data: |
1078 | OpenDialog_data: |
1075 | .type dd 0 ;0 - ®âªàëâì, 1 - á®åà ¨âì, 2 - ¢ë¡à âì ¤â४â®à¨î |
1079 | .type dd 0 ;0 - ®âªàëâì, 1 - á®åà ¨âì, 2 - ¢ë¡à âì ¤â४â®à¨î |
Line 1446... | Line 1450... | ||
1446 | mat_shininess dd 3.0 ; §¬¥à ¡«¨ª (®¡à â ï ¯à®¯®àæ¨ï) |
1450 | mat_shininess dd 3.0 ; §¬¥à ¡«¨ª (®¡à â ï ¯à®¯®àæ¨ï) |
1447 | white_light dd 0.8, 0.8, 0.8, 1.0 ; ¢¥â ¨ ¨â¥á¨¢®áâì ®á¢¥é¥¨ï, £¥¥à¨à㥬®£® ¨áâ®ç¨ª®¬ |
1451 | white_light dd 0.8, 0.8, 0.8, 1.0 ; ¢¥â ¨ ¨â¥á¨¢®áâì ®á¢¥é¥¨ï, £¥¥à¨à㥬®£® ¨áâ®ç¨ª®¬ |
1448 | lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ; à ¬¥âàë ä®®¢®£® ®á¢¥é¥¨ï |
1452 | lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ; à ¬¥âàë ä®®¢®£® ®á¢¥é¥¨ï |
Line 1449... | Line 1453... | ||
1449 | 1453 | ||
1450 | if lang eq ru |
1454 | if lang eq ru |
1451 | capt db 'info 3ds [user] ¢¥àá¨ï 16.01.16',0 ;¯®¤¯¨áì ®ª |
1455 | capt db 'info 3ds [user] ¢¥àá¨ï 19.01.16',0 ;¯®¤¯¨áì ®ª |
1452 | else |
1456 | else |
1453 | capt db 'info 3ds [user] version 16.01.16',0 ;window caption |
1457 | capt db 'info 3ds [user] version 19.01.16',0 ;window caption |
Line 1454... | Line 1458... | ||
1454 | end if |
1458 | end if |
1455 | 1459 | ||
1456 | align 16 |
1460 | align 16 |