Subversion Repositories Kolibri OS

Rev

Rev 6889 | Rev 8083 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6889 Rev 7610
1
use32
1
use32
2
	org 0
2
	org 0
3
	db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
3
	db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
4
	dd 1, start, i_end, mem, stacktop, file_name, sys_path
4
	dd 1, start, i_end, mem, stacktop, file_name, sys_path
5
 
5
 
6
version_edit equ 0
6
version_edit equ 0
7
 
7
 
8
include '../../macros.inc'
8
include '../../macros.inc'
9
include '../../proc32.inc'
9
include '../../proc32.inc'
10
include '../../KOSfuncs.inc'
10
include '../../KOSfuncs.inc'
11
include '../../develop/libraries/libs-dev/libimg/libimg.inc'
11
include '../../develop/libraries/libs-dev/libimg/libimg.inc'
12
include '../../load_img.inc'
12
include '../../load_img.inc'
13
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
13
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
14
include '../../develop/libraries/TinyGL/asm_fork/opengl_const.inc'
14
include '../../develop/libraries/TinyGL/asm_fork/opengl_const.inc'
15
include 'lang.inc'
15
include 'lang.inc'
16
include 'info_fun_float.inc'
16
include 'info_fun_float.inc'
17
include 'info_menu.inc'
17
include 'info_menu.inc'
18
include 'data.inc'
18
include 'data.inc'
-
 
19
include 'convert_stl_3ds.inc'
19
 
20
 
20
3d_wnd_l equ 205 ;®âáâ㯠¤«ï tinygl ¡ãä¥à  á«¥¢ 
21
3d_wnd_l equ 205 ;®âáâ㯠¤«ï tinygl ¡ãä¥à  á«¥¢ 
21
3d_wnd_t equ  47 ;®âáâ㯠¤«ï tinygl ¡ãä¥à  ᢥàåã
22
3d_wnd_t equ  47 ;®âáâ㯠¤«ï tinygl ¡ãä¥à  ᢥàåã
22
3d_wnd_w equ 344
23
3d_wnd_w equ 344
23
3d_wnd_h equ 312
24
3d_wnd_h equ 312
24
 
25
 
25
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
26
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
26
 
27
 
27
ID_ICON_CHUNK_MAIN equ 0 ;¨ª®­ª  £« ¢­®£® ¡«®ª 
28
ID_ICON_CHUNK_MAIN equ 0 ;¨ª®­ª  £« ¢­®£® ¡«®ª 
28
ID_ICON_CHUNK_NOT_FOUND equ 1 ;¨ª®­ª  ­¥ ¨§¢¥áâ­®£® ¡«®ª 
29
ID_ICON_CHUNK_NOT_FOUND equ 1 ;¨ª®­ª  ­¥ ¨§¢¥áâ­®£® ¡«®ª 
29
ID_ICON_DATA equ 2 ;¨ª®­ª  ¤«ï ¤ ­­ëå ¡«®ª , ­¥ ®¯à¥¤¥«¥­­®© áâàãªâãàë
30
ID_ICON_DATA equ 2 ;¨ª®­ª  ¤«ï ¤ ­­ëå ¡«®ª , ­¥ ®¯à¥¤¥«¥­­®© áâàãªâãàë
30
ID_ICON_POINT equ 8
31
ID_ICON_POINT equ 8
31
ID_ICON_POINT_SEL equ 9
32
ID_ICON_POINT_SEL equ 9
32
 
33
 
33
FILE_ERROR_CHUNK_SIZE equ -3 ;®è¨¡ª  ¢ à §¬¥à¥ ¡«®ª 
34
FILE_ERROR_CHUNK_SIZE equ -3 ;®è¨¡ª  ¢ à §¬¥à¥ ¡«®ª 
34
 
35
 
35
size_one_list equ 42+sizeof.obj_3d
36
size_one_list equ 42+sizeof.obj_3d
36
list_offs_chunk_del equ 8 ;¬®¦¥â «¨ ¡«®ª 㤠«ïâáï
37
list_offs_chunk_del equ 8 ;¬®¦¥â «¨ ¡«®ª 㤠«ïâáï
37
list_offs_chunk_lev equ 9 ;ã஢¥­ì ¡«®ª  (¯à®¯¨á ­ ¢ ¤ ­­ë¥ 㧫 )
38
list_offs_chunk_lev equ 9 ;ã஢¥­ì ¡«®ª  (¯à®¯¨á ­ ¢ ¤ ­­ë¥ 㧫 )
38
list_offs_p_data equ 10 ;㪠§ â¥«ì ­  ¯®¤¯¨áì ¡«®ª 
39
list_offs_p_data equ 10 ;㪠§ â¥«ì ­  ¯®¤¯¨áì ¡«®ª 
39
list_offs_obj3d equ 14 ;㪠§ â¥«ì ­  áâàãªâãàã ¤ ­­ëå ¤«ï 3d ®¡ê¥ªâ 
40
list_offs_obj3d equ 14 ;㪠§ â¥«ì ­  áâàãªâãàã ¤ ­­ëå ¤«ï 3d ®¡ê¥ªâ 
40
list_offs_text equ 14+sizeof.obj_3d ;ᤢ¨£ ­ ç «  ⥪áâ  ¢ «¨áâ¥
41
list_offs_text equ 14+sizeof.obj_3d ;ᤢ¨£ ­ ç «  ⥪áâ  ¢ «¨áâ¥
41
include 'info_o3d.inc'
42
include 'info_o3d.inc'
42
 
43
 
43
align 4
44
align 4
44
fl255 dd 255.0
45
fl255 dd 255.0
45
open_file_data dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï ®âªàëâ¨ï ä ©«®¢ 3ds
46
open_file_data dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï ®âªàëâ¨ï ä ©«®¢ 3ds
46
open_file_size dd 0 ;à §¬¥à ®âªàë⮣® ä ©« 
47
open_file_size dd 0 ;à §¬¥à ®âªàë⮣® ä ©« 
47
 
48
 
48
;
49
;
49
main_wnd_height equ 460 ;¢ëá®â  £« ¢­®£® ®ª­  ¯à®£à ¬¬ë
50
main_wnd_height equ 460 ;¢ëá®â  £« ¢­®£® ®ª­  ¯à®£à ¬¬ë
50
fn_toolbar db 'toolbar.png',0
51
fn_toolbar db 'toolbar.png',0
51
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3
52
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3
52
image_data_toolbar dd 0
53
image_data_toolbar dd 0
53
;
54
;
54
icon_tl_sys dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
55
icon_tl_sys dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
55
icon_toolbar dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï ¨ª®­®ª ®¡ê¥ªâ®¢
56
icon_toolbar dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï ¨ª®­®ª ®¡ê¥ªâ®¢
56
 
57
 
57
;--------------------------------------
58
;--------------------------------------
58
level_stack dd 0
59
level_stack dd 0
59
offs_last_timer dd 0 ;¯®á«¥¤­¨© ᤢ¨£ ¯®ª § ­ë© ¢ ä㭪樨 â ©¬¥à 
60
offs_last_timer dd 0 ;¯®á«¥¤­¨© ᤢ¨£ ¯®ª § ­ë© ¢ ä㭪樨 â ©¬¥à 
60
 
61
 
61
align 4
62
align 4
62
file_3ds: ;¯¥à¥¬¥­­ë¥ ¨á¯®«ì§ã¥¬ë¥ ¯à¨ ®âªàë⨨ ä ©« 
63
file_3ds: ;¯¥à¥¬¥­­ë¥ ¨á¯®«ì§ã¥¬ë¥ ¯à¨ ®âªàë⨨ ä ©« 
63
.offs: dd 0 ;+0 㪠§ â¥«ì ­  ­ ç «® ¡«®ª 
64
.offs: dd 0 ;+0 㪠§ â¥«ì ­  ­ ç «® ¡«®ª 
64
.size: dd 0 ;+4 à §¬¥à ¡«®ª  (¤«ï 1-£® ¯ à ¬¥âà  = à §¬¥à ä ©«  3ds)
65
.size: dd 0 ;+4 à §¬¥à ¡«®ª  (¤«ï 1-£® ¯ à ¬¥âà  = à §¬¥à ä ©«  3ds)
65
rb 8*MAX_FILE_LEVEL
66
rb 8*MAX_FILE_LEVEL
66
 
67
 
67
buffer rb size_one_list ;¡ãä¥à ¤«ï ¤®¡ ¢«¥­¨ï áâàãªâãà ¢ ᯨ᮪ tree1
68
buffer rb size_one_list ;¡ãä¥à ¤«ï ¤®¡ ¢«¥­¨ï áâàãªâãà ¢ ᯨ᮪ tree1
68
 
69
 
69
txt_3ds_symb db 0,0
70
txt_3ds_symb db 0,0
70
;--------------------------------------
71
;--------------------------------------
71
 
72
 
72
 
73
 
73
 
74
 
74
align 4
75
align 4
75
start:
76
start:
76
	;--- copy cmd line ---
77
	;--- copy cmd line ---
77
	mov esi,file_name
78
	mov esi,file_name
78
	mov edi,openfile_path
79
	mov edi,openfile_path
79
@@:
80
@@:
80
	lodsd
81
	lodsd
81
	cmp eax,0
82
	or eax,eax
82
	je @f ;¢ë室, ¥á«¨ 0
83
	jz @f ;¢ë室, ¥á«¨ 0
83
	stosd
84
	stosd
84
	jmp @b
85
	jmp @b
85
@@:
86
@@:
86
	stosd
87
	stosd
87
 
88
 
88
	load_libraries l_libs_start,l_libs_end
89
	load_libraries l_libs_start,l_libs_end
89
	;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨«¨áì ¡¨¡«¨®â¥ª¨
90
	;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨«¨áì ¡¨¡«¨®â¥ª¨
90
	mov	ebp,lib_0
91
	mov	ebp,lib_0
91
	.test_lib_open:
92
	.test_lib_open:
92
	cmp	dword [ebp+ll_struc_size-4],0
93
	cmp	dword [ebp+ll_struc_size-4],0
93
	jz	@f
94
	jz	@f
94
		mcall SF_TERMINATE_PROCESS ;exit not correct
95
		mcall SF_TERMINATE_PROCESS ;exit not correct
95
	@@:
96
	@@:
96
	add ebp,ll_struc_size
97
	add ebp,ll_struc_size
97
	cmp ebp,l_libs_end
98
	cmp ebp,l_libs_end
98
	jl .test_lib_open
99
	jl .test_lib_open
99
	mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
100
	mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
100
	mcall SF_SET_EVENTS_MASK,0xC0000027
101
	mcall SF_SET_EVENTS_MASK,0xC0000027
101
 
102
 
102
	stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª  ¤¨ «®£ 
103
	stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª  ¤¨ «®£ 
103
 
104
 
104
	;kmenu initialisation
105
	;kmenu initialisation
105
	stdcall [kmenu_init],sc
106
	stdcall [kmenu_init],sc
106
	stdcall [ksubmenu_new]
107
	stdcall [ksubmenu_new]
107
	mov [main_menu], eax
108
	mov [main_menu], eax
108
 
109
 
109
	stdcall [ksubmenu_new]
110
	stdcall [ksubmenu_new]
110
	mov [main_menu_view], eax
111
	mov [main_menu_view], eax
111
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Vertexes, 5
112
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Vertexes, 5
112
	stdcall [ksubmenu_add], [main_menu_view], eax
113
	stdcall [ksubmenu_add], [main_menu_view], eax
113
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Faces, 6
114
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Faces, 6
114
	stdcall [ksubmenu_add], [main_menu_view], eax
115
	stdcall [ksubmenu_add], [main_menu_view], eax
115
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Faces_Fill, 7
116
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Faces_Fill, 7
116
	stdcall [ksubmenu_add], [main_menu_view], eax
117
	stdcall [ksubmenu_add], [main_menu_view], eax
117
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Faces_Mat, 8
118
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Faces_Mat, 8
118
	stdcall [ksubmenu_add], [main_menu_view], eax
119
	stdcall [ksubmenu_add], [main_menu_view], eax
119
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
120
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
120
	stdcall [ksubmenu_add], [main_menu_view], eax
121
	stdcall [ksubmenu_add], [main_menu_view], eax
121
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Light, 9
122
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Light, 9
122
	stdcall [ksubmenu_add], [main_menu_view], eax
123
	stdcall [ksubmenu_add], [main_menu_view], eax
123
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Smooth, 10
124
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Smooth, 10
124
	stdcall [ksubmenu_add], [main_menu_view], eax
125
	stdcall [ksubmenu_add], [main_menu_view], eax
125
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
126
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
126
	stdcall [ksubmenu_add], [main_menu_view], eax
127
	stdcall [ksubmenu_add], [main_menu_view], eax
127
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Reset, 11
128
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Reset, 11
128
	stdcall [ksubmenu_add], [main_menu_view], eax
129
	stdcall [ksubmenu_add], [main_menu_view], eax
129
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_View, [main_menu_view]
130
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_View, [main_menu_view]
130
	stdcall [ksubmenu_add], [main_menu], eax
131
	stdcall [ksubmenu_add], [main_menu], eax
131
 
132
 
132
	mov dword[w_scr_t1.type],1
133
	mov dword[w_scr_t1.type],1
133
	stdcall dword[tl_data_init], tree1
134
	stdcall [tl_data_init], tree1
134
	;á¨á⥬­ë¥ ¨ª®­ª¨ 16*16 ¤«ï tree_list
135
	;á¨á⥬­ë¥ ¨ª®­ª¨ 16*16 ¤«ï tree_list
135
	load_image_file 'tl_sys_16.png', icon_tl_sys
136
	include_image_file 'tl_sys_16.png', icon_tl_sys
136
	;¥á«¨ ¨§®¡à ¦¥­¨¥ ­¥ ®âªàë«®áì, â® ¢ icon_tl_sys ¡ã¤ãâ
137
	;¥á«¨ ¨§®¡à ¦¥­¨¥ ­¥ ®âªàë«®áì, â® ¢ icon_tl_sys ¡ã¤ãâ
137
	;­¥ ¨­¨æ¨ «¨§¨à®¢ ­­ë¥ ¤ ­­ë¥, ­® ®è¨¡ª¨ ­¥ ¡ã¤¥â, â. ª. ¡ãä¥à ­ã¦­®£® à §¬¥à 
138
	;­¥ ¨­¨æ¨ «¨§¨à®¢ ­­ë¥ ¤ ­­ë¥, ­® ®è¨¡ª¨ ­¥ ¡ã¤¥â, â. ª. ¡ãä¥à ­ã¦­®£® à §¬¥à 
138
	mov eax,dword[icon_tl_sys]
139
	mov eax,dword[icon_tl_sys]
139
	mov dword[tree1.data_img_sys],eax
140
	mov dword[tree1.data_img_sys],eax
140
 
141
 
141
	load_image_file 'objects.png', icon_toolbar
142
	load_image_file 'objects.png', icon_toolbar
142
	mov eax,dword[icon_toolbar]
143
	mov eax,dword[icon_toolbar]
143
	mov dword[tree1.data_img],eax
144
	mov dword[tree1.data_img],eax
144
 
145
 
145
	load_image_file 'font8x9.bmp', image_data_toolbar
146
	load_image_file 'font8x9.bmp', image_data_toolbar
146
	stdcall [buf2d_create_f_img], buf_1,[image_data_toolbar] ;ᮧ¤ ¥¬ ¡ãä¥à
147
	stdcall [buf2d_create_f_img], buf_1,[image_data_toolbar] ;ᮧ¤ ¥¬ ¡ãä¥à
147
	stdcall mem.Free,[image_data_toolbar] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
148
	stdcall mem.Free,[image_data_toolbar] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
148
	stdcall [buf2d_conv_24_to_8], buf_1,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç­®á⨠8 ¡¨â
149
	stdcall [buf2d_conv_24_to_8], buf_1,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç­®á⨠8 ¡¨â
149
	stdcall [buf2d_convert_text_matrix], buf_1
150
	stdcall [buf2d_convert_text_matrix], buf_1
150
 
151
 
151
	load_image_file fn_toolbar, image_data_toolbar
152
	load_image_file fn_toolbar, image_data_toolbar
152
 
153
 
153
	;à ¡®â  á ä ©«®¬ ­ áâ஥ª
154
	;à ¡®â  á ä ©«®¬ ­ áâ஥ª
154
	copy_path ini_name,sys_path,file_name,0
155
	copy_path ini_name,sys_path,file_name,0
155
	mov dword[def_dr_mode],0
156
	mov dword[def_dr_mode],0
156
	stdcall dword[ini_get_int],file_name,ini_sec_w3d,key_dv,1
157
	stdcall dword[ini_get_int],file_name,ini_sec_w3d,key_dv,1
157
	or eax,eax
158
	or eax,eax
158
	jz @f
159
	jz @f
159
		or dword[def_dr_mode], 1 shl bit_vertexes
160
		or dword[def_dr_mode], 1 shl bit_vertexes
160
	@@:
161
	@@:
161
	stdcall dword[ini_get_int],file_name,ini_sec_w3d,key_df,1
162
	stdcall dword[ini_get_int],file_name,ini_sec_w3d,key_df,1
162
	or eax,eax
163
	or eax,eax
163
	jz @f
164
	jz @f
164
		or dword[def_dr_mode], 1 shl bit_faces
165
		or dword[def_dr_mode], 1 shl bit_faces
165
	@@:
166
	@@:
166
	stdcall dword[ini_get_int],file_name,ini_sec_w3d,key_dff,1
167
	stdcall dword[ini_get_int],file_name,ini_sec_w3d,key_dff,1
167
	or eax,eax
168
	or eax,eax
168
	jz @f
169
	jz @f
169
		or dword[def_dr_mode], 1 shl bit_faces_fill
