Subversion Repositories Kolibri OS

Rev

Rev 5390 | Rev 7193 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5390 Rev 6247
Line 1... Line 1...
1
use32
1
use32
2
	org 0x0
2
	org 0x0
3
	db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
3
	db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
4
	dd 0x1
-
 
5
	dd start
-
 
6
	dd i_end ;à §¬¥à ¯à¨«®¦¥­¨ï
4
	dd 1, start, i_end, mem, stacktop, 0, sys_path
7
	dd mem
-
 
8
	dd stacktop
-
 
9
	dd 0
-
 
10
	dd sys_path
-
 
Line 11... Line 5...
11
 
5
 
12
include '../../../../programs/macros.inc'
6
include '../../../../programs/macros.inc'
13
include '../../../../programs/proc32.inc'
7
include '../../../../programs/proc32.inc'
14
include '../../../../programs/develop/libraries/box_lib/load_lib.mac'
8
include '../../../../programs/KOSfuncs.inc'
15
include '../../../dll.inc'
9
include '../../../../programs/load_img.inc'
16
include 'vox_draw.inc'
10
include 'vox_draw.inc'
17
include 'vox_rotate.inc'
11
include 'vox_rotate.inc'
Line 18... Line 12...
18
include 'str.inc'
12
include 'str.inc'
19
 
13
 
20
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
-
 
21
caption db 'Voxel editor 02.02.15',0 ;¯®¤¯¨áì ®ª­ 
-
 
22
 
-
 
23
struct FileInfoBlock
-
 
24
	Function dd ?
-
 
25
	Position dd ?
-
 
26
	Flags	 dd ?
-
 
27
	Count	 dd ?
-
 
28
	Buffer	 dd ?
-
 
29
		db ?
-
 
30
	FileName dd ?
-
 
31
ends
-
 
32
 
-
 
Line 33... Line 14...
33
run_file_70 FileInfoBlock
14
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
34
image_data dd 0 ;㪠§ â¥«ì ­  ¢à¥¬¥­­ãî ¯ ¬ïâì. ¤«ï ­ã¦¥­ ¯à¥®¡à §®¢ ­¨ï ¨§®¡à ¦¥­¨ï
15
caption db 'Voxel editor 18.02.16',0 ;¯®¤¯¨áì ®ª­ 
35
 
-
 
36
fn_toolbar db 'toolbar.png',0
16
 
37
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3
17
fn_toolbar db 'toolbar.png',0
38
IMAGE_TOOLBAR_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*27
-
 
Line 39... Line 18...
39
image_data_toolbar dd 0
18
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3
40
cursors_count equ 4
19
image_data_toolbar dd 0
41
IMAGE_CURSORS_SIZE equ 4096*cursors_count ;à §¬¥à ª à⨭ª¨ á ªãàá®à ¬¨
20
cursors_count equ 4
42
 
21
 
Line 63... Line 42...
63
key_s_zoom db 's_zoom',0
42
key_s_zoom db 's_zoom',0
64
key_t_size db 'tile_size',0
43
key_t_size db 'tile_size',0
65
key_f_size db 'file_size',0
44
key_f_size db 'file_size',0
66
key_col_b db 'c_background',0
45
key_col_b db 'c_background',0
Line 67... Line -...
67
 
-
 
68
macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨©
-
 
69
	;path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥­­®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬
-
 
70
	if path eqtype '' ;¯à®¢¥à塞 § ¤ ­ «¨ áâப®© ¯ à ¬¥âà path
-
 
71
		jmp @f
-
 
72
			local .path_str
-
 
73
			.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
-
 
74
			db 0
-
 
75
		@@:
-
 
76
		;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
-
 
77
		copy_path .path_str,[32],file_name,0x0
-
 
78
	else
-
 
79
		copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
-
 
80
	end if
-
 
81
 
-
 
82
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
-
 
83
	mov [buf],eax
-
 
84
 
-
 
85
	mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
-
 
86
	mov [run_file_70.Function], 0
-
 
87
	mov [run_file_70.Position], 0
