update 'info3ds', add new button
git-svn-id: svn://kolibrios.org@6889 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -8,6 +8,7 @@ version_edit equ 1
|
|||||||
include '../../macros.inc'
|
include '../../macros.inc'
|
||||||
include '../../proc32.inc'
|
include '../../proc32.inc'
|
||||||
include '../../KOSfuncs.inc'
|
include '../../KOSfuncs.inc'
|
||||||
|
include '../../develop/libraries/libs-dev/libimg/libimg.inc'
|
||||||
include '../../load_img.inc'
|
include '../../load_img.inc'
|
||||||
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
|
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
|
||||||
include '../../develop/libraries/TinyGL/asm_fork/opengl_const.inc'
|
include '../../develop/libraries/TinyGL/asm_fork/opengl_const.inc'
|
||||||
@@ -1022,7 +1023,7 @@ Filter:
|
|||||||
dd Filter.end - Filter.1
|
dd Filter.end - Filter.1
|
||||||
.1:
|
.1:
|
||||||
db '3DS',0
|
db '3DS',0
|
||||||
db 'TXT',0
|
db 'PNG',0
|
||||||
.end:
|
.end:
|
||||||
db 0
|
db 0
|
||||||
|
|
||||||
@@ -1038,7 +1039,7 @@ system_dir_3 db '/sys/lib/'
|
|||||||
lib_name_3 db 'buf2d.obj',0
|
lib_name_3 db 'buf2d.obj',0
|
||||||
system_dir_4 db '/sys/lib/'
|
system_dir_4 db '/sys/lib/'
|
||||||
lib_name_4 db 'kmenu.obj',0
|
lib_name_4 db 'kmenu.obj',0
|
||||||
system_dir_5 db '/kolibrios/lib/'
|
system_dir_5 db '/sys/lib/'
|
||||||
lib_name_5 db 'tinygl.obj',0
|
lib_name_5 db 'tinygl.obj',0
|
||||||
system_dir_6 db '/sys/lib/'
|
system_dir_6 db '/sys/lib/'
|
||||||
lib_name_6 db 'libini.obj',0
|
lib_name_6 db 'libini.obj',0
|
||||||
@@ -1336,7 +1337,8 @@ align 4
|
|||||||
buf_ogl:
|
buf_ogl:
|
||||||
dd 0 ;㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
dd 0 ;㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
dw 3d_wnd_l,3d_wnd_t ;+4 left,top
|
dw 3d_wnd_l,3d_wnd_t ;+4 left,top
|
||||||
dd 3d_wnd_w,3d_wnd_h ;+8 w,h
|
.w: dd 3d_wnd_w
|
||||||
|
.h: dd 3d_wnd_h
|
||||||
dd 0,24 ;+16 color,bit in pixel
|
dd 0,24 ;+16 color,bit in pixel
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
@@ -1371,9 +1373,9 @@ white_light dd 0.8, 0.8, 0.8, 1.0 ;
|
|||||||
lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ; <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD> 䮭<><E4AEAD><EFBFBD><EFBFBD><EFBFBD> <20>ᢥ饭<E1A2A5><E9A5AD>
|
lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ; <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD> 䮭<><E4AEAD><EFBFBD><EFBFBD><EFBFBD> <20>ᢥ饭<E1A2A5><E9A5AD>
|
||||||
|
|
||||||
if lang eq ru
|
if lang eq ru
|
||||||
capt db 'info 3ds <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 05.09.16',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
capt db 'info 3ds <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 18.04.17',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
else
|
else
|
||||||
capt db 'info 3ds version 05.09.16',0 ;window caption
|
capt db 'info 3ds version 18.04.17',0 ;window caption
|
||||||
end if
|
end if
|
||||||
|
|
||||||
align 16
|
align 16
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
use32
|
use32
|
||||||
org 0x0
|
org 0
|
||||||
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20>ᯮ<EFBFBD><E1AFAE>塞<EFBFBD><EFA5AC><EFBFBD> 䠩<><E4A0A9> <20>ᥣ<EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
|
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20>ᯮ<EFBFBD><E1AFAE>塞<EFBFBD><EFA5AC><EFBFBD> 䠩<><E4A0A9> <20>ᥣ<EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
|
||||||
dd 1, start, i_end, mem, stacktop, file_name, sys_path
|
dd 1, start, i_end, mem, stacktop, file_name, sys_path
|
||||||
|
|
||||||
@@ -8,6 +8,7 @@ version_edit equ 0
|
|||||||
include '../../macros.inc'
|
include '../../macros.inc'
|
||||||
include '../../proc32.inc'
|
include '../../proc32.inc'
|
||||||
include '../../KOSfuncs.inc'
|
include '../../KOSfuncs.inc'
|
||||||
|
include '../../develop/libraries/libs-dev/libimg/libimg.inc'
|
||||||
include '../../load_img.inc'
|
include '../../load_img.inc'
|
||||||
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
|
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
|
||||||
include '../../develop/libraries/TinyGL/asm_fork/opengl_const.inc'
|
include '../../develop/libraries/TinyGL/asm_fork/opengl_const.inc'
|
||||||
@@ -392,13 +393,13 @@ timer_funct:
|
|||||||
|
|
||||||
cmp word[eax],CHUNK_OBJBLOCK
|
cmp word[eax],CHUNK_OBJBLOCK
|
||||||
jne .end_oblo
|
jne .end_oblo
|
||||||
cmp dword[edi+offs_obj_poi_count],2
|
cmp dword[edi+obj_3d.poi_count],2
|
||||||
jl .ini_oblo
|
jl .ini_oblo
|
||||||
stdcall draw_3d,edi
|
stdcall draw_3d,edi
|
||||||
jmp .end_f
|
jmp .end_f
|
||||||
.ini_oblo:
|
.ini_oblo:
|
||||||
stdcall obj_init,edi ;<3B><><EFBFBD><EFBFBD>⪠ <20><><EFBFBD><EFBFBD>ந<EFBFBD><E0AEA8> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><>ꥪ<EFBFBD><EAA5AA>
|
stdcall obj_init,edi ;<3B><><EFBFBD><EFBFBD>⪠ <20><><EFBFBD><EFBFBD>ந<EFBFBD><E0AEA8> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><>ꥪ<EFBFBD><EAA5AA>
|
||||||
cmp dword[edi+offs_obj_poi_count],2
|
cmp dword[edi+obj_3d.poi_count],2
|
||||||
jl .end_f
|
jl .end_f
|
||||||
call mnu_reset_settings ;<3B><><EFBFBD><EFBFBD><EFBFBD> 㣫<><E3A3AB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ०<><E0A5A6><EFBFBD><EFBFBD> <20><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD>
|
call mnu_reset_settings ;<3B><><EFBFBD><EFBFBD><EFBFBD> 㣫<><E3A3AB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ०<><E0A5A6><EFBFBD><EFBFBD> <20><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD>
|
||||||
jmp .end_f
|
jmp .end_f
|
||||||
@@ -406,13 +407,13 @@ timer_funct:
|
|||||||
|
|
||||||
cmp word[eax],CHUNK_MATERIAL
|
cmp word[eax],CHUNK_MATERIAL
|
||||||
jne .end_mblo
|
jne .end_mblo
|
||||||
cmp dword[edi+offs_mat_name],0
|
cmp dword[edi+material.name],0
|
||||||
je .ini_mblo
|
je .ini_mblo
|
||||||
stdcall draw_material,edi
|
stdcall draw_material,edi
|
||||||
jmp .end_f
|
jmp .end_f
|
||||||
.ini_mblo:
|
.ini_mblo:
|
||||||
stdcall mat_init,edi,eax ;<3B><><EFBFBD><EFBFBD>⪠ <20><><EFBFBD><EFBFBD>ந<EFBFBD><E0AEA8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ਠ<EFBFBD><E0A8A0>
|
stdcall mat_init,edi,eax ;<3B><><EFBFBD><EFBFBD>⪠ <20><><EFBFBD><EFBFBD>ந<EFBFBD><E0AEA8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ਠ<EFBFBD><E0A8A0>
|
||||||
cmp dword[edi+offs_mat_name],0
|
cmp dword[edi+material.name],0
|
||||||
je .end_f
|
je .end_f
|
||||||
stdcall draw_material,edi
|
stdcall draw_material,edi
|
||||||
jmp .end_f
|
jmp .end_f
|
||||||
@@ -461,6 +462,7 @@ pushad
|
|||||||
mcall ,((3d_wnd_l+100) shl 16)+20,,0x40000009 ;ᢥ<> <20><><EFBFBD>./<2F>몫.
|
mcall ,((3d_wnd_l+100) shl 16)+20,,0x40000009 ;ᢥ<> <20><><EFBFBD>./<2F>몫.
|
||||||
mcall ,((3d_wnd_l+125) shl 16)+20,,0x4000000a ;ᣫ<><E1A3AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
mcall ,((3d_wnd_l+125) shl 16)+20,,0x4000000a ;ᣫ<><E1A3AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
mcall ,((3d_wnd_l+150) shl 16)+20,,0x4000000b ;<3B><><EFBFBD><EFBFBD><EFBFBD>
|
mcall ,((3d_wnd_l+150) shl 16)+20,,0x4000000b ;<3B><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
mcall ,((3d_wnd_l+175) shl 16)+20,,0x4000000c ;<3B><>ਭ <20><> 3d <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
mcall SF_PUT_IMAGE,[image_data_toolbar],(21 shl 16)+21,(5 shl 16)+24 ;new
|
mcall SF_PUT_IMAGE,[image_data_toolbar],(21 shl 16)+21,(5 shl 16)+24 ;new
|
||||||
add ebx,IMAGE_TOOLBAR_ICON_SIZE
|
add ebx,IMAGE_TOOLBAR_ICON_SIZE
|
||||||
@@ -479,6 +481,8 @@ pushad
|
|||||||
mcall ,,,((3d_wnd_l+75) shl 16)+24 ;<3B>࠭<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>ਠ<EFBFBD><E0A8A0><EFBFBD> <20><><EFBFBD>.
|
mcall ,,,((3d_wnd_l+75) shl 16)+24 ;<3B>࠭<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>ਠ<EFBFBD><E0A8A0><EFBFBD> <20><><EFBFBD>.
|
||||||
add ebx,IMAGE_TOOLBAR_ICON_SIZE
|
add ebx,IMAGE_TOOLBAR_ICON_SIZE
|
||||||
mcall ,,,((3d_wnd_l+125) shl 16)+24 ;ᣫ<><E1A3AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
mcall ,,,((3d_wnd_l+125) shl 16)+24 ;ᣫ<><E1A3AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
add ebx,IMAGE_TOOLBAR_ICON_SIZE
|
||||||
|
mcall ,,,((3d_wnd_l+175) shl 16)+24 ;<3B><>ਭ <20><> 3d <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
mov dword[w_scr_t1.all_redraw],1
|
mov dword[w_scr_t1.all_redraw],1
|
||||||
stdcall [tl_draw], tree1
|
stdcall [tl_draw], tree1
|
||||||
@@ -601,6 +605,11 @@ button:
|
|||||||
call mnu_reset_settings
|
call mnu_reset_settings
|
||||||
jmp still
|
jmp still
|
||||||
@@:
|
@@:
|
||||||
|
cmp ah,12
|
||||||
|
jne @f
|
||||||
|
call mnu_make_scrshot
|
||||||
|
jmp still
|
||||||
|
@@:
|
||||||
|
|
||||||
cmp ah,1
|
cmp ah,1
|
||||||
jne still
|
jne still
|
||||||
@@ -1085,7 +1094,7 @@ Filter:
|
|||||||
dd Filter.end - Filter.1
|
dd Filter.end - Filter.1
|
||||||
.1:
|
.1:
|
||||||
db '3DS',0
|
db '3DS',0
|
||||||
db 'TXT',0
|
db 'PNG',0
|
||||||
.end:
|
.end:
|
||||||
db 0
|
db 0
|
||||||
|
|
||||||
@@ -1101,7 +1110,7 @@ system_dir_3 db '/sys/lib/'
|
|||||||
lib_name_3 db 'buf2d.obj',0
|
lib_name_3 db 'buf2d.obj',0
|
||||||
system_dir_4 db '/sys/lib/'
|
system_dir_4 db '/sys/lib/'
|
||||||
lib_name_4 db 'kmenu.obj',0
|
lib_name_4 db 'kmenu.obj',0
|
||||||
system_dir_5 db '/kolibrios/lib/'
|
system_dir_5 db '/sys/lib/'
|
||||||
lib_name_5 db 'tinygl.obj',0
|
lib_name_5 db 'tinygl.obj',0
|
||||||
system_dir_6 db '/sys/lib/'
|
system_dir_6 db '/sys/lib/'
|
||||||
lib_name_6 db 'libini.obj',0
|
lib_name_6 db 'libini.obj',0
|
||||||
@@ -1393,7 +1402,8 @@ align 4
|
|||||||
buf_ogl:
|
buf_ogl:
|
||||||
dd 0 ;㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
dd 0 ;㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
dw 3d_wnd_l,3d_wnd_t ;+4 left,top
|
dw 3d_wnd_l,3d_wnd_t ;+4 left,top
|
||||||
dd 3d_wnd_w,3d_wnd_h ;+8 w,h
|
.w: dd 3d_wnd_w
|
||||||
|
.h: dd 3d_wnd_h
|
||||||
.color: dd 0xffffd0
|
.color: dd 0xffffd0
|
||||||
dd 24 ;+16 color,bit in pixel
|
dd 24 ;+16 color,bit in pixel
|
||||||
|
|
||||||
@@ -1429,9 +1439,9 @@ white_light dd 0.8, 0.8, 0.8, 1.0 ;
|
|||||||
lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ; <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD> 䮭<><E4AEAD><EFBFBD><EFBFBD><EFBFBD> <20>ᢥ饭<E1A2A5><E9A5AD>
|
lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ; <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD> 䮭<><E4AEAD><EFBFBD><EFBFBD><EFBFBD> <20>ᢥ饭<E1A2A5><E9A5AD>
|
||||||
|
|
||||||
if lang eq ru
|
if lang eq ru
|
||||||
capt db 'info 3ds [user] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 05.09.16',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
capt db 'info 3ds [user] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 18.04.17',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
else
|
else
|
||||||
capt db 'info 3ds [user] version 05.09.16',0 ;window caption
|
capt db 'info 3ds [user] version 18.04.17',0 ;window caption
|
||||||
end if
|
end if
|
||||||
|
|
||||||
align 16
|
align 16
|
||||||
|
@@ -28,28 +28,6 @@ struct obj_3d
|
|||||||
mat1_data dd ? ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1-<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>ꥪ<EFBFBD><EFBFBD>
|
mat1_data dd ? ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1-<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>ꥪ<EFBFBD><EFBFBD>
|
||||||
ends
|
ends
|
||||||
|
|
||||||
offs_obj_poi_data equ 0 ;㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設
|
|
||||||
offs_obj_poi_count equ 4 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <EFBFBD><EFBFBD><EFBFBD>設
|
|
||||||
offs_obj_tri_data equ 8 ;㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>㣮<EFBFBD>쭨<EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
offs_obj_tri_count equ 12 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <EFBFBD><EFBFBD><EFBFBD>㣮<EFBFBD>쭨<EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
offs_obj_normals_poi_data equ 16
|
|
||||||
offs_obj_normals_poi_count equ 20
|
|
||||||
offs_obj_normals_tri_data equ 24
|
|
||||||
offs_obj_normals_tri_count equ 28
|
|
||||||
offs_obj_x_max equ 32
|
|
||||||
offs_obj_x_min equ 36
|
|
||||||
offs_obj_x_centr equ 40
|
|
||||||
offs_obj_x_scale equ 44
|
|
||||||
offs_obj_y_max equ 48
|
|
||||||
offs_obj_y_min equ 52
|
|
||||||
offs_obj_y_centr equ 56
|
|
||||||
offs_obj_y_scale equ 60
|
|
||||||
offs_obj_z_max equ 64
|
|
||||||
offs_obj_z_min equ 68
|
|
||||||
offs_obj_z_centr equ 72
|
|
||||||
offs_obj_z_scale equ 76
|
|
||||||
offs_obj_mat1_data equ 80
|
|
||||||
|
|
||||||
struct material
|
struct material
|
||||||
name dd ?
|
name dd ?
|
||||||
col_ambient dd ? ;梥<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD>
|
col_ambient dd ? ;梥<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD>
|
||||||
@@ -57,11 +35,6 @@ struct material
|
|||||||
col_specular dd ?
|
col_specular dd ?
|
||||||
ends
|
ends
|
||||||
|
|
||||||
offs_mat_name equ 0
|
|
||||||
offs_mat_col_ambient equ 4
|
|
||||||
offs_mat_col_diffuse equ 8
|
|
||||||
offs_mat_col_specular equ 12
|
|
||||||
|
|
||||||
bit_vertexes equ 0
|
bit_vertexes equ 0
|
||||||
bit_faces equ 1 ;<EFBFBD>࠭<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ࠬ<EFBFBD>
|
bit_faces equ 1 ;<EFBFBD>࠭<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ࠬ<EFBFBD>
|
||||||
bit_faces_fill equ 2 ;<EFBFBD>࠭<EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
bit_faces_fill equ 2 ;<EFBFBD>࠭<EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -85,8 +58,17 @@ key_vert db 'col_vertices',0
|
|||||||
key_face db 'col_faces',0
|
key_face db 'col_faces',0
|
||||||
key_select db 'col_select',0
|
key_select db 'col_select',0
|
||||||
|
|
||||||
|
txt_err_save_img_file:
|
||||||
|
if lang eq ru
|
||||||
|
db '<27><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> 䠩<>.',0
|
||||||
|
else
|
||||||
|
db 'Can',39,'t save file.',0
|
||||||
|
end if
|
||||||
|
|
||||||
|
align 4
|
||||||
rad_c dd 150 ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
rad_c dd 150 ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
png_data dd ?
|
||||||
|
png_size dd ?
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
proc hex_in_str, buf:dword,val:dword,zif:dword
|
proc hex_in_str, buf:dword,val:dword,zif:dword
|
||||||
@@ -118,22 +100,22 @@ align 4
|
|||||||
proc obj_clear_param uses edi, o_data:dword
|
proc obj_clear_param uses edi, o_data:dword
|
||||||
mov edi,[o_data]
|
mov edi,[o_data]
|
||||||
;<EFBFBD><EFBFBD><EFBFBD>㫥<EFBFBD><EFBFBD><EFBFBD> 㪠<EFBFBD><EFBFBD>⥫<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ꥪ⮢
|
;<EFBFBD><EFBFBD><EFBFBD>㫥<EFBFBD><EFBFBD><EFBFBD> 㪠<EFBFBD><EFBFBD>⥫<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ꥪ⮢
|
||||||
mov dword[edi+offs_obj_poi_data],0
|
mov dword[edi+obj_3d.poi_data],0
|
||||||
mov dword[edi+offs_obj_poi_count],0
|
mov dword[edi+obj_3d.poi_count],0
|
||||||
mov dword[edi+offs_obj_tri_data],0
|
mov dword[edi+obj_3d.tri_data],0
|
||||||
mov dword[edi+offs_obj_tri_count],0
|
mov dword[edi+obj_3d.tri_count],0
|
||||||
mov dword[edi+offs_obj_normals_tri_count],0
|
mov dword[edi+obj_3d.normals_tri_count],0
|
||||||
mov dword[edi+offs_obj_normals_poi_count],0
|
mov dword[edi+obj_3d.normals_poi_count],0
|
||||||
mov dword[edi+offs_obj_mat1_data],0
|
mov dword[edi+obj_3d.mat1_data],0
|
||||||
cmp dword[edi+offs_obj_normals_tri_data],0
|
cmp dword[edi+obj_3d.normals_tri_data],0
|
||||||
je @f
|
je @f
|
||||||
stdcall mem.Free,[edi+offs_obj_normals_tri_data]
|
stdcall mem.Free,[edi+obj_3d.normals_tri_data]
|
||||||
mov dword[edi+offs_obj_normals_tri_data],0
|
mov dword[edi+obj_3d.normals_tri_data],0
|
||||||
@@:
|
@@:
|
||||||
cmp dword[edi+offs_obj_normals_poi_data],0
|
cmp dword[edi+obj_3d.normals_poi_data],0
|
||||||
je @f
|
je @f
|
||||||
stdcall mem.Free,[edi+offs_obj_normals_poi_data]
|
stdcall mem.Free,[edi+obj_3d.normals_poi_data]
|
||||||
mov dword[edi+offs_obj_normals_poi_data],0
|
mov dword[edi+obj_3d.normals_poi_data],0
|
||||||
@@:
|
@@:
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
@@ -167,43 +149,43 @@ endp
|
|||||||
align 4
|
align 4
|
||||||
proc obj_set_sizes uses eax ebx esi edi, o_data:dword
|
proc obj_set_sizes uses eax ebx esi edi, o_data:dword
|
||||||
mov edi,[o_data]
|
mov edi,[o_data]
|
||||||
cmp dword[edi+offs_obj_poi_count],0
|
cmp dword[edi+obj_3d.poi_count],0
|
||||||
je .end
|
je .end
|
||||||
finit
|
finit
|
||||||
mov eax,[edi+offs_obj_poi_data]
|
mov eax,[edi+obj_3d.poi_data]
|
||||||
mov ebx,dword[eax]
|
mov ebx,dword[eax]
|
||||||
mov [edi+offs_obj_x_min],ebx
|
mov [edi+obj_3d.x_min],ebx
|
||||||
mov [edi+offs_obj_x_max],ebx
|
mov [edi+obj_3d.x_max],ebx
|
||||||
mov ebx,dword[eax+4]
|
mov ebx,dword[eax+4]
|
||||||
mov [edi+offs_obj_y_min],ebx
|
mov [edi+obj_3d.y_min],ebx
|
||||||
mov [edi+offs_obj_y_max],ebx
|
mov [edi+obj_3d.y_max],ebx
|
||||||
mov ebx,dword[eax+8]
|
mov ebx,dword[eax+8]
|
||||||
mov [edi+offs_obj_z_min],ebx
|
mov [edi+obj_3d.z_min],ebx
|
||||||
mov [edi+offs_obj_z_max],ebx
|
mov [edi+obj_3d.z_max],ebx
|
||||||
|
|
||||||
mov ebx,[edi+offs_obj_poi_data]
|
mov ebx,[edi+obj_3d.poi_data]
|
||||||
mov esi,[edi+offs_obj_poi_count]
|
mov esi,[edi+obj_3d.poi_count]
|
||||||
align 4
|
align 4
|
||||||
.cycle_0: ;ࠡ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD>⮩ x
|
.cycle_0: ;ࠡ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD>⮩ x
|
||||||
fld dword[ebx]
|
fld dword[ebx]
|
||||||
fld dword[edi+offs_obj_x_min]
|
fld dword[edi+obj_3d.x_min]
|
||||||
fcomp
|
fcomp
|
||||||
fstsw ax
|
fstsw ax
|
||||||
sahf
|
sahf
|
||||||
jb @f
|
jb @f
|
||||||
mov eax,[ebx]
|
mov eax,[ebx]
|
||||||
mov [edi+offs_obj_x_min],eax
|
mov [edi+obj_3d.x_min],eax
|
||||||
ffree st0
|
ffree st0
|
||||||
fincstp
|
fincstp
|
||||||
jmp .next_x
|
jmp .next_x
|
||||||
@@:
|
@@:
|
||||||
fld dword[edi+offs_obj_x_max]
|
fld dword[edi+obj_3d.x_max]
|
||||||
fcompp
|
fcompp
|
||||||
fstsw ax
|
fstsw ax
|
||||||
sahf
|
sahf
|
||||||
ja .next_x
|
ja .next_x
|
||||||
mov eax,[ebx]
|
mov eax,[ebx]
|
||||||
mov [edi+offs_obj_x_max],eax
|
mov [edi+obj_3d.x_max],eax
|
||||||
.next_x:
|
.next_x:
|
||||||
|
|
||||||
add ebx,12
|
add ebx,12
|
||||||
@@ -211,44 +193,44 @@ align 4
|
|||||||
jnz .cycle_0
|
jnz .cycle_0
|
||||||
|
|
||||||
fld1
|
fld1
|
||||||
fld dword[edi+offs_obj_x_max]
|
fld dword[edi+obj_3d.x_max]
|
||||||
fsub dword[edi+offs_obj_x_min]
|
fsub dword[edi+obj_3d.x_min]
|
||||||
fst dword[edi+offs_obj_x_centr]
|
fst dword[edi+obj_3d.x_centr]
|
||||||
fdivp ;1/size.x
|
fdivp ;1/size.x
|
||||||
fstp dword[edi+offs_obj_x_scale]
|
fstp dword[edi+obj_3d.x_scale]
|
||||||
|
|
||||||
fld dword[edi+offs_obj_x_centr]
|
fld dword[edi+obj_3d.x_centr]
|
||||||
fld1
|
fld1
|
||||||
fld1
|
fld1
|
||||||
faddp
|
faddp
|
||||||
fdivp ;centr.x = size.x/2
|
fdivp ;centr.x = size.x/2
|
||||||
fadd dword[edi+offs_obj_x_min]
|
fadd dword[edi+obj_3d.x_min]
|
||||||
fchs
|
fchs
|
||||||
fstp dword[edi+offs_obj_x_centr]
|
fstp dword[edi+obj_3d.x_centr]
|
||||||
|
|
||||||
mov ebx,[edi+offs_obj_poi_data]
|
mov ebx,[edi+obj_3d.poi_data]
|
||||||
mov esi,[edi+offs_obj_poi_count]
|
mov esi,[edi+obj_3d.poi_count]
|
||||||
align 4
|
align 4
|
||||||
.cycle_1: ;ࠡ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD>⮩ y
|
.cycle_1: ;ࠡ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD>⮩ y
|
||||||
fld dword[ebx+4]
|
fld dword[ebx+4]
|
||||||
fld dword[edi+offs_obj_y_min]
|
fld dword[edi+obj_3d.y_min]
|
||||||
fcomp
|
fcomp
|
||||||
fstsw ax
|
fstsw ax
|
||||||
sahf
|
sahf
|
||||||
jb @f
|
jb @f
|
||||||
mov eax,[ebx+4]
|
mov eax,[ebx+4]
|
||||||
mov [edi+offs_obj_y_min],eax
|
mov [edi+obj_3d.y_min],eax
|
||||||
ffree st0
|
ffree st0
|
||||||
fincstp
|
fincstp
|
||||||
jmp .next_y
|
jmp .next_y
|
||||||
@@:
|
@@:
|
||||||
fld dword[edi+offs_obj_y_max]
|
fld dword[edi+obj_3d.y_max]
|
||||||
fcompp
|
fcompp
|
||||||
fstsw ax
|
fstsw ax
|
||||||
sahf
|
sahf
|
||||||
ja .next_y
|
ja .next_y
|
||||||
mov eax,[ebx+4]
|
mov eax,[ebx+4]
|
||||||
mov [edi+offs_obj_y_max],eax
|
mov [edi+obj_3d.y_max],eax
|
||||||
.next_y:
|
.next_y:
|
||||||
|
|
||||||
add ebx,12
|
add ebx,12
|
||||||
@@ -256,44 +238,44 @@ align 4
|
|||||||
jnz .cycle_1
|
jnz .cycle_1
|
||||||
|
|
||||||
fld1
|
fld1
|
||||||
fld dword[edi+offs_obj_y_max]
|
fld dword[edi+obj_3d.y_max]
|
||||||
fsub dword[edi+offs_obj_y_min]
|
fsub dword[edi+obj_3d.y_min]
|
||||||
fst dword[edi+offs_obj_y_centr]
|
fst dword[edi+obj_3d.y_centr]
|
||||||
fdivp ;1/size.y
|
fdivp ;1/size.y
|
||||||
fstp dword[edi+offs_obj_y_scale]
|
fstp dword[edi+obj_3d.y_scale]
|
||||||
|
|
||||||
fld dword[edi+offs_obj_y_centr]
|
fld dword[edi+obj_3d.y_centr]
|
||||||
fld1
|
fld1
|
||||||
fld1
|
fld1
|
||||||
faddp
|
faddp
|
||||||
fdivp ;centr.y = size.y/2
|
fdivp ;centr.y = size.y/2
|
||||||
fadd dword[edi+offs_obj_y_min]
|
fadd dword[edi+obj_3d.y_min]
|
||||||
fchs
|
fchs
|
||||||
fstp dword[edi+offs_obj_y_centr]
|
fstp dword[edi+obj_3d.y_centr]
|
||||||
|
|
||||||
mov ebx,[edi+offs_obj_poi_data]
|
mov ebx,[edi+obj_3d.poi_data]
|
||||||
mov esi,[edi+offs_obj_poi_count]
|
mov esi,[edi+obj_3d.poi_count]
|
||||||
align 4
|
align 4
|
||||||
.cycle_2: ;ࠡ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD>⮩ z
|
.cycle_2: ;ࠡ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD>⮩ z
|
||||||
fld dword[ebx+8]
|
fld dword[ebx+8]
|
||||||
fld dword[edi+offs_obj_z_min]
|
fld dword[edi+obj_3d.z_min]
|
||||||
fcomp
|
fcomp
|
||||||
fstsw ax
|
fstsw ax
|
||||||
sahf
|
sahf
|
||||||
jb @f
|
jb @f
|
||||||
mov eax,[ebx+8]
|
mov eax,[ebx+8]
|
||||||
mov [edi+offs_obj_z_min],eax
|
mov [edi+obj_3d.z_min],eax
|
||||||
ffree st0
|
ffree st0
|
||||||
fincstp
|
fincstp
|
||||||
jmp .next_z
|
jmp .next_z
|
||||||
@@:
|
@@:
|
||||||
fld dword[edi+offs_obj_z_max]
|
fld dword[edi+obj_3d.z_max]
|
||||||
fcompp
|
fcompp
|
||||||
fstsw ax
|
fstsw ax
|
||||||
sahf
|
sahf
|
||||||
ja .next_z
|
ja .next_z
|
||||||
mov eax,[ebx+8]
|
mov eax,[ebx+8]
|
||||||
mov [edi+offs_obj_z_max],eax
|
mov [edi+obj_3d.z_max],eax
|
||||||
.next_z:
|
.next_z:
|
||||||
|
|
||||||
add ebx,12
|
add ebx,12
|
||||||
@@ -301,48 +283,48 @@ align 4
|
|||||||
jnz .cycle_2
|
jnz .cycle_2
|
||||||
|
|
||||||
fld1
|
fld1
|
||||||
fld dword[edi+offs_obj_z_max]
|
fld dword[edi+obj_3d.z_max]
|
||||||
fsub dword[edi+offs_obj_z_min]
|
fsub dword[edi+obj_3d.z_min]
|
||||||
fst dword[edi+offs_obj_z_centr]
|
fst dword[edi+obj_3d.z_centr]
|
||||||
fdivp ;1/size.z
|
fdivp ;1/size.z
|
||||||
fstp dword[edi+offs_obj_z_scale]
|
fstp dword[edi+obj_3d.z_scale]
|
||||||
|
|
||||||
fld dword[edi+offs_obj_z_centr]
|
fld dword[edi+obj_3d.z_centr]
|
||||||
fld1
|
fld1
|
||||||
fld1
|
fld1
|
||||||
faddp
|
faddp
|
||||||
fdivp ;centr.z = size.z/2
|
fdivp ;centr.z = size.z/2
|
||||||
fadd dword[edi+offs_obj_z_min]
|
fadd dword[edi+obj_3d.z_min]
|
||||||
fchs
|
fchs
|
||||||
fstp dword[edi+offs_obj_z_centr]
|
fstp dword[edi+obj_3d.z_centr]
|
||||||
|
|
||||||
;<EFBFBD><EFBFBD>室<EFBFBD><EFBFBD> ࠤ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
;<EFBFBD><EFBFBD>室<EFBFBD><EFBFBD> ࠤ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
fld dword[edi+offs_obj_x_max]
|
fld dword[edi+obj_3d.x_max]
|
||||||
fsub dword[edi+offs_obj_x_min]
|
fsub dword[edi+obj_3d.x_min]
|
||||||
fld dword[edi+offs_obj_y_max]
|
fld dword[edi+obj_3d.y_max]
|
||||||
fsub dword[edi+offs_obj_y_min]
|
fsub dword[edi+obj_3d.y_min]
|
||||||
faddp
|
faddp
|
||||||
fild dword[rad_c]
|
fild dword[rad_c]
|
||||||
fdivp ;radius=(size.x+size.y)/rad_c
|
fdivp ;radius=(size.x+size.y)/rad_c
|
||||||
fstp dword[sph_radius]
|
fstp dword[sph_radius]
|
||||||
|
|
||||||
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡ <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> x <EFBFBD> y, <EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>蠫<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ய<EFBFBD><EFBFBD>樨 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ࠦ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡ <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> x <EFBFBD> y, <EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>蠫<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ய<EFBFBD><EFBFBD>樨 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ࠦ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
fld dword[edi+offs_obj_y_scale]
|
fld dword[edi+obj_3d.y_scale]
|
||||||
fdiv dword[ratio] ;<EFBFBD>ਢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> y <EFBFBD><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>࠭ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
fdiv dword[ratio] ;<EFBFBD>ਢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> y <EFBFBD><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>࠭ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
fcomp dword[edi+offs_obj_x_scale]
|
fcomp dword[edi+obj_3d.x_scale]
|
||||||
fstsw ax
|
fstsw ax
|
||||||
sahf
|
sahf
|
||||||
jb @f
|
jb @f
|
||||||
;ᦠ⨥ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡<EFBFBD> <EFBFBD><EFBFBD> y
|
;ᦠ⨥ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡<EFBFBD> <EFBFBD><EFBFBD> y
|
||||||
fld dword[edi+offs_obj_x_scale]
|
fld dword[edi+obj_3d.x_scale]
|
||||||
fmul dword[ratio]
|
fmul dword[ratio]
|
||||||
fstp dword[edi+offs_obj_y_scale] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡ <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> y = <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡ <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> x
|
fstp dword[edi+obj_3d.y_scale] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡ <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> y = <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡ <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> x
|
||||||
jmp .end
|
jmp .end
|
||||||
@@:
|
@@:
|
||||||
;ᦠ⨥ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡<EFBFBD> <EFBFBD><EFBFBD> x >...<
|
;ᦠ⨥ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠡<EFBFBD> <EFBFBD><EFBFBD> x >...<
|
||||||
fld dword[edi+offs_obj_x_scale]
|
fld dword[edi+obj_3d.x_scale]
|
||||||
fdiv dword[ratio]
|
fdiv dword[ratio]
|
||||||
fstp dword[edi+offs_obj_x_scale]
|
fstp dword[edi+obj_3d.x_scale]
|
||||||
.end:
|
.end:
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
@@ -358,20 +340,20 @@ locals
|
|||||||
endl
|
endl
|
||||||
pushad
|
pushad
|
||||||
mov ecx,[o_data]
|
mov ecx,[o_data]
|
||||||
cmp dword[ecx+offs_obj_poi_count],0
|
cmp dword[ecx+obj_3d.poi_count],0
|
||||||
je .end
|
je .end
|
||||||
mov eax,[ecx+offs_obj_tri_count]
|
mov eax,[ecx+obj_3d.tri_count]
|
||||||
mov [ecx+offs_obj_normals_tri_count],eax ;<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>㣮<EFBFBD>쭨<EFBFBD> 1 <EFBFBD><EFBFBD>ଠ<EFBFBD><EFBFBD>
|
mov [ecx+obj_3d.normals_tri_count],eax ;<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>㣮<EFBFBD>쭨<EFBFBD> 1 <EFBFBD><EFBFBD>ଠ<EFBFBD><EFBFBD>
|
||||||
cmp eax,0
|
cmp eax,0
|
||||||
je .end
|
je .end
|
||||||
finit
|
finit
|
||||||
imul eax,12
|
imul eax,12
|
||||||
stdcall mem.Alloc, eax
|
stdcall mem.Alloc, eax
|
||||||
mov [ecx+offs_obj_normals_tri_data],eax
|
mov [ecx+obj_3d.normals_tri_data],eax
|
||||||
|
|
||||||
mov edx,[ecx+offs_obj_tri_data]
|
mov edx,[ecx+obj_3d.tri_data]
|
||||||
mov ebx,[ecx+offs_obj_tri_count]
|
mov ebx,[ecx+obj_3d.tri_count]
|
||||||
mov ecx,[ecx+offs_obj_poi_data]
|
mov ecx,[ecx+obj_3d.poi_data]
|
||||||
align 4
|
align 4
|
||||||
@@:
|
@@:
|
||||||
mov edi,ebp
|
mov edi,ebp
|
||||||
@@ -462,24 +444,24 @@ align 4
|
|||||||
|
|
||||||
;<EFBFBD><EFBFBD>ଠ<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD><EFBFBD>
|
;<EFBFBD><EFBFBD>ଠ<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD><EFBFBD>
|
||||||
mov ebx,[o_data]
|
mov ebx,[o_data]
|
||||||
mov ecx,[ebx+offs_obj_poi_count]
|
mov ecx,[ebx+obj_3d.poi_count]
|
||||||
mov [ebx+offs_obj_normals_poi_count],ecx
|
mov [ebx+obj_3d.normals_poi_count],ecx
|
||||||
cmp ecx,0
|
cmp ecx,0
|
||||||
je .end
|
je .end
|
||||||
imul ecx,12
|
imul ecx,12
|
||||||
stdcall mem.Alloc,ecx
|
stdcall mem.Alloc,ecx
|
||||||
mov [ebx+offs_obj_normals_poi_data],eax
|
mov [ebx+obj_3d.normals_poi_data],eax
|
||||||
|
|
||||||
mov edi,eax
|
mov edi,eax
|
||||||
mov eax,0.0
|
mov eax,0.0
|
||||||
shr ecx,2
|
shr ecx,2
|
||||||
rep stosd ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>⪠ 0-<EFBFBD><EFBFBD> float
|
rep stosd ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>⪠ 0-<EFBFBD><EFBFBD> float
|
||||||
|
|
||||||
mov edx,[ebx+offs_obj_tri_count]
|
mov edx,[ebx+obj_3d.tri_count]
|
||||||
mov edi,[ebx+offs_obj_tri_data]
|
mov edi,[ebx+obj_3d.tri_data]
|
||||||
mov eax,[ebx+offs_obj_normals_tri_data]
|
mov eax,[ebx+obj_3d.normals_tri_data]
|
||||||
mov ecx,[ebx+offs_obj_poi_data]
|
mov ecx,[ebx+obj_3d.poi_data]
|
||||||
mov ebx,[ebx+offs_obj_normals_poi_data]
|
mov ebx,[ebx+obj_3d.normals_poi_data]
|
||||||
align 4
|
align 4
|
||||||
.cycle_0: ;<EFBFBD><EFBFBD> <EFBFBD>࠭<EFBFBD><EFBFBD>
|
.cycle_0: ;<EFBFBD><EFBFBD> <EFBFBD>࠭<EFBFBD><EFBFBD>
|
||||||
movzx esi,word[edi] ;1-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
movzx esi,word[edi] ;1-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
||||||
@@ -636,8 +618,8 @@ proc obj_init, o_data:dword
|
|||||||
mov esi,ebx
|
mov esi,ebx
|
||||||
movzx edx,word[ebx+6] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <EFBFBD><EFBFBD>祪
|
movzx edx,word[ebx+6] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <EFBFBD><EFBFBD>祪
|
||||||
add ebx,8
|
add ebx,8
|
||||||
mov [edi+offs_obj_poi_data],ebx
|
mov [edi+obj_3d.poi_data],ebx
|
||||||
mov [edi+offs_obj_poi_count],edx
|
mov [edi+obj_3d.poi_count],edx
|
||||||
|
|
||||||
.cycle_0: ;横<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>᪠ <EFBFBD><EFBFBD><EFBFBD>㣮<EFBFBD>쭨<EFBFBD><EFBFBD><EFBFBD>
|
.cycle_0: ;横<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>᪠ <EFBFBD><EFBFBD><EFBFBD>㣮<EFBFBD>쭨<EFBFBD><EFBFBD><EFBFBD>
|
||||||
add esi,dword[esi+2]
|
add esi,dword[esi+2]
|
||||||
@@ -649,16 +631,16 @@ proc obj_init, o_data:dword
|
|||||||
@@:
|
@@:
|
||||||
;<EFBFBD> <EFBFBD><EFBFBD>諨 <EFBFBD><EFBFBD><EFBFBD>㣮<EFBFBD>쭨<EFBFBD><EFBFBD>
|
;<EFBFBD> <EFBFBD><EFBFBD>諨 <EFBFBD><EFBFBD><EFBFBD>㣮<EFBFBD>쭨<EFBFBD><EFBFBD>
|
||||||
movzx edx,word[esi+6]
|
movzx edx,word[esi+6]
|
||||||
mov [edi+offs_obj_tri_count],edx
|
mov [edi+obj_3d.tri_count],edx
|
||||||
add esi,8 ;2+4+2 (chunk+size+count)
|
add esi,8 ;2+4+2 (chunk+size+count)
|
||||||
mov [edi+offs_obj_tri_data],esi
|
mov [edi+obj_3d.tri_data],esi
|
||||||
|
|
||||||
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>࠭<EFBFBD><EFBFBD>
|
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>࠭<EFBFBD><EFBFBD>
|
||||||
shl edx,3
|
shl edx,3
|
||||||
add esi,edx
|
add esi,edx
|
||||||
cmp word[esi],CHUNK_FACEMAT
|
cmp word[esi],CHUNK_FACEMAT
|
||||||
jne .end_points
|
jne .end_points
|
||||||
mov [edi+offs_obj_mat1_data],esi
|
mov [edi+obj_3d.mat1_data],esi
|
||||||
.end_points:
|
.end_points:
|
||||||
|
|
||||||
stdcall obj_set_sizes, edi
|
stdcall obj_set_sizes, edi
|
||||||
@@ -681,10 +663,10 @@ proc mat_init, m_data:dword, f_data:dword
|
|||||||
mov edi,[m_data]
|
mov edi,[m_data]
|
||||||
|
|
||||||
;... clear edi ...
|
;... clear edi ...
|
||||||
mov dword[edi+offs_mat_name],0
|
mov dword[edi+material.name],0
|
||||||
mov dword[edi+offs_mat_col_ambient],0
|
mov dword[edi+material.col_ambient],0
|
||||||
mov dword[edi+offs_mat_col_diffuse],0
|
mov dword[edi+material.col_diffuse],0
|
||||||
mov dword[edi+offs_mat_col_specular],0
|
mov dword[edi+material.col_specular],0
|
||||||
|
|
||||||
xor edx,edx
|
xor edx,edx
|
||||||
mov ebx,[f_data]
|
mov ebx,[f_data]
|
||||||
@@ -699,7 +681,7 @@ proc mat_init, m_data:dword, f_data:dword
|
|||||||
;*** (0) ***
|
;*** (0) ***
|
||||||
mov esi,ebx
|
mov esi,ebx
|
||||||
add ebx,6
|
add ebx,6
|
||||||
mov [edi+offs_mat_name],ebx
|
mov [edi+material.name],ebx
|
||||||
sub ebx,6
|
sub ebx,6
|
||||||
;*** (1) ***
|
;*** (1) ***
|
||||||
.cycle_0: ;横<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>᪠ 梥<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD>
|
.cycle_0: ;横<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>᪠ 梥<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD>
|
||||||
@@ -716,10 +698,10 @@ proc mat_init, m_data:dword, f_data:dword
|
|||||||
jne .end_material
|
jne .end_material
|
||||||
add esi,6
|
add esi,6
|
||||||
mov dl,byte[esi]
|
mov dl,byte[esi]
|
||||||
mov [edi+offs_mat_col_ambient+2],dl
|
mov byte[edi+material.col_ambient+2],dl
|
||||||
mov dx,word[esi+1]
|
mov dx,word[esi+1]
|
||||||
ror dx,8
|
ror dx,8
|
||||||
mov [edi+offs_mat_col_ambient],dx
|
mov word[edi+material.col_ambient],dx
|
||||||
;*** (2) ***
|
;*** (2) ***
|
||||||
mov esi,ebx
|
mov esi,ebx
|
||||||
.cycle_1: ;横<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>᪠ 梥<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD>
|
.cycle_1: ;横<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>᪠ 梥<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD>
|
||||||
@@ -736,10 +718,10 @@ proc mat_init, m_data:dword, f_data:dword
|
|||||||
jne .end_material
|
jne .end_material
|
||||||
add esi,6
|
add esi,6
|
||||||
mov dl,byte[esi]
|
mov dl,byte[esi]
|
||||||
mov [edi+offs_mat_col_diffuse+2],dl
|
mov byte[edi+material.col_diffuse+2],dl
|
||||||
mov dx,word[esi+1]
|
mov dx,word[esi+1]
|
||||||
ror dx,8
|
ror dx,8
|
||||||
mov [edi+offs_mat_col_diffuse],dx
|
mov word[edi+material.col_diffuse],dx
|
||||||
;*** (3) ***
|
;*** (3) ***
|
||||||
mov esi,ebx
|
mov esi,ebx
|
||||||
.cycle_2: ;横<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>᪠ 梥<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD>
|
.cycle_2: ;横<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>᪠ 梥<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD>
|
||||||
@@ -756,10 +738,10 @@ proc mat_init, m_data:dword, f_data:dword
|
|||||||
jne .end_material
|
jne .end_material
|
||||||
add esi,6
|
add esi,6
|
||||||
mov dl,byte[esi]
|
mov dl,byte[esi]
|
||||||
mov [edi+offs_mat_col_specular+2],dl
|
mov byte[edi+material.col_specular+2],dl
|
||||||
mov dx,word[esi+1]
|
mov dx,word[esi+1]
|
||||||
ror dx,8
|
ror dx,8
|
||||||
mov [edi+offs_mat_col_specular],dx
|
mov word[edi+material.col_specular],dx
|
||||||
|
|
||||||
.end_material:
|
.end_material:
|
||||||
.no_material:
|
.no_material:
|
||||||
@@ -787,10 +769,10 @@ proc draw_material uses edi, m_data:dword
|
|||||||
stdcall buf_draw_beg, buf_ogl
|
stdcall buf_draw_beg, buf_ogl
|
||||||
stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_afff,5,35,0xff
|
stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_afff,5,35,0xff
|
||||||
|
|
||||||
stdcall [buf2d_draw_text], buf_ogl,buf_1,[edi+offs_mat_name],15,45,0 ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD>
|
stdcall [buf2d_draw_text], buf_ogl,buf_1,[edi+material.name],15,45,0 ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD>
|
||||||
stdcall draw_color, [edi+offs_mat_col_ambient], txt_a010,2,55 ;<EFBFBD><EFBFBD><EFBFBD>㦠<EFBFBD>騩 梥<EFBFBD>
|
stdcall draw_color, [edi+material.col_ambient], txt_a010,2,55 ;<EFBFBD><EFBFBD><EFBFBD>㦠<EFBFBD>騩 梥<EFBFBD>
|
||||||
stdcall draw_color, [edi+offs_mat_col_diffuse], txt_a020,2,75 ;<EFBFBD><EFBFBD><EFBFBD>㧭<EFBFBD><EFBFBD> 梥<EFBFBD>
|
stdcall draw_color, [edi+material.col_diffuse], txt_a020,2,75 ;<EFBFBD><EFBFBD><EFBFBD>㧭<EFBFBD><EFBFBD> 梥<EFBFBD>
|
||||||
stdcall draw_color, [edi+offs_mat_col_specular],txt_a030,2,95 ;<EFBFBD><EFBFBD>ઠ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 梥<EFBFBD>
|
stdcall draw_color, [edi+material.col_specular],txt_a030,2,95 ;<EFBFBD><EFBFBD>ઠ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 梥<EFBFBD>
|
||||||
|
|
||||||
stdcall [buf2d_draw], buf_ogl
|
stdcall [buf2d_draw], buf_ogl
|
||||||
ret
|
ret
|
||||||
@@ -819,7 +801,7 @@ endp
|
|||||||
align 4
|
align 4
|
||||||
proc draw_3d uses eax ebx ecx edi, o_data:dword
|
proc draw_3d uses eax ebx ecx edi, o_data:dword
|
||||||
mov edi,[o_data]
|
mov edi,[o_data]
|
||||||
cmp dword[edi+offs_obj_poi_count],2
|
cmp dword[edi+obj_3d.poi_count],2
|
||||||
jl .end_f
|
jl .end_f
|
||||||
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨬ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 梥<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>㡨<EFBFBD><EFBFBD>
|
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨬ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 梥<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>㡨<EFBFBD><EFBFBD>
|
||||||
stdcall [glPushMatrix]
|
stdcall [glPushMatrix]
|
||||||
@@ -831,18 +813,18 @@ proc draw_3d uses eax ebx ecx edi, o_data:dword
|
|||||||
stdcall [glDisable],GL_LIGHTING
|
stdcall [glDisable],GL_LIGHTING
|
||||||
.end_l:
|
.end_l:
|
||||||
stdcall [glTranslatef], 0.0,0.0,0.5 ;correct for z
|
stdcall [glTranslatef], 0.0,0.0,0.5 ;correct for z
|
||||||
stdcall [glScalef], [edi+offs_obj_x_scale],[edi+offs_obj_y_scale],[edi+offs_obj_z_scale]
|
stdcall [glScalef], [edi+obj_3d.x_scale],[edi+obj_3d.y_scale],[edi+obj_3d.z_scale]
|
||||||
stdcall [glScalef], 1.0,1.0,0.7 ;correct for z
|
stdcall [glScalef], 1.0,1.0,0.7 ;correct for z
|
||||||
stdcall [glRotatef], [angle_z],0.0,0.0,1.0
|
stdcall [glRotatef], [angle_z],0.0,0.0,1.0
|
||||||
stdcall [glRotatef], [angle_y],0.0,1.0,0.0
|
stdcall [glRotatef], [angle_y],0.0,1.0,0.0
|
||||||
stdcall [glRotatef], [angle_x],1.0,0.0,0.0
|
stdcall [glRotatef], [angle_x],1.0,0.0,0.0
|
||||||
stdcall [glTranslatef], [edi+offs_obj_x_centr],[edi+offs_obj_y_centr],[edi+offs_obj_z_centr]
|
stdcall [glTranslatef], [edi+obj_3d.x_centr],[edi+obj_3d.y_centr],[edi+obj_3d.z_centr]
|
||||||
|
|
||||||
if version_edit eq 0
|
if version_edit eq 0
|
||||||
;<EFBFBD><EFBFBD>ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>࠭<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD>ᯮ<EFBFBD>짮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 梥⮢ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD><EFBFBD>
|
;<EFBFBD><EFBFBD>ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>࠭<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD>ᯮ<EFBFBD>짮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 梥⮢ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD><EFBFBD>
|
||||||
bt dword[draw_mode],bit_faces_mat
|
bt dword[draw_mode],bit_faces_mat
|
||||||
jnc @f
|
jnc @f
|
||||||
mov eax,[edi+offs_obj_mat1_data]
|
mov eax,[edi+obj_3d.mat1_data]
|
||||||
.b_found:
|
.b_found:
|
||||||
cmp eax,0
|
cmp eax,0
|
||||||
je .end_points
|
je .end_points
|
||||||
@@ -857,9 +839,9 @@ end if
|
|||||||
;<EFBFBD><EFBFBD>ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>࠭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> 梥⮢ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD><EFBFBD>
|
;<EFBFBD><EFBFBD>ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>࠭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> 梥⮢ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD><EFBFBD>
|
||||||
bt dword[draw_mode],bit_faces
|
bt dword[draw_mode],bit_faces
|
||||||
jnc .end_triangles
|
jnc .end_triangles
|
||||||
cmp dword[edi+offs_obj_tri_count],0
|
cmp dword[edi+obj_3d.tri_count],0
|
||||||
je .end_triangles
|
je .end_triangles
|
||||||
cmp dword[edi+offs_obj_poi_count],0
|
cmp dword[edi+obj_3d.poi_count],0
|
||||||
je .end_triangles
|
je .end_triangles
|
||||||
bt dword[draw_mode],bit_faces_fill
|
bt dword[draw_mode],bit_faces_fill
|
||||||
jc @f
|
jc @f
|
||||||
@@ -877,31 +859,31 @@ end if
|
|||||||
jnc .triangles_flat
|
jnc .triangles_flat
|
||||||
;triangles smooth
|
;triangles smooth
|
||||||
stdcall [glBegin],GL_TRIANGLES
|
stdcall [glBegin],GL_TRIANGLES
|
||||||
mov eax,[edi+offs_obj_tri_data]
|
mov eax,[edi+obj_3d.tri_data]
|
||||||
mov ecx,[edi+offs_obj_tri_count]
|
mov ecx,[edi+obj_3d.tri_count]
|
||||||
mov edx,[edi+offs_obj_normals_tri_data]
|
mov edx,[edi+obj_3d.normals_tri_data]
|
||||||
align 4
|
align 4
|
||||||
@@:
|
@@:
|
||||||
movzx ebx,word[eax] ;1-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
movzx ebx,word[eax] ;1-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
||||||
imul ebx,12
|
imul ebx,12
|
||||||
add ebx,[edi+offs_obj_normals_poi_data]
|
add ebx,[edi+obj_3d.normals_poi_data]
|
||||||
stdcall [glNormal3fv], ebx
|
stdcall [glNormal3fv], ebx
|
||||||
sub ebx,[edi+offs_obj_normals_poi_data]
|
sub ebx,[edi+obj_3d.normals_poi_data]
|
||||||
add ebx,[edi+offs_obj_poi_data]
|
add ebx,[edi+obj_3d.poi_data]
|
||||||
stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8]
|
stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8]
|
||||||
movzx ebx,word[eax+2] ;2-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
movzx ebx,word[eax+2] ;2-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
||||||
imul ebx,12
|
imul ebx,12
|
||||||
add ebx,[edi+offs_obj_normals_poi_data]
|
add ebx,[edi+obj_3d.normals_poi_data]
|
||||||
stdcall [glNormal3fv], ebx
|
stdcall [glNormal3fv], ebx
|
||||||
sub ebx,[edi+offs_obj_normals_poi_data]
|
sub ebx,[edi+obj_3d.normals_poi_data]
|
||||||
add ebx,[edi+offs_obj_poi_data]
|
add ebx,[edi+obj_3d.poi_data]
|
||||||
stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8]
|
stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8]
|
||||||
movzx ebx,word[eax+4] ;3-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
movzx ebx,word[eax+4] ;3-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
||||||
imul ebx,12
|
imul ebx,12
|
||||||
add ebx,[edi+offs_obj_normals_poi_data]
|
add ebx,[edi+obj_3d.normals_poi_data]
|
||||||
stdcall [glNormal3fv], ebx
|
stdcall [glNormal3fv], ebx
|
||||||
sub ebx,[edi+offs_obj_normals_poi_data]
|
sub ebx,[edi+obj_3d.normals_poi_data]
|
||||||
add ebx,[edi+offs_obj_poi_data]
|
add ebx,[edi+obj_3d.poi_data]
|
||||||
stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8]
|
stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8]
|
||||||
add eax,8 ;ࠧ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>㣮<EFBFBD>쭨<EFBFBD><EFBFBD> = (3 <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD> (<EFBFBD><EFBFBD> 2<EFBFBD>) + <EFBFBD><EFBFBD>⢠ (2<EFBFBD>))
|
add eax,8 ;ࠧ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>㣮<EFBFBD>쭨<EFBFBD><EFBFBD> = (3 <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD> (<EFBFBD><EFBFBD> 2<EFBFBD>) + <EFBFBD><EFBFBD>⢠ (2<EFBFBD>))
|
||||||
dec ecx
|
dec ecx
|
||||||
@@ -911,9 +893,9 @@ align 4
|
|||||||
|
|
||||||
.triangles_flat:
|
.triangles_flat:
|
||||||
stdcall [glBegin],GL_TRIANGLES
|
stdcall [glBegin],GL_TRIANGLES
|
||||||
mov eax,[edi+offs_obj_tri_data]
|
mov eax,[edi+obj_3d.tri_data]
|
||||||
mov ecx,[edi+offs_obj_tri_count]
|
mov ecx,[edi+obj_3d.tri_count]
|
||||||
mov edx,[edi+offs_obj_normals_tri_data]
|
mov edx,[edi+obj_3d.normals_tri_data]
|
||||||
align 4
|
align 4
|
||||||
@@:
|
@@:
|
||||||
;
|
;
|
||||||
@@ -924,15 +906,15 @@ align 4
|
|||||||
.norm1:
|
.norm1:
|
||||||
movzx ebx,word[eax] ;1-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
movzx ebx,word[eax] ;1-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
||||||
imul ebx,12
|
imul ebx,12
|
||||||
add ebx,[edi+offs_obj_poi_data]
|
add ebx,[edi+obj_3d.poi_data]
|
||||||
stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8]
|
stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8]
|
||||||
movzx ebx,word[eax+2] ;2-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
movzx ebx,word[eax+2] ;2-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
||||||
imul ebx,12
|
imul ebx,12
|
||||||
add ebx,[edi+offs_obj_poi_data]
|
add ebx,[edi+obj_3d.poi_data]
|
||||||
stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8]
|
stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8]
|
||||||
movzx ebx,word[eax+4] ;3-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
movzx ebx,word[eax+4] ;3-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
||||||
imul ebx,12
|
imul ebx,12
|
||||||
add ebx,[edi+offs_obj_poi_data]
|
add ebx,[edi+obj_3d.poi_data]
|
||||||
stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8]
|
stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8]
|
||||||
add eax,8 ;ࠧ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>㣮<EFBFBD>쭨<EFBFBD><EFBFBD> = (3 <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD> (<EFBFBD><EFBFBD> 2<EFBFBD>) + <EFBFBD><EFBFBD>⢠ (2<EFBFBD>))
|
add eax,8 ;ࠧ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>㣮<EFBFBD>쭨<EFBFBD><EFBFBD> = (3 <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD> (<EFBFBD><EFBFBD> 2<EFBFBD>) + <EFBFBD><EFBFBD>⢠ (2<EFBFBD>))
|
||||||
dec ecx
|
dec ecx
|
||||||
@@ -946,9 +928,9 @@ align 4
|
|||||||
jnc .end_points
|
jnc .end_points
|
||||||
stdcall [glColor3ub],[color_vert+2],[color_vert+1],[color_vert]
|
stdcall [glColor3ub],[color_vert+2],[color_vert+1],[color_vert]
|
||||||
stdcall [glBegin],GL_POINTS
|
stdcall [glBegin],GL_POINTS
|
||||||
mov eax,[edi+offs_obj_poi_data]
|
mov eax,[edi+obj_3d.poi_data]
|
||||||
mov ebx,[edi+offs_obj_poi_count]
|
mov ebx,[edi+obj_3d.poi_count]
|
||||||
mov edx,[edi+offs_obj_normals_poi_data]
|
mov edx,[edi+obj_3d.normals_poi_data]
|
||||||
align 4
|
align 4
|
||||||
@@:
|
@@:
|
||||||
bt dword[draw_mode],bit_light
|
bt dword[draw_mode],bit_light
|
||||||
@@ -973,14 +955,14 @@ if version_edit eq 1
|
|||||||
|
|
||||||
stdcall [glBegin],GL_LINES
|
stdcall [glBegin],GL_LINES
|
||||||
stdcall [glColor3ub], [color_ox+2],[color_ox+1],[color_ox]
|
stdcall [glColor3ub], [color_ox+2],[color_ox+1],[color_ox]
|
||||||
stdcall [glVertex3f], [edi+offs_obj_x_min],[eax+4],[eax+8]
|
stdcall [glVertex3f], [edi+obj_3d.x_min],[eax+4],[eax+8]
|
||||||
stdcall [glVertex3f], [edi+offs_obj_x_max],[eax+4],[eax+8]
|
stdcall [glVertex3f], [edi+obj_3d.x_max],[eax+4],[eax+8]
|
||||||
stdcall [glColor3ub], [color_oy+2],[color_oy+1],[color_oy]
|
stdcall [glColor3ub], [color_oy+2],[color_oy+1],[color_oy]
|
||||||
stdcall [glVertex3f], [eax],[edi+offs_obj_y_min],[eax+8]
|
stdcall [glVertex3f], [eax],[edi+obj_3d.y_min],[eax+8]
|
||||||
stdcall [glVertex3f], [eax],[edi+offs_obj_y_max],[eax+8]
|
stdcall [glVertex3f], [eax],[edi+obj_3d.y_max],[eax+8]
|
||||||
stdcall [glColor3ub], [color_oz+2],[color_oz+1],[color_oz]
|
stdcall [glColor3ub], [color_oz+2],[color_oz+1],[color_oz]
|
||||||
stdcall [glVertex3f], [eax],[eax+4],[edi+offs_obj_z_min]
|
stdcall [glVertex3f], [eax],[eax+4],[edi+obj_3d.z_min]
|
||||||
stdcall [glVertex3f], [eax],[eax+4],[edi+offs_obj_z_max]
|
stdcall [glVertex3f], [eax],[eax+4],[edi+obj_3d.z_max]
|
||||||
stdcall [glEnd]
|
stdcall [glEnd]
|
||||||
|
|
||||||
stdcall [glColor3ub],[color_select+2],[color_select+1],[color_select]
|
stdcall [glColor3ub],[color_select+2],[color_select+1],[color_select]
|
||||||
@@ -1093,6 +1075,64 @@ mnu_reset_settings:
|
|||||||
call update_obj
|
call update_obj
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
align 4
|
||||||
|
mnu_make_scrshot:
|
||||||
|
pushad
|
||||||
|
copy_path open_dialog_name,communication_area_default_path,file_name,0
|
||||||
|
mov [OpenDialog_data.type],1
|
||||||
|
stdcall [OpenDialog_Start],OpenDialog_data
|
||||||
|
cmp [OpenDialog_data.status],2
|
||||||
|
je .end_save_file
|
||||||
|
;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> 㤠筮<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨨ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
mov dword[png_data],0
|
||||||
|
|
||||||
|
;create image struct
|
||||||
|
stdcall [img_create], [buf_ogl.w], [buf_ogl.h], Image.bpp24
|
||||||
|
mov ebx,eax
|
||||||
|
test eax,eax
|
||||||
|
jz @f
|
||||||
|
;copy foto to image buffer
|
||||||
|
mov edi,[eax+Image.Data]
|
||||||
|
mov esi,[buf_ogl]
|
||||||
|
mov ecx,[buf_ogl.w]
|
||||||
|
mov edx,[buf_ogl.h]
|
||||||
|
imul ecx,edx
|
||||||
|
imul ecx,3
|
||||||
|
shr ecx,2 ;OpenGL buffer align to 4
|
||||||
|
rep movsd
|
||||||
|
|
||||||
|
;encode image
|
||||||
|
stdcall [img_encode], eax, LIBIMG_FORMAT_PNG, 0
|
||||||
|
test eax,eax
|
||||||
|
jz @f
|
||||||
|
mov [png_data],eax
|
||||||
|
mov [png_size],ecx
|
||||||
|
@@:
|
||||||
|
stdcall [img_destroy],ebx
|
||||||
|
|
||||||
|
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<EFBFBD><EFBFBD>
|
||||||
|
mov ebx,run_file_70
|
||||||
|
mov dword[ebx],SSF_CREATE_FILE
|
||||||
|
mov eax,[png_size]
|
||||||
|
mov [ebx+12],eax ;file size
|
||||||
|
mov eax,[png_data]
|
||||||
|
mov [ebx+16],eax
|
||||||
|
mov dword[ebx+FileInfoBlock.FileName], openfile_path
|
||||||
|
|
||||||
|
mcall SF_FILE,run_file_70
|
||||||
|
test eax,eax
|
||||||
|
jnz .save_error
|
||||||
|
;notify_window_run openfile_path
|
||||||
|
jmp @f
|
||||||
|
.save_error:
|
||||||
|
;ᮮ<EFBFBD>饭<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>㤠筮<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
notify_window_run txt_err_save_img_file
|
||||||
|
@@:
|
||||||
|
mcall SF_SYS_MISC, SSF_MEM_FREE, [png_data]
|
||||||
|
.end_save_file:
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
|
||||||
if version_edit eq 1
|
if version_edit eq 1
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
@@ -1151,12 +1191,12 @@ proc get_mat_color uses ebx ecx edx edi esi, p_mat:dword
|
|||||||
cmp word[ebx],CHUNK_MATERIAL
|
cmp word[ebx],CHUNK_MATERIAL
|
||||||
jne .end_add_p3
|
jne .end_add_p3
|
||||||
add eax,list_offs_obj3d
|
add eax,list_offs_obj3d
|
||||||
mov esi,[eax+offs_mat_name]
|
mov esi,[eax+material.name]
|
||||||
cmp esi,0
|
cmp esi,0
|
||||||
jne @f
|
jne @f
|
||||||
;init material
|
;init material
|
||||||
stdcall mat_init,eax,ebx
|
stdcall mat_init,eax,ebx
|
||||||
mov esi,[eax+offs_mat_name]
|
mov esi,[eax+material.name]
|
||||||
@@:
|
@@:
|
||||||
mov edi,[p_mat]
|
mov edi,[p_mat]
|
||||||
mov eax,5
|
mov eax,5
|
||||||
@@ -1181,7 +1221,7 @@ align 4
|
|||||||
.found:
|
.found:
|
||||||
stdcall [tl_node_poi_get_data], tree1,ecx
|
stdcall [tl_node_poi_get_data], tree1,ecx
|
||||||
add eax,list_offs_obj3d
|
add eax,list_offs_obj3d
|
||||||
mov eax,[eax+offs_mat_col_diffuse]
|
mov eax,[eax+material.col_diffuse]
|
||||||
.end_f:
|
.end_f:
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
@@ -1200,7 +1240,7 @@ pushad
|
|||||||
cmp al,0
|
cmp al,0
|
||||||
jne @b
|
jne @b
|
||||||
movzx ecx,word[esi] ;ecx - <EFBFBD><EFBFBD> <EFBFBD>࠭<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD><EFBFBD>
|
movzx ecx,word[esi] ;ecx - <EFBFBD><EFBFBD> <EFBFBD>࠭<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਠ<EFBFBD><EFBFBD><EFBFBD>
|
||||||
mov edx,[edi+offs_obj_poi_data]
|
mov edx,[edi+obj_3d.poi_data]
|
||||||
|
|
||||||
bt dword[draw_mode],bit_smooth
|
bt dword[draw_mode],bit_smooth
|
||||||
jnc @f
|
jnc @f
|
||||||
@@ -1213,29 +1253,29 @@ align 4
|
|||||||
movzx ebx,word[esi]
|
movzx ebx,word[esi]
|
||||||
|
|
||||||
shl ebx,3
|
shl ebx,3
|
||||||
add ebx,[edi+offs_obj_tri_data]
|
add ebx,[edi+obj_3d.tri_data]
|
||||||
|
|
||||||
movzx eax,word[ebx] ;1-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
movzx eax,word[ebx] ;1-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
||||||
imul eax,12 ;float(x,y,z)
|
imul eax,12 ;float(x,y,z)
|
||||||
add eax,[edi+offs_obj_normals_poi_data]
|
add eax,[edi+obj_3d.normals_poi_data]
|
||||||
stdcall [glNormal3fv], eax
|
stdcall [glNormal3fv], eax
|
||||||
sub eax,[edi+offs_obj_normals_poi_data]
|
sub eax,[edi+obj_3d.normals_poi_data]
|
||||||
add eax,edx
|
add eax,edx
|
||||||
stdcall [glVertex3f], [eax],[eax+4],[eax+8]
|
stdcall [glVertex3f], [eax],[eax+4],[eax+8]
|
||||||
|
|
||||||
movzx eax,word[ebx+2] ;2-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
movzx eax,word[ebx+2] ;2-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
||||||
imul eax,12 ;float(x,y,z)
|
imul eax,12 ;float(x,y,z)
|
||||||
add eax,[edi+offs_obj_normals_poi_data]
|
add eax,[edi+obj_3d.normals_poi_data]
|
||||||
stdcall [glNormal3fv], eax
|
stdcall [glNormal3fv], eax
|
||||||
sub eax,[edi+offs_obj_normals_poi_data]
|
sub eax,[edi+obj_3d.normals_poi_data]
|
||||||
add eax,edx
|
add eax,edx
|
||||||
stdcall [glVertex3f], [eax],[eax+4],[eax+8]
|
stdcall [glVertex3f], [eax],[eax+4],[eax+8]
|
||||||
|
|
||||||
movzx eax,word[ebx+4] ;3-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
movzx eax,word[ebx+4] ;3-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
||||||
imul eax,12 ;float(x,y,z)
|
imul eax,12 ;float(x,y,z)
|
||||||
add eax,[edi+offs_obj_normals_poi_data]
|
add eax,[edi+obj_3d.normals_poi_data]
|
||||||
stdcall [glNormal3fv], eax
|
stdcall [glNormal3fv], eax
|
||||||
sub eax,[edi+offs_obj_normals_poi_data]
|
sub eax,[edi+obj_3d.normals_poi_data]
|
||||||
add eax,edx
|
add eax,edx
|
||||||
stdcall [glVertex3f], [eax],[eax+4],[eax+8]
|
stdcall [glVertex3f], [eax],[eax+4],[eax+8]
|
||||||
|
|
||||||
@@ -1254,12 +1294,12 @@ align 4
|
|||||||
jnc .norm
|
jnc .norm
|
||||||
mov eax,ebx
|
mov eax,ebx
|
||||||
imul eax,12
|
imul eax,12
|
||||||
add eax,[edi+offs_obj_normals_tri_data]
|
add eax,[edi+obj_3d.normals_tri_data]
|
||||||
stdcall [glNormal3fv], eax
|
stdcall [glNormal3fv], eax
|
||||||
.norm:
|
.norm:
|
||||||
|
|
||||||
shl ebx,3
|
shl ebx,3
|
||||||
add ebx,[edi+offs_obj_tri_data]
|
add ebx,[edi+obj_3d.tri_data]
|
||||||
|
|
||||||
movzx eax,word[ebx] ;1-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
movzx eax,word[ebx] ;1-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD>
|
||||||
imul eax,12 ;float(x,y,z)
|
imul eax,12 ;float(x,y,z)
|
||||||
|
@@ -85,14 +85,14 @@ pushad
|
|||||||
;jmp .set_points
|
;jmp .set_points
|
||||||
@@:
|
@@:
|
||||||
.set_points:
|
.set_points:
|
||||||
mov [edi+offs_obj_poi_data],ebx
|
mov [edi+obj_3d.poi_data],ebx
|
||||||
mov [edi+offs_obj_poi_count],edx
|
mov [edi+obj_3d.poi_count],edx
|
||||||
.no_points:
|
.no_points:
|
||||||
|
|
||||||
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ன<EFBFBD><EFBFBD> ᯨ᪠ <EFBFBD><EFBFBD>ꥪ⮢
|
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ன<EFBFBD><EFBFBD> ᯨ᪠ <EFBFBD><EFBFBD>ꥪ⮢
|
||||||
mov ebx,[edi+offs_obj_poi_data]
|
mov ebx,[edi+obj_3d.poi_data]
|
||||||
mov dword[tree3.info_max_count],2
|
mov dword[tree3.info_max_count],2
|
||||||
mov edx,[edi+offs_obj_poi_count]
|
mov edx,[edi+obj_3d.poi_count]
|
||||||
add dword[tree3.info_max_count],edx ;<EFBFBD>⠢<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 㧫<EFBFBD><EFBFBD>, ࠢ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>祪 (+2 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>砫<EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᯨ᪠)
|
add dword[tree3.info_max_count],edx ;<EFBFBD>⠢<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 㧫<EFBFBD><EFBFBD>, ࠢ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>祪 (+2 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>砫<EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᯨ᪠)
|
||||||
stdcall dword[tl_data_init], tree3
|
stdcall dword[tl_data_init], tree3
|
||||||
mov eax,dword[icon_tl_sys]
|
mov eax,dword[icon_tl_sys]
|
||||||
@@ -523,10 +523,10 @@ prop_button:
|
|||||||
mov dword[tree3.data_img_sys],0 ;<EFBFBD>. <EFBFBD>. <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ᯮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>㣨<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
mov dword[tree3.data_img_sys],0 ;<EFBFBD>. <EFBFBD>. <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ᯮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>㣨<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
stdcall dword[tl_data_clear], tree3
|
stdcall dword[tl_data_clear], tree3
|
||||||
mov edi,o3d
|
mov edi,o3d
|
||||||
stdcall mem.Free,[edi+offs_obj_normals_tri_data]
|
stdcall mem.Free,[edi+obj_3d.normals_tri_data]
|
||||||
stdcall mem.Free,[edi+offs_obj_normals_poi_data]
|
stdcall mem.Free,[edi+obj_3d.normals_poi_data]
|
||||||
mov dword[edi+offs_obj_normals_tri_data],0
|
mov dword[edi+obj_3d.normals_tri_data],0
|
||||||
mov dword[edi+offs_obj_normals_poi_data],0
|
mov dword[edi+obj_3d.normals_poi_data],0
|
||||||
mov byte[prop_wnd_run],0 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>稪 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
mov byte[prop_wnd_run],0 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>稪 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
mcall SF_TERMINATE_PROCESS ;<EFBFBD><EFBFBD>室 <EFBFBD><EFBFBD> <EFBFBD>ணࠬ<EFBFBD><EFBFBD>
|
mcall SF_TERMINATE_PROCESS ;<EFBFBD><EFBFBD>室 <EFBFBD><EFBFBD> <EFBFBD>ணࠬ<EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.8 KiB |
@@ -1289,10 +1289,9 @@ endp
|
|||||||
|
|
||||||
;int (deflate_state* s)
|
;int (deflate_state* s)
|
||||||
align 16
|
align 16
|
||||||
proc build_bl_tree uses ecx edi, s:dword
|
proc build_bl_tree uses ebx ecx edi, s:dword
|
||||||
locals
|
;ebx - max_blindex ;index of last bit length code of non zero freq
|
||||||
max_blindex dd ? ;int ;index of last bit length code of non zero freq
|
|
||||||
endl
|
|
||||||
mov edi,[s]
|
mov edi,[s]
|
||||||
; Determine the bit length frequencies for literal and distance trees
|
; Determine the bit length frequencies for literal and distance trees
|
||||||
mov eax,edi
|
mov eax,edi
|
||||||
@@ -1311,30 +1310,28 @@ endl
|
|||||||
; requires that at least 4 bit length codes be sent. (appnote.txt says
|
; requires that at least 4 bit length codes be sent. (appnote.txt says
|
||||||
; 3 but the actual value used is 4.)
|
; 3 but the actual value used is 4.)
|
||||||
|
|
||||||
mov dword[max_blindex],BL_CODES-1
|
mov ebx,BL_CODES-1
|
||||||
jmp @f
|
jmp @f
|
||||||
align 4
|
align 4
|
||||||
.cycle0: ;for (..;..>=..;..)
|
.cycle0: ;for (..;..>=..;..)
|
||||||
dec dword[max_blindex]
|
dec ebx
|
||||||
@@:
|
@@:
|
||||||
cmp dword[max_blindex],3
|
cmp ebx,3
|
||||||
jl .cycle0end
|
jl .cycle0end
|
||||||
mov ecx,[max_blindex]
|
movzx ecx,byte[ebx+bl_order]
|
||||||
movzx eax,byte[ecx+bl_order]
|
movzx ecx,word[edi+sizeof.ct_data*ecx+deflate_state.bl_tree+Len]
|
||||||
movzx ecx,word[edi+sizeof.ct_data*eax+deflate_state.bl_tree+Len]
|
|
||||||
jecxz .cycle0
|
jecxz .cycle0
|
||||||
jmp .cycle0end
|
|
||||||
align 4
|
align 4
|
||||||
.cycle0end:
|
.cycle0end:
|
||||||
; Update opt_len to include the bit length tree and counts
|
; Update opt_len to include the bit length tree and counts
|
||||||
mov eax,[max_blindex]
|
mov eax,ebx
|
||||||
inc eax
|
inc eax
|
||||||
imul eax,3
|
imul eax,3
|
||||||
add eax,5+5+4
|
add eax,5+5+4
|
||||||
add [edi+deflate_state.opt_len],eax
|
add [edi+deflate_state.opt_len],eax
|
||||||
; Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld", s->opt_len, s->static_len));
|
; Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld", s->opt_len, s->static_len));
|
||||||
|
|
||||||
mov eax,[max_blindex]
|
mov eax,ebx
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
@@ -1343,8 +1340,7 @@ endp
|
|||||||
; lengths of the bit length codes, the literal tree and the distance tree.
|
; lengths of the bit length codes, the literal tree and the distance tree.
|
||||||
; IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
|
; IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
|
||||||
|
|
||||||
;void (s, lcodes, dcodes, blcodes)
|
;void (deflate_state* s, lcodes, dcodes, blcodes)
|
||||||
; deflate_state* s
|
|
||||||
; int lcodes, dcodes, blcodes ;number of codes for each tree
|
; int lcodes, dcodes, blcodes ;number of codes for each tree
|
||||||
align 4
|
align 4
|
||||||
proc send_all_trees uses eax ebx ecx edi, s:dword, lcodes:dword, dcodes:dword, blcodes:dword
|
proc send_all_trees uses eax ebx ecx edi, s:dword, lcodes:dword, dcodes:dword, blcodes:dword
|
||||||
|
@@ -12,7 +12,7 @@ include 'vox_3d.inc'
|
|||||||
include '../trunk/str.inc'
|
include '../trunk/str.inc'
|
||||||
|
|
||||||
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
|
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
|
||||||
caption db 'Voxel viewer 19.02.16',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
caption db 'Voxel viewer 18.04.17',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
3d_wnd_l equ 5 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> tinygl <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E1ABA5>
|
3d_wnd_l equ 5 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> tinygl <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E1ABA5>
|
||||||
3d_wnd_t equ 30 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> tinygl <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᢥ<><E1A2A5><EFBFBD>
|
3d_wnd_t equ 30 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> tinygl <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᢥ<><E1A2A5><EFBFBD>
|
||||||
@@ -854,7 +854,7 @@ lib_name_2 db 'buf2d.obj',0
|
|||||||
err_msg_found_lib_2 db '<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> ',39,'buf2d.obj',39,0
|
err_msg_found_lib_2 db '<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> ',39,'buf2d.obj',39,0
|
||||||
err_msg_import_2 db '<27>訡<EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> ',39,'buf2d',39,0
|
err_msg_import_2 db '<27>訡<EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> ',39,'buf2d',39,0
|
||||||
|
|
||||||
system_dir_3 db '/kolibrios/lib/'
|
system_dir_3 db '/sys/lib/'
|
||||||
lib_name_3 db 'tinygl.obj',0
|
lib_name_3 db 'tinygl.obj',0
|
||||||
err_msg_found_lib_3 db '<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> ',39,'tinygl.obj',39,0
|
err_msg_found_lib_3 db '<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> ',39,'tinygl.obj',39,0
|
||||||
err_msg_import_3 db '<27>訡<EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> ',39,'tinygl',39,0
|
err_msg_import_3 db '<27>訡<EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> ',39,'tinygl',39,0
|
||||||
|
Reference in New Issue
Block a user