170
		or dword[def_dr_mode], 1 shl bit_faces_fill
170
	@@:
171
	@@:
171
	stdcall dword[ini_get_int],file_name,ini_sec_w3d,key_dfm,1
172
	stdcall dword[ini_get_int],file_name,ini_sec_w3d,key_dfm,1
172
	or eax,eax
173
	or eax,eax
173
	jz @f
174
	jz @f
174
		or dword[def_dr_mode], 1 shl bit_faces_mat
175
		or dword[def_dr_mode], 1 shl bit_faces_mat
175
	@@:
176
	@@:
176
	stdcall dword[ini_get_int],file_name,ini_sec_w3d,key_dl,1
177
	stdcall dword[ini_get_int],file_name,ini_sec_w3d,key_dl,1
177
	or eax,eax
178
	or eax,eax
178
	jz @f
179
	jz @f
179
		or dword[def_dr_mode], 1 shl bit_light
180
		or dword[def_dr_mode], 1 shl bit_light
180
	@@:
181
	@@:
181
	stdcall dword[ini_get_int],file_name,ini_sec_w3d,key_ds,1
182
	stdcall dword[ini_get_int],file_name,ini_sec_w3d,key_ds,1
182
	or eax,eax
183
	or eax,eax
183
	jz @f
184
	jz @f
184
		or dword[def_dr_mode], 1 shl bit_smooth
185
		or dword[def_dr_mode], 1 shl bit_smooth
185
	@@:
186
	@@:
186
	stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_ox,0x0000ff
187
	stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_ox,0x0000ff
187
	mov [color_ox],eax
188
	mov [color_ox],eax
188
	stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_oy,0xff0000
189
	stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_oy,0xff0000
189
	mov [color_oy],eax
190
	mov [color_oy],eax
190
	stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_oz,0x00ff00
191
	stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_oz,0x00ff00
191
	mov [color_oz],eax
192
	mov [color_oz],eax
192
	stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_bk,0x000000
193
	stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_bk,0x000000
193
	mov [color_bk],eax
194
	mov [color_bk],eax
194
	shr eax,8
195
	shr eax,8
195
	mov [color_bk+4],eax
196
	mov [color_bk+4],eax
196
	shr eax,8
197
	shr eax,8
197
	mov [color_bk+8],eax
198
	mov [color_bk+8],eax
198
	stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_vert,0xffffff
199
	stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_vert,0xffffff
199
	mov [color_vert],eax
200
	mov [color_vert],eax
200
	stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_face,0x808080
201
	stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_face,0x808080
201
	mov [color_face],eax
202
	mov [color_face],eax
202
	stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_select,0xffff00
203
	stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_select,0xffff00
203
	mov [color_select],eax
204
	mov [color_select],eax
204
	finit
205
	finit
205
	fild dword[color_bk+8]
206
	fild dword[color_bk+8]
206
	fdiv dword[fl255]
207
	fdiv dword[fl255]
207
	fstp dword[color_bk+8]
208
	fstp dword[color_bk+8]
208
	mov eax,[color_bk+4]
209
	mov eax,[color_bk+4]
209
	and eax,0xff
210
	and eax,0xff
210
	mov [color_bk+4],eax
211
	mov [color_bk+4],eax
211
	fild dword[color_bk+4]
212
	fild dword[color_bk+4]
212
	fdiv dword[fl255]
213
	fdiv dword[fl255]
213
	fstp dword[color_bk+4]
214
	fstp dword[color_bk+4]
214
	mov eax,[color_bk]
215
	mov eax,[color_bk]
215
	and eax,0xff
216
	and eax,0xff
216
	mov [color_bk],eax
217
	mov [color_bk],eax
217
	fild dword[color_bk]
218
	fild dword[color_bk]
218
	fdiv dword[fl255]
219
	fdiv dword[fl255]
219
	fstp dword[color_bk]
220
	fstp dword[color_bk]
220
 
221
 
221
	mcall SF_SYSTEM_GET,SSF_TIME_COUNT
222
	mcall SF_SYSTEM_GET,SSF_TIME_COUNT
222
	mov [last_time],eax
223
	mov [last_time],eax
223
 
224
 
224
	stdcall [kosglMakeCurrent], 3d_wnd_l,3d_wnd_t,3d_wnd_w,3d_wnd_h,ctx1
225
	stdcall [kosglMakeCurrent], 3d_wnd_l,3d_wnd_t,3d_wnd_w,3d_wnd_h,ctx1
225
	stdcall [glEnable], GL_DEPTH_TEST
226
	stdcall [glEnable], GL_DEPTH_TEST
226
	stdcall [glEnable], GL_NORMALIZE ;¤¥« ¬ ­®à¬ «¨ ®¤¨­ ª®¢®© ¢¥«¨ç¨­ë ¢® ¨§¡¥¦ ­¨¥  àâ¥ä ªâ®¢
227
	stdcall [glEnable], GL_NORMALIZE ;¤¥« ¬ ­®à¬ «¨ ®¤¨­ ª®¢®© ¢¥«¨ç¨­ë ¢® ¨§¡¥¦ ­¨¥  àâ¥ä ªâ®¢
227
	stdcall [glClearColor], [color_bk+8],[color_bk+4],[color_bk],0.0
228
	stdcall [glClearColor], [color_bk+8],[color_bk+4],[color_bk],0.0
228
	stdcall [glShadeModel], GL_SMOOTH
229
	stdcall [glShadeModel], GL_SMOOTH
229
	stdcall [gluNewQuadric]
230
	stdcall [gluNewQuadric]
230
	mov [qObj],eax
231
	mov [qObj],eax
231
 
232
 
232
	mov eax,dword[ctx1] ;eax -> TinyGLContext.GLContext
233
	mov eax,dword[ctx1] ;eax -> TinyGLContext.GLContext
233
	mov eax,[eax] ;eax -> ZBuffer
234
	mov eax,[eax] ;eax -> ZBuffer
234
	mov eax,[eax+offs_zbuf_pbuf] ;eax -> ZBuffer.pbuf
235
	mov eax,[eax+offs_zbuf_pbuf] ;eax -> ZBuffer.pbuf
235
	mov dword[buf_ogl],eax
236
	mov dword[buf_ogl],eax
236
 
237
 
237
	;open file from cmd line
238
	;open file from cmd line
238
	cmp dword[openfile_path],0
239
	cmp dword[openfile_path],0
239
	je @f
240
	je @f
240
		call but_open_file.no_dlg
241
		call but_open_file.no_dlg
241
	@@:
242
	@@:
242
	call draw_window
243
	call draw_window
243
 
244
 
244
align 4
245
align 4
245
still:
246
still:
246
	mcall SF_SYSTEM_GET,SSF_TIME_COUNT
247
	mcall SF_SYSTEM_GET,SSF_TIME_COUNT
247
	mov ebx,[last_time]
248
	mov ebx,[last_time]
248
	add ebx,10 ;§ ¤¥à¦ª 
249
	add ebx,10 ;§ ¤¥à¦ª 
249
	cmp ebx,eax
250
	cmp ebx,eax
250
	jge @f
251
	jge @f
251
		mov ebx,eax
252
		mov ebx,eax
252
	@@:
253
	@@:
253
	sub ebx,eax
254
	sub ebx,eax
254
	mcall SF_WAIT_EVENT_TIMEOUT
255
	mcall SF_WAIT_EVENT_TIMEOUT
255
	cmp eax,0
256
	or eax,eax
256
	je timer_funct
257
	jz timer_funct
257
 
258
 
258
	cmp al,1
259
	cmp al,1
259
	jne @f
260
	jne @f
260
		call draw_window
261
		call draw_window
261
		jmp still
262
		jmp still
262
	@@:
263
	@@:
263
	cmp al,2
264
	cmp al,2
264
	jz key
265
	jz key
265
	cmp al,3
266
	cmp al,3
266
	jz button
267
	jz button
267
	cmp al,6
268
	cmp al,6
268
	jne @f
269
	jne @f
269
		mcall SF_THREAD_INFO,procinfo,-1
270
		mcall SF_THREAD_INFO,procinfo,-1
270
		cmp ax,word[procinfo+4]
271
		cmp ax,word[procinfo+4]
271
		jne @f ;®ª­® ­¥  ªâ¨¢­®
272
		jne @f ;®ª­® ­¥  ªâ¨¢­®
272
		call mouse
273
		call mouse
273
	@@:
274
	@@:
274
	jmp still
275
	jmp still
275
 
276
 
276
align 4
277
align 4
277
mouse:
278
mouse:
278
	push eax ebx
279
	push eax ebx
279
	mcall SF_MOUSE_GET,SSF_BUTTON_EXT
280
	mcall SF_MOUSE_GET,SSF_BUTTON_EXT
280
	bt eax,0
281
	bt eax,0
281
	jnc .end_m
282
	jnc .end_m
282
		;mouse l. but. move
283
		;mouse l. but. move
283
		cmp dword[mouse_drag],1
284
		cmp dword[mouse_drag],1
284
		jne .end_m
285
		jne .end_m
285
 
286
 
286
		stdcall [tl_node_get_data],tree1
287
		stdcall [tl_node_get_data],tree1
287
		cmp eax,0
288
		or eax,eax
288
		je .end_d
289
		jz .end_d
289
			mov ebx,dword[eax]
290
			mov ebx,dword[eax]
290
			add ebx,dword[open_file_data] ;¯®«ãç ¥¬ §­ ç¥­¨¥ ᤢ¨£  ¢ ¯ ¬ïâ¨
291
			add ebx,dword[open_file_data] ;¯®«ãç ¥¬ §­ ç¥­¨¥ ᤢ¨£  ¢ ¯ ¬ïâ¨
291
			cmp word[ebx],CHUNK_OBJBLOCK
292
			cmp word[ebx],CHUNK_OBJBLOCK
292
			jne .end_d
293
			jne .end_d
293
 
294
 
294
		mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
295
		mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
295
		mov ebx,eax
296
		mov ebx,eax
296
		shr ebx,16 ;mouse.x
297
		shr ebx,16 ;mouse.x
297
		cmp ebx,3d_wnd_l
298
		cmp ebx,3d_wnd_l
298
		jg @f
299
		jg @f
299
			mov ebx,3d_wnd_l
300
			mov ebx,3d_wnd_l
300
		@@:
301
		@@:
301
		sub ebx,3d_wnd_l
302
		sub ebx,3d_wnd_l
302
		cmp ebx,3d_wnd_w
303
		cmp ebx,3d_wnd_w
303
		jle @f
304
		jle @f
304
			mov ebx,3d_wnd_w
305
			mov ebx,3d_wnd_w
305
		@@:
306
		@@:
306
		and eax,0xffff ;mouse.y
307
		and eax,0xffff ;mouse.y
307
		cmp eax,3d_wnd_t
308
		cmp eax,3d_wnd_t
308
		jg @f
309
		jg @f
309
			mov eax,3d_wnd_t
310
			mov eax,3d_wnd_t
310
		@@:
311
		@@:
311
		sub eax,3d_wnd_t
312
		sub eax,3d_wnd_t
312
		cmp eax,3d_wnd_h
313
		cmp eax,3d_wnd_h
313
		jle @f
314
		jle @f
314
			mov eax,3d_wnd_h
315
			mov eax,3d_wnd_h
315
		@@:
316
		@@:
316
		finit
317
		finit
317
		fild dword[mouse_y]
318
		fild dword[mouse_y]
318
		mov [mouse_y],eax
319
		mov [mouse_y],eax
319
		fisub dword[mouse_y]
320
		fisub dword[mouse_y]
320
		fdiv dword[angle_dxm] ;¥á«¨ ªãàá®à ¤¢¨¦¥âáï ¯® ®á¨ y (¢¢¥àå ¨«¨ ¢­¨§) â® ¯®¢®à®â ¤¥« ¥¬ ¢®ªà㣠®á¨ x
321
		fdiv dword[angle_dxm] ;¥á«¨ ªãàá®à ¤¢¨¦¥âáï ¯® ®á¨ y (¢¢¥àå ¨«¨ ¢­¨§) â® ¯®¢®à®â ¤¥« ¥¬ ¢®ªà㣠®á¨ x
321
		fadd dword[angle_x]
322
		fadd dword[angle_x]
322
		fstp dword[angle_x]
323
		fstp dword[angle_x]
323
 
324
 
324
		fild dword[mouse_x]
325
		fild dword[mouse_x]
325
		mov [mouse_x],ebx
326
		mov [mouse_x],ebx
326
		fisub dword[mouse_x]
327
		fisub dword[mouse_x]
327
		fdiv dword[angle_dym] ;¥á«¨ ªãàá®à ¤¢¨¦¥âáï ¯® ®á¨ x (¢¢¥àå ¨«¨ ¢­¨§) â® ¯®¢®à®â ¤¥« ¥¬ ¢®ªà㣠®á¨ y
328
		fdiv dword[angle_dym] ;¥á«¨ ªãàá®à ¤¢¨¦¥âáï ¯® ®á¨ x (¢¢¥àå ¨«¨ ¢­¨§) â® ¯®¢®à®â ¤¥« ¥¬ ¢®ªà㣠®á¨ y
328
		fadd dword[angle_y]
329
		fadd dword[angle_y]
329
		fstp dword[angle_y]
330
		fstp dword[angle_y]
330
 
331
 
331
		stdcall [tl_node_get_data],tree1
332
		stdcall [tl_node_get_data],tree1
332
		;cmp eax,0 - ­¥ ­ ¤®, ¡ë«® ᤥ« ­® ¢ëè¥
333
		;cmp eax,0 - ­¥ ­ ¤®, ¡ë«® ᤥ« ­® ¢ëè¥
333
		add eax,list_offs_obj3d
334
		add eax,list_offs_obj3d
334
		stdcall draw_3d, eax
335
		stdcall draw_3d, eax
335
		jmp .end_d
336
		jmp .end_d
336
	.end_m:
337
	.end_m:
337
	bt eax,16
338
	bt eax,16
338
	jnc @f
339
	jnc @f
339
		;mouse l. but. up
340
		;mouse l. but. up
340
		mov dword[mouse_drag],0
341
		mov dword[mouse_drag],0
341
		jmp .end_d
342
		jmp .end_d
342
	@@:
343
	@@:
343
	bt eax,8
344
	bt eax,8
344
	jnc .end_d
345
	jnc .end_d
345
		;mouse l. but. press
346
		;mouse l. but. press
346
		mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
347
		mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
347
		mov ebx,eax
348
		mov ebx,eax
348
		shr ebx,16 ;mouse.x
349
		shr ebx,16 ;mouse.x
349
		cmp ebx,3d_wnd_l
350
		cmp ebx,3d_wnd_l
350
		jl .end_d
351
		jl .end_d
351
		sub ebx,3d_wnd_l
352
		sub ebx,3d_wnd_l
352
		cmp ebx,3d_wnd_w
353
		cmp ebx,3d_wnd_w
353
		jg .end_d
354
		jg .end_d
354
		and eax,0xffff ;mouse.y
355
		and eax,0xffff ;mouse.y
355
		cmp eax,3d_wnd_t
356
		cmp eax,3d_wnd_t
356
		jl .end_d
357
		jl .end_d
357
		sub eax,3d_wnd_t
358
		sub eax,3d_wnd_t
358
		cmp eax,3d_wnd_h
359
		cmp eax,3d_wnd_h
359
		jg .end_d
360
		jg .end_d
360
		mov dword[mouse_drag],1
361
		mov dword[mouse_drag],1
361
		mov dword[mouse_x],ebx
362
		mov dword[mouse_x],ebx
362
		mov dword[mouse_y],eax
363
		mov dword[mouse_y],eax
363
	.end_d:
364
	.end_d:
364
 
365
 
365
	stdcall [tl_mouse], dword tree1
366
	stdcall [tl_mouse], dword tree1
366
	stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
367
	stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
367
	pop ebx eax
368
	pop ebx eax
368
	ret
369
	ret
369
 
370
 
370
align 4
371
align 4
371
timer_funct:
372
timer_funct:
372
	pushad
373
	pushad
373
	mcall SF_SYSTEM_GET,SSF_TIME_COUNT
374
	mcall SF_SYSTEM_GET,SSF_TIME_COUNT
374
	mov [last_time],eax
375
	mov [last_time],eax
375
 
376
 
376
	;¯à®á¬ âਢ ¥¬ ¢ë¤¥«¥­­ë© ¡«®ª ¤ ­­ëå
377
	;¯à®á¬ âਢ ¥¬ ¢ë¤¥«¥­­ë© ¡«®ª ¤ ­­ëå
377
	stdcall [tl_node_get_data],tree1
378
	stdcall [tl_node_get_data],tree1
378
	cmp eax,0
379
	or eax,eax
379
	je .end_f
380
	jz .end_f
380
		mov edi,eax
381
		mov edi,eax
381
		add edi,list_offs_obj3d
382
		add edi,list_offs_obj3d
382
		mov ebx,eax
383
		mov ebx,eax
383
		mov eax,dword[ebx]
384
		mov eax,dword[ebx]
384
		mov ecx,dword[ebx+4] ;à §¬¥à ¡«®ª 
385
		mov ecx,dword[ebx+4] ;à §¬¥à ¡«®ª 
385
		stdcall hex_in_str, txt_3ds_offs.dig, eax,8
386
		stdcall hex_in_str, txt_3ds_offs.dig, eax,8
386
		stdcall hex_in_str, txt_3ds_offs.siz, ecx,8
387
		stdcall hex_in_str, txt_3ds_offs.siz, ecx,8
387
 
388
 
388
		add eax,dword[open_file_data] ;¯®«ãç ¥¬ §­ ç¥­¨¥ ᤢ¨£  ¢ ¯ ¬ïâ¨