-
 
88
	mov [run_file_70.Flags], 0
-
 
89
	mov [run_file_70.Count], dword size
-
 
90
	m2m [run_file_70.Buffer], [buf]
-
 
91
	mov byte[run_file_70+20], 0
-
 
92
	mov [run_file_70.FileName], file_name
-
 
93
	mov ebx,run_file_70
-
 
94
	int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
-
 
95
	cmp ebx,0xffffffff
-
 
96
	je @f
-
 
97
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
-
 
98
		stdcall dword[img_decode], dword[buf],ebx,0
-
 
99
		mov dword[image_data],eax
-
 
100
		;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
-
 
101
		stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
-
 
102
		;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
-
 
103
		stdcall dword[img_destroy], dword[image_data]
-
 
104
	@@:
-
 
105
}
-
 
106
 
46
 
107
OT_MAP_X  equ  0
47
OT_MAP_X  equ  0
108
OT_MAP_Y  equ  0
48
OT_MAP_Y  equ  0
109
OT_CAPT_X_COLOR equ  5 ;®âáâ㯠¤«ï ¯®¤¯¨á¨ 梥â 
49
OT_CAPT_X_COLOR equ  5 ;®âáâ㯠¤«ï ¯®¤¯¨á¨ 梥â 
110
OT_CAPT_Y_COLOR equ 30
50
OT_CAPT_Y_COLOR equ 30
111
PEN_MODE_NONE equ -1
51
PEN_MODE_NONE equ -1
112
PEN_MODE_CLEAR equ 0 ;०¨¬ áâ¨à ­¨ï
52
PEN_MODE_CLEAR equ 0 ;०¨¬ áâ¨à ­¨ï
113
PEN_MODE_SELECT_COLOR equ 2 ;०¨¬ ¢ë¡®à  梥â 
53
PEN_MODE_SELECT_COLOR equ 2 ;०¨¬ ¢ë¡®à  梥â 
Line -... Line 54...
-
 
54
PEN_MODE_BRUSH equ 3 ;०¨¬ à ¡®âë á ª¨áâìî
-
 
55
 
114
PEN_MODE_BRUSH equ 3 ;०¨¬ à ¡®âë á ª¨áâìî
56
run_file_70 FileInfoBlock
115
 
57
 
116
align 4
58
align 4
117
start:
59
start:
118
	load_libraries l_libs_start,l_libs_end
60
	load_libraries l_libs_start,l_libs_end
-
 
61
	;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨«¨áì ¡¨¡«¨®â¥ª¨
119
	;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ¡¨¡«¨®â¥ª 
62
	mov	ebp,lib_0
120
	mov	ebp,lib_2
63
	.test_lib_open:
121
	cmp	dword [ebp+ll_struc_size-4],0
64
	cmp	dword [ebp+ll_struc_size-4],0
122
	jz	@f
65
	jz	@f
-
 
66
		mcall SF_TERMINATE_PROCESS ;exit not correct
-
 
67
	@@:
-
 
68
	add ebp,ll_struc_size
123
		mcall -1 ;exit not correct
69
	cmp ebp,l_libs_end
124
	@@:
70
	jl .test_lib_open
125
	mcall 48,3,sc,sizeof.system_colors
71
	mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
Line 126... Line 72...
126
	mcall 40,0x27
72
	mcall SF_SET_EVENTS_MASK,0xC0000027
127
	stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª  ¤¨ «®£ 
73
	stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª  ¤¨ «®£ 
128
 
74
 
Line 170... Line 116...
170
	mov [buf_pl.w],eax
116
	mov [buf_pl.w],eax
171
	add eax,[tile_size]
117
	add eax,[tile_size]
172
	mov [buf_pl.h],eax
118
	mov [buf_pl.h],eax
Line 173... Line 119...
173
 
119
 
174
	;*** § £à㧪  ªãàá®à®¢
120
	;*** § £à㧪  ªãàá®à®¢
175
	load_image_file 'cursors_gr.png',image_data_toolbar,IMAGE_CURSORS_SIZE
