/programs/develop/info3ds/build_en.bat |
---|
3,11 → 3,8 |
@echo lang fix en >lang.inc |
@copy objects.png bin\objects.png |
if not exist bin\info3ds.ini @copy info3ds.ini bin\info3ds.ini |
if not exist bin\tl_sys_16.png @copy tl_sys_16.png bin\tl_sys_16.png |
if not exist bin\toolbar.png @copy toolbar.png bin\toolbar.png |
if not exist bin\font8x9.bmp @copy ..\..\fs\kfar\trunk\font8x9.bmp bin\font8x9.bmp |
@fasm.exe -m 16384 ..\libraries\TinyGL\asm_fork\tinygl.asm bin\tinygl.obj |
@kpack bin\tinygl.obj |
@fasm.exe -m 16384 info3ds.asm bin\info3ds.kex |
@kpack bin\info3ds.kex |
@fasm.exe -m 16384 info3ds_u.asm bin\info3ds_u.kex |
/programs/develop/info3ds/build_ru.bat |
---|
3,11 → 3,8 |
@echo lang fix ru >lang.inc |
@copy objects.png bin\objects.png |
if not exist bin\info3ds.ini @copy info3ds.ini bin\info3ds.ini |
if not exist bin\tl_sys_16.png @copy tl_sys_16.png bin\tl_sys_16.png |
if not exist bin\toolbar.png @copy toolbar.png bin\toolbar.png |
if not exist bin\font8x9.bmp @copy ..\..\fs\kfar\trunk\font8x9.bmp bin\font8x9.bmp |
@fasm.exe -m 16384 ..\libraries\TinyGL\asm_fork\tinygl.asm bin\tinygl.obj |
@kpack bin\tinygl.obj |
@fasm.exe -m 16384 info3ds.asm bin\info3ds.kex |
@kpack bin\info3ds.kex |
@fasm.exe -m 16384 info3ds_u.asm bin\info3ds_u.kex |
/programs/develop/info3ds/convert_stl_3ds.inc |
---|
0,0 → 1,459 |
; |
; ãªæ¨¨ ¤«ï ¯à¥®¡à §®¢ ¨ï ä ©« *.stl ¢ *.3ds |
; |
; âàãªâãà ᮧ¤ ¢ ¥¬®£® ä ©« *.3ds: |
; CHUNK_MAIN (40+n+v+f) |
; + CHUNK_OBJMESH (34+n+v+f) |
; + CHUNK_OBJBLOCK (28+n+v+f) |
; + CHUNK_TRIMESH (22+v+f) |
; + CHUNK_VERTLIST (8+v) |
; + CHUNK_FACELIST (8+f) |
; |
; ¢ ᪮¡ª å 㪠§ ë à §¬¥àë ¡«®ª®¢: |
; n - ¯ ¬ïâì ¤«ï ¨¬¥¨ ®¡ê¥ªâ |
; v - ¯ ¬ïâì ¤«ï ¢¥àè¨ |
; f - ¯ ¬ïâì ¤«ï £à ¥© |
; ®à¬ â ¡¨ ண® *.stl: |
; char[80] - § £®«®¢®ª |
; uint32 - ç¨á«® £à ¥© |
; ¤«ï ª ¦¤®© £à ¨: |
; float[3] - ¢¥ªâ®à ®à¬ «¨ |
; float[9] - ¢¥àè¨ë 1,2,3 |
; uint16 - âਡãâë |
if lang eq ru |
txt_err_stl_open: |
db '"STL',13,10 |
db ' ©« *.stl ®ç¥ì ¡®«ì让." -tW',0 |
txt_err_stl_null_v: |
db '"STL',13,10 |
db '¥àè¨ë ¥ ©¤¥ë." -tE',0 |
else |
txt_err_stl_open: |
db '"STL',13,10 |
db 'File *.stl is very large." -tW',0 |
txt_err_stl_null_v: |
db '"STL',13,10 |
db 'Vertexes not found." -tE',0 |
end if |
;output: |
; eax - 㪠§ ⥫ì áä®à¬¨à®¢ ë© ä ©« 3ds (¢ á«ãç ¥ ¥ã¤ ç¨ 0) |
; ecx - à §¬¥à áä®à¬¨à®¢ ®£® ä ©« 3ds |
align 4 |
proc convert_stl_3ds uses ebx edx edi esi, f_data:dword, f_size:dword |
locals |
c_mem dd ? ;¯ ¬ïâì ¤«ï ¯à¥®¡à §®¢ ¨ï (convert memory) |
c_size dd ? ;à §¬¥à ¯ ¬ï⨠¤«ï ¯à¥®¡à §®¢ ¨© (convert memory size) |
vert_c dd ? ;ç¨á«® ¢¥àè¨ (vertex count) |
face_c dd ? ;ç¨á«® £à ¥© (faces count) |
endl |
xor eax,eax |
mov esi,[f_data] |
cmp dword[esi],'soli' |
jne .bin_stl |
cmp word[esi+4],'d ' |
jne .bin_stl |
jmp @f |
.bin_stl: |
;¯à®¢¥à塞 ä ©« ¡¨ àë© ä®à¬ â |
mov ecx,[esi+80] |
imul ecx,50 |
add ecx,84 ;§ £®«®¢®ª |
cmp ecx,[f_size] |
jne .no_stl |
call convert_binary_stl |
jmp .no_stl |
@@: |
;¢ ç «¥ ©¤¥® 'solid ' |
stdcall txt_next_line, 80 |
mov eax,[f_data] |
sub eax,esi |
add eax,[f_size] |
stdcall get_stl_vertex_count, esi,eax |
or eax,eax |
jnz @f |
notify_window_run txt_err_stl_null_v |
jmp .no_stl |
@@: |
cmp eax,0xffff |
jle @f |
notify_window_run txt_err_stl_open |
mov eax,0xffff |
@@: |
mov [vert_c],eax |
mov ecx,3 |
xor edx,edx |
div ecx |
mov [face_c],eax |
shl eax,3 |
mov ecx,[vert_c] |
imul ecx,12 |
lea ecx,[ecx+eax+40] |
lea edx,[esi-6] |
sub edx,[f_data] |
cmp edx,2 |
jge @f |
mov edx,2 ;¬¨¨¬ «ìë© à §¬¥à ¤«ï ¨¬¥¨ ®¡ê¥ªâ |
@@: |
add ecx,edx ;for object name |
mov [c_size],ecx |
stdcall mem.Alloc,ecx |
mov [c_mem],eax |
mov ebx,eax |
mov word[ebx],CHUNK_MAIN |
mov dword[ebx+2],ecx |
add ebx,6 |
;3d3d |
mov word[ebx],CHUNK_OBJMESH |
sub ecx,6 |
mov dword[ebx+2],ecx |
add ebx,6 |
;4000 |
mov word[ebx],CHUNK_OBJBLOCK |
sub ecx,6 |
mov dword[ebx+2],ecx |
add ebx,6 |
push ecx esi |
mov ecx,edx |
mov edi,ebx |
mov esi,[f_data] |
add esi,6 ;¯à®¯ã᪠¥¬ 'solid ' |
rep movsb ;ª®¯¨à㥬 ¨¬ï ®¡ê¥ªâ |
mov byte[edi-1],0 |
add ebx,edx |
pop esi ecx |
;4100 |
mov word[ebx],CHUNK_TRIMESH |
sub ecx,6 |
mov dword[ebx+2],ecx |
add ebx,6 |
;4110 |
mov word[ebx],CHUNK_VERTLIST |
mov dword[ebx+2],8 ;+ ç¨á«® ¢¥àè¨ * 12 |
add ebx,6 |
mov edx,ebx |
mov word[edx],0 ;ª®«. ¢¥àè¨ |
add ebx,2 |
finit |
.cycle0: |
call txt_ignore_space |
cmp dword[esi],'face' |
jne .end_v |
stdcall txt_next_line, 80 |
call txt_ignore_space |
cmp dword[esi],'oute' |
jne .end_v |
stdcall txt_next_line, 80 |
mov ecx,3 ;3 â®çª¨ 1 £à ì |
@@: |
stdcall stl_vertex_init, ebx |
or eax,eax |
jz .end_v |
add ebx,12 |
inc word[edx] |
loop @b |
mov eax,[vert_c] |
cmp word[edx],ax |
jge .end_v |
call txt_ignore_space |
cmp dword[esi],'endl' |
jne .end_v |
stdcall txt_next_line, 80 |
call txt_ignore_space |
cmp dword[esi],'endf' |
jne .end_v |
stdcall txt_next_line, 80 |
jmp .cycle0 |
.end_v: |
movzx eax,word[edx] |
imul eax,12 |
add [edx-4],eax ;¨á¯à ¢«ï¥¬ à §¬¥à ¡«®ª 4110 |
;4120 |
mov word[ebx],CHUNK_FACELIST |
mov ecx,[face_c] |
mov edx,ecx |
shl edx,3 ;ª®«. £à ¥© * 8 |
add edx,8 |
mov [ebx+2],edx |
add ebx,6 |
mov [ebx],cx ;ª®«. £à ¥© |
add ebx,2 |
xor eax,eax |
@@: |
mov [ebx],ax |
inc eax |
mov [ebx+2],ax |
inc eax |
mov [ebx+4],ax |
inc eax |
mov word[ebx+6],0 ; âਡãâë |
add ebx,8 |
loop @b |
mov eax,[c_mem] |
mov ecx,[c_size] |
.no_stl: |
ret |
endp |
;input: |
; esi - 㪠§ ⥫ì ç «® ä ©« |
; ecx - à §¬¥à ä ©« |
align 4 |
proc convert_binary_stl |
locals |
c_mem dd ? ;¯ ¬ïâì ¤«ï ¯à¥®¡à §®¢ ¨ï (convert memory) |
c_size dd ? ;à §¬¥à ¯ ¬ï⨠¤«ï ¯à¥®¡à §®¢ ¨© (convert memory size) |
vert_c dd ? ;ç¨á«® ¢¥àè¨ (vertex count) |
face_c dd ? ;ç¨á«® £à ¥© (faces count) |
endl |
mov eax,[esi+80] |
or eax,eax |
jnz @f |
notify_window_run txt_err_stl_null_v |
jmp .no_stl |
@@: |
cmp eax,0xffff/3 |
jle @f |
notify_window_run txt_err_stl_open |
mov eax,0xffff/3 |
@@: |
mov [face_c],eax |
mov ecx,eax |
imul eax,3 |
mov [vert_c],eax |
shl ecx,3 |
imul eax,12 |
lea ecx,[ecx+eax+40+4] ;+4 à §¬¥à ¤«ï ¨¬¥¨ ®¡ê¥ªâ |
mov [c_size],ecx |
stdcall mem.Alloc,ecx |
mov [c_mem],eax |
mov ebx,eax |
mov word[ebx],CHUNK_MAIN |
mov dword[ebx+2],ecx |
add ebx,6 |
;3d3d |
mov word[ebx],CHUNK_OBJMESH |
sub ecx,6 |
mov dword[ebx+2],ecx |
add ebx,6 |
;4000 |
mov word[ebx],CHUNK_OBJBLOCK |
sub ecx,6 |
mov dword[ebx+2],ecx |
add ebx,6 |
mov dword[ebx],'Stl' ;¨¬ï ®¡ê¥ªâ |
add ebx,4 |
;4100 |
mov word[ebx],CHUNK_TRIMESH |
sub ecx,6 |
mov dword[ebx+2],ecx |
add ebx,6 |
;4110 |
mov word[ebx],CHUNK_VERTLIST |
mov dword[ebx+2],8 ;+ ç¨á«® ¢¥àè¨ * 12 |
add ebx,6 |
mov edx,ebx |
mov ecx,[vert_c] |
mov word[edx],cx ;ª®«. ¢¥àè¨ |
add ebx,2 |
add esi,80+4+12 ;¯à®¯ã᪠§ £®«®¢ª , ç¨á« £à ¥©, 1-£® ¢¥ªâ®à ®à¬ «¥© |
mov edi,ebx |
mov eax,[face_c] |
@@: ;横« ¯® £à ï¬ |
mov ecx,9 |
rep movsd ;ª®¯¨à㥬 ª®®à¤¨ âë 3-å ¢¥àè¨ |
add esi,14 ;¯à®¯ã᪠¢¥ªâ®à ®à¬ «¥© ¨ âਡã⮢ |
dec eax |
jnz @b |
mov ebx,edi |
movzx eax,word[edx] |
imul eax,12 |
add [edx-4],eax ;¨á¯à ¢«ï¥¬ à §¬¥à ¡«®ª 4110 |
;4120 |
mov word[ebx],CHUNK_FACELIST |
mov ecx,[face_c] |
mov edx,ecx |
shl edx,3 ;ª®«. £à ¥© * 8 |
add edx,8 |
mov [ebx+2],edx |
add ebx,6 |
mov [ebx],cx ;ª®«. £à ¥© |
add ebx,2 |
xor eax,eax |
@@: |
mov [ebx],ax |
inc eax |
mov [ebx+2],ax |
inc eax |
mov [ebx+4],ax |
inc eax |
mov word[ebx+6],0 ; âਡãâë |
add ebx,8 |
loop @b |
mov eax,[c_mem] |
mov ecx,[c_size] |
.no_stl: |
ret |
endp |
;output: |
; eax - vertex count |
align 4 |
proc get_stl_vertex_count uses ebx ecx edi, f_data:dword, f_size:dword |
mov al,'v' |
xor ebx,ebx |
mov ecx,[f_size] |
mov edi,[f_data] |
.cycle0: |
repne scasb |
cmp dword[edi],'erte' |
jne @f |
inc ebx |
add edi,4 |
sub ecx,4 |
cmp ecx,4 |
jg .cycle0 |
@@: |
mov eax,ebx |
ret |
endp |
;input: |
; esi - input description text |
; ppoi - pointer to vertex struct |
;output: |
; eax - 0 (if error init) or 1 |
; esi - output description text |
align 4 |
proc stl_vertex_init uses ebx ecx edi, ppoi:dword |
call txt_ignore_space |
cmp dword[esi],'vert' |
jne .err_init |
cmp word[esi+4],'ex' |
jne .err_init |
add esi,6 |
mov ebx,[ppoi] |
call txt_copy_data |
call String_to_DoubleFloat |
fld qword[Data_Double] |
fstp dword[ebx] ;coord X |
call txt_copy_data |
call String_to_DoubleFloat |
fld qword[Data_Double] |
fstp dword[ebx+4] ;coord X |
call txt_copy_data |
call String_to_DoubleFloat |
fld qword[Data_Double] |
fstp dword[ebx+8] ;coord Z |
stdcall txt_next_line, 80 |
jmp @f |
.err_init: |
xor eax,eax |
jmp .end_f |
@@: |
xor eax,eax |
inc eax |
.end_f: |
ret |
endp |
;input: |
; esi - 㪠§ ⥫ì ç «® áâப¨ á ¯à®¡¥« ¬¨ |
;output: |
; al - destroy |
; ecx - destroy |
; esi - 㪠§ â¥«ì ¯¥à¢ë© ¥¯à®¡¥«ìë© á¨¬¢®« |
align 4 |
txt_ignore_space: |
mov ecx,64 ;§ é¨â ®â § 横«¨¢ ¨ï |
@@: |
lodsb |
cmp al,' ' |
jne @f |
loop @b |
@@: |
dec esi |
ret |
;input: |
; esi - 㪠§ ⥫ì áâபã á ç¨á«®¬ (¯à®¡¥«ë ¢ ç «¥ áâப¨ ¨£®à¨àãîâìáï) |
;output: |
; al - destroy |
; ecx - destroy |
; edi - destroy |
; esi - 㪠§ â¥«ì ª®¥æ ª®¯¨à®¢ ®£® ç¨á« |
; Data_String - áâப á ç¨á«®¬ ¨§ esi |
align 4 |
txt_copy_data: |
call txt_ignore_space |
mov ecx,32 |
mov edi,esi |
@@: |
lodsb |
or al,al |
jz @f |
cmp al,' ' |
je @f |
cmp al,13 |
je @f |
loop @b |
@@: |
mov esi,edi |
sub ecx,32 |
neg ecx |
mov edi,Data_String |
rep movsb |
mov byte[edi],0 |
ret |
;input: |
; esi - text pointer |
align 4 |
proc txt_next_line uses eax ecx edi, mlen:dword |
mov al,13 |
mov ecx,[mlen] |
mov edi,esi |
repne scasb |
cmp byte[edi],10 |
jne @f |
inc edi |
@@: |
mov esi,edi |
ret |
endp |
/programs/develop/info3ds/data.inc |
---|
291,7 → 291,9 |
if lang eq ru |
txt_open_3ds db 'âªàëâ ä ©«:',0 |
txt_no_3ds db 'âªàëâë© ä ©« ¥ ¢ ä®à¬ ⥠*.3ds',0 |
txt_no_3ds: db 'âªàëâë© ä ©« ¥ ¢ ä®à¬ ⥠*.3ds ',39 |
.zag: rb 8 |
db 39,0 |
txt_3ds_err_sizes db '®§¬®¦® ä ©« ¯®¢à¥¦¤¥',0 |
txt_count db '®«¨ç¥á⢮',0 |
txt_3ds_offs: |
300,10 → 302,13 |
db ' §¬¥à: ' |
.siz: rb 8 |
db 0 |
txt_mat_null db ' â¥à¨ «ë ¥ ©¤¥ë',0 |
else |
txt_open_3ds db 'Open file:',0 |
txt_no_3ds db 'âªàëâë© ä ©« ¥ ¢ ä®à¬ ⥠*.3ds',0 |
txt_3ds_err_sizes db '®§¬®¦® ä ©« ¯®¢à¥¦¤¥',0 |
txt_no_3ds: db 'Open file not in format *.3ds ',39 |
.zag: rb 8 |
db 39,0 |
txt_3ds_err_sizes db 'File may be corrupted',0 |
txt_count db 'Count',0 |
txt_3ds_offs: |
db 'Offset: ' |
311,4 → 316,5 |
db ' Size: ' |
.siz: rb 8 |
db 0 |
txt_mat_null db 'No materials found',0 |
end if |
/programs/develop/info3ds/info3ds.asm |
---|
1,5 → 1,5 |
use32 |
org 0x0 |
org 0 |
db 'MENUET01' ;¨¤¥â¨ä. ¨á¯®«ï¥¬®£® ä ©« ¢á¥£¤ 8 ¡ ©â |
dd 1, start, i_end, mem, stacktop, file_name, sys_path |
16,6 → 16,7 |
include 'info_fun_float.inc' |
include 'info_menu.inc' |
include 'data.inc' |
include 'convert_stl_3ds.inc' |
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
70,8 → 71,8 |
mov edi,openfile_path |
@@: |
lodsd |
cmp eax,0 |
je @f ;¢ë室, ¥á«¨ 0 |
or eax,eax |
jz @f ;¢ë室, ¥á«¨ 0 |
stosd |
jmp @b |
@@: |
137,9 → 138,9 |
stdcall [ksubmenu_add], [main_menu], eax |
mov dword[w_scr_t1.type],1 |
stdcall dword[tl_data_init], tree1 |
stdcall [tl_data_init], tree1 |
;á¨áâ¥¬ë¥ ¨ª®ª¨ 16*16 ¤«ï tree_list |
load_image_file 'tl_sys_16.png', icon_tl_sys |
include_image_file 'tl_sys_16.png', icon_tl_sys |
;¥á«¨ ¨§®¡à ¦¥¨¥ ¥ ®âªàë«®áì, â® ¢ icon_tl_sys ¡ã¤ãâ |
;¥ ¨¨æ¨ «¨§¨à®¢ ë¥ ¤ ë¥, ® ®è¨¡ª¨ ¥ ¡ã¤¥â, â. ª. ¡ãä¥à 㦮£® à §¬¥à |
mov eax,dword[icon_tl_sys] |
256,8 → 257,8 |
@@: |
sub ebx,eax |
mcall SF_WAIT_EVENT_TIMEOUT |
cmp eax,0 |
je timer_funct |
or eax,eax |
jz timer_funct |
cmp al,1 |
jne @f |
443,7 → 444,7 |
int 0x40 |
mov dword[w_scr_t1.all_redraw],1 |
stdcall [tl_draw],dword tree1 |
stdcall [tl_draw], tree1 |
stdcall [buf2d_draw], buf_0 |
568,7 → 569,17 |
init_tree: |
stdcall [tl_info_clear], tree1 ;®ç¨á⪠ᯨ᪠®¡ê¥ªâ®¢ |
mov esi,dword[open_file_data] |
mov esi,[open_file_data] |
stdcall convert_stl_3ds, esi,[open_file_size] ;¯à®¢¥à塞 ä ©« ä®à¬ â *.stl ? |
or eax,eax |
jz @f |
;¥á«¨ ä ©« ¢ ä®à¬ ⥠*.stl |
mov [open_file_size],ecx |
mov esi,eax |
stdcall mem.Free,[open_file_data] |
mov [open_file_data],esi |
mov byte[can_save],1 |
@@: |
cmp word[esi],CHUNK_MAIN |
je @f |
stdcall buf_draw_beg, buf_0 |
583,8 → 594,8 |
stdcall add_3ds_object, ID_ICON_CHUNK_MAIN,0,dword[esi+2],0 |
call block_children ;¢å®¤ ¢ ¤®ç¥à¨© ¡«®ª |
mov edi,dword[file_3ds.offs] |
add edi,dword[file_3ds.size] |
mov edi,[file_3ds.offs] |
add edi,[file_3ds.size] |
.cycle_main: |
cmp dword[level_stack],0 |
jle .end_cycle |
592,7 → 603,7 |
cmp esi,edi ;¥á«¨ ª®¥æ ä ©« |
jge .end_cycle |
mov edx,dword[esi+2] ;à §¬¥à ¡«®ª |
mov edx,[esi+2] ;à §¬¥à ¡«®ª |
call block_analiz |
cmp dword[bl_found],0 |
jne @f |
756,9 → 767,9 |
mov dword[level_stack],FILE_ERROR_CHUNK_SIZE |
jmp .end_f |
@@: |
mov dword[eax],esi ;㪠§ ⥫ì ç «® ¡«®ª |
mov ebx,dword[esi+2] |
mov dword[eax+4],ebx ;à §¬¥à ¡«®ª |
mov [eax],esi ;㪠§ ⥫ì ç «® ¡«®ª |
mov ebx,[esi+2] |
mov [eax+4],ebx ;à §¬¥à ¡«®ª |
add esi,6 ;¯¥à¥å®¤¨¬ ª ¤ ë¬ ¡«®ª |
inc dword[level_stack] |
add eax,8 |
815,8 → 826,10 |
;input: |
; esi - 㪠§ â¥«ì «¨§¨àã¥¬ë¥ ¤ ë¥ |
; icon - ®¬¥à ¨ª®ª¨ |
; level - ã஢¥ì ¢«®¦¥®á⨠㧫 |
; size_bl - à §¬¥à ¡«®ª |
; info_bl - áâப á ®¯¨á ¨¥¬ ¡«®ª |
align 4 |
proc add_3ds_object, icon:dword,level:dword,size_bl:dword,info_bl:dword |
pushad |
830,8 → 843,8 |
mov ecx,dword[size_bl] |
mov dword[buffer+4],ecx ;à §¬¥à ¡«®ª (¨á¯®«ì§ã¥âáï ¢ äãªæ¨¨ buf_draw_hex_table ¤«ï à¨á®¢ ¨ï «¨¨¨) |
mov ecx,dword[bl_found] |
cmp ecx,0 |
je @f |
or ecx,ecx |
jz @f |
;... §¤¥áì 㦥 ¤à㣮© «£®à¨â¬ § é¨âë ®â 㤠«¥¨ï |
mov cl,byte[ecx+4] |
@@: |
842,8 → 855,8 |
mov dword[buffer+list_offs_p_data],ecx |
stdcall hex_in_str, buffer+list_offs_text,dword[esi+1],2 |
stdcall hex_in_str, buffer+list_offs_text+2,dword[esi],2 ;ª®¤ 3ds ¡«®ª |
cmp ecx,0 |
jne @f |
or ecx,ecx |
jnz @f |
mov byte[buffer+list_offs_text+4],0 ;0 - ᨬ¢®« ª®æ áâப¨ |
jmp .no_capt |
@@: |
880,7 → 893,7 |
align 4 |
.str: |
mov ecx,0x0a |
mov ecx,10 |
cmp eax,ecx |
jb @f |
xor edx,edx |
1023,6 → 1036,7 |
dd Filter.end - Filter.1 |
.1: |
db '3DS',0 |
db 'STL',0 |
db 'PNG',0 |
.end: |
db 0 |
1046,38 → 1060,38 |
if lang eq ru |
head_f_i: |
head_f_l db '¨á⥬ ï ®è¨¡ª ',0 |
err_msg_found_lib_0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,0 |
err_msg_import_0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0 |
err_msg_found_lib_1 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,0 |
err_msg_import_1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0 |
err_msg_found_lib_2 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'box_lib.obj',39,0 |
err_msg_import_2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib',39,0 |
err_msg_found_lib_3 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,0 |
err_msg_import_3 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,0 |
err_msg_found_lib_4 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'kmenu.obj',39,0 |
err_msg_import_4 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0 |
err_msg_found_lib_5 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'tinygl.obj',39,0 |
err_msg_import_5 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,0 |
err_msg_found_lib_6 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libini.obj',39,0 |
err_msg_import_6 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,0 |
head_f_l db '"¨á⥬ ï ®è¨¡ª ',0 |
err_msg_found_lib_0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,'" -tE',0 |
err_msg_import_0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,'" -tW',0 |
err_msg_found_lib_1 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,'" -tE',0 |
err_msg_import_1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,'" -tW',0 |
err_msg_found_lib_2 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'box_lib.obj',39,'" -tE',0 |
err_msg_import_2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib',39,'" -tW',0 |
err_msg_found_lib_3 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_import_3 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,'" -tW',0 |
err_msg_found_lib_4 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'kmenu.obj',39,'" -tE',0 |
err_msg_import_4 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,'" -tW',0 |
err_msg_found_lib_5 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'tinygl.obj',39,'" -tE',0 |
err_msg_import_5 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,'" -tW',0 |
err_msg_found_lib_6 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libini.obj',39,'" -tE',0 |
err_msg_import_6 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,'" -tW',0 |
else |
head_f_i: |
head_f_l db 'System error',0 |
err_msg_found_lib_0 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,0 |
err_msg_import_0 db 'Error on load import library ',39,'proc_lib.obj',39,0 |
err_msg_found_lib_1 db 'Sorry I cannot found library ',39,'libimg.obj',39,0 |
err_msg_import_1 db 'Error on load import library ',39,'libimg.obj',39,0 |
err_msg_found_lib_2 db 'Sorry I cannot found library ',39,'box_lib.obj',39,0 |
err_msg_import_2 db 'Error on load import library ',39,'box_lib.obj',39,0 |
err_msg_found_lib_3 db 'Sorry I cannot found library ',39,'buf2d.obj',39,0 |
err_msg_import_3 db 'Error on load import library ',39,'buf2d.obj',39,0 |
err_msg_found_lib_4 db 'Sorry I cannot found library ',39,'kmenu.obj',39,0 |
err_msg_import_4 db 'Error on load import library ',39,'kmenu.obj',39,0 |
err_msg_found_lib_5 db 'Sorry I cannot found library ',39,'tinygl.obj',39,0 |
err_msg_import_5 db 'Error on load import library ',39,'tinygl',39,0 |
err_msg_found_lib_6 db 'Sorry I cannot found library ',39,'libini.obj',39,0 |
err_msg_import_6 db 'Error on load import library ',39,'libini',39,0 |
head_f_l db '"System error',0 |
err_msg_found_lib_0 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,'" -tE',0 |
err_msg_import_0 db 'Error on load import library ',39,'proc_lib.obj',39,'" -tW',0 |
err_msg_found_lib_1 db 'Sorry I cannot found library ',39,'libimg.obj',39,'" -tE',0 |
err_msg_import_1 db 'Error on load import library ',39,'libimg.obj',39,'" -tW',0 |
err_msg_found_lib_2 db 'Sorry I cannot found library ',39,'box_lib.obj',39,'" -tE',0 |
err_msg_import_2 db 'Error on load import library ',39,'box_lib.obj',39,'" -tW',0 |
err_msg_found_lib_3 db 'Sorry I cannot found library ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_import_3 db 'Error on load import library ',39,'buf2d.obj',39,'" -tW',0 |
err_msg_found_lib_4 db 'Sorry I cannot found library ',39,'kmenu.obj',39,'" -tE',0 |
err_msg_import_4 db 'Error on load import library ',39,'kmenu.obj',39,'" -tW',0 |
err_msg_found_lib_5 db 'Sorry I cannot found library ',39,'tinygl.obj',39,'" -tE',0 |
err_msg_import_5 db 'Error on load import library ',39,'tinygl',39,'" -tW',0 |
err_msg_found_lib_6 db 'Sorry I cannot found library ',39,'libini.obj',39,'" -tE',0 |
err_msg_import_6 db 'Error on load import library ',39,'libini',39,'" -tW',0 |
end if |
align 4 |
1373,9 → 1387,9 |
lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ; à ¬¥âàë ä®®¢®£® ®á¢¥é¥¨ï |
if lang eq ru |
capt db 'info 3ds ¢¥àá¨ï 10.12.17',0 ;¯®¤¯¨áì ®ª |
capt db 'info 3ds ¢¥àá¨ï 14.03.19',0 ;¯®¤¯¨áì ®ª |
else |
capt db 'info 3ds version 10.12.17',0 ;window caption |
capt db 'info 3ds version 14.03.19',0 ;window caption |
end if |
align 16 |
/programs/develop/info3ds/info3ds_u.asm |
---|
16,6 → 16,7 |
include 'info_fun_float.inc' |
include 'info_menu.inc' |
include 'data.inc' |
include 'convert_stl_3ds.inc' |
3d_wnd_l equ 205 ;®âáâ㯠¤«ï tinygl ¡ãä¥à á«¥¢ |
3d_wnd_t equ 47 ;®âáâ㯠¤«ï tinygl ¡ãä¥à ᢥàåã |
78,8 → 79,8 |
mov edi,openfile_path |
@@: |
lodsd |
cmp eax,0 |
je @f ;¢ë室, ¥á«¨ 0 |
or eax,eax |
jz @f ;¢ë室, ¥á«¨ 0 |
stosd |
jmp @b |
@@: |
130,9 → 131,9 |
stdcall [ksubmenu_add], [main_menu], eax |
mov dword[w_scr_t1.type],1 |
stdcall dword[tl_data_init], tree1 |
stdcall [tl_data_init], tree1 |
;á¨áâ¥¬ë¥ ¨ª®ª¨ 16*16 ¤«ï tree_list |
load_image_file 'tl_sys_16.png', icon_tl_sys |
include_image_file 'tl_sys_16.png', icon_tl_sys |
;¥á«¨ ¨§®¡à ¦¥¨¥ ¥ ®âªàë«®áì, â® ¢ icon_tl_sys ¡ã¤ãâ |
;¥ ¨¨æ¨ «¨§¨à®¢ ë¥ ¤ ë¥, ® ®è¨¡ª¨ ¥ ¡ã¤¥â, â. ª. ¡ãä¥à 㦮£® à §¬¥à |
mov eax,dword[icon_tl_sys] |
252,8 → 253,8 |
@@: |
sub ebx,eax |
mcall SF_WAIT_EVENT_TIMEOUT |
cmp eax,0 |
je timer_funct |
or eax,eax |
jz timer_funct |
cmp al,1 |
jne @f |
284,8 → 285,8 |
jne .end_m |
stdcall [tl_node_get_data],tree1 |
cmp eax,0 |
je .end_d |
or eax,eax |
jz .end_d |
mov ebx,dword[eax] |
add ebx,dword[open_file_data] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ ¯ ¬ï⨠|
cmp word[ebx],CHUNK_OBJBLOCK |
375,8 → 376,8 |
;¯à®á¬ âਢ ¥¬ ¢ë¤¥«¥ë© ¡«®ª ¤ ëå |
stdcall [tl_node_get_data],tree1 |
cmp eax,0 |
je .end_f |
or eax,eax |
jz .end_f |
mov edi,eax |
add edi,list_offs_obj3d |
mov ebx,eax |
422,8 → 423,8 |
stdcall buf_draw_beg, buf_ogl |
stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_3ds_offs,5,35,0xb000 |
mov edx,dword[ebx+list_offs_p_data] |
cmp edx,0 ;ᬮâਬ ¥áâì «¨ ®¯¨á ¨¥ ¡«®ª |
je .no_info |
or edx,edx ;ᬮâਬ ¥áâì «¨ ®¯¨á ¨¥ ¡«®ª |
jz .no_info |
stdcall [buf2d_draw_text], buf_ogl, buf_1,edx,5,45,0xb000 |
.no_info: |
stdcall [buf2d_draw], buf_ogl ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥ |
508,8 → 509,8 |
fadd dword[delt_size] |
fstp dword[angle_x] |
stdcall [tl_node_get_data],tree1 |
cmp eax,0 |
je .end |
or eax,eax |
jz .end |
add eax,list_offs_obj3d |
stdcall draw_3d, eax |
jmp .end |
520,8 → 521,8 |
fsub dword[delt_size] |
fstp dword[angle_x] |
stdcall [tl_node_get_data],tree1 |
cmp eax,0 |
je .end |
or eax,eax |
jz .end |
add eax,list_offs_obj3d |
stdcall draw_3d, eax |
jmp .end |
532,8 → 533,8 |
fadd dword[delt_size] |
fstp dword[angle_y] |
stdcall [tl_node_get_data],tree1 |
cmp eax,0 |
je .end |
or eax,eax |
jz .end |
add eax,list_offs_obj3d |
stdcall draw_3d, eax |
jmp .end |
544,8 → 545,8 |
fsub dword[delt_size] |
fstp dword[angle_y] |
stdcall [tl_node_get_data],tree1 |
cmp eax,0 |
je .end |
or eax,eax |
jz .end |
add eax,list_offs_obj3d |
stdcall draw_3d, eax |
;jmp .end |
627,17 → 628,17 |
align 4 |
but_new_file: |
push eax ebx |
stdcall dword[tl_node_poi_get_info], tree1,0 |
stdcall [tl_node_poi_get_info], tree1,0 |
@@: |
cmp eax,0 |
je @f |
or eax,eax |
jz @f |
mov ebx,eax |
stdcall [tl_node_poi_get_data], tree1,ebx |
add eax,list_offs_obj3d |
stdcall obj_clear_param, eax |
stdcall dword[tl_node_poi_get_next_info], tree1,ebx |
cmp eax,0 |
jne @b |
stdcall [tl_node_poi_get_next_info], tree1,ebx |
or eax,eax |
jnz @b |
@@: |
pop ebx eax |
stdcall [tl_info_clear], tree1 ;®ç¨á⪠ᯨ᪠®¡ê¥ªâ®¢ |
694,25 → 695,38 |
align 4 |
init_tree: |
;ç¨á⨬ ¯ ¬ïâì § ïâãî ®¡ê¥ªâ ¬¨ |
stdcall dword[tl_node_poi_get_info], tree1,0 |
stdcall [tl_node_poi_get_info], tree1,0 |
@@: |
cmp eax,0 |
je @f |
or eax,eax |
jz @f |
mov ebx,eax |
stdcall [tl_node_poi_get_data], tree1,ebx |
cmp eax,0 |
je @f |
or eax,eax |
jz @f |
add eax,list_offs_obj3d |
stdcall obj_clear_param, eax |
stdcall dword[tl_node_poi_get_next_info], tree1,ebx |
cmp eax,0 |
jne @b |
stdcall [tl_node_poi_get_next_info], tree1,ebx |
or eax,eax |
jnz @b |
@@: |
stdcall [tl_info_clear], tree1 ;®ç¨á⪠ᯨ᪠®¡ê¥ªâ®¢ |
mov esi,dword[open_file_data] |
mov esi,[open_file_data] |
stdcall convert_stl_3ds, esi,[open_file_size] ;¯à®¢¥à塞 ä ©« ä®à¬ â *.stl ? |
or eax,eax |
jz @f |
;¥á«¨ ä ©« ¢ ä®à¬ ⥠*.stl |
mov [open_file_size],ecx |
mov esi,eax |
stdcall mem.Free,[open_file_data] |
mov [open_file_data],esi |
mov byte[can_save],1 |
@@: |
cmp word[esi],CHUNK_MAIN |
je @f |
mov eax,[esi] |
bswap eax |
stdcall hex_in_str, txt_no_3ds.zag, eax,8 |
stdcall buf_draw_beg, buf_ogl |
stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_no_3ds,5,25,0xff0000 ;à¨á㥬 áâபã á ⥪á⮬ |
jmp .end_open |
725,8 → 739,8 |
stdcall add_3ds_object, ID_ICON_CHUNK_MAIN,0,dword[esi+2],0 |
call block_children ;¢å®¤ ¢ ¤®ç¥à¨© ¡«®ª |
mov edi,dword[file_3ds.offs] |
add edi,dword[file_3ds.size] |
mov edi,[file_3ds.offs] |
add edi,[file_3ds.size] |
.cycle_main: |
cmp dword[level_stack],0 |
jle .end_cycle |
734,7 → 748,7 |
cmp esi,edi ;¥á«¨ ª®¥æ ä ©« |
jge .end_cycle |
mov edx,dword[esi+2] ;à §¬¥à ¡«®ª |
mov edx,[esi+2] ;à §¬¥à ¡«®ª |
call block_analiz |
cmp word[esi],CHUNK_MATERIAL |
je @f |
796,8 → 810,8 |
; esi - new memory pointer |
align 4 |
proc block_analiz_data uses ebx ecx edx edi |
mov dx,word[esi] |
mov ecx,dword[esi+2] |
mov dx,[esi] |
mov ecx,[esi+2] |
sub ecx,6 ;à §¬¥à ¤ ëå ¢ ¡«®ª¥ |
add esi,6 |
mov ebx,dword[level_stack] |
902,11 → 916,10 |
block_children: |
push ecx |
;¯à®¢¥àª ¯à ¢¨«ì®áâ¨ à §¬¥à®¢ ¤®ç¥à¥£® ¡«®ª |
mov ebx,esi |
add ebx,6 ;¯¥à¥å®¤ ç «® ¤®ç¥à¥£® ¡«®ª |
add ebx,dword[ebx+2] ;¤®¡ ¢«ï¥¬ à §¬¥à ¤®ç¥à¥£® ¡«®ª |
lea ebx,[esi+6] ;¯¥à¥å®¤ ç «® ¤®ç¥à¥£® ¡«®ª |
add ebx,[ebx+2] ;¤®¡ ¢«ï¥¬ à §¬¥à ¤®ç¥à¥£® ¡«®ª |
mov ecx,esi |
add ecx,dword[esi+2] ;¤®¡ ¢«ï¥¬ à §¬¥à த¨â¥«ì᪮£® ¡«®ª |
add ecx,[esi+2] ;¤®¡ ¢«ï¥¬ à §¬¥à த¨â¥«ì᪮£® ¡«®ª |
cmp ebx,ecx ;ãç¨âë¢ âì § £®«®¢ª¨ ¥ 㦮, â. ª. áà ¢¨¢ îâáï ⮫쪮 ¤ ë¥ ¡«®ª®¢ |
jle @f |
;¤¨ £®áâ¨à®¢ «¨ ®è¨¡ªã ä ©« , ¤®ç¥à¨© ¡«®ª ¢ë室¨â § ¯à¥¤¥«ë த¨â¥«ì᪮£® |
913,9 → 926,9 |
mov dword[level_stack],FILE_ERROR_CHUNK_SIZE |
jmp .end_f |
@@: |
mov dword[eax],esi ;㪠§ ⥫ì ç «® ¡«®ª |
mov ebx,dword[esi+2] |
mov dword[eax+4],ebx ;à §¬¥à ¡«®ª |
mov [eax],esi ;㪠§ ⥫ì ç «® ¡«®ª |
mov ebx,[esi+2] |
mov [eax+4],ebx ;à §¬¥à ¡«®ª |
add esi,6 ;¯¥à¥å®¤¨¬ ª ¤ ë¬ ¡«®ª |
inc dword[level_stack] |
add eax,8 |
972,8 → 985,10 |
;input: |
; esi - 㪠§ â¥«ì «¨§¨àã¥¬ë¥ ¤ ë¥ |
; icon - ®¬¥à ¨ª®ª¨ |
; level - ã஢¥ì ¢«®¦¥®á⨠㧫 |
; size_bl - à §¬¥à ¡«®ª |
; info_bl - áâப á ®¯¨á ¨¥¬ ¡«®ª |
align 4 |
proc add_3ds_object, icon:dword,level:dword,size_bl:dword,info_bl:dword |
pushad |
987,8 → 1002,8 |
mov ecx,dword[size_bl] |
mov dword[buffer+4],ecx ;à §¬¥à ¡«®ª (¨á¯®«ì§ã¥âáï ¢ äãªæ¨¨ buf_draw_hex_table ¤«ï à¨á®¢ ¨ï «¨¨¨) |
mov ecx,dword[bl_found] |
cmp ecx,0 |
je @f |
or ecx,ecx |
jz @f |
;... §¤¥áì 㦥 ¤à㣮© «£®à¨â¬ § é¨âë ®â 㤠«¥¨ï |
mov cl,byte[ecx+4] |
@@: |
999,8 → 1014,8 |
mov dword[buffer+list_offs_p_data],ecx |
stdcall hex_in_str, buffer+list_offs_text,dword[esi+1],2 |
stdcall hex_in_str, buffer+list_offs_text+2,dword[esi],2 ;ª®¤ 3ds ¡«®ª |
cmp ecx,0 |
jne @f |
or ecx,ecx |
jnz @f |
mov byte[buffer+list_offs_text+4],0 ;0 - ᨬ¢®« ª®æ áâப¨ |
jmp .no_capt |
@@: |
1042,7 → 1057,7 |
align 4 |
.str: |
mov ecx,0x0a |
mov ecx,10 |
cmp eax,ecx |
jb @f |
xor edx,edx |
1094,6 → 1109,7 |
dd Filter.end - Filter.1 |
.1: |
db '3DS',0 |
db 'STL',0 |
db 'PNG',0 |
.end: |
db 0 |
1117,38 → 1133,38 |
if lang eq ru |
head_f_i: |
head_f_l db '¨á⥬ ï ®è¨¡ª ',0 |
err_msg_found_lib_0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,0 |
err_msg_import_0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0 |
err_msg_found_lib_1 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,0 |
err_msg_import_1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0 |
err_msg_found_lib_2 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'box_lib.obj',39,0 |
err_msg_import_2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib',39,0 |
err_msg_found_lib_3 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,0 |
err_msg_import_3 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,0 |
err_msg_found_lib_4 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'kmenu.obj',39,0 |
err_msg_import_4 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0 |
err_msg_found_lib_5 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'tinygl.obj',39,0 |
err_msg_import_5 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,0 |
err_msg_found_lib_6 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libini.obj',39,0 |
err_msg_import_6 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,0 |
head_f_l db '"¨á⥬ ï ®è¨¡ª ',0 |
err_msg_found_lib_0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,'" -tE',0 |
err_msg_import_0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,'" -tW',0 |
err_msg_found_lib_1 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,'" -tE',0 |
err_msg_import_1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,'" -tW',0 |
err_msg_found_lib_2 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'box_lib.obj',39,'" -tE',0 |
err_msg_import_2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib',39,'" -tW',0 |
err_msg_found_lib_3 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_import_3 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,'" -tW',0 |
err_msg_found_lib_4 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'kmenu.obj',39,'" -tE',0 |
err_msg_import_4 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,'" -tW',0 |
err_msg_found_lib_5 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'tinygl.obj',39,'" -tE',0 |
err_msg_import_5 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,'" -tW',0 |
err_msg_found_lib_6 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libini.obj',39,'" -tE',0 |
err_msg_import_6 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,'" -tW',0 |
else |
head_f_i: |
head_f_l db 'System error',0 |
err_msg_found_lib_0 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,0 |
err_msg_import_0 db 'Error on load import library ',39,'proc_lib.obj',39,0 |
err_msg_found_lib_1 db 'Sorry I cannot found library ',39,'libimg.obj',39,0 |
err_msg_import_1 db 'Error on load import library ',39,'libimg.obj',39,0 |
err_msg_found_lib_2 db 'Sorry I cannot found library ',39,'box_lib.obj',39,0 |
err_msg_import_2 db 'Error on load import library ',39,'box_lib.obj',39,0 |
err_msg_found_lib_3 db 'Sorry I cannot found library ',39,'buf2d.obj',39,0 |
err_msg_import_3 db 'Error on load import library ',39,'buf2d.obj',39,0 |
err_msg_found_lib_4 db 'Sorry I cannot found library ',39,'kmenu.obj',39,0 |
err_msg_import_4 db 'Error on load import library ',39,'kmenu.obj',39,0 |
err_msg_found_lib_5 db 'Sorry I cannot found library ',39,'tinygl.obj',39,0 |
err_msg_import_5 db 'Error on load import library ',39,'tinygl',39,0 |
err_msg_found_lib_6 db 'Sorry I cannot found library ',39,'libini.obj',39,0 |
err_msg_import_6 db 'Error on load import library ',39,'libini',39,0 |
head_f_l db '"System error',0 |
err_msg_found_lib_0 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,'" -tE',0 |
err_msg_import_0 db 'Error on load import library ',39,'proc_lib.obj',39,'" -tW',0 |
err_msg_found_lib_1 db 'Sorry I cannot found library ',39,'libimg.obj',39,'" -tE',0 |
err_msg_import_1 db 'Error on load import library ',39,'libimg.obj',39,'" -tW',0 |
err_msg_found_lib_2 db 'Sorry I cannot found library ',39,'box_lib.obj',39,'" -tE',0 |
err_msg_import_2 db 'Error on load import library ',39,'box_lib.obj',39,'" -tW',0 |
err_msg_found_lib_3 db 'Sorry I cannot found library ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_import_3 db 'Error on load import library ',39,'buf2d.obj',39,'" -tW',0 |
err_msg_found_lib_4 db 'Sorry I cannot found library ',39,'kmenu.obj',39,'" -tE',0 |
err_msg_import_4 db 'Error on load import library ',39,'kmenu.obj',39,'" -tW',0 |
err_msg_found_lib_5 db 'Sorry I cannot found library ',39,'tinygl.obj',39,'" -tE',0 |
err_msg_import_5 db 'Error on load import library ',39,'tinygl',39,'" -tW',0 |
err_msg_found_lib_6 db 'Sorry I cannot found library ',39,'libini.obj',39,'" -tE',0 |
err_msg_import_6 db 'Error on load import library ',39,'libini',39,'" -tW',0 |
end if |
align 4 |
1439,9 → 1455,9 |
lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ; à ¬¥âàë ä®®¢®£® ®á¢¥é¥¨ï |
if lang eq ru |
capt db 'info 3ds [user] ¢¥àá¨ï 18.04.17',0 ;¯®¤¯¨áì ®ª |
capt db 'info 3ds [user] ¢¥àá¨ï 14.03.19',0 ;¯®¤¯¨áì ®ª |
else |
capt db 'info 3ds [user] version 18.04.17',0 ;window caption |
capt db 'info 3ds [user] version 14.03.19',0 ;window caption |
end if |
align 16 |
/programs/develop/info3ds/info_o3d.inc |
---|
638,6 → 638,8 |
;¯®¨áª ¬ â¥à¨ «®¢ £à ¥© |
shl edx,3 |
add esi,edx |
cmp esi,ecx |
jge .end_points ;¥á«¨ ¥â ¡«®ª á ¬ â¥à¨ «®¬ |
cmp word[esi],CHUNK_FACEMAT |
jne .end_points |
mov [edi+obj_3d.mat1_data],esi |
825,14 → 827,19 |
bt dword[draw_mode],bit_faces_mat |
jnc @f |
mov eax,[edi+obj_3d.mat1_data] |
or eax,eax |
jnz .b_found |
stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_mat_null,5,3,[color_select] |
jmp .mat_null ;¥á«¨ ¥â ¬ â¥à¨ « , à¨á㥬 ¢á¥ £à ¨ ®¤¨¬ 梥⮬ |
.b_found: |
cmp eax,0 |
je .end_points |
mov ebx,eax |
stdcall get_mat_color, eax |
stdcall draw_3d_faces_color, edi,ebx,eax |
stdcall found_mat_faces, ebx |
jmp .b_found |
or eax,eax |
jnz .b_found |
jmp .end_points |
@@: |
end if |
839,6 → 846,7 |
;à¨á®¢ ¨¥ £à ¥© ¡¥§ 梥⮢ ¬ â¥à¨ «®¢ |
bt dword[draw_mode],bit_faces |
jnc .end_triangles |
.mat_null: |
cmp dword[edi+obj_3d.tri_count],0 |
je .end_triangles |
cmp dword[edi+obj_3d.poi_count],0 |
935,6 → 943,8 |
@@: |
bt dword[draw_mode],bit_light |
jnc .norm0 |
or edx,edx |
jz .norm0 ;¥á«¨ ®à¬ «¥© ¥â |
stdcall [glNormal3fv], edx |
add edx,12 |
.norm0: |
977,7 → 987,7 |
je .end_select |
mov ecx,dword[obj_poi_sel_c] |
stdcall [glColor3ub],[color_select+2],[color_select+1],[color_select] |
stdcall dword[tl_node_poi_get_info], tree3,0 |
stdcall [tl_node_poi_get_info], tree3,0 |
align 4 |
@@: |
cmp eax,0 |
994,7 → 1004,7 |
dec ecx |
jz .end_select |
.next_sel: |
stdcall dword[tl_node_poi_get_next_info], tree3,ebx |
stdcall [tl_node_poi_get_next_info], tree3,ebx |
jmp @b |
.end_select: |
end if |
1170,6 → 1180,8 |
align 4 |
proc found_mat_faces uses ebx, p_mat:dword |
mov eax,[p_mat] |
or eax,eax |
jz @f |
add eax,[eax+2] |
cmp word[eax],CHUNK_FACEMAT |
je @f |