389
		add eax,dword[open_file_data] ;¯®«ãç ¥¬ §­ ç¥­¨¥ ᤢ¨£  ¢ ¯ ¬ïâ¨
389
		cmp dword[offs_last_timer],eax
390
		cmp dword[offs_last_timer],eax
390
		je .end_f
391
		je .end_f
391
			;¥á«¨ ¢ë¤¥«¥­­ë© ¡«®ª ¤ ­­ëå ­¥ ᮢ¯ ¤ ¥â á ¯®á«¥¤­¨¬ § ¯®¬­¥­­ë¬
392
			;¥á«¨ ¢ë¤¥«¥­­ë© ¡«®ª ¤ ­­ëå ­¥ ᮢ¯ ¤ ¥â á ¯®á«¥¤­¨¬ § ¯®¬­¥­­ë¬
392
			mov dword[offs_last_timer],eax
393
			mov dword[offs_last_timer],eax
393
 
394
 
394
			cmp word[eax],CHUNK_OBJBLOCK
395
			cmp word[eax],CHUNK_OBJBLOCK
395
			jne .end_oblo
396
			jne .end_oblo
396
			cmp dword[edi+obj_3d.poi_count],2
397
			cmp dword[edi+obj_3d.poi_count],2
397
			jl .ini_oblo
398
			jl .ini_oblo
398
				stdcall draw_3d,edi
399
				stdcall draw_3d,edi
399
				jmp .end_f
400
				jmp .end_f
400
			.ini_oblo:
401
			.ini_oblo:
401
				stdcall obj_init,edi ;¯®¯ë⪠ ­ áâநâì ¯¥à¥¬¥­­ë¥ ®¡ê¥ªâ 
402
				stdcall obj_init,edi ;¯®¯ë⪠ ­ áâநâì ¯¥à¥¬¥­­ë¥ ®¡ê¥ªâ 
402
				cmp dword[edi+obj_3d.poi_count],2
403
				cmp dword[edi+obj_3d.poi_count],2
403
				jl .end_f
404
				jl .end_f
404
					call mnu_reset_settings ;á¡à®á 㣫®¢ ¯®¢®à®â  ¨ ०¨¬®¢ à¨á®¢ ­¨ï
405
					call mnu_reset_settings ;á¡à®á 㣫®¢ ¯®¢®à®â  ¨ ०¨¬®¢ à¨á®¢ ­¨ï
405
				jmp .end_f
406
				jmp .end_f
406
			.end_oblo:
407
			.end_oblo:
407
 
408
 
408
			cmp word[eax],CHUNK_MATERIAL
409
			cmp word[eax],CHUNK_MATERIAL
409
			jne .end_mblo
410
			jne .end_mblo
410
			cmp dword[edi+material.name],0
411
			cmp dword[edi+material.name],0
411
			je .ini_mblo
412
			je .ini_mblo
412
				stdcall draw_material,edi
413
				stdcall draw_material,edi
413
				jmp .end_f
414
				jmp .end_f
414
			.ini_mblo:
415
			.ini_mblo:
415
				stdcall mat_init,edi,eax ;¯®¯ë⪠ ­ áâநâì ¤ ­­ë¥ ¬ â¥à¨ « 
416
				stdcall mat_init,edi,eax ;¯®¯ë⪠ ­ áâநâì ¤ ­­ë¥ ¬ â¥à¨ « 
416
				cmp dword[edi+material.name],0
417
				cmp dword[edi+material.name],0
417
				je .end_f
418
				je .end_f
418
					stdcall draw_material,edi
419
					stdcall draw_material,edi
419
				jmp .end_f
420
				jmp .end_f
420
			.end_mblo:
421
			.end_mblo:
421
 
422
 
422
			stdcall buf_draw_beg, buf_ogl
423
			stdcall buf_draw_beg, buf_ogl
423
			stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_3ds_offs,5,35,0xb000
424
			stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_3ds_offs,5,35,0xb000
424
			mov edx,dword[ebx+list_offs_p_data]
425
			mov edx,dword[ebx+list_offs_p_data]
425
			cmp edx,0 ;ᬮâਬ ¥áâì «¨ ®¯¨á ­¨¥ ¡«®ª 
426
			or edx,edx ;ᬮâਬ ¥áâì «¨ ®¯¨á ­¨¥ ¡«®ª 
426
			je .no_info
427
			jz .no_info
427
				stdcall [buf2d_draw_text], buf_ogl, buf_1,edx,5,45,0xb000
428
				stdcall [buf2d_draw_text], buf_ogl, buf_1,edx,5,45,0xb000
428
			.no_info:
429
			.no_info:
429
			stdcall [buf2d_draw], buf_ogl ;®¡­®¢«ï¥¬ ¡ãä¥à ­  íªà ­¥
430
			stdcall [buf2d_draw], buf_ogl ;®¡­®¢«ï¥¬ ¡ãä¥à ­  íªà ­¥
430
	.end_f:
431
	.end_f:
431
	popad
432
	popad
432
	jmp still
433
	jmp still
433
 
434
 
434
align 4
435
align 4
435
draw_window:
436
draw_window:
436
pushad
437
pushad
437
	mcall SF_REDRAW,SSF_BEGIN_DRAW
438
	mcall SF_REDRAW,SSF_BEGIN_DRAW
438
	mov edx,[sc.work]
439
	mov edx,[sc.work]
439
	or  edx,0x33000000
440
	or  edx,0x33000000
440
	mcall SF_CREATE_WINDOW, (20 shl 16)+560, (20 shl 16)+main_wnd_height,,, capt
441
	mcall SF_CREATE_WINDOW, (20 shl 16)+560, (20 shl 16)+main_wnd_height,,, capt
441
 
442
 
442
	mcall SF_THREAD_INFO,procinfo,-1
443
	mcall SF_THREAD_INFO,procinfo,-1
443
	mov eax,dword[procinfo.box.height]
444
	mov eax,dword[procinfo.box.height]
444
	cmp eax,250
445
	cmp eax,250
445
	jge @f
446
	jge @f
446
		mov eax,250
447
		mov eax,250
447
	@@:
448
	@@:
448
	sub eax,30
449
	sub eax,30
449
	sub eax,[tree1.box_top]
450
	sub eax,[tree1.box_top]
450
	mov [tree1.box_height],eax
451
	mov [tree1.box_height],eax
451
	mov word[w_scr_t1.y_size],ax ;­®¢ë¥ à §¬¥àë áªà®««¨­£ 
452
	mov word[w_scr_t1.y_size],ax ;­®¢ë¥ à §¬¥àë áªà®««¨­£ 
452
 
453
 
453
	stdcall [kmainmenu_draw], [main_menu]
454
	stdcall [kmainmenu_draw], [main_menu]
454
 
455
 
455
	mov esi,[sc.work_button]
456
	mov esi,[sc.work_button]
456
	mcall SF_DEFINE_BUTTON,(5 shl 16)+20,(24 shl 16)+20,0x40000003
457
	mcall SF_DEFINE_BUTTON,(5 shl 16)+20,(24 shl 16)+20,0x40000003
457
	mcall ,(30 shl 16)+20,,0x40000004 ;open
458
	mcall ,(30 shl 16)+20,,0x40000004 ;open
458
	mcall ,(3d_wnd_l shl 16)+20,,0x40000005 ;¢¥àè¨­ë ¢ª«.
459
	mcall ,(3d_wnd_l shl 16)+20,,0x40000005 ;¢¥àè¨­ë ¢ª«.
459
	mcall ,((3d_wnd_l+25) shl 16)+20,,0x40000006 ;ª àª á­ë¥ £à ­¨ ¢ª«.
460
	mcall ,((3d_wnd_l+25) shl 16)+20,,0x40000006 ;ª àª á­ë¥ £à ­¨ ¢ª«.
460
	mcall ,((3d_wnd_l+50) shl 16)+20,,0x40000007 ;§ «¨¢ª  £à ­¥© ¢ª«.
461
	mcall ,((3d_wnd_l+50) shl 16)+20,,0x40000007 ;§ «¨¢ª  £à ­¥© ¢ª«.
461
	mcall ,((3d_wnd_l+75) shl 16)+20,,0x40000008 ;£à ­¨ ¯® ¬ â¥à¨ « ¬ ¢ª«.
462
	mcall ,((3d_wnd_l+75) shl 16)+20,,0x40000008 ;£à ­¨ ¯® ¬ â¥à¨ « ¬ ¢ª«.
462
	mcall ,((3d_wnd_l+100) shl 16)+20,,0x40000009 ;ᢥ⠢ª«./¢ëª«.
463
	mcall ,((3d_wnd_l+100) shl 16)+20,,0x40000009 ;ᢥ⠢ª«./¢ëª«.
463
	mcall ,((3d_wnd_l+125) shl 16)+20,,0x4000000a ;ᣫ ¦¨¢ ­¨¥
464
	mcall ,((3d_wnd_l+125) shl 16)+20,,0x4000000a ;ᣫ ¦¨¢ ­¨¥
464
	mcall ,((3d_wnd_l+150) shl 16)+20,,0x4000000b ;á¡à®á
465
	mcall ,((3d_wnd_l+150) shl 16)+20,,0x4000000b ;á¡à®á
465
	mcall ,((3d_wnd_l+175) shl 16)+20,,0x4000000c ;áªà¨­ ¨§ 3d ®ª­ 
466
	mcall ,((3d_wnd_l+175) shl 16)+20,,0x4000000c ;áªà¨­ ¨§ 3d ®ª­ 
466
 
467
 
467
	mcall SF_PUT_IMAGE,[image_data_toolbar],(21 shl 16)+21,(5 shl 16)+24 ;new
468
	mcall SF_PUT_IMAGE,[image_data_toolbar],(21 shl 16)+21,(5 shl 16)+24 ;new
468
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
469
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
469
	mcall ,,,(30 shl 16)+24 ;open
470
	mcall ,,,(30 shl 16)+24 ;open
470
	add ebx,IMAGE_TOOLBAR_ICON_SIZE*6
471
	add ebx,IMAGE_TOOLBAR_ICON_SIZE*6
471
	mcall ,,,((3d_wnd_l) shl 16)+24 ;¢¥àè¨­ë ¢ª«.
472
	mcall ,,,((3d_wnd_l) shl 16)+24 ;¢¥àè¨­ë ¢ª«.
472
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
473
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
473
	mcall ,,,((3d_wnd_l+25) shl 16)+24 ;ª àª á­ë¥ £à ­¨ ¢ª«.
474
	mcall ,,,((3d_wnd_l+25) shl 16)+24 ;ª àª á­ë¥ £à ­¨ ¢ª«.
474
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
475
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
475
	mcall ,,,((3d_wnd_l+50) shl 16)+24 ;§ «¨¢ª  £à ­¥© ¢ª«.
476
	mcall ,,,((3d_wnd_l+50) shl 16)+24 ;§ «¨¢ª  £à ­¥© ¢ª«.
476
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
477
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
477
	mcall ,,,((3d_wnd_l+100) shl 16)+24 ;ᢥ⠢ª«./¢ëª«.
478
	mcall ,,,((3d_wnd_l+100) shl 16)+24 ;ᢥ⠢ª«./¢ëª«.
478
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
479
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
479
	mcall ,,,((3d_wnd_l+150) shl 16)+24 ;á¡à®á
480
	mcall ,,,((3d_wnd_l+150) shl 16)+24 ;á¡à®á
480
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
481
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
481
	mcall ,,,((3d_wnd_l+75) shl 16)+24 ;£à ­¨ ¯® ¬ â¥à¨ « ¬ ¢ª«.
482
	mcall ,,,((3d_wnd_l+75) shl 16)+24 ;£à ­¨ ¯® ¬ â¥à¨ « ¬ ¢ª«.
482
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
483
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
483
	mcall ,,,((3d_wnd_l+125) shl 16)+24 ;ᣫ ¦¨¢ ­¨¥
484
	mcall ,,,((3d_wnd_l+125) shl 16)+24 ;ᣫ ¦¨¢ ­¨¥
484
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
485
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
485
	mcall ,,,((3d_wnd_l+175) shl 16)+24 ;áªà¨­ ¨§ 3d ®ª­ 
486
	mcall ,,,((3d_wnd_l+175) shl 16)+24 ;áªà¨­ ¨§ 3d ®ª­ 
486
 
487
 
487
	mov dword[w_scr_t1.all_redraw],1
488
	mov dword[w_scr_t1.all_redraw],1
488
	stdcall [tl_draw], tree1
489
	stdcall [tl_draw], tree1
489
	stdcall [buf2d_draw], buf_ogl
490
	stdcall [buf2d_draw], buf_ogl
490
 
491
 
491
	mcall SF_REDRAW,SSF_END_DRAW
492
	mcall SF_REDRAW,SSF_END_DRAW
492
popad
493
popad
493
	ret
494
	ret
494
 
495
 
495
align 4
496
align 4
496
key:
497
key:
497
	mcall SF_GET_KEY
498
	mcall SF_GET_KEY
498
 
499
 
499
	cmp dword[el_focus], tree1
500
	cmp dword[el_focus], tree1
500
	jne @f
501
	jne @f
501
		stdcall [tl_key], tree1
502
		stdcall [tl_key], tree1
502
		jmp .end
503
		jmp .end
503
	@@:
504
	@@:
504
 
505
 
505
	cmp ah,178 ;Up
506
	cmp ah,178 ;Up
506
	jne @f
507
	jne @f
507
		fld dword[angle_x]
508
		fld dword[angle_x]
508
		fadd dword[delt_size]
509
		fadd dword[delt_size]
509
		fstp dword[angle_x]
510
		fstp dword[angle_x]
510
		stdcall [tl_node_get_data],tree1
511
		stdcall [tl_node_get_data],tree1
511
		cmp eax,0
512
		or eax,eax
512
		je .end
513
		jz .end
513
		add eax,list_offs_obj3d
514
		add eax,list_offs_obj3d
514
		stdcall draw_3d, eax
515
		stdcall draw_3d, eax
515
		jmp .end
516
		jmp .end
516
	@@:
517
	@@:
517
	cmp ah,177 ;Down
518
	cmp ah,177 ;Down
518
	jne @f
519
	jne @f
519
		fld dword[angle_x]
520
		fld dword[angle_x]
520
		fsub dword[delt_size]
521
		fsub dword[delt_size]
521
		fstp dword[angle_x]
522
		fstp dword[angle_x]
522
		stdcall [tl_node_get_data],tree1
523
		stdcall [tl_node_get_data],tree1
523
		cmp eax,0
524
		or eax,eax
524
		je .end
525
		jz .end
525
		add eax,list_offs_obj3d
526
		add eax,list_offs_obj3d
526
		stdcall draw_3d, eax
527
		stdcall draw_3d, eax
527
		jmp .end
528
		jmp .end
528
	@@:
529
	@@:
529
	cmp ah,176 ;Left
530
	cmp ah,176 ;Left
530
	jne @f
531
	jne @f
531
		fld dword[angle_y]
532
		fld dword[angle_y]
532
		fadd dword[delt_size]
533
		fadd dword[delt_size]
533
		fstp dword[angle_y]
534
		fstp dword[angle_y]
534
		stdcall [tl_node_get_data],tree1
535
		stdcall [tl_node_get_data],tree1
535
		cmp eax,0
536
		or eax,eax
536
		je .end
537
		jz .end
537
		add eax,list_offs_obj3d
538
		add eax,list_offs_obj3d
538
		stdcall draw_3d, eax
539
		stdcall draw_3d, eax
539
		jmp .end
540
		jmp .end
540
	@@:
541
	@@:
541
	cmp ah,179 ;Right
542
	cmp ah,179 ;Right
542
	jne @f
543
	jne @f
543
		fld dword[angle_y]
544
		fld dword[angle_y]
544
		fsub dword[delt_size]
545
		fsub dword[delt_size]
545
		fstp dword[angle_y]
546
		fstp dword[angle_y]
546
		stdcall [tl_node_get_data],tree1
547
		stdcall [tl_node_get_data],tree1
547
		cmp eax,0
548
		or eax,eax
548
		je .end
549
		jz .end
549
		add eax,list_offs_obj3d
550
		add eax,list_offs_obj3d
550
		stdcall draw_3d, eax
551
		stdcall draw_3d, eax
551
		;jmp .end
552
		;jmp .end
552
	@@:
553
	@@:
553
 
554
 
554
	.end:
555
	.end:
555
	jmp still
556
	jmp still
556
 
557
 
557
 
558
 
558
align 4
559
align 4
559
button:
560
button:
560
	mcall SF_GET_BUTTON
561
	mcall SF_GET_BUTTON
561
	cmp ah,3
562
	cmp ah,3
562
	jne @f
563
	jne @f
563
		call but_new_file
564
		call but_new_file
564
		jmp still
565
		jmp still
565
	@@:
566
	@@:
566
	cmp ah,4
567
	cmp ah,4
567
	jne @f
568
	jne @f
568
		call but_open_file
569
		call but_open_file
569
		jmp still
570
		jmp still
570
	@@:
571
	@@:
571
 
572
 
572
	;menu functions
573
	;menu functions
573
	cmp ah,5
574
	cmp ah,5
574
	jne @f
575
	jne @f
575
		call mnu_vertexes_on
576
		call mnu_vertexes_on
576
		jmp still
577
		jmp still
577
	@@:
578
	@@:
578
	cmp ah,6
579
	cmp ah,6
579
	jne @f
580
	jne @f
580
		call mnu_edges_on
581
		call mnu_edges_on
581
		jmp still
582
		jmp still
582
	@@:
583
	@@:
583
	cmp ah,7
584
	cmp ah,7
584
	jne @f
585
	jne @f
585
		call mnu_faces_on
586
		call mnu_faces_on
586
		jmp still
587
		jmp still
587
	@@:
588
	@@:
588
	cmp ah,8
589
	cmp ah,8
589
	jne @f