121
	load_image_file 'cursors_gr.png',image_data_toolbar
176
	stdcall [buf2d_create_f_img], buf_curs_8,[image_data_toolbar] ;ᮧ¤ ¥¬ ¡ãä¥à
122
	stdcall [buf2d_create_f_img], buf_curs_8,[image_data_toolbar] ;ᮧ¤ ¥¬ ¡ãä¥à
Line 177... Line 123...
177
	stdcall mem.Free,[image_data_toolbar] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
123
	stdcall mem.Free,[image_data_toolbar] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
178
 
124
 
179
	load_image_file 'cursors.png',image_data_toolbar, IMAGE_CURSORS_SIZE
125
	load_image_file 'cursors.png',image_data_toolbar
Line 180... Line 126...
180
	stdcall [buf2d_create_f_img], buf_curs,[image_data_toolbar] ;ᮧ¤ ¥¬ ¡ãä¥à
126
	stdcall [buf2d_create_f_img], buf_curs,[image_data_toolbar] ;ᮧ¤ ¥¬ ¡ãä¥à
181
	stdcall mem.Free,[image_data_toolbar] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
127
	stdcall mem.Free,[image_data_toolbar] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
Line 189... Line 135...
189
	stdcall [buf2d_create], buf_pl ;ᮧ¤ ­¨¥ ¡ãä¥à  ¤«ï á¥ç¥­¨ï
135
	stdcall [buf2d_create], buf_pl ;ᮧ¤ ­¨¥ ¡ãä¥à  ¤«ï á¥ç¥­¨ï
Line 190... Line 136...
190
 
136
 
191
	stdcall [buf2d_vox_brush_create], buf_vox_g3, vox_6_7_z
137
	stdcall [buf2d_vox_brush_create], buf_vox_g3, vox_6_7_z
Line 192... Line 138...
192
	stdcall [buf2d_vox_brush_create], buf_vox_g2, vox_6_4_z
138
	stdcall [buf2d_vox_brush_create], buf_vox_g2, vox_6_4_z
Line 193... Line 139...
193
 
139
 
194
	load_image_file fn_toolbar, image_data_toolbar,IMAGE_TOOLBAR_SIZE
140
	load_image_file fn_toolbar, image_data_toolbar
Line 195... Line 141...
195
 
141
 
Line 205... Line 151...
205
red_win:
151
red_win:
206
	call draw_window
152
	call draw_window
Line 207... Line 153...
207
 
153
 
208
align 4
154
align 4
209
still:
155
still:
Line 210... Line 156...
210
	mcall 10
156
	mcall SF_WAIT_EVENT
211
 
157
 
212
	cmp al,1
158
	cmp al,1
213
	jz red_win
159
	jz red_win
214
	cmp al,2
160
	cmp al,2
215
	jz key
161
	jz key
216
	cmp al,3
162
	cmp al,3
217
	jz button
163
	jz button
218
	cmp al,6
164
	cmp al,6
219
	jne @f
165
	jne @f
220
		mcall 9,procinfo,-1
166
		mcall SF_THREAD_INFO,procinfo,-1
221
		cmp ax,word[procinfo+4]
167
		cmp ax,word[procinfo+4]
222
		jne @f ;®ª­® ­¥  ªâ¨¢­®
168
		jne @f ;®ª­® ­¥  ªâ¨¢­®
223
		call mouse
169
		call mouse
Line 224... Line 170...
224
	@@:
170
	@@:
225
	jmp still
171
	jmp still
226
 
172
 
227
align 4
173
align 4
228
mouse:
174
mouse:
229
	pushad
175
	pushad
230
	mcall 37,2
176
	mcall SF_MOUSE_GET,SSF_BUTTON
231
	bt eax,1 ;right button
177
	bt eax,1 ;right button
232
	jnc @f
178
	jnc @f
233
		mcall 37,1 ;get mouse coords
179
		mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
234
		mov ebx,eax
180
		mov ebx,eax
235
		shr ebx,16
181
		shr ebx,16
