Subversion Repositories Kolibri OS

Rev

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

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