590
	jne @f
590
		call mnu_faces_mat
591
		call mnu_faces_mat
591
		jmp still
592
		jmp still
592
	@@:
593
	@@:
593
	cmp ah,9
594
	cmp ah,9
594
	jne @f
595
	jne @f
595
		call mnu_light_on_off
596
		call mnu_light_on_off
596
		jmp still
597
		jmp still
597
	@@:
598
	@@:
598
	cmp ah,10
599
	cmp ah,10
599
	jne @f
600
	jne @f
600
		call mnu_smooth_on_off
601
		call mnu_smooth_on_off
601
		jmp still
602
		jmp still
602
	@@:
603
	@@:
603
	cmp ah,11
604
	cmp ah,11
604
	jne @f
605
	jne @f
605
		call mnu_reset_settings
606
		call mnu_reset_settings
606
		jmp still
607
		jmp still
607
	@@:
608
	@@:
608
	cmp ah,12
609
	cmp ah,12
609
	jne @f
610
	jne @f
610
		call mnu_make_scrshot
611
		call mnu_make_scrshot
611
		jmp still
612
		jmp still
612
	@@:
613
	@@:
613
 
614
 
614
	cmp ah,1
615
	cmp ah,1
615
	jne still
616
	jne still
616
.exit:
617
.exit:
617
	mov dword[tree1.data_img],0
618
	mov dword[tree1.data_img],0
618
	mov dword[tree1.data_img_sys],0
619
	mov dword[tree1.data_img_sys],0
619
	stdcall [tl_data_clear], tree1
620
	stdcall [tl_data_clear], tree1
620
	stdcall [buf2d_delete],buf_1 ;㤠«ï¥¬ ¡ãä¥à
621
	stdcall [buf2d_delete],buf_1 ;㤠«ï¥¬ ¡ãä¥à
621
	stdcall mem.Free,[image_data_toolbar]
622
	stdcall mem.Free,[image_data_toolbar]
622
	stdcall mem.Free,[open_file_data]
623
	stdcall mem.Free,[open_file_data]
623
	stdcall [gluDeleteQuadric], [qObj]
624
	stdcall [gluDeleteQuadric], [qObj]
624
	mcall SF_TERMINATE_PROCESS
625
	mcall SF_TERMINATE_PROCESS
625
 
626
 
626
 
627
 
627
align 4
628
align 4
628
but_new_file:
629
but_new_file:
629
push eax ebx
630
push eax ebx
630
	stdcall dword[tl_node_poi_get_info], tree1,0
631
	stdcall [tl_node_poi_get_info], tree1,0
631
	@@:
632
	@@:
632
		cmp eax,0
633
		or eax,eax
633
		je @f
634
		jz @f
634
		mov ebx,eax
635
		mov ebx,eax
635
		stdcall [tl_node_poi_get_data], tree1,ebx
636
		stdcall [tl_node_poi_get_data], tree1,ebx
636
		add eax,list_offs_obj3d
637
		add eax,list_offs_obj3d
637
		stdcall obj_clear_param, eax
638
		stdcall obj_clear_param, eax
638
		stdcall dword[tl_node_poi_get_next_info], tree1,ebx
639
		stdcall [tl_node_poi_get_next_info], tree1,ebx
639
		cmp eax,0
640
		or eax,eax
640
		jne @b
641
		jnz @b
641
	@@:
642
	@@:
642
pop ebx eax
643
pop ebx eax
643
	stdcall [tl_info_clear], tree1 ;®ç¨á⪠ ᯨ᪠ ®¡ê¥ªâ®¢
644
	stdcall [tl_info_clear], tree1 ;®ç¨á⪠ ᯨ᪠ ®¡ê¥ªâ®¢
644
	stdcall [buf2d_clear], buf_ogl, [buf_ogl.color] ;ç¨á⨬ ¡ãä¥à
645
	stdcall [buf2d_clear], buf_ogl, [buf_ogl.color] ;ç¨á⨬ ¡ãä¥à
645
	stdcall [tl_draw], tree1
646
	stdcall [tl_draw], tree1
646
	stdcall [buf2d_draw], buf_ogl ;®¡­®¢«ï¥¬ ¡ãä¥à ­  íªà ­¥
647
	stdcall [buf2d_draw], buf_ogl ;®¡­®¢«ï¥¬ ¡ãä¥à ­  íªà ­¥
647
	ret
648
	ret
648
 
649
 
649
align 4
650
align 4
650
but_open_file:
651
but_open_file:
651
	copy_path open_dialog_name,communication_area_default_path,file_name,0
652
	copy_path open_dialog_name,communication_area_default_path,file_name,0
652
	pushad
653
	pushad
653
	mov [OpenDialog_data.type],0
654
	mov [OpenDialog_data.type],0
654
	stdcall [OpenDialog_Start],OpenDialog_data
655
	stdcall [OpenDialog_Start],OpenDialog_data
655
	cmp [OpenDialog_data.status],2
656
	cmp [OpenDialog_data.status],2
656
	je .end_open_file
657
	je .end_open_file
657
	;ª®¤ ¯à¨ 㤠筮¬ ®âªàë⨨ ¤¨ «®£ 
658
	;ª®¤ ¯à¨ 㤠筮¬ ®âªàë⨨ ¤¨ «®£ 
658
	jmp @f
659
	jmp @f
659
.no_dlg: ;¥á«¨ ¬¨­ã¥¬ ¤¨ «®£ ®âªàëâ¨ï ä ©« 
660
.no_dlg: ;¥á«¨ ¬¨­ã¥¬ ¤¨ «®£ ®âªàëâ¨ï ä ©« 
660
		pushad
661
		pushad
661
	@@:
662
	@@:
662
    mov [run_file_70.Function], SSF_GET_INFO
663
    mov [run_file_70.Function], SSF_GET_INFO
663
    mov [run_file_70.Position], 0
664
    mov [run_file_70.Position], 0
664
    mov [run_file_70.Flags], 0
665
    mov [run_file_70.Flags], 0
665
    mov dword[run_file_70.Count], 0
666
    mov dword[run_file_70.Count], 0
666
    mov dword[run_file_70.Buffer], open_b
667
    mov dword[run_file_70.Buffer], open_b
667
    mov byte[run_file_70+20], 0
668
    mov byte[run_file_70+20], 0
668
    mov dword[run_file_70.FileName], openfile_path
669
    mov dword[run_file_70.FileName], openfile_path
669
    mcall SF_FILE,run_file_70
670
    mcall SF_FILE,run_file_70
670
 
671
 
671
    mov ecx,dword[open_b+32] ;+32 qword: à §¬¥à ä ©«  ¢ ¡ ©â å
672
    mov ecx,dword[open_b+32] ;+32 qword: à §¬¥à ä ©«  ¢ ¡ ©â å
672
    stdcall mem.ReAlloc,[open_file_data],ecx
673
    stdcall mem.ReAlloc,[open_file_data],ecx
673
    mov [open_file_data],eax
674
    mov [open_file_data],eax
674
    
675
    
675
    mov [run_file_70.Function], SSF_READ_FILE
676
    mov [run_file_70.Function], SSF_READ_FILE
676
    mov [run_file_70.Position], 0
677
    mov [run_file_70.Position], 0
677
    mov [run_file_70.Flags], 0
678
    mov [run_file_70.Flags], 0
678
    mov dword[run_file_70.Count], ecx
679
    mov dword[run_file_70.Count], ecx
679
    m2m dword[run_file_70.Buffer], dword[open_file_data]
680
    m2m dword[run_file_70.Buffer], dword[open_file_data]
680
    mov byte[run_file_70+20], 0
681
    mov byte[run_file_70+20], 0
681
    mov dword[run_file_70.FileName], openfile_path
682
    mov dword[run_file_70.FileName], openfile_path
682
    mcall SF_FILE,run_file_70 ;§ £à㦠¥¬ ä ©« 3ds
683
    mcall SF_FILE,run_file_70 ;§ £à㦠¥¬ ä ©« 3ds
683
    cmp ebx,0xffffffff
684
    cmp ebx,0xffffffff
684
    je .end_open_file
685
    je .end_open_file
685
		mov [open_file_size],ebx
686
		mov [open_file_size],ebx
686
		;mcall SF_SET_CAPTION,1,openfile_path
687
		;mcall SF_SET_CAPTION,1,openfile_path
687
 
688
 
688
		call init_tree
689
		call init_tree
689
		stdcall [buf2d_draw], buf_ogl ;®¡­®¢«ï¥¬ ¡ãä¥à ­  íªà ­¥
690
		stdcall [buf2d_draw], buf_ogl ;®¡­®¢«ï¥¬ ¡ãä¥à ­  íªà ­¥
690
	.end_open_file:
691
	.end_open_file:
691
	popad
692
	popad
692
	ret
693
	ret
693
 
694
 
694
align 4
695
align 4
695
init_tree:
696
init_tree:
696
	;ç¨á⨬ ¯ ¬ïâì § ­ïâãî ®¡ê¥ªâ ¬¨
697
	;ç¨á⨬ ¯ ¬ïâì § ­ïâãî ®¡ê¥ªâ ¬¨
697
	stdcall dword[tl_node_poi_get_info], tree1,0
698
	stdcall [tl_node_poi_get_info], tree1,0
698
	@@:
699
	@@:
699
		cmp eax,0
700
		or eax,eax
700
		je @f
701
		jz @f
701
		mov ebx,eax
702
		mov ebx,eax
702
		stdcall [tl_node_poi_get_data], tree1,ebx
703
		stdcall [tl_node_poi_get_data], tree1,ebx
703
		cmp eax,0
704
		or eax,eax
704
		je @f
705
		jz @f
705
			add eax,list_offs_obj3d
706
			add eax,list_offs_obj3d
706
			stdcall obj_clear_param, eax
707
			stdcall obj_clear_param, eax
707
			stdcall dword[tl_node_poi_get_next_info], tree1,ebx
708
			stdcall [tl_node_poi_get_next_info], tree1,ebx
708
			cmp eax,0
709
			or eax,eax
709
			jne @b
710
			jnz @b
710
	@@:
711
	@@:
711
	stdcall [tl_info_clear], tree1 ;®ç¨á⪠ ᯨ᪠ ®¡ê¥ªâ®¢
712
	stdcall [tl_info_clear], tree1 ;®ç¨á⪠ ᯨ᪠ ®¡ê¥ªâ®¢
712
 
713
 
-
 
714
	mov esi,[open_file_data]
-
 
715
	stdcall convert_stl_3ds, esi,[open_file_size] ;¯à®¢¥à塞 ä ©« ä®à¬ â  *.stl ?
-
 
716
	or eax,eax
-
 
717
	jz @f
-
 
718
		;¥á«¨ ä ©« ¢ ä®à¬ â¥ *.stl
-
 
719
		mov [open_file_size],ecx
-
 
720
		mov esi,eax
-
 
721
		stdcall mem.Free,[open_file_data]
-
 
722
		mov [open_file_data],esi
-
 
723
		mov byte[can_save],1
713
	mov esi,dword[open_file_data]
724
	@@:
714
	cmp word[esi],CHUNK_MAIN
725
	cmp word[esi],CHUNK_MAIN
-
 
726
	je @f
-
 
727
		mov eax,[esi]
-
 
728
		bswap eax
715
	je @f
729
		stdcall hex_in_str, txt_no_3ds.zag, eax,8
716
		stdcall buf_draw_beg, buf_ogl
730
		stdcall buf_draw_beg, buf_ogl
717
		stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_no_3ds,5,25,0xff0000 ;à¨á㥬 áâபã á ⥪á⮬
731
		stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_no_3ds,5,25,0xff0000 ;à¨á㥬 áâபã á ⥪á⮬
718
		jmp .end_open
732
		jmp .end_open
719
	@@:
733
	@@:
720
	;--- ®¡à ¡®âª  ®âªàë⮣® *.3ds ä ©« 
734
	;--- ®¡à ¡®âª  ®âªàë⮣® *.3ds ä ©« 
721
	mov eax,file_3ds
735
	mov eax,file_3ds
722
	mov dword[level_stack],0 ;®¡­ã«ï¥¬ ã஢¥­ì á⥪ 
736
	mov dword[level_stack],0 ;®¡­ã«ï¥¬ ã஢¥­ì á⥪ 
723
	mov dword[offs_last_timer],0
737
	mov dword[offs_last_timer],0
724
	;--- ¤®¡ ¢«¥­¨¥ £« ¢­®£® ¡«®ª  ¢ ᯨ᮪
738
	;--- ¤®¡ ¢«¥­¨¥ £« ¢­®£® ¡«®ª  ¢ ᯨ᮪
725
	stdcall add_3ds_object, ID_ICON_CHUNK_MAIN,0,dword[esi+2],0
739
	stdcall add_3ds_object, ID_ICON_CHUNK_MAIN,0,dword[esi+2],0
726
	call block_children ;¢å®¤ ¢ ¤®ç¥à­¨© ¡«®ª
740
	call block_children ;¢å®¤ ¢ ¤®ç¥à­¨© ¡«®ª
727
 
741
 
728
	mov edi,dword[file_3ds.offs]
742
	mov edi,[file_3ds.offs]
729
	add edi,dword[file_3ds.size]
743
	add edi,[file_3ds.size]
730
	.cycle_main:
744
	.cycle_main:
731
		cmp dword[level_stack],0
745
		cmp dword[level_stack],0
732
		jle .end_cycle
746
		jle .end_cycle
733
		
747
		
734
		cmp esi,edi ;¥á«¨ ª®­¥æ ä ©« 
748
		cmp esi,edi ;¥á«¨ ª®­¥æ ä ©« 
735
		jge .end_cycle
749
		jge .end_cycle
736
 
750
 
737
		mov edx,dword[esi+2] ;à §¬¥à ¡«®ª 
751
		mov edx,[esi+2] ;à §¬¥à ¡«®ª 
738
		call block_analiz
752
		call block_analiz
739
		cmp word[esi],CHUNK_MATERIAL
753
		cmp word[esi],CHUNK_MATERIAL
740
		je @f
754
		je @f
741
		cmp word[esi],CHUNK_OBJMESH
755
		cmp word[esi],CHUNK_OBJMESH
742
		je @f
756
		je @f
743
		cmp word[esi],CHUNK_OBJBLOCK
757
		cmp word[esi],CHUNK_OBJBLOCK
744
		je @f
758
		je @f
745
			mov dword[bl_found],0
759
			mov dword[bl_found],0
746
		@@:
760
		@@:
747
		cmp dword[bl_found],0
761
		cmp dword[bl_found],0
748
		jne @f
762
		jne @f
749
			;®¡ê¥ªâ ­¥ ¨§¢¥áâ­®£® ¢¨¤ 
763
			;®¡ê¥ªâ ­¥ ¨§¢¥áâ­®£® ¢¨¤ 
750
			call block_next
764
			call block_next
751
			jmp .cycle_main
765
			jmp .cycle_main
752
		@@:
766
		@@:
753
			;®¡ê¥ªâ ¨§¢¥áâ­®£® ¢¨¤ 
767
			;®¡ê¥ªâ ¨§¢¥áâ­®£® ¢¨¤ 
754
			mov ecx,dword[bl_found]
768
			mov ecx,dword[bl_found]
755
			mov bx,word[ecx+2] ;­®¬¥à ¨ª®­ª¨ ¤«ï ®¡ê¥ªâ 
769
			mov bx,word[ecx+2] ;­®¬¥à ¨ª®­ª¨ ¤«ï ®¡ê¥ªâ 
756
			cmp word[esi],CHUNK_OBJBLOCK
770
			cmp word[esi],CHUNK_OBJBLOCK
757
			jne .pod1
771
			jne .pod1
758
				add esi,6
772
				add esi,6
759
				push esi
773
				push esi
760
				sub esi,6
774
				sub esi,6
761
				jmp .pod3
775
				jmp .pod3
762
			.pod1:
776
			.pod1:
763
			cmp word[esi],CHUNK_MATERIAL
777
			cmp word[esi],CHUNK_MATERIAL
764
			jne .pod2
778
			jne .pod2
765
				cmp word[esi+6],CHUNK_MATNAME
779
				cmp word[esi+6],CHUNK_MATNAME
766
				jne .pod2
780
				jne .pod2
767
				add esi,12
781
				add esi,12
768
				push esi
782
				push esi
769
				sub esi,12
783
				sub esi,12
770
				jmp .pod3
784
				jmp .pod3
771
			.pod2:
785
			.pod2:
772
				push dword[ecx+5] ;áâ ­¤ àâ­®¥ ­ §¢ ­¨¥ ¡«®ª 
786
				push dword[ecx+5] ;áâ ­¤ àâ­®¥ ­ §¢ ­¨¥ ¡«®ª 
773
			.pod3:
787
			.pod3:
774
			stdcall add_3ds_object, ebx,dword[level_stack],edx
788
			stdcall add_3ds_object, ebx,dword[level_stack],edx
775
			cmp byte[ecx+4],1
789
			cmp byte[ecx+4],1
776
			je .bl_data
790
			je .bl_data
777
				;¡«®ª ᮤ¥à¦¨â ¤®ç¥à­¨¥ ¡«®ª¨
791
				;¡«®ª ᮤ¥à¦¨â ¤®ç¥à­¨¥ ¡«®ª¨
778
				call block_children ;¢å®¤ ¢ ¤®ç¥à­¨© ¡«®ª
792
				call block_children ;¢å®¤ ¢ ¤®ç¥à­¨© ¡«®ª
779
				jmp .cycle_main
793
				jmp .cycle_main
780
			.bl_data:
794
			.bl_data:
781
				;¡«®ª ᮤ¥à¦¨â ¤ ­­ë¥
795
				;¡«®ª ᮤ¥à¦¨â ¤ ­­ë¥
782
				call block_analiz_data