236
		and eax,0xffff
182
		and eax,0xffff
237
		stdcall get_buf_color, buf_0
183
		stdcall get_buf_color, buf_0
238
		stdcall get_buf_color, buf_pl
184
		stdcall get_buf_color, buf_pl
239
		jmp .end_f
185
		jmp .end_f
240
	@@:
186
	@@:
241
	bt eax,0 ;left button
187
	bt eax,0 ;left button
242
	jnc .end_f
188
	jnc .end_f
243
		mcall 37,1 ;get mouse coords
189
		mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
Line 244... Line 190...
244
		mov ebx,eax
190
		mov ebx,eax
Line 350... Line 296...
350
				@@:
296
				@@:
Line 351... Line 297...
351
 
297
 
352
				mov ecx,dword[v_zoom]
298
				mov ecx,dword[v_zoom]
353
				mov edi,eax
299
				mov edi,eax
354
				mov esi,ebx
300
				mov esi,ebx
355
				mcall 66,3
301
				mcall SF_KEYBOARD,SSF_GET_CONTROL_KEYS
356
				and eax,3 ;3 -> ¡¨â 0 «¥¢ë© Shift ­ ¦ â, ¡¨â 1 ¯à ¢ë© Shift ­ ¦ â
302
				and eax,3 ;3 -> ¡¨â 0 «¥¢ë© Shift ­ ¦ â, ¡¨â 1 ¯à ¢ë© Shift ­ ¦ â
357
                jz .shift_end
303
                jz .shift_end
358
                    ;¥á«¨ ­ ¦ â Shift, ⮠। ªâ¨à㥬 ­  ¢¥àå­¥¬ ã஢­¥
304
                    ;¥á«¨ ­ ¦ â Shift, ⮠। ªâ¨à㥬 ­  ¢¥àå­¥¬ ã஢­¥
359
                    ;¤«ï í⮣® ¢á¥ ª®®à¤¨­ âë ¤¥«¨¬ ­  2   ®â ¬ áâ ¡  ®â­¨¬ ¥¬ 1
305
                    ;¤«ï í⮣® ¢á¥ ª®®à¤¨­ âë ¤¥«¨¬ ­  2   ®â ¬ áâ ¡  ®â­¨¬ ¥¬ 1
Line 430... Line 376...
430
	ret
376
	ret
Line 431... Line 377...
431
 
377
 
432
align 4
378
align 4
433
draw_window:
379
draw_window:
434
pushad
380
pushad
Line 435... Line 381...
435
	mcall 12,1
381
	mcall SF_REDRAW,SSF_BEGIN_DRAW
436
 
382
 
437
	; *** à¨á®¢ ­¨¥ £« ¢­®£® ®ª­  (¢ë¯®«­ï¥âáï 1 à § ¯à¨ § ¯ã᪥) ***
383
	; *** à¨á®¢ ­¨¥ £« ¢­®£® ®ª­  (¢ë¯®«­ï¥âáï 1 à § ¯à¨ § ¯ã᪥) ***
438
	mov edx,[sc.work]
384
	mov edx,[sc.work]
439
	or  edx,(3 shl 24)+0x30000000
385
	or  edx,(3 shl 24)+0x30000000
Line 440... Line 386...
440
	mov edi,caption
386
	mov edi,caption
441
	mcall 0,dword[wnd_s_pos],dword[wnd_s_pos+4]
-
 
442
 
-
 
443
	; *** ᮧ¤ ­¨¥ ª­®¯®ª ­  ¯ ­¥«ì ***
-
 
444
	mov eax,8
-
 
445
	mov ebx,(5 shl 16)+20
387
	mcall SF_CREATE_WINDOW,dword[wnd_s_pos],dword[wnd_s_pos+4]
446
	mov ecx,(5 shl 16)+20
-
 
Line 447... Line 388...
447
	mov edx,3
388
 
448
	mov esi,[sc.work_button]
389
	; *** ᮧ¤ ­¨¥ ª­®¯®ª ­  ¯ ­¥«ì ***
