Subversion Repositories Kolibri OS

Rev

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

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