796
				call block_analiz_data
783
				jmp .cycle_main
797
				jmp .cycle_main
784
	.end_cycle:
798
	.end_cycle:
785
		stdcall [tl_cur_beg], tree1
799
		stdcall [tl_cur_beg], tree1
786
		stdcall [tl_draw], tree1
800
		stdcall [tl_draw], tree1
787
	.end_open:
801
	.end_open:
788
	ret
802
	ret
789
 
803
 
790
; ­ «¨§ ¤ ­­ëå ¡«®ª 
804
; ­ «¨§ ¤ ­­ëå ¡«®ª 
791
;input:
805
;input:
792
; eax - stack pointer
806
; eax - stack pointer
793
; esi - memory pointer
807
; esi - memory pointer
794
;output:
808
;output:
795
; eax - new stack pointer
809
; eax - new stack pointer
796
; esi - new memory pointer
810
; esi - new memory pointer
797
align 4
811
align 4
798
proc block_analiz_data uses ebx ecx edx edi
812
proc block_analiz_data uses ebx ecx edx edi
799
	mov dx,word[esi]
813
	mov dx,[esi]
800
	mov ecx,dword[esi+2]
814
	mov ecx,[esi+2]
801
	sub ecx,6 ;à §¬¥à ¤ ­­ëå ¢ ¡«®ª¥
815
	sub ecx,6 ;à §¬¥à ¤ ­­ëå ¢ ¡«®ª¥
802
	add esi,6
816
	add esi,6
803
	mov ebx,dword[level_stack]
817
	mov ebx,dword[level_stack]
804
	inc ebx
818
	inc ebx
805
	; ***  ­ «¨§ ¡«®ª®¢ á à §­ë¬¨ ¤ ­­ë¬¨ ¨ ¢ë¤¥«¥­¨¥¬ ¯®¤¡«®ª®¢
819
	; ***  ­ «¨§ ¡«®ª®¢ á à §­ë¬¨ ¤ ­­ë¬¨ ¨ ¢ë¤¥«¥­¨¥¬ ¯®¤¡«®ª®¢
806
	cmp dx,CHUNK_OBJBLOCK ;®¡ê¥ªâ
820
	cmp dx,CHUNK_OBJBLOCK ;®¡ê¥ªâ
807
	jne @f
821
	jne @f
808
		push ax
822
		push ax
809
			cld
823
			cld
810
			xor al,al
824
			xor al,al
811
			mov edi,esi
825
			mov edi,esi
812
			repne scasb
826
			repne scasb
813
		pop ax
827
		pop ax
814
		sub edi,esi ;edi - strlen
828
		sub edi,esi ;edi - strlen
815
		add esi,edi
829
		add esi,edi
816
		;sub ecx,edi ;㦥 ᤥ« ­® ¢ repne
830
		;sub ecx,edi ;㦥 ᤥ« ­® ¢ repne
817
		jmp .next_bl
831
		jmp .next_bl
818
	@@:
832
	@@:
819
	cmp dx,CHUNK_VERTLIST ;ᯨ᮪ ¢¥à設
833
	cmp dx,CHUNK_VERTLIST ;ᯨ᮪ ¢¥à設
820
	je .vertexes
834
	je .vertexes
821
	cmp dx,0x4111 ;ä« £¨ ¢¥à設
835
	cmp dx,0x4111 ;ä« £¨ ¢¥à設
822
	je .vertexes
836
	je .vertexes
823
	cmp dx,CHUNK_MAPLIST ;⥪áâãà­ë¥ ª®®à¤¨­ âë
837
	cmp dx,CHUNK_MAPLIST ;⥪áâãà­ë¥ ª®®à¤¨­ âë
824
	je .vertexes
838
	je .vertexes
825
	jmp @f
839
	jmp @f
826
	.vertexes: ;®¡à ¡®âª  ¡«®ª®¢, ᮤ¥à¦ é¨å ¤ ­­ë¥ ¢¥à設
840
	.vertexes: ;®¡à ¡®âª  ¡«®ª®¢, ᮤ¥à¦ é¨å ¤ ­­ë¥ ¢¥à設
827
		add esi,2
841
		add esi,2
828
		sub ecx,2
842
		sub ecx,2
829
		sub esi,8 ;¢®ááâ ­®¢«¥­¨¥ esi
843
		sub esi,8 ;¢®ááâ ­®¢«¥­¨¥ esi
830
		call block_next
844
		call block_next
831
		jmp .end_f		
845
		jmp .end_f		
832
	@@:
846
	@@:
833
	cmp dx,CHUNK_FACELIST ;ᯨ᮪ £à ­¥©
847
	cmp dx,CHUNK_FACELIST ;ᯨ᮪ £à ­¥©
834
	jne @f
848
	jne @f
835
		push eax
849
		push eax
836
		movzx eax,word[esi]
850
		movzx eax,word[esi]
837
		shl eax,3
851
		shl eax,3
838
		add esi,2
852
		add esi,2
839
		sub ecx,2
853
		sub ecx,2
840
 
854
 
841
		sub ecx,eax
855
		sub ecx,eax
842
		cmp ecx,1
856
		cmp ecx,1
843
		jl .data_3 ;¯à®¢¥à塞 ¥áâì «¨ ¡«®ª ®¯¨á뢠î騩 ¬ â¥à¨ «, ¯à¨¬¥­ï¥¬ë© ª ®¡ê¥ªâã
857
		jl .data_3 ;¯à®¢¥à塞 ¥áâì «¨ ¡«®ª ®¯¨á뢠î騩 ¬ â¥à¨ «, ¯à¨¬¥­ï¥¬ë© ª ®¡ê¥ªâã
844
if 1
858
if 1
845
			add esi,eax
859
			add esi,eax
846
			mov ecx,dword[esi+2]
860
			mov ecx,dword[esi+2]
847
			stdcall add_3ds_object, 10,ebx,ecx,0 ;¤ ­­ë¥ ¬ â¥à¨ « 
861
			stdcall add_3ds_object, 10,ebx,ecx,0 ;¤ ­­ë¥ ¬ â¥à¨ « 
848
			sub esi,eax
862
			sub esi,eax
849
else
863
else
850
			add esi,eax
864
			add esi,eax
851
			pop eax
865
			pop eax
852
			jmp .next_bl
866
			jmp .next_bl
853
end if
867
end if
854
		.data_3:
868
		.data_3:
855
 
869
 
856
		sub esi,8 ;¢®ááâ ­®¢«¥­¨¥ esi
870
		sub esi,8 ;¢®ááâ ­®¢«¥­¨¥ esi
857
		pop eax
871
		pop eax
858
		call block_next
872
		call block_next
859
		jmp .end_f		
873
		jmp .end_f		
860
	@@:
874
	@@:
861
	cmp dx,CHUNK_FACEMAT ;¬ â¥à¨ «ë £à ­¥©
875
	cmp dx,CHUNK_FACEMAT ;¬ â¥à¨ «ë £à ­¥©
862
	jne @f
876
	jne @f
863
		push ax
877
		push ax
864
			cld
878
			cld
865
			xor al,al
879
			xor al,al
866
			mov edi,esi
880
			mov edi,esi
867
			repne scasb
881
			repne scasb
868
		pop ax
882
		pop ax
869
		sub edi,esi ;edi - strlen
883
		sub edi,esi ;edi - strlen
870
		stdcall add_3ds_object, ID_ICON_DATA,ebx,edi,0 ;­ §¢ ­¨¥ ®¡ê¥ªâ 
884
		stdcall add_3ds_object, ID_ICON_DATA,ebx,edi,0 ;­ §¢ ­¨¥ ®¡ê¥ªâ 
871
		add esi,edi
885
		add esi,edi
872
		add esi,2
886
		add esi,2
873
		sub ecx,2
887
		sub ecx,2
874
		sub esi,edi ;¢®ááâ ­®¢«¥­¨¥ esi (1)
888
		sub esi,edi ;¢®ááâ ­®¢«¥­¨¥ esi (1)
875
		sub esi,8   ;¢®ááâ ­®¢«¥­¨¥ esi (2)
889
		sub esi,8   ;¢®ááâ ­®¢«¥­¨¥ esi (2)
876
		call block_next
890
		call block_next
877
		jmp .end_f
891
		jmp .end_f
878
	@@:
892
	@@:
879
	; ***  ­ «¨§ ¡«®ª  á ¤ ­­ë¬¨ ¯® 㬮«ç ­¨î (¡¥§ ¢ë¤¥«¥­¨ï ¯®¤¡«®ª®¢)
893
	; ***  ­ «¨§ ¡«®ª  á ¤ ­­ë¬¨ ¯® 㬮«ç ­¨î (¡¥§ ¢ë¤¥«¥­¨ï ¯®¤¡«®ª®¢)
880
		sub esi,6 ;¢®ááâ ­®¢«¥­¨¥ esi
894
		sub esi,6 ;¢®ááâ ­®¢«¥­¨¥ esi
881
		call block_next
895
		call block_next
882
		jmp .end_f
896
		jmp .end_f
883
	.next_bl:
897
	.next_bl:
884
	; *** ­ áâனª¨ ¤«ï  ­ «¨§  ®áâ ¢è¨åáï ¯®¤¡«®ª®¢
898
	; *** ­ áâனª¨ ¤«ï  ­ «¨§  ®áâ ¢è¨åáï ¯®¤¡«®ª®¢
885
		mov dword[eax],esi ;㪠§ â¥«ì ­  ­ ç «® ¡«®ª 
899
		mov dword[eax],esi ;㪠§ â¥«ì ­  ­ ç «® ¡«®ª 
886
		mov ebx,dword[esi+2]
900
		mov ebx,dword[esi+2]
887
		mov dword[eax+4],ebx ;à §¬¥à ¡«®ª 
901
		mov dword[eax+4],ebx ;à §¬¥à ¡«®ª 
888
		inc dword[level_stack]
902
		inc dword[level_stack]
889
		add eax,8
903
		add eax,8
890
	.end_f:
904
	.end_f:
891
	ret
905
	ret
892
endp
906
endp
893
 
907
 
894
;¢å®¤ ¢ 1-© ¤®ç¥à­¨© ¡«®ª
908
;¢å®¤ ¢ 1-© ¤®ç¥à­¨© ¡«®ª
895
;input:
909
;input:
896
; eax - 㪠§ â¥«ì ­  ¢à¥¬¥­­ë© á⥪ ä ©«  file_3ds
910
; eax - 㪠§ â¥«ì ­  ¢à¥¬¥­­ë© á⥪ ä ©«  file_3ds
897
; esi - ­ ç «® த¨â¥«ì᪮£® ¡«®ª 
911
; esi - ­ ç «® த¨â¥«ì᪮£® ¡«®ª 
898
;output:
912
;output:
899
; ebx - destroy
913
; ebx - destroy
900
; esi - ­ ç «® ¤ ­­ëå த¨â¥«ì᪮£® ¡«®ª 
914
; esi - ­ ç «® ¤ ­­ëå த¨â¥«ì᪮£® ¡«®ª 
901
align 4
915
align 4
902
block_children:
916
block_children:
903
	push ecx
917
	push ecx
904
		;¯à®¢¥àª  ¯à ¢¨«ì­®á⨠ࠧ¬¥à®¢ ¤®ç¥à­¥£® ¡«®ª 
918
		;¯à®¢¥àª  ¯à ¢¨«ì­®á⨠ࠧ¬¥à®¢ ¤®ç¥à­¥£® ¡«®ª 
905
		mov ebx,esi
-
 
906
		add ebx,6 ;¯¥à¥å®¤ ­  ­ ç «® ¤®ç¥à­¥£® ¡«®ª 
919
		lea ebx,[esi+6] ;¯¥à¥å®¤ ­  ­ ç «® ¤®ç¥à­¥£® ¡«®ª 
907
		add ebx,dword[ebx+2] ;¤®¡ ¢«ï¥¬ à §¬¥à ¤®ç¥à­¥£® ¡«®ª 
920
		add ebx,[ebx+2] ;¤®¡ ¢«ï¥¬ à §¬¥à ¤®ç¥à­¥£® ¡«®ª 
908
		mov ecx,esi
921
		mov ecx,esi
909
		add ecx,dword[esi+2] ;¤®¡ ¢«ï¥¬ à §¬¥à த¨â¥«ì᪮£® ¡«®ª 
922
		add ecx,[esi+2] ;¤®¡ ¢«ï¥¬ à §¬¥à த¨â¥«ì᪮£® ¡«®ª 
910
		cmp ebx,ecx ;ãç¨â뢠âì § £®«®¢ª¨ ­¥ ­ã¦­®, â. ª. áà ¢­¨¢ îâáï ⮫쪮 ¤ ­­ë¥ ¡«®ª®¢
923
		cmp ebx,ecx ;ãç¨â뢠âì § £®«®¢ª¨ ­¥ ­ã¦­®, â. ª. áà ¢­¨¢ îâáï ⮫쪮 ¤ ­­ë¥ ¡«®ª®¢
911
		jle @f
924
		jle @f
912
			;¤¨ £­®áâ¨à®¢ «¨ ®è¨¡ªã ä ©« , ¤®ç¥à­¨© ¡«®ª ¢ë室¨â §  ¯à¥¤¥«ë த¨â¥«ì᪮£®
925
			;¤¨ £­®áâ¨à®¢ «¨ ®è¨¡ªã ä ©« , ¤®ç¥à­¨© ¡«®ª ¢ë室¨â §  ¯à¥¤¥«ë த¨â¥«ì᪮£®
913
			mov dword[level_stack],FILE_ERROR_CHUNK_SIZE
926
			mov dword[level_stack],FILE_ERROR_CHUNK_SIZE
914
			jmp .end_f
927
			jmp .end_f
915
		@@:
928
		@@:
916
		mov dword[eax],esi ;㪠§ â¥«ì ­  ­ ç «® ¡«®ª 
929
		mov [eax],esi ;㪠§ â¥«ì ­  ­ ç «® ¡«®ª 
917
		mov ebx,dword[esi+2]
930
		mov ebx,[esi+2]
918
		mov dword[eax+4],ebx ;à §¬¥à ¡«®ª 
931
		mov [eax+4],ebx ;à §¬¥à ¡«®ª 
919
		add esi,6 ;¯¥à¥å®¤¨¬ ª ¤ ­­ë¬ ¡«®ª 
932
		add esi,6 ;¯¥à¥å®¤¨¬ ª ¤ ­­ë¬ ¡«®ª 
920
		inc dword[level_stack]
933
		inc dword[level_stack]
921
		add eax,8
934
		add eax,8
922
	.end_f:
935
	.end_f:
923
	pop ecx
936
	pop ecx
924
	ret
937
	ret
925
 
938
 
926
;¯¥à¥å®¤ ª á«¥¤ã饬㠡«®ªã ⥪ã饣® ã஢­ï
939
;¯¥à¥å®¤ ª á«¥¤ã饬㠡«®ªã ⥪ã饣® ã஢­ï
927
;input:
940
;input:
928
; eax -  ¤à¥á áâàãªâãàë á ¯¥à¥¬¥­­ë¬¨
941
; eax -  ¤à¥á áâàãªâãàë á ¯¥à¥¬¥­­ë¬¨
929
align 4
942
align 4
930
block_next:
943
block_next:
931
push ebx
944
push ebx
932
	add esi,dword[esi+2] ;¯à®¯ã᪠¥¬ ¤ ­­ë¥ ¡«®ª 
945
	add esi,dword[esi+2] ;¯à®¯ã᪠¥¬ ¤ ­­ë¥ ¡«®ª 
933
 
946
 
934
	;¯à®¢¥àª  à §¬¥à®¢ த¨â¥«ì᪮£® ¡«®ª , ¤«ï ¢®§¬®¦­®£® ¢ë室  ­  ¢¥àå­¨© ã஢¥­ì ¥á«¨ ª®­¥æ ¡«®ª 
947
	;¯à®¢¥àª  à §¬¥à®¢ த¨â¥«ì᪮£® ¡«®ª , ¤«ï ¢®§¬®¦­®£® ¢ë室  ­  ¢¥àå­¨© ã஢¥­ì ¥á«¨ ª®­¥æ ¡«®ª 
935
	@@:
948
	@@:
936
	mov ebx,dword[eax-8]
949
	mov ebx,dword[eax-8]
937
	add ebx,dword[eax-4]
950
	add ebx,dword[eax-4]
938
	cmp esi,ebx
951
	cmp esi,ebx
939
	jl @f
952
	jl @f
940
		dec dword[level_stack]
953
		dec dword[level_stack]
941
		sub eax,8
954
		sub eax,8
942
		cmp dword[level_stack],0
955
		cmp dword[level_stack],0
943
		jg @b
956
		jg @b
944
	@@:
957
	@@:
945
pop ebx
958
pop ebx
946
	ret
959
	ret
947
 
960
 
948
;äã­ªæ¨ï ¯®¨áª  áâàãªâãàë ®¯¨á뢠î饩 ¡«®ª
961
;äã­ªæ¨ï ¯®¨áª  áâàãªâãàë ®¯¨á뢠î饩 ¡«®ª
949
;input:
962
;input:
950
;esi - memory pointer
963
;esi - memory pointer
951
;output:
964
;output:
952
;dword[bl_found] - pointer to chunk struct (= 0 if not found)
965
;dword[bl_found] - pointer to chunk struct (= 0 if not found)
953
align 4
966
align 4
954
bl_found dd 0
967
bl_found dd 0
955
block_analiz:
968
block_analiz:
956
pushad
969
pushad
957
	mov dword[bl_found],0
970
	mov dword[bl_found],0
958
	mov ecx,type_bloks
971
	mov ecx,type_bloks
959
	@@:
972
	@@:
960
		mov bx,word[ecx]
973
		mov bx,word[ecx]
961
		cmp word[esi],bx