449
	int 0x40
390
	mcall SF_DEFINE_BUTTON,(5 shl 16)+20,(5 shl 16)+20,3,[sc.work_button]
450
 
391
 
Line 526... Line 467...
526
	add ebx,25 shl 16
467
	add ebx,25 shl 16
527
	inc edx
468
	inc edx
528
	int 0x40
469
	int 0x40
Line 529... Line 470...
529
 
470
 
530
	; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å ***
-
 
531
	mov eax,7
-
 
532
	mov ebx,[image_data_toolbar]
-
 
533
	mov ecx,(16 shl 16)+16
471
	; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å ***
534
	mov edx,(7 shl 16)+7 ;icon new
-
 
Line 535... Line 472...
535
	int 0x40
472
	mcall SF_PUT_IMAGE,[image_data_toolbar],(16 shl 16)+16,(7 shl 16)+7 ;icon new
536
 
473
 
537
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
474
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
538
	add edx,(25 shl 16) ;icon open
475
	add edx,(25 shl 16) ;icon open
Line 616... Line 553...
616
 
553
 
617
	; *** à¨á®¢ ­¨¥ ¡ãä¥à®¢ ***
554
	; *** à¨á®¢ ­¨¥ ¡ãä¥à®¢ ***
618
	call draw_objects
555
	call draw_objects
Line 619... Line 556...
619
	call draw_pok
556
	call draw_pok
620
 
557
 
621
	mcall 12,2
558
	mcall SF_REDRAW,SSF_END_DRAW
Line 622... Line 559...
622
popad
559
popad
623
	ret
560
	ret
Line 658... Line 595...
658
	mov edi,txt_buf
595
	mov edi,txt_buf
659
	stdcall convert_int_to_str,16
596
	stdcall convert_int_to_str,16
660
	stdcall str_cat, txt_brush.size,edi
597
	stdcall str_cat, txt_brush.size,edi
661
	stdcall str_cat, txt_brush.size,txt_space ;§ ¢¥àè î騩 ¯à®¡¥«
598
	stdcall str_cat, txt_brush.size,txt_space ;§ ¢¥àè î騩 ¯à®¡¥«
Line 662... Line -...
662
 
-
 
663
	mov eax,4 ;à¨á®¢ ­¨¥ ⥪áâ 
-
 
664
	mov ebx,(OT_CAPT_X_COLOR shl 16)+OT_CAPT_Y_COLOR+2
599
 
665
	mov ecx,[sc.work_text]
600
	mov ecx,[sc.work_text]
666
	or  ecx,0x80000000 ;or (1 shl 30)
601
	or  ecx,0x80000000 ;or (1 shl 30)
667
	mov edx,txt_color
-
 
-
 
602
	mov edx,txt_color
Line 668... Line 603...
668
	int 0x40
603
	mcall SF_DRAW_TEXT,(OT_CAPT_X_COLOR shl 16)+OT_CAPT_Y_COLOR+2
669
 
604
 
670
	mov edx,txt_curor
605
	mov edx,txt_curor
671
	add ebx,115 shl 16
606
	add ebx,115 shl 16
Line 689... Line 624...
689
	ret
624
	ret
Line 690... Line 625...
690
 
625
 
691
align 4
626
align 4
692
on_change_color:
627
on_change_color:
693
pushad
628
pushad
694
	mov ebx,((OT_CAPT_X_COLOR+35) shl 16)+16 ;¯® ®á¨ x
-
 
695
	mov ecx,(OT_CAPT_Y_COLOR shl 16)+12 ;¯® ®á¨ y
-
 
696
	mov edx,[v_color]
-
 
Line 697... Line -...
697
	mcall 13
-
 
698
 
629
	mcall SF_DRAW_RECT,((OT_CAPT_X_COLOR+35) shl 16)+16,(OT_CAPT_Y_COLOR shl 16)+12,[v_color]
699
	mov ebx,(1 shl 8)+(6 shl 16)
630
 
700
	mov ecx,edx
631
	mov ecx,edx
