Subversion Repositories Kolibri OS

Rev

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

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