974
		cmp word[esi],bx
962
		je .found
975
		je .found
963
		add ecx,sizeof.block_3ds
976
		add ecx,sizeof.block_3ds
964
		cmp ecx,type_bloks.end
977
		cmp ecx,type_bloks.end
965
		jl @b
978
		jl @b
966
	jmp .no_found
979
	jmp .no_found
967
	.found:
980
	.found:
968
		mov dword[bl_found],ecx
981
		mov dword[bl_found],ecx
969
	.no_found:
982
	.no_found:
970
popad
983
popad
971
	ret
984
	ret
972
 
985
 
973
;input:
986
;input:
974
; esi - 㪠§ â¥«ì ­   ­ «¨§¨àã¥¬ë¥ ¤ ­­ë¥
987
; esi - 㪠§ â¥«ì ­   ­ «¨§¨àã¥¬ë¥ ¤ ­­ë¥
-
 
988
; icon - ­®¬¥à ¨ª®­ª¨
975
; level - ã஢¥­ì ¢«®¦¥­­®á⨠㧫 
989
; level - ã஢¥­ì ¢«®¦¥­­®á⨠㧫 
976
; size_bl - à §¬¥à ¡«®ª 
990
; size_bl - à §¬¥à ¡«®ª 
-
 
991
; info_bl - áâப  á ®¯¨á ­¨¥¬ ¡«®ª 
977
align 4
992
align 4
978
proc add_3ds_object, icon:dword,level:dword,size_bl:dword,info_bl:dword
993
proc add_3ds_object, icon:dword, level:dword, size_bl:dword, info_bl:dword
979
	pushad
994
	pushad
980
		mov bx,word[icon]
995
		mov bx,word[icon]
981
		shl ebx,16
996
		shl ebx,16
982
		mov bx,word[level]
997
		mov bx,word[level]
983
 
998
 
984
		mov eax,esi
999
		mov eax,esi
985
		sub eax,dword[open_file_data]
1000
		sub eax,dword[open_file_data]
986
		mov dword[buffer],eax ;ᬥ饭¨¥ ¡«®ª 
1001
		mov dword[buffer],eax ;ᬥ饭¨¥ ¡«®ª 
987
		mov ecx,dword[size_bl]
1002
		mov ecx,dword[size_bl]
988
		mov dword[buffer+4],ecx ;à §¬¥à ¡«®ª  (¨á¯®«ì§ã¥âáï ¢ ä㭪樨 buf_draw_hex_table ¤«ï à¨á®¢ ­¨ï «¨­¨¨)
1003
		mov dword[buffer+4],ecx ;à §¬¥à ¡«®ª  (¨á¯®«ì§ã¥âáï ¢ ä㭪樨 buf_draw_hex_table ¤«ï à¨á®¢ ­¨ï «¨­¨¨)
989
		mov ecx,dword[bl_found]
1004
		mov ecx,dword[bl_found]
990
		cmp ecx,0
1005
		or ecx,ecx
991
		je @f
1006
		jz @f
992
			;... §¤¥áì ­ã¦¥­ ¤à㣮©  «£®à¨â¬ § é¨âë ®â 㤠«¥­¨ï
1007
			;... §¤¥áì ­ã¦¥­ ¤à㣮©  «£®à¨â¬ § é¨âë ®â 㤠«¥­¨ï
993
			mov cl,byte[ecx+4]
1008
			mov cl,byte[ecx+4]
994
		@@:
1009
		@@:
995
		mov byte[buffer+list_offs_chunk_del],cl
1010
		mov byte[buffer+list_offs_chunk_del],cl
996
		mov ecx,[level]
1011
		mov ecx,[level]
997
		mov byte[buffer+list_offs_chunk_lev],cl
1012
		mov byte[buffer+list_offs_chunk_lev],cl
998
		mov ecx,dword[info_bl]
1013
		mov ecx,dword[info_bl]
999
		mov dword[buffer+list_offs_p_data],ecx
1014
		mov dword[buffer+list_offs_p_data],ecx
1000
		stdcall hex_in_str, buffer+list_offs_text,dword[esi+1],2
1015
		stdcall hex_in_str, buffer+list_offs_text,dword[esi+1],2
1001
		stdcall hex_in_str, buffer+list_offs_text+2,dword[esi],2 ;ª®¤ 3ds ¡«®ª 
1016
		stdcall hex_in_str, buffer+list_offs_text+2,dword[esi],2 ;ª®¤ 3ds ¡«®ª 
1002
		cmp ecx,0
1017
		or ecx,ecx
1003
		jne @f
1018
		jnz @f
1004
			mov byte[buffer+list_offs_text+4],0 ;0 - ᨬ¢®« ª®­æ  áâப¨
1019
			mov byte[buffer+list_offs_text+4],0 ;0 - ᨬ¢®« ª®­æ  áâப¨
1005
			jmp .no_capt
1020
			jmp .no_capt
1006
		@@:
1021
		@@:
1007
			mov byte[buffer+list_offs_text+4],' '
1022
			mov byte[buffer+list_offs_text+4],' '
1008
			mov esi,ecx
1023
			mov esi,ecx
1009
			mov edi,buffer+list_offs_text+5
1024
			mov edi,buffer+list_offs_text+5
1010
			mov ecx,size_one_list-(list_offs_text+5)
1025
			mov ecx,size_one_list-(list_offs_text+5)
1011
			cld
1026
			cld
1012
			rep movsb
1027
			rep movsb
1013
			mov byte[buffer+size_one_list-1],0 ;0 - ᨬ¢®« ª®­æ  áâப¨
1028
			mov byte[buffer+size_one_list-1],0 ;0 - ᨬ¢®« ª®­æ  áâப¨
1014
		.no_capt:
1029
		.no_capt:
1015
		mov ecx,(sizeof.obj_3d)/4
1030
		mov ecx,(sizeof.obj_3d)/4
1016
		xor eax,eax
1031
		xor eax,eax
1017
		mov edi,buffer
1032
		mov edi,buffer
1018
		add edi,list_offs_obj3d
1033
		add edi,list_offs_obj3d
1019
		rep stosd
1034
		rep stosd
1020
		stdcall [tl_node_add], tree1, ebx, buffer
1035
		stdcall [tl_node_add], tree1, ebx, buffer
1021
		stdcall [tl_cur_next], tree1
1036
		stdcall [tl_cur_next], tree1
1022
	popad
1037
	popad
1023
	ret
1038
	ret
1024
endp
1039
endp
1025
 
1040
 
1026
;input:
1041
;input:
1027
; eax - value
1042
; eax - value
1028
; buf - string buffer
1043
; buf - string buffer
1029
; len - buffer len
1044
; len - buffer len
1030
;output:
1045
;output:
1031
align 4
1046
align 4
1032
proc convert_int_to_str, buf:dword, len:dword
1047
proc convert_int_to_str, buf:dword, len:dword
1033
pushad
1048
pushad
1034
	mov edi,[buf]
1049
	mov edi,[buf]
1035
	mov esi,[len]
1050
	mov esi,[len]
1036
	add esi,edi
1051
	add esi,edi
1037
	dec esi
1052
	dec esi
1038
	call .str
1053
	call .str
1039
popad
1054
popad
1040
	ret
1055
	ret
1041
endp
1056
endp
1042
 
1057
 
1043
align 4
1058
align 4
1044
.str:
1059
.str:
1045
	mov ecx,0x0a
1060
	mov ecx,10
1046
	cmp eax,ecx
1061
	cmp eax,ecx
1047
	jb @f
1062
	jb @f
1048
		xor edx,edx
1063
		xor edx,edx
1049
		div ecx
1064
		div ecx
1050
		push edx
1065
		push edx
1051
		call .str
1066
		call .str
1052
		pop eax
1067
		pop eax
1053
	@@:
1068
	@@:
1054
	cmp edi,esi
1069
	cmp edi,esi
1055
	jge @f
1070
	jge @f
1056
		or al,0x30
1071
		or al,0x30
1057
		stosb
1072
		stosb
1058
		mov byte[edi],0
1073
		mov byte[edi],0
1059
	@@:
1074
	@@:
1060
	ret
1075
	ret
1061
 
1076
 
1062
;¤ ­­ë¥ ¤«ï ¤¨ «®£  ®âªàëâ¨ï ä ©«®¢
1077
;¤ ­­ë¥ ¤«ï ¤¨ «®£  ®âªàëâ¨ï ä ©«®¢
1063
align 4
1078
align 4
1064
OpenDialog_data:
1079
OpenDialog_data:
1065
.type			dd 0 ;0 - ®âªàëâì, 1 - á®åà ­¨âì, 2 - ¢ë¡à âì ¤â४â®à¨î
1080
.type			dd 0 ;0 - ®âªàëâì, 1 - á®åà ­¨âì, 2 - ¢ë¡à âì ¤â४â®à¨î
1066
.procinfo		dd procinfo ;+4
1081
.procinfo		dd procinfo ;+4
1067
.com_area_name	dd communication_area_name ;+8
1082
.com_area_name	dd communication_area_name ;+8
1068
.com_area		dd 0 ;+12
1083
.com_area		dd 0 ;+12
1069
.opendir_path	dd plugin_path ;+16
1084
.opendir_path	dd plugin_path ;+16
1070
.dir_default_path	dd default_dir ;+20
1085
.dir_default_path	dd default_dir ;+20
1071
.start_path		dd file_name ;+24 ¯ãâì ª ¤¨ «®£ã ®âªàëâ¨ï ä ©«®¢
1086
.start_path		dd file_name ;+24 ¯ãâì ª ¤¨ «®£ã ®âªàëâ¨ï ä ©«®¢
1072
.draw_window	dd draw_window ;+28
1087
.draw_window	dd draw_window ;+28
1073
.status 		dd 0 ;+32
1088
.status 		dd 0 ;+32
1074
.openfile_path	dd openfile_path ;+36 ¯ãâì ª ®âªà뢠¥¬®¬ã ä ©«ã
1089
.openfile_path	dd openfile_path ;+36 ¯ãâì ª ®âªà뢠¥¬®¬ã ä ©«ã
1075
.filename_area	dd filename_area ;+40
1090
.filename_area	dd filename_area ;+40
1076
.filter_area	dd Filter
1091
.filter_area	dd Filter
1077
.x:
1092
.x:
1078
.x_size 		dw 420 ;+48 ; Window X size
1093
.x_size 		dw 420 ;+48 ; Window X size
1079
.x_start		dw 10 ;+50 ; Window X position
1094
.x_start		dw 10 ;+50 ; Window X position
1080
.y:
1095
.y:
1081
.y_size 		dw 320 ;+52 ; Window y size
1096
.y_size 		dw 320 ;+52 ; Window y size
1082
.y_start		dw 10 ;+54 ; Window Y position
1097
.y_start		dw 10 ;+54 ; Window Y position
1083
 
1098
 
1084
default_dir db '/rd/1',0
1099
default_dir db '/rd/1',0
1085
 
1100
 
1086
communication_area_name:
1101
communication_area_name:
1087
	db 'FFFFFFFF_open_dialog',0
1102
	db 'FFFFFFFF_open_dialog',0
1088
open_dialog_name:
1103
open_dialog_name:
1089
	db 'opendial',0
1104
	db 'opendial',0
1090
communication_area_default_path:
1105
communication_area_default_path:
1091
	db '/rd/1/File managers/',0
1106
	db '/rd/1/File managers/',0
1092
 
1107
 
1093
Filter:
1108
Filter:
1094
dd Filter.end - Filter.1
1109
dd Filter.end - Filter.1
1095
.1:
1110
.1:
1096
db '3DS',0
1111
db '3DS',0
-
 
1112
db 'STL',0
1097
db 'PNG',0
1113
db 'PNG',0
1098
.end:
1114
.end:
1099
db 0
1115
db 0
1100
 
1116
 
1101
 
1117
 
1102
align 4
1118
align 4
1103
system_dir_0 db '/sys/lib/'
1119
system_dir_0 db '/sys/lib/'
1104
lib_name_0 db 'proc_lib.obj',0
1120
lib_name_0 db 'proc_lib.obj',0
1105
system_dir_1 db '/sys/lib/'
1121
system_dir_1 db '/sys/lib/'
1106
lib_name_1 db 'libimg.obj',0
1122
lib_name_1 db 'libimg.obj',0
1107
system_dir_2 db '/sys/lib/'
1123
system_dir_2 db '/sys/lib/'
1108
lib_name_2 db 'box_lib.obj',0
1124
lib_name_2 db 'box_lib.obj',0
1109
system_dir_3 db '/sys/lib/'
1125
system_dir_3 db '/sys/lib/'
1110
lib_name_3 db 'buf2d.obj',0
1126
lib_name_3 db 'buf2d.obj',0
1111
system_dir_4 db '/sys/lib/'
1127
system_dir_4 db '/sys/lib/'
1112
lib_name_4 db 'kmenu.obj',0
1128
lib_name_4 db 'kmenu.obj',0
1113
system_dir_5 db '/sys/lib/'
1129
system_dir_5 db '/sys/lib/'
1114
lib_name_5 db 'tinygl.obj',0
1130
lib_name_5 db 'tinygl.obj',0
1115
system_dir_6 db '/sys/lib/'
1131
system_dir_6 db '/sys/lib/'
1116
lib_name_6 db 'libini.obj',0
1132
lib_name_6 db 'libini.obj',0
1117
 
1133
 
1118
if lang eq ru
1134
if lang eq ru
1119
	head_f_i:
1135
	head_f_i:
1120
	head_f_l db '‘¨á⥬­ ï ®è¨¡ª ',0
1136
	head_f_l db '"‘¨á⥬­ ï ®è¨¡ª ',0
1121
	err_msg_found_lib_0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,0
1137
	err_msg_found_lib_0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,'" -tE',0
1122
	err_msg_import_0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
1138
	err_msg_import_0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,'" -tW',0
1123
	err_msg_found_lib_1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libimg.obj',39,0
1139
	err_msg_found_lib_1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libimg.obj',39,'" -tE',0
1124
	err_msg_import_1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0
1140
	err_msg_import_1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,'" -tW',0
1125
	err_msg_found_lib_2 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',39,0
1141
	err_msg_found_lib_2 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',39,'" -tE',0
1126
	err_msg_import_2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib',39,0
1142
	err_msg_import_2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib',39,'" -tW',0
1127
	err_msg_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'buf2d.obj',39,0
1143
	err_msg_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'buf2d.obj',39,'" -tE',0
1128
	err_msg_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,0
1144
	err_msg_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,'" -tW',0
1129
	err_msg_found_lib_4 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'kmenu.obj',39,0
1145
	err_msg_found_lib_4 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'kmenu.obj',39,'" -tE',0
1130
	err_msg_import_4 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0
1146
	err_msg_import_4 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,'" -tW',0
1131
	err_msg_found_lib_5 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'tinygl.obj',39,0
1147
	err_msg_found_lib_5 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'tinygl.obj',39,'" -tE',0
1132
	err_msg_import_5 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,0
1148
	err_msg_import_5 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,'" -tW',0
1133
	err_msg_found_lib_6 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libini.obj',39,0
1149
	err_msg_found_lib_6 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libini.obj',39,'" -tE',0
1134
	err_msg_import_6 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,0
1150
	err_msg_import_6 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,'" -tW',0
1135
else
1151
else
1136
	head_f_i:
1152
	head_f_i:
1137
	head_f_l db 'System error',0
1153
	head_f_l db '"System error',0
1138
	err_msg_found_lib_0 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,0
1154
	err_msg_found_lib_0 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,'" -tE',0
1139
	err_msg_import_0 db 'Error on load import library ',39,'proc_lib.obj',39,0
1155
	err_msg_import_0 db 'Error on load import library ',39,'proc_lib.obj',39,'" -tW',0
1140
	err_msg_found_lib_1 db 'Sorry I cannot found library ',39,'libimg.obj',39,0
1156
	err_msg_found_lib_1 db 'Sorry I cannot found library ',39,'libimg.obj',39,'" -tE',0
1141
	err_msg_import_1 db 'Error on load import library ',39,'libimg.obj',39,0
1157
	err_msg_import_1 db 'Error on load import library ',39,'libimg.obj',39,'" -tW',0
1142
	err_msg_found_lib_2 db 'Sorry I cannot found library ',39,'box_lib.obj',39,0
1158
	err_msg_found_lib_2 db 'Sorry I cannot found library ',39,'box_lib.obj',39,'" -tE',0
1143
	err_msg_import_2 db 'Error on load import library ',39,'box_lib.obj',39,0
1159
	err_msg_import_2 db 'Error on load import library ',39,'box_lib.obj',39,'" -tW',0
1144
	err_msg_found_lib_3 db 'Sorry I cannot found library ',39,'buf2d.obj',39,0
1160
	err_msg_found_lib_3 db 'Sorry I cannot found library ',39,'buf2d.obj',39,'" -tE',0
1145
	err_msg_import_3 db 'Error on load import library ',39,'buf2d.obj',39,0
1161
	err_msg_import_3 db 'Error on load import library ',39,'buf2d.obj',39,'" -tW',0
1146
	err_msg_found_lib_4 db 'Sorry I cannot found library ',39,'kmenu.obj',39,0
1162
	err_msg_found_lib_4 db 'Sorry I cannot found library ',39,'kmenu.obj',39,'" -tE',0
1147
	err_msg_import_4 db 'Error on load import library ',39,'kmenu.obj',39,0
1163
	err_msg_import_4 db 'Error on load import library ',39,'kmenu.obj',39,'" -tW',0
1148
	err_msg_found_lib_5 db 'Sorry I cannot found library ',39,'tinygl.obj',39,0
1164
	err_msg_found_lib_5 db 'Sorry I cannot found library ',39,'tinygl.obj',39,'" -tE',0