701
	mov edx,((OT_CAPT_X_COLOR+55) shl 16)+OT_CAPT_Y_COLOR+2
632
	mov edx,((OT_CAPT_X_COLOR+55) shl 16)+OT_CAPT_Y_COLOR+2
702
	mov esi,[sc.work_text]
633
	mov esi,[sc.work_text]
703
	add esi,(1 shl 30)
634
	add esi,(1 shl 30)
704
	mov edi,[sc.work]
635
	mov edi,[sc.work]
705
	mcall 47
636
	mcall SF_DRAW_NUMBER,(1 shl 8)+(6 shl 16)
Line 706... Line 637...
706
popad
637
popad
707
	ret
638
	ret
708
 
639
 
709
align 4
640
align 4
Line 710... Line 641...
710
key:
641
key:
711
	mcall 2
642
	mcall SF_GET_KEY
712
	jmp still
643
	jmp still
713
 
644
 
714
 
645
 
715
align 4
646
align 4
716
button:
647
button:
717
	mcall 17
648
	mcall SF_GET_BUTTON
Line 840... Line 771...
840
	stdcall [buf2d_vox_brush_delete], buf_vox_g2
771
	stdcall [buf2d_vox_brush_delete], buf_vox_g2
841
	stdcall [buf2d_delete],buf_curs
772
	stdcall [buf2d_delete],buf_curs
842
	stdcall [buf2d_delete],buf_curs_8
773
	stdcall [buf2d_delete],buf_curs_8
843
	stdcall mem.Free,[image_data_toolbar]
774
	stdcall mem.Free,[image_data_toolbar]
844
	stdcall mem.Free,[open_file_vox]
775
	stdcall mem.Free,[open_file_vox]
845
	mcall -1
776
	mcall SF_TERMINATE_PROCESS
Line 846... Line 777...
846
 
777
 
847
;¤ ­­ë¥ ¤«ï ¨­¨æ¨ «¨§ æ¨¨ ¢®ªá¥«ì­®£® ®¡ê¥ªâ 
778
;¤ ­­ë¥ ¤«ï ¨­¨æ¨ «¨§ æ¨¨ ¢®ªá¥«ì­®£® ®¡ê¥ªâ 
848
align 4
779
align 4
849
vox_new_data:
780
vox_new_data:
Line 862... Line 793...
862
	ret
793
	ret
863
endp
794
endp
Line 864... Line 795...
864
 
795
 
865
align 4
796
align 4
866
open_file_vox dd 0 ;㪠§ â¥«ì ­  ®¡« áâì ¤«ï ®âªàëâ¨ï ä ©«®¢
-
 
Line 867... Line 797...
867
open_b rb 560
797
open_file_vox dd 0 ;㪠§ â¥«ì ­  ®¡« áâì ¤«ï ®âªàëâ¨ï ä ©«®¢
868
 
798
 
869
align 4
799
align 4
870
but_open_file:
800
but_open_file:
Line 874... Line 804...
874
	stdcall [OpenDialog_Start],OpenDialog_data
804
	stdcall [OpenDialog_Start],OpenDialog_data
875
	cmp [OpenDialog_data.status],2
805
	cmp [OpenDialog_data.status],2
876
	je .end_open_file
806
	je .end_open_file
877
	;ª®¤ ¯à¨ 㤠筮¬ ®âªàë⨨ ¤¨ «®£ 
807
	;ª®¤ ¯à¨ 㤠筮¬ ®âªàë⨨ ¤¨ «®£ 
Line 878... Line -...
878
 
-
 
879
	mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
808
 
880
	mov [run_file_70.Function], 5
809
	mov [run_file_70.Function], SSF_GET_INFO
881
	mov [run_file_70.Position], 0
810
	mov [run_file_70.Position], 0
882
	mov [run_file_70.Flags], 0
811
	mov [run_file_70.Flags], 0
883
	mov dword[run_file_70.Count], 0
812
	mov dword[run_file_70.Count], 0
884
	mov dword[run_file_70.Buffer], open_b