1149
	err_msg_import_5 db 'Error on load import library ',39,'tinygl',39,0
1165
	err_msg_import_5 db 'Error on load import library ',39,'tinygl',39,'" -tW',0
1150
	err_msg_found_lib_6 db 'Sorry I cannot found library ',39,'libini.obj',39,0
1166
	err_msg_found_lib_6 db 'Sorry I cannot found library ',39,'libini.obj',39,'" -tE',0
1151
	err_msg_import_6 db 'Error on load import library ',39,'libini',39,0
1167
	err_msg_import_6 db 'Error on load import library ',39,'libini',39,'" -tW',0
1152
end if
1168
end if
1153
 
1169
 
1154
align 4
1170
align 4
1155
l_libs_start:
1171
l_libs_start:
1156
	lib_0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
1172
	lib_0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
1157
		err_msg_found_lib_0, head_f_l, proclib_import,err_msg_import_0,head_f_i
1173
		err_msg_found_lib_0, head_f_l, proclib_import,err_msg_import_0,head_f_i
1158
	lib_1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\
1174
	lib_1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\
1159
		err_msg_found_lib_1, head_f_l, import_libimg, err_msg_import_1,head_f_i
1175
		err_msg_found_lib_1, head_f_l, import_libimg, err_msg_import_1,head_f_i
1160
	lib_2 l_libs lib_name_2, sys_path, file_name,  system_dir_2,\
1176
	lib_2 l_libs lib_name_2, sys_path, file_name,  system_dir_2,\
1161
		err_msg_found_lib_2, head_f_l, import_box_lib,err_msg_import_2,head_f_i
1177
		err_msg_found_lib_2, head_f_l, import_box_lib,err_msg_import_2,head_f_i
1162
	lib_3 l_libs lib_name_3, sys_path, file_name,  system_dir_3,\
1178
	lib_3 l_libs lib_name_3, sys_path, file_name,  system_dir_3,\
1163
		err_msg_found_lib_3, head_f_l, import_buf2d,  err_msg_import_3,head_f_i
1179
		err_msg_found_lib_3, head_f_l, import_buf2d,  err_msg_import_3,head_f_i
1164
	lib_4 l_libs lib_name_4, sys_path, file_name,  system_dir_4,\
1180
	lib_4 l_libs lib_name_4, sys_path, file_name,  system_dir_4,\
1165
		err_msg_found_lib_4, head_f_l, import_libkmenu,err_msg_import_4,head_f_i
1181
		err_msg_found_lib_4, head_f_l, import_libkmenu,err_msg_import_4,head_f_i
1166
	lib_5 l_libs lib_name_5, sys_path, file_name,  system_dir_5,\
1182
	lib_5 l_libs lib_name_5, sys_path, file_name,  system_dir_5,\
1167
		err_msg_found_lib_5, head_f_l, import_lib_tinygl,err_msg_import_5,head_f_i
1183
		err_msg_found_lib_5, head_f_l, import_lib_tinygl,err_msg_import_5,head_f_i
1168
	lib_6 l_libs lib_name_6, sys_path, file_name,  system_dir_6,\
1184
	lib_6 l_libs lib_name_6, sys_path, file_name,  system_dir_6,\
1169
		err_msg_found_lib_6, head_f_l, import_libini, err_msg_import_6,head_f_i 	
1185
		err_msg_found_lib_6, head_f_l, import_libini, err_msg_import_6,head_f_i 	
1170
l_libs_end:
1186
l_libs_end:
1171
 
1187
 
1172
align 4
1188
align 4
1173
import_libimg:
1189
import_libimg:
1174
	dd alib_init1
1190
	dd alib_init1
1175
	img_is_img  dd aimg_is_img
1191
	img_is_img  dd aimg_is_img
1176
	img_info    dd aimg_info
1192
	img_info    dd aimg_info
1177
	img_from_file dd aimg_from_file
1193
	img_from_file dd aimg_from_file
1178
	img_to_file dd aimg_to_file
1194
	img_to_file dd aimg_to_file
1179
	img_from_rgb dd aimg_from_rgb
1195
	img_from_rgb dd aimg_from_rgb
1180
	img_to_rgb  dd aimg_to_rgb
1196
	img_to_rgb  dd aimg_to_rgb
1181
	img_to_rgb2 dd aimg_to_rgb2
1197
	img_to_rgb2 dd aimg_to_rgb2
1182
	img_decode  dd aimg_decode
1198
	img_decode  dd aimg_decode
1183
	img_encode  dd aimg_encode
1199
	img_encode  dd aimg_encode
1184
	img_create  dd aimg_create
1200
	img_create  dd aimg_create
1185
	img_destroy dd aimg_destroy
1201
	img_destroy dd aimg_destroy
1186
	img_destroy_layer dd aimg_destroy_layer
1202
	img_destroy_layer dd aimg_destroy_layer
1187
	img_count   dd aimg_count
1203
	img_count   dd aimg_count
1188
	img_lock_bits dd aimg_lock_bits
1204
	img_lock_bits dd aimg_lock_bits
1189
	img_unlock_bits dd aimg_unlock_bits
1205
	img_unlock_bits dd aimg_unlock_bits
1190
	img_flip    dd aimg_flip
1206
	img_flip    dd aimg_flip
1191
	img_flip_layer dd aimg_flip_layer
1207
	img_flip_layer dd aimg_flip_layer
1192
	img_rotate  dd aimg_rotate
1208
	img_rotate  dd aimg_rotate
1193
	img_rotate_layer dd aimg_rotate_layer
1209
	img_rotate_layer dd aimg_rotate_layer
1194
	img_draw    dd aimg_draw
1210
	img_draw    dd aimg_draw
1195
 
1211
 
1196
	dd 0,0
1212
	dd 0,0
1197
	alib_init1   db 'lib_init',0
1213
	alib_init1   db 'lib_init',0
1198
	aimg_is_img  db 'img_is_img',0 ;®¯à¥¤¥«ï¥â ¯® ¤ ­­ë¬, ¬®¦¥â «¨ ¡¨¡«¨®â¥ª  ᤥ« âì ¨§ ­¨å ¨§®¡à ¦¥­¨¥
1214
	aimg_is_img  db 'img_is_img',0 ;®¯à¥¤¥«ï¥â ¯® ¤ ­­ë¬, ¬®¦¥â «¨ ¡¨¡«¨®â¥ª  ᤥ« âì ¨§ ­¨å ¨§®¡à ¦¥­¨¥
1199
	aimg_info    db 'img_info',0
1215
	aimg_info    db 'img_info',0
1200
	aimg_from_file db 'img_from_file',0
1216
	aimg_from_file db 'img_from_file',0
1201
	aimg_to_file db 'img_to_file',0
1217
	aimg_to_file db 'img_to_file',0
1202
	aimg_from_rgb db 'img_from_rgb',0
1218
	aimg_from_rgb db 'img_from_rgb',0
1203
	aimg_to_rgb  db 'img_to_rgb',0 ;¯à¥®¡à §®¢ ­¨¥ ¨§®¡à ¦¥­¨ï ¢ ¤ ­­ë¥ RGB
1219
	aimg_to_rgb  db 'img_to_rgb',0 ;¯à¥®¡à §®¢ ­¨¥ ¨§®¡à ¦¥­¨ï ¢ ¤ ­­ë¥ RGB
1204
	aimg_to_rgb2 db 'img_to_rgb2',0
1220
	aimg_to_rgb2 db 'img_to_rgb2',0
1205
	aimg_decode  db 'img_decode',0 ; ¢â®¬ â¨ç¥áª¨ ®¯à¥¤¥«ï¥â ä®à¬ â £à ä¨ç¥áª¨å ¤ ­­ëå
1221
	aimg_decode  db 'img_decode',0 ; ¢â®¬ â¨ç¥áª¨ ®¯à¥¤¥«ï¥â ä®à¬ â £à ä¨ç¥áª¨å ¤ ­­ëå
1206
	aimg_encode  db 'img_encode',0
1222
	aimg_encode  db 'img_encode',0
1207
	aimg_create  db 'img_create',0
1223
	aimg_create  db 'img_create',0
1208
	aimg_destroy db 'img_destroy',0
1224
	aimg_destroy db 'img_destroy',0
1209
	aimg_destroy_layer db 'img_destroy_layer',0
1225
	aimg_destroy_layer db 'img_destroy_layer',0
1210
	aimg_count   db 'img_count',0
1226
	aimg_count   db 'img_count',0
1211
	aimg_lock_bits db 'img_lock_bits',0
1227
	aimg_lock_bits db 'img_lock_bits',0
1212
	aimg_unlock_bits db 'img_unlock_bits',0
1228
	aimg_unlock_bits db 'img_unlock_bits',0
1213
	aimg_flip    db 'img_flip',0
1229
	aimg_flip    db 'img_flip',0
1214
	aimg_flip_layer db 'img_flip_layer',0
1230
	aimg_flip_layer db 'img_flip_layer',0
1215
	aimg_rotate  db 'img_rotate',0
1231
	aimg_rotate  db 'img_rotate',0
1216
	aimg_rotate_layer db 'img_rotate_layer',0
1232
	aimg_rotate_layer db 'img_rotate_layer',0
1217
	aimg_draw    db 'img_draw',0
1233
	aimg_draw    db 'img_draw',0
1218
 
1234
 
1219
align 4
1235
align 4
1220
proclib_import: ;®¯¨á ­¨¥ íªá¯®àâ¨à㥬ëå ä㭪権
1236
proclib_import: ;®¯¨á ­¨¥ íªá¯®àâ¨à㥬ëå ä㭪権
1221
	OpenDialog_Init dd aOpenDialog_Init
1237
	OpenDialog_Init dd aOpenDialog_Init
1222
	OpenDialog_Start dd aOpenDialog_Start
1238
	OpenDialog_Start dd aOpenDialog_Start
1223
dd 0,0
1239
dd 0,0
1224
	aOpenDialog_Init db 'OpenDialog_init',0
1240
	aOpenDialog_Init db 'OpenDialog_init',0
1225
	aOpenDialog_Start db 'OpenDialog_start',0
1241
	aOpenDialog_Start db 'OpenDialog_start',0
1226
 
1242
 
1227
align 4
1243
align 4
1228
import_buf2d:
1244
import_buf2d:
1229
	dd sz_init0
1245
	dd sz_init0
1230
	buf2d_create dd sz_buf2d_create
1246
	buf2d_create dd sz_buf2d_create
1231
	buf2d_create_f_img dd sz_buf2d_create_f_img
1247
	buf2d_create_f_img dd sz_buf2d_create_f_img
1232
	buf2d_clear dd sz_buf2d_clear
1248
	buf2d_clear dd sz_buf2d_clear
1233
	buf2d_draw dd sz_buf2d_draw
1249
	buf2d_draw dd sz_buf2d_draw
1234
	buf2d_delete dd sz_buf2d_delete
1250
	buf2d_delete dd sz_buf2d_delete
1235
	buf2d_resize dd sz_buf2d_resize
1251
	buf2d_resize dd sz_buf2d_resize
1236
	buf2d_line dd sz_buf2d_line
1252
	buf2d_line dd sz_buf2d_line
1237
	buf2d_rect_by_size dd sz_buf2d_rect_by_size
1253
	buf2d_rect_by_size dd sz_buf2d_rect_by_size
1238
	buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
1254
	buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
1239
	buf2d_circle dd sz_buf2d_circle
1255
	buf2d_circle dd sz_buf2d_circle
1240
	buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
1256
	buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
1241
	buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
1257
	buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
1242
	buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
1258
	buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
1243
	buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
1259
	buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
1244
	buf2d_bit_blt dd sz_buf2d_bit_blt
1260
	buf2d_bit_blt dd sz_buf2d_bit_blt
1245
	buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
1261
	buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
1246
	buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
1262
	buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
1247
	buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
1263
	buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
1248
	buf2d_draw_text dd sz_buf2d_draw_text
1264
	buf2d_draw_text dd sz_buf2d_draw_text
1249
	buf2d_crop_color dd sz_buf2d_crop_color
1265
	buf2d_crop_color dd sz_buf2d_crop_color
1250
	buf2d_offset_h dd sz_buf2d_offset_h
1266
	buf2d_offset_h dd sz_buf2d_offset_h
1251
	buf2d_set_pixel dd sz_buf2d_set_pixel
1267
	buf2d_set_pixel dd sz_buf2d_set_pixel
1252
	dd 0,0
1268
	dd 0,0
1253
	sz_init0 db 'lib_init',0
1269
	sz_init0 db 'lib_init',0
1254
	sz_buf2d_create db 'buf2d_create',0
1270
	sz_buf2d_create db 'buf2d_create',0
1255
	sz_buf2d_create_f_img db 'buf2d_create_f_img',0
1271
	sz_buf2d_create_f_img db 'buf2d_create_f_img',0
1256
	sz_buf2d_clear db 'buf2d_clear',0
1272
	sz_buf2d_clear db 'buf2d_clear',0
1257
	sz_buf2d_draw db 'buf2d_draw',0
1273
	sz_buf2d_draw db 'buf2d_draw',0
1258
	sz_buf2d_delete db 'buf2d_delete',0
1274
	sz_buf2d_delete db 'buf2d_delete',0
1259
	sz_buf2d_resize db 'buf2d_resize',0
1275
	sz_buf2d_resize db 'buf2d_resize',0
1260
	sz_buf2d_line db 'buf2d_line',0
1276
	sz_buf2d_line db 'buf2d_line',0
1261
	sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
1277
	sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
1262
	sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
1278
	sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
1263
	sz_buf2d_circle db 'buf2d_circle',0
1279
	sz_buf2d_circle db 'buf2d_circle',0
1264
	sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
1280
	sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
1265
	sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
1281
	sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
1266
	sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
1282
	sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
1267
	sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
1283
	sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
1268
	sz_buf2d_bit_blt db 'buf2d_bit_blt',0
1284
	sz_buf2d_bit_blt db 'buf2d_bit_blt',0
1269
	sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
1285
	sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
1270
	sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
1286
	sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
1271
	sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
1287
	sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
1272
	sz_buf2d_draw_text db 'buf2d_draw_text',0
1288
	sz_buf2d_draw_text db 'buf2d_draw_text',0
1273
	sz_buf2d_crop_color db 'buf2d_crop_color',0
1289
	sz_buf2d_crop_color db 'buf2d_crop_color',0
1274
	sz_buf2d_offset_h db 'buf2d_offset_h',0
1290
	sz_buf2d_offset_h db 'buf2d_offset_h',0
1275
	sz_buf2d_set_pixel db 'buf2d_set_pixel',0
1291
	sz_buf2d_set_pixel db 'buf2d_set_pixel',0
1276
 
1292
 
1277
align 4
1293
align 4
1278
import_box_lib:
1294
import_box_lib:
1279
	dd sz_init1
1295
	dd sz_init1
1280
	edit_box_draw dd sz_edit_box_draw
1296
	edit_box_draw dd sz_edit_box_draw
1281
	edit_box_key dd sz_edit_box_key
1297
	edit_box_key dd sz_edit_box_key
1282
	edit_box_mouse dd sz_edit_box_mouse
1298
	edit_box_mouse dd sz_edit_box_mouse
1283
	edit_box_set_text dd sz_edit_box_set_text
1299
	edit_box_set_text dd sz_edit_box_set_text
1284
	scrollbar_ver_draw dd sz_scrollbar_ver_draw
1300
	scrollbar_ver_draw dd sz_scrollbar_ver_draw
1285
	scrollbar_hor_draw dd sz_scrollbar_hor_draw
1301
	scrollbar_hor_draw dd sz_scrollbar_hor_draw
1286
 
1302
 
1287
	tl_data_init dd sz_tl_data_init
1303
	tl_data_init dd sz_tl_data_init
1288
	tl_data_clear dd sz_tl_data_clear
1304
	tl_data_clear dd sz_tl_data_clear
1289
	tl_info_clear dd sz_tl_info_clear
1305
	tl_info_clear dd sz_tl_info_clear
1290
	tl_key dd sz_tl_key
1306
	tl_key dd sz_tl_key
1291
	tl_mouse dd sz_tl_mouse
1307
	tl_mouse dd sz_tl_mouse
1292
	tl_draw dd sz_tl_draw
1308
	tl_draw dd sz_tl_draw
1293
	tl_info_undo dd sz_tl_info_undo
1309
	tl_info_undo dd sz_tl_info_undo
1294
	tl_info_redo dd sz_tl_info_redo
1310
	tl_info_redo dd sz_tl_info_redo
1295
	tl_node_add dd sz_tl_node_add
1311
	tl_node_add dd sz_tl_node_add
1296
	tl_node_set_data dd sz_tl_node_set_data
1312
	tl_node_set_data dd sz_tl_node_set_data
1297
	tl_node_get_data dd sz_tl_node_get_data
1313
	tl_node_get_data dd sz_tl_node_get_data
1298
	tl_node_delete dd sz_tl_node_delete
1314
	tl_node_delete dd sz_tl_node_delete
1299
	tl_node_move_up dd sz_tl_node_move_up
1315
	tl_node_move_up dd sz_tl_node_move_up
1300
	tl_node_move_down dd sz_tl_node_move_down
1316
	tl_node_move_down dd sz_tl_node_move_down
1301
	tl_cur_beg dd sz_tl_cur_beg
1317
	tl_cur_beg dd sz_tl_cur_beg
1302
	tl_cur_next dd sz_tl_cur_next
1318
	tl_cur_next dd sz_tl_cur_next
1303
	tl_cur_perv dd sz_tl_cur_perv
1319
	tl_cur_perv dd sz_tl_cur_perv
1304
	tl_node_close_open dd sz_tl_node_close_open
1320
	tl_node_close_open dd sz_tl_node_close_open
1305
	tl_node_lev_inc dd sz_tl_node_lev_inc