813
	mov dword[run_file_70.Buffer], open_b
885
	mov byte[run_file_70+20], 0
814
	mov byte[run_file_70+20], 0
886
	mov dword[run_file_70.FileName], openfile_path
815
	mov dword[run_file_70.FileName], openfile_path
887
	mov ebx,run_file_70
-
 
Line 888... Line 816...
888
	int 0x40
816
	mcall SF_FILE,run_file_70
889
 
817
 
890
	mov ecx,dword[open_b+32] ;+32 qword: à §¬¥à ä ©«  ¢ ¡ ©â å
818
	mov ecx,dword[open_b+32] ;+32 qword: à §¬¥à ä ©«  ¢ ¡ ©â å
891
	cmp ecx,[max_open_file_size] ;¯à®¢¥à塞 à §¬¥à ¢ë¤¥«¥­­®© ¯ ¬ïâ¨
819
	cmp ecx,[max_open_file_size] ;¯à®¢¥à塞 à §¬¥à ¢ë¤¥«¥­­®© ¯ ¬ïâ¨
892
	jle @f
820
	jle @f
893
		mov [max_open_file_size],ecx
821
		mov [max_open_file_size],ecx
894
		stdcall mem.ReAlloc,[open_file_vox],ecx
822
		stdcall mem.ReAlloc,[open_file_vox],ecx
895
		mov [open_file_vox],eax
823
		mov [open_file_vox],eax
Line 896... Line -...
896
		notify_window_run txt_need_memory
-
 
897
	@@:
824
		notify_window_run txt_need_memory
898
	
825
	@@:
899
	mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
826
	
900
	mov [run_file_70.Function], 0
827
	mov [run_file_70.Function], SSF_READ_FILE
901
	mov [run_file_70.Position], 0
828
	mov [run_file_70.Position], 0
902
	mov [run_file_70.Flags], 0
829
	mov [run_file_70.Flags], 0
903
	mov dword[run_file_70.Count], ecx
830
	mov dword[run_file_70.Count], ecx
904
	m2m dword[run_file_70.Buffer], dword[open_file_vox]
831
	m2m dword[run_file_70.Buffer], dword[open_file_vox]
905
	mov byte[run_file_70+20], 0
-
 
906
	mov dword[run_file_70.FileName], openfile_path
832
	mov byte[run_file_70+20], 0
907
	mov ebx,run_file_70
833
	mov dword[run_file_70.FileName], openfile_path
Line 908... Line 834...
908
	int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
834
	mcall SF_FILE,run_file_70
Line 909... Line 835...
909
	cmp ebx,0xffffffff
835
	cmp ebx,0xffffffff
910
	je .end_open_file
-
 
911
 
836
	je .end_open_file
912
	mcall 71,1,openfile_path
837
 
913
 
838
	mcall SF_SET_CAPTION,1,openfile_path
914
	;---
839
 
915
	;
840
	;---
Line 939... Line 864...
939
		mov ebx,[open_file_vox]
864
		mov ebx,[open_file_vox]
940
		mov byte[ebx],al
865
		mov byte[ebx],al
Line 941... Line 866...
941
 
866
 
942
		stdcall buf2d_vox_obj_get_size, ebx
867
		stdcall buf2d_vox_obj_get_size, ebx
943
		mov dword[run_file_70.Count], eax ;à §¬¥à ä ©« 
868
		mov dword[run_file_70.Count], eax ;à §¬¥à ä ©« 
944
		mov [run_file_70.Function], 2
869
		mov [run_file_70.Function], SSF_CREATE_FILE
945
		mov [run_file_70.Position], 0
870
		mov [run_file_70.Position], 0
946
		mov [run_file_70.Flags], 0
871
		mov [run_file_70.Flags], 0
947
		mov ebx, dword[open_file_vox]
872
		mov ebx, dword[open_file_vox]
948
		mov [run_file_70.Buffer], ebx
873
		mov [run_file_70.Buffer], ebx
949
		mov byte[run_file_70+20], 0
874
		mov byte[run_file_70+20], 0
950
		mov dword[run_file_70.FileName], openfile_path
875
		mov dword[run_file_70.FileName], openfile_path
951
		mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
876
		mcall SF_FILE,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
952
		cmp ebx,0xffffffff
877
		cmp ebx,0xffffffff
Line 953... Line 878...
953
		je .end_save_file
878
		je .end_save_file
954
 
879
 
Line 1741... Line 1666...
1741
		mov edx,[hot_p]
1666
		mov edx,[hot_p]
1742
		mov dx,2 ;LOAD_INDIRECT
1667
		mov dx,2 ;LOAD_INDIRECT
1743
		mov ecx,[icon]
1668
		mov ecx,[icon]
1744
		shl ecx,12 ;㬭®¦ ¥¬ ­  4 ª¡
1669
		shl ecx,12 ;㬭®¦ ¥¬ ­  4 ª¡
1745
		add ecx,[buf_curs.data]
1670
		add ecx,[buf_curs.data]
1746
		mcall 37,4
1671
		mcall SF_MOUSE_GET,SSF_LOAD_CURSOR
Line 1747... Line 1672...
1747
 
1672
 
1748
		cmp eax,0
1673
		cmp eax,0
1749
		je @f
1674
		je @f
1750
			mov [cursor_pointer],eax
1675
			mov [cursor_pointer],eax
1751
			mcall 37,5,[cursor_pointer]
1676
			mcall SF_MOUSE_GET,SSF_SET_CURSOR,[cursor_pointer]
1752
	@@:
1677
	@@:
1753
	ret
1678
	ret
Line 1754... Line 1679...
1754
endp
1679
endp
Line 1815... Line 1740...
1815
lib_name_3 db 'libini.obj',0
1740
lib_name_3 db 'libini.obj',0
1816
err_msg_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libini.obj',39,0
1741
err_msg_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libini.obj',39,0
1817
err_msg_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,0
1742
err_msg_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,0
Line 1818... Line 1743...
1818
 
1743
 
1819
l_libs_start:
1744
l_libs_start:
1820
	lib0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
1745
	lib_0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
1821
		err_message_found_lib_0, head_f_l, proclib_import,err_message_import_0, head_f_i
1746
		err_message_found_lib_0, head_f_l, proclib_import,err_message_import_0, head_f_i
1822
	lib1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\
1747
	lib_1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\
1823
		err_message_found_lib_1, head_f_l, import_libimg, err_message_import_1, head_f_i
1748
		err_message_found_lib_1, head_f_l, import_libimg, err_message_import_1, head_f_i
1824
	lib_2 l_libs lib_name_2, sys_path, library_path, system_dir_2,\
1749
	lib_2 l_libs lib_name_2, sys_path, library_path, system_dir_2,\
1825
		err_msg_found_lib_2,head_f_l,import_buf2d,err_msg_import_2,head_f_i
1750
		err_msg_found_lib_2,head_f_l,import_buf2d,err_msg_import_2,head_f_i
1826
	lib_3 l_libs lib_name_3, sys_path, library_path, system_dir_3,\
1751
	lib_3 l_libs lib_name_3, sys_path, library_path, system_dir_3,\
Line 2073... Line 1998...
2073
 
1998
 
2074
align 16
1999
align 16
2075
i_end:
2000
i_end:
2076
	wnd_s_pos: ;¬¥áâ® ¤«ï ­ áâ஥ª áâ à⮢®© ¯®§¨æ¨¨ ®ª­ 
2001
	wnd_s_pos: ;¬¥áâ® ¤«ï ­ áâ஥ª áâ à⮢®© ¯®§¨æ¨¨ ®ª­ 
2077
		rq 0
2002
		rq 0
-
 
2003
	rb 4096
2078
	rb 4096 ;2048
2004
align 16
2079
stacktop:
2005
stacktop:
2080
	sys_path rb 1024
2006
	sys_path rb 1024
2081
	file_name:
2007
	file_name:
2082
		rb 1024 ;4096 
2008
		rb 1024 ;4096