1321
	tl_node_lev_inc dd sz_tl_node_lev_inc
1306
	tl_node_lev_dec dd sz_tl_node_lev_dec
1322
	tl_node_lev_dec dd sz_tl_node_lev_dec
1307
	tl_node_poi_get_info dd sz_tl_node_poi_get_info
1323
	tl_node_poi_get_info dd sz_tl_node_poi_get_info
1308
	tl_node_poi_get_next_info dd sz_tl_node_poi_get_next_info
1324
	tl_node_poi_get_next_info dd sz_tl_node_poi_get_next_info
1309
	tl_node_poi_get_data dd sz_tl_node_poi_get_data
1325
	tl_node_poi_get_data dd sz_tl_node_poi_get_data
1310
 
1326
 
1311
	dd 0,0
1327
	dd 0,0
1312
	sz_init1 db 'lib_init',0
1328
	sz_init1 db 'lib_init',0
1313
	sz_edit_box_draw db 'edit_box',0
1329
	sz_edit_box_draw db 'edit_box',0
1314
	sz_edit_box_key db 'edit_box_key',0
1330
	sz_edit_box_key db 'edit_box_key',0
1315
	sz_edit_box_mouse db 'edit_box_mouse',0
1331
	sz_edit_box_mouse db 'edit_box_mouse',0
1316
	sz_edit_box_set_text db 'edit_box_set_text',0
1332
	sz_edit_box_set_text db 'edit_box_set_text',0
1317
	sz_scrollbar_ver_draw db 'scrollbar_v_draw',0
1333
	sz_scrollbar_ver_draw db 'scrollbar_v_draw',0
1318
	sz_scrollbar_hor_draw db 'scrollbar_h_draw',0
1334
	sz_scrollbar_hor_draw db 'scrollbar_h_draw',0
1319
 
1335
 
1320
	sz_tl_data_init db 'tl_data_init',0
1336
	sz_tl_data_init db 'tl_data_init',0
1321
	sz_tl_data_clear db 'tl_data_clear',0
1337
	sz_tl_data_clear db 'tl_data_clear',0
1322
	sz_tl_info_clear db 'tl_info_clear',0
1338
	sz_tl_info_clear db 'tl_info_clear',0
1323
	sz_tl_key db 'tl_key',0
1339
	sz_tl_key db 'tl_key',0
1324
	sz_tl_mouse db 'tl_mouse',0
1340
	sz_tl_mouse db 'tl_mouse',0
1325
	sz_tl_draw db 'tl_draw',0
1341
	sz_tl_draw db 'tl_draw',0
1326
	sz_tl_info_undo db 'tl_info_undo',0
1342
	sz_tl_info_undo db 'tl_info_undo',0
1327
	sz_tl_info_redo db 'tl_info_redo',0
1343
	sz_tl_info_redo db 'tl_info_redo',0
1328
	sz_tl_node_add db 'tl_node_add',0
1344
	sz_tl_node_add db 'tl_node_add',0
1329
	sz_tl_node_set_data db 'tl_node_set_data',0
1345
	sz_tl_node_set_data db 'tl_node_set_data',0
1330
	sz_tl_node_get_data db 'tl_node_get_data',0
1346
	sz_tl_node_get_data db 'tl_node_get_data',0
1331
	sz_tl_node_delete db 'tl_node_delete',0
1347
	sz_tl_node_delete db 'tl_node_delete',0
1332
	sz_tl_node_move_up db 'tl_node_move_up',0
1348
	sz_tl_node_move_up db 'tl_node_move_up',0
1333
	sz_tl_node_move_down db 'tl_node_move_down',0
1349
	sz_tl_node_move_down db 'tl_node_move_down',0
1334
	sz_tl_cur_beg db 'tl_cur_beg',0
1350
	sz_tl_cur_beg db 'tl_cur_beg',0
1335
	sz_tl_cur_next db 'tl_cur_next',0
1351
	sz_tl_cur_next db 'tl_cur_next',0
1336
	sz_tl_cur_perv db 'tl_cur_perv',0
1352
	sz_tl_cur_perv db 'tl_cur_perv',0
1337
	sz_tl_node_close_open db 'tl_node_close_open',0
1353
	sz_tl_node_close_open db 'tl_node_close_open',0
1338
	sz_tl_node_lev_inc db 'tl_node_lev_inc',0
1354
	sz_tl_node_lev_inc db 'tl_node_lev_inc',0
1339
	sz_tl_node_lev_dec db 'tl_node_lev_dec',0
1355
	sz_tl_node_lev_dec db 'tl_node_lev_dec',0
1340
	sz_tl_node_poi_get_info db 'tl_node_poi_get_info',0
1356
	sz_tl_node_poi_get_info db 'tl_node_poi_get_info',0
1341
	sz_tl_node_poi_get_next_info db 'tl_node_poi_get_next_info',0
1357
	sz_tl_node_poi_get_next_info db 'tl_node_poi_get_next_info',0
1342
	sz_tl_node_poi_get_data db 'tl_node_poi_get_data',0
1358
	sz_tl_node_poi_get_data db 'tl_node_poi_get_data',0
1343
 
1359
 
1344
align 4
1360
align 4
1345
import_libkmenu:
1361
import_libkmenu:
1346
	kmenu_init		       dd akmenu_init
1362
	kmenu_init		       dd akmenu_init
1347
	kmainmenu_draw		       dd akmainmenu_draw
1363
	kmainmenu_draw		       dd akmainmenu_draw
1348
	kmainmenu_dispatch_cursorevent dd akmainmenu_dispatch_cursorevent
1364
	kmainmenu_dispatch_cursorevent dd akmainmenu_dispatch_cursorevent
1349
	ksubmenu_new		       dd aksubmenu_new
1365
	ksubmenu_new		       dd aksubmenu_new
1350
	ksubmenu_delete 	       dd aksubmenu_delete
1366
	ksubmenu_delete 	       dd aksubmenu_delete
1351
	ksubmenu_draw		       dd aksubmenu_draw
1367
	ksubmenu_draw		       dd aksubmenu_draw
1352
	ksubmenu_add		       dd aksubmenu_add
1368
	ksubmenu_add		       dd aksubmenu_add
1353
	kmenuitem_new		       dd akmenuitem_new
1369
	kmenuitem_new		       dd akmenuitem_new
1354
	kmenuitem_delete	       dd akmenuitem_delete
1370
	kmenuitem_delete	       dd akmenuitem_delete
1355
	kmenuitem_draw		       dd akmenuitem_draw
1371
	kmenuitem_draw		       dd akmenuitem_draw
1356
dd 0,0
1372
dd 0,0
1357
	akmenu_init			db 'kmenu_init',0
1373
	akmenu_init			db 'kmenu_init',0
1358
	akmainmenu_draw 		db 'kmainmenu_draw',0
1374
	akmainmenu_draw 		db 'kmainmenu_draw',0
1359
	akmainmenu_dispatch_cursorevent db 'kmainmenu_dispatch_cursorevent',0
1375
	akmainmenu_dispatch_cursorevent db 'kmainmenu_dispatch_cursorevent',0
1360
	aksubmenu_new			db 'ksubmenu_new',0
1376
	aksubmenu_new			db 'ksubmenu_new',0
1361
	aksubmenu_delete		db 'ksubmenu_delete',0
1377
	aksubmenu_delete		db 'ksubmenu_delete',0
1362
	aksubmenu_draw			db 'ksubmenu_draw',0
1378
	aksubmenu_draw			db 'ksubmenu_draw',0
1363
	aksubmenu_add			db 'ksubmenu_add',0
1379
	aksubmenu_add			db 'ksubmenu_add',0
1364
	akmenuitem_new			db 'kmenuitem_new',0
1380
	akmenuitem_new			db 'kmenuitem_new',0
1365
	akmenuitem_delete		db 'kmenuitem_delete',0
1381
	akmenuitem_delete		db 'kmenuitem_delete',0
1366
	akmenuitem_draw 		db 'kmenuitem_draw',0
1382
	akmenuitem_draw 		db 'kmenuitem_draw',0
1367
 
1383
 
1368
align 4
1384
align 4
1369
import_lib_tinygl:
1385
import_lib_tinygl:
1370
macro E_LIB n
1386
macro E_LIB n
1371
{
1387
{
1372
	n dd sz_#n
1388
	n dd sz_#n
1373
}
1389
}
1374
include '../../develop/libraries/TinyGL/asm_fork/export.inc'
1390
include '../../develop/libraries/TinyGL/asm_fork/export.inc'
1375
	dd 0,0
1391
	dd 0,0
1376
macro E_LIB n
1392
macro E_LIB n
1377
{
1393
{
1378
	sz_#n db `n,0
1394
	sz_#n db `n,0
1379
}
1395
}
1380
include '../../develop/libraries/TinyGL/asm_fork/export.inc'
1396
include '../../develop/libraries/TinyGL/asm_fork/export.inc'
1381
 
1397
 
1382
align 4
1398
align 4
1383
import_libini:
1399
import_libini:
1384
	dd alib_init0
1400
	dd alib_init0
1385
	ini_get_str   dd aini_get_str
1401
	ini_get_str   dd aini_get_str
1386
	ini_get_int   dd aini_get_int
1402
	ini_get_int   dd aini_get_int
1387
	ini_get_color dd aini_get_color
1403
	ini_get_color dd aini_get_color
1388
dd 0,0
1404
dd 0,0
1389
	alib_init0     db 'lib_init',0
1405
	alib_init0     db 'lib_init',0
1390
	aini_get_str   db 'ini_get_str',0
1406
	aini_get_str   db 'ini_get_str',0
1391
	aini_get_int   db 'ini_get_int',0
1407
	aini_get_int   db 'ini_get_int',0
1392
	aini_get_color db 'ini_get_color',0
1408
	aini_get_color db 'ini_get_color',0
1393
 
1409
 
1394
align 4
1410
align 4
1395
mouse_dd dd 0
1411
mouse_dd dd 0
1396
last_time dd 0
1412
last_time dd 0
1397
angle_dxm dd 1.9111 ;~ 3d_wnd_w/180 - ¯à¨¡ ¢«¥­¨¥ 㣫®¢ ¯®¢®à®â  áæ¥­ë ¯à¨ ¢à é¥­¨¨ ¬ë襩
1413
angle_dxm dd 1.9111 ;~ 3d_wnd_w/180 - ¯à¨¡ ¢«¥­¨¥ 㣫®¢ ¯®¢®à®â  áæ¥­ë ¯à¨ ¢à é¥­¨¨ ¬ë襩
1398
angle_dym dd 1.7333 ;~ 3d_wnd_h/180
1414
angle_dym dd 1.7333 ;~ 3d_wnd_h/180
1399
ratio dd 1.1025 ;~ 3d_wnd_w/3d_wnd_h
1415
ratio dd 1.1025 ;~ 3d_wnd_w/3d_wnd_h
1400
 
1416
 
1401
align 4
1417
align 4
1402
buf_ogl:
1418
buf_ogl:
1403
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1419
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1404
	dw 3d_wnd_l,3d_wnd_t ;+4 left,top
1420
	dw 3d_wnd_l,3d_wnd_t ;+4 left,top
1405
.w: dd 3d_wnd_w
1421
.w: dd 3d_wnd_w
1406
.h: dd 3d_wnd_h
1422
.h: dd 3d_wnd_h
1407
.color: dd 0xffffd0
1423
.color: dd 0xffffd0
1408
	dd 24 ;+16 color,bit in pixel
1424
	dd 24 ;+16 color,bit in pixel
1409
 
1425
 
1410
align 4
1426
align 4
1411
buf_1:
1427
buf_1:
1412
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1428
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1413
	dw 0,0 ;+4 left,top
1429
	dw 0,0 ;+4 left,top
1414
	dd 128,144 ;+8 w,h
1430
	dd 128,144 ;+8 w,h
1415
	dd 0,24 ;+16 color,bit in pixel
1431
	dd 0,24 ;+16 color,bit in pixel
1416
 
1432
 
1417
align 4
1433
align 4
1418
el_focus dd tree1
1434
el_focus dd tree1
1419
tree1 tree_list size_one_list,300+2, tl_key_no_edit+tl_draw_par_line,\
1435
tree1 tree_list size_one_list,300+2, tl_key_no_edit+tl_draw_par_line,\
1420
	16,16, 0xffffff,0xb0d0ff,0x400040, 5,47,195-16,250, 16,list_offs_text,0, el_focus,\
1436
	16,16, 0xffffff,0xb0d0ff,0x400040, 5,47,195-16,250, 16,list_offs_text,0, el_focus,\
1421
	w_scr_t1,0
1437
	w_scr_t1,0
1422
 
1438
 
1423
align 4
1439
align 4
1424
w_scr_t1 scrollbar 16,0, 3,0, 15, 100, 0,0, 0,0,0, 1
1440
w_scr_t1 scrollbar 16,0, 3,0, 15, 100, 0,0, 0,0,0, 1
1425
 
1441
 
1426
align 4
1442
align 4
1427
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
1443
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
1428
;sizeof.TinyGLContext = 28
1444
;sizeof.TinyGLContext = 28
1429
 
1445
 
1430
qObj dd 0
1446
qObj dd 0
1431
 
1447
 
1432
light_position dd 0.0, 0.0, -2.0, 1.0 ;  á¯®«®¦¥­¨¥ ¨áâ®ç­¨ª  [0][1][2]
1448
light_position dd 0.0, 0.0, -2.0, 1.0 ;  á¯®«®¦¥­¨¥ ¨áâ®ç­¨ª  [0][1][2]
1433
	;[3] = (0.0 - ¡¥áª®­¥ç­® 㤠«¥­­ë© ¨áâ®ç­¨ª, 1.0 - ¨áâ®ç­¨ª á¢¥â  ­  ®¯à¥¤¥«¥­­®¬ à ááâ®ï­¨¨)
1449
	;[3] = (0.0 - ¡¥áª®­¥ç­® 㤠«¥­­ë© ¨áâ®ç­¨ª, 1.0 - ¨áâ®ç­¨ª á¢¥â  ­  ®¯à¥¤¥«¥­­®¬ à ááâ®ï­¨¨)
1434
light_dir dd 0.0,0.0,0.0 ;­ ¯à ¢«¥­¨¥ « ¬¯ë
1450
light_dir dd 0.0,0.0,0.0 ;­ ¯à ¢«¥­¨¥ « ¬¯ë
1435
 
1451
 
1436
mat_specular dd 0.3, 0.3, 0.3, 1.0 ; –¢¥â ¡«¨ª 
1452
mat_specular dd 0.3, 0.3, 0.3, 1.0 ; –¢¥â ¡«¨ª 
1437
mat_shininess dd 3.0 ;  §¬¥à ¡«¨ª  (®¡à â­ ï ¯à®¯®àæ¨ï)
1453
mat_shininess dd 3.0 ;  §¬¥à ¡«¨ª  (®¡à â­ ï ¯à®¯®àæ¨ï)
1438
white_light dd 0.8, 0.8, 0.8, 1.0 ; –¢¥â ¨ ¨­â¥­á¨¢­®áâì ®á¢¥é¥­¨ï, £¥­¥à¨à㥬®£® ¨áâ®ç­¨ª®¬
1454
white_light dd 0.8, 0.8, 0.8, 1.0 ; –¢¥â ¨ ¨­â¥­á¨¢­®áâì ®á¢¥é¥­¨ï, £¥­¥à¨à㥬®£® ¨áâ®ç­¨ª®¬
1439
lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ;  à ¬¥âàë ä®­®¢®£® ®á¢¥é¥­¨ï
1455
lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ;  à ¬¥âàë ä®­®¢®£® ®á¢¥é¥­¨ï
1440
 
1456
 
1441
if lang eq ru
1457
if lang eq ru
1442
capt db 'info 3ds [user] ¢¥àá¨ï 18.04.17',0 ;¯®¤¯¨áì ®ª­ 
1458
capt db 'info 3ds [user] ¢¥àá¨ï 14.03.19',0 ;¯®¤¯¨áì ®ª­ 
1443
else
1459
else
1444
capt db 'info 3ds [user] version 18.04.17',0 ;window caption
1460
capt db 'info 3ds [user] version 14.03.19',0 ;window caption
1445
end if
1461
end if
1446
 
1462
 
1447
align 16
1463
align 16
1448
i_end:
1464
i_end:
1449
	procinfo process_information
1465
	procinfo process_information
1450
	run_file_70 FileInfoBlock
1466
	run_file_70 FileInfoBlock
1451
	sc system_colors
1467
	sc system_colors
1452
	angle_x rd 1 ;ã£«ë ¯®¢®à®â  á業ë
1468
	angle_x rd 1 ;ã£«ë ¯®¢®à®â  á業ë
1453
	angle_y rd 1
1469
	angle_y rd 1
1454
	angle_z rd 1
1470
	angle_z rd 1
1455
	color_ox rd 1
1471
	color_ox rd 1
1456
	color_oy rd 1
1472
	color_oy rd 1
1457
	color_oz rd 1
1473
	color_oz rd 1
1458
	color_bk rd 3
1474
	color_bk rd 3
1459
	color_vert rd 1
1475
	color_vert rd 1
1460
	color_face rd 1
1476
	color_face rd 1
1461
	color_select rd 1
1477
	color_select rd 1
1462
align 16
1478
align 16
1463
	rb 4096
1479
	rb 4096
1464
stacktop:
1480
stacktop:
1465
	sys_path rb 2048
1481
	sys_path rb 2048
1466
	file_name rb 4096
1482
	file_name rb 4096
1467
	plugin_path rb 4096
1483
	plugin_path rb 4096
1468
	openfile_path rb 4096
1484
	openfile_path rb 4096
1469
	filename_area rb 256
1485
	filename_area rb 256
1470
mem:
1486
mem: