Rev 7639 | Rev 7938 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
31 | halyavin | 1 | ; |
51 | mikedld | 2 | ; UNIFORM WINDOW COLOURS & SKIN |
31 | halyavin | 3 | ; |
4 | ; Compile with FASM for Menuet |
||
5 | ; |
||
6 | ; < russian edition by Ivan Poddubny > |
||
51 | mikedld | 7 | ; < skin selection by Mike Semenyako > |
3435 | mario79 | 8 | ;****************************************************************************** |
9 | ; last update: 01/04/2013 |
||
10 | ; written by: Marat Zakiyanov aka Mario79, aka Mario |
||
11 | ; changes: select colors with ColorDialog |
||
12 | ; some redesign of the look of the program |
||
13 | ;****************************************************************************** |
||
1611 | mario79 | 14 | ; last update: 10/09/2010 |
15 | ; written by: Marat Zakiyanov aka Mario79, aka Mario |
||
16 | ; changes: select path with OpenDialog |
||
31 | halyavin | 17 | ;****************************************************************************** |
3271 | mario79 | 18 | use32 |
19 | org 0 |
||
20 | db 'MENUET01' ; identifier |
||
21 | dd 1 ; header version |
||
22 | dd START ; start address |
||
3435 | mario79 | 23 | dd IM_END ; file size |
24 | dd I_END ; memory |
||
3271 | mario79 | 25 | dd stacktop ; stack pointer |
7937 | leency | 26 | dd app_param ; parameters |
3271 | mario79 | 27 | dd cur_dir_path ; path to file |
28 | |||
1611 | mario79 | 29 | include 'lang.inc' |
7639 | leency | 30 | include '../../../proc32.inc' |
1702 | Lrz | 31 | include '../../../config.inc' ;for nightbuild |
1611 | mario79 | 32 | include '../../../macros.inc' |
7937 | leency | 33 | include '../../../string.inc' |
7639 | leency | 34 | include '../../../dll.inc' |
1611 | mario79 | 35 | include 'kglobals.inc' |
36 | include 'unpacker.inc' |
||
37 | include '../../../develop/libraries/box_lib/load_lib.mac' |
||
38 | @use_library |
||
31 | halyavin | 39 | ;****************************************************************************** |
3435 | mario79 | 40 | ;-------------------------------------- |
51 | mikedld | 41 | struct SKIN_HEADER |
485 | heavyiron | 42 | ident dd ? |
43 | version dd ? |
||
44 | params dd ? |
||
45 | buttons dd ? |
||
46 | bitmaps dd ? |
||
51 | mikedld | 47 | ends |
3435 | mario79 | 48 | ;-------------------------------------- |
51 | mikedld | 49 | struct SKIN_PARAMS |
485 | heavyiron | 50 | skin_height dd ? |
51 | margin.right dw ? |
||
52 | margin.left dw ? |
||
53 | margin.bottom dw ? |
||
54 | margin.top dw ? |
||
55 | colors.inner dd ? |
||
56 | colors.outer dd ? |
||
57 | colors.frame dd ? |
||
58 | colors_1.inner dd ? |
||
59 | colors_1.outer dd ? |
||
60 | colors_1.frame dd ? |
||
61 | dtp.size dd ? |
||
62 | dtp.data db 40 dup (?) |
||
51 | mikedld | 63 | ends |
3435 | mario79 | 64 | ;-------------------------------------- |
51 | mikedld | 65 | struct SKIN_BUTTONS |
485 | heavyiron | 66 | type dd ? |
67 | pos: |
||
68 | left dw ? |
||
69 | top dw ? |
||
70 | size: |
||
71 | width dw ? |
||
72 | height dw ? |
||
51 | mikedld | 73 | ends |
3435 | mario79 | 74 | ;-------------------------------------- |
51 | mikedld | 75 | struct SKIN_BITMAPS |
485 | heavyiron | 76 | kind dw ? |
77 | type dw ? |
||
78 | _data dd ? |
||
51 | mikedld | 79 | ends |
3435 | mario79 | 80 | ;-------------------------------------- |
81 | frame_1: |
||
82 | .x = 5 |
||
83 | .y = 220 |
||
84 | .width = 420 |
||
85 | .height = 50 |
||
86 | ;-------------------------------------- |
||
87 | frame_2: |
||
88 | .x = 5 |
||
89 | .y = 280 |
||
90 | .width = 420 |
||
91 | .height = 50 |
||
1611 | mario79 | 92 | ;--------------------------------------------------------------------- |
3271 | mario79 | 93 | START: ; start of execution |
94 | ;--------------------------------------------------------------------- |
||
1611 | mario79 | 95 | mcall 68,11 |
96 | |||
97 | test eax,eax |
||
98 | jz close |
||
99 | |||
7639 | leency | 100 | stdcall dll.Load,LibIniImportTable |
1611 | mario79 | 101 | load_libraries l_libs_start,end_l_libs |
102 | |||
103 | ;if return code =-1 then exit, else nornary work |
||
104 | inc eax |
||
105 | test eax,eax |
||
106 | jz close |
||
107 | ;--------------------------------------------------------------------- |
||
7937 | leency | 108 | ; set default pathes |
109 | mov edi,skin_info |
||
110 | mov esi,default_skin |
||
1611 | mario79 | 111 | xor eax,eax |
112 | cld |
||
113 | @@: |
||
114 | lodsb |
||
115 | stosb |
||
116 | test eax,eax |
||
117 | jnz @b |
||
7937 | leency | 118 | |
119 | mov edi,dtp_name |
||
1611 | mario79 | 120 | mov esi,default_dtp |
121 | xor eax,eax |
||
122 | cld |
||
123 | @@: |
||
124 | lodsb |
||
125 | stosb |
||
126 | test eax,eax |
||
127 | jnz @b |
||
128 | ;--------------------------------------------------------------------- |
||
7937 | leency | 129 | ; check app param |
130 | stdcall string.length, app_param |
||
131 | add eax, app_param |
||
132 | mov ecx, [eax-4] |
||
133 | cmp ecx, '.skn' |
||
134 | je load_skin_from_param |
||
135 | cmp ecx, '.dtp' |
||
136 | jne no_param |
||
137 | |||
138 | load_dtp_from_param: |
||
139 | mov edi,dtp_name |
||
140 | mov esi,app_param |
||
1611 | mario79 | 141 | xor eax,eax |
142 | cld |
||
143 | @@: |
||
144 | lodsb |
||
145 | stosb |
||
7937 | leency | 146 | test eax,eax |
147 | jnz @b |
||
148 | call load_dtp_file.1 |
||
149 | jmp skin_path_ready |
||
150 | |||
151 | load_skin_from_param: |
||
152 | mov edi,skin_info |
||
153 | mov esi,app_param |
||
154 | xor eax,eax |
||
155 | cld |
||
156 | @@: |
||
157 | lodsb |
||
158 | stosb |
||
159 | test eax,eax |
||
160 | jnz @b |
||
161 | call load_skin_file.2 |
||
162 | jmp skin_path_ready |
||
163 | |||
164 | no_param: |
||
165 | mcall 48,3,color_table,4*10 ; get current colors |
||
166 | call load_skin_file.2 |
||
167 | |||
1611 | mario79 | 168 | skin_path_ready: |
169 | ;--------------------------------------------------------------------- |
||
170 | ;OpenDialog initialisation |
||
3271 | mario79 | 171 | push dword OpenDialog_data |
172 | call [OpenDialog_Init] |
||
1611 | mario79 | 173 | |
3271 | mario79 | 174 | push dword OpenDialog_data2 |
175 | call [OpenDialog_Init] |
||
3435 | mario79 | 176 | ;-------------------------------------------------------------------- |
177 | ;init_ColorDialog ColorDialog_data |
||
178 | push dword ColorDialog_data |
||
179 | call [ColorDialog_Init] |
||
180 | ;-------------------------------------------------------------------- |
||
1611 | mario79 | 181 | ; prepare for PathShow |
182 | push dword PathShow_data_1 |
||
183 | call [PathShow_prepare] |
||
184 | |||
185 | push dword PathShow_data_2 |
||
186 | call [PathShow_prepare] |
||
187 | ;--------------------------------------------------------------------- |
||
31 | halyavin | 188 | red: |
3271 | mario79 | 189 | call draw_window ; at first, draw the window |
190 | ;--------------------------------------------------------------------- |
||
31 | halyavin | 191 | still: |
3435 | mario79 | 192 | mcall 10 ; wait here for event |
31 | halyavin | 193 | |
3271 | mario79 | 194 | dec eax ; redraw request ? |
195 | jz red |
||
3435 | mario79 | 196 | |
3271 | mario79 | 197 | dec eax ; key in buffer ? |
198 | jz key |
||
3435 | mario79 | 199 | |
3271 | mario79 | 200 | dec eax ; button in buffer ? |
201 | jz button |
||
31 | halyavin | 202 | |
3271 | mario79 | 203 | jmp still |
204 | ;--------------------------------------------------------------------- |
||
205 | key: ; key |
||
206 | mcall 2 ; just read it and ignore |
||
207 | jmp still |
||
208 | ;--------------------------------------------------------------------- |
||
209 | button: ; button |
||
210 | mcall 17 ; get id |
||
31 | halyavin | 211 | |
3271 | mario79 | 212 | cmp ah,12 ; load file |
213 | jne no_load |
||
31 | halyavin | 214 | |
7937 | leency | 215 | call load_dtp_file |
3271 | mario79 | 216 | call draw_window |
217 | jmp still |
||
218 | ;-------------------------------------- |
||
219 | no_load: |
||
220 | cmp ah,13 ; save file |
||
221 | jne no_save |
||
31 | halyavin | 222 | |
3271 | mario79 | 223 | call save_file |
224 | jmp still |
||
225 | ;-------------------------------------- |
||
226 | no_save: |
||
227 | cmp ah,14 ; set 3d buttons |
||
228 | jne no_3d |
||
31 | halyavin | 229 | |
3271 | mario79 | 230 | mcall 48,1,1 |
7639 | leency | 231 | invoke ini_set_int, aIni, aSectionSkn, aButtonStyle, 1 |
3271 | mario79 | 232 | jmp doapply |
233 | ;-------------------------------------- |
||
234 | no_3d: |
||
235 | cmp ah,15 ; set flat buttons |
||
236 | jne no_flat |
||
31 | halyavin | 237 | |
7639 | leency | 238 | invoke ini_set_int, aIni, aSectionSkn, aButtonStyle, 0 |
3271 | mario79 | 239 | mcall 48, 1, 0 |
240 | ;-------------------------------------- |
||
484 | diamond | 241 | doapply: |
3271 | mario79 | 242 | mcall 48, 0, 0 |
243 | jmp still |
||
244 | ;-------------------------------------- |
||
245 | no_flat: |
||
246 | cmp ah,16 ; apply |
||
247 | jne no_apply |
||
248 | ;-------------------------------------- |
||
249 | apply_direct: |
||
250 | mcall 48,2,color_table,10*4 |
||
251 | jmp doapply |
||
252 | ;-------------------------------------- |
||
253 | no_apply: |
||
254 | cmp ah,17 ; load skin file |
||
255 | jne no_load_skin |
||
31 | halyavin | 256 | |
3271 | mario79 | 257 | call load_skin_file |
258 | call draw_window |
||
259 | jmp still |
||
260 | ;-------------------------------------- |
||
261 | no_load_skin: |
||
262 | cmp ah,18 ; apply skin |
||
263 | jne no_apply_skin |
||
31 | halyavin | 264 | |
3271 | mario79 | 265 | cmp [skin_info],0 |
266 | je no_apply_skin |
||
51 | mikedld | 267 | |
3271 | mario79 | 268 | mcall 48,8,skin_info |
269 | call draw_window |
||
270 | jmp still |
||
271 | ;-------------------------------------- |
||
272 | no_apply_skin: |
||
273 | cmp ah,31 |
||
274 | jb no_new_colour |
||
51 | mikedld | 275 | |
3271 | mario79 | 276 | cmp ah,41 |
277 | jg no_new_colour |
||
278 | |||
3435 | mario79 | 279 | ;--------------------------------------------------------------------- |
280 | .start_ColorDialog: |
||
281 | push dword ColorDialog_data |
||
282 | call [ColorDialog_Start] |
||
283 | ; 2 - use another method/not found program |
||
284 | cmp [ColorDialog_data.status],2 |
||
285 | je still |
||
286 | ; 1 - OK, color selected |
||
287 | cmp [ColorDialog_data.status],1 |
||
288 | jne still |
||
289 | ;--------------------------------------------------------------------- |
||
290 | |||
3271 | mario79 | 291 | shr eax,8 |
292 | sub eax,31 |
||
293 | shl eax,2 |
||
3435 | mario79 | 294 | mov ebx,[ColorDialog_data.color] |
295 | and ebx,0xffffff ; temporary for ColorDialog!!!!!!!!!! |
||
3271 | mario79 | 296 | mov [eax+color_table],ebx |
297 | cmp dword[not_packed_area+SKIN_HEADER.ident],'SKIN' |
||
298 | jne @f |
||
31 | halyavin | 299 | |
3271 | mario79 | 300 | mov edi,[not_packed_area+SKIN_HEADER.params] |
301 | mov dword[edi+not_packed_area+SKIN_PARAMS.dtp.data+eax],ebx |
||
302 | call draw_skin |
||
303 | ;-------------------------------------- |
||
304 | @@: |
||
305 | call draw_colours |
||
306 | jmp still |
||
307 | ;-------------------------------------- |
||
308 | no_new_colour: |
||
309 | cmp ah,1 ; terminate |
||
310 | jnz noid1 |
||
311 | ;-------------------------------------- |
||
1611 | mario79 | 312 | close: |
3271 | mario79 | 313 | or eax,-1 |
314 | mcall |
||
315 | ;-------------------------------------- |
||
316 | noid1: |
||
317 | jmp still |
||
318 | ;--------------------------------------------------------------------- |
||
7937 | leency | 319 | load_dtp_file: |
1611 | mario79 | 320 | ;--------------------------------------------------------------------- |
321 | ; invoke OpenDialog |
||
322 | mov [OpenDialog_data.type],dword 0 |
||
3271 | mario79 | 323 | push dword OpenDialog_data |
324 | call [OpenDialog_Start] |
||
1611 | mario79 | 325 | cmp [OpenDialog_data.status],1 |
326 | je .1 |
||
327 | ret |
||
328 | .1: |
||
329 | ; prepare for PathShow |
||
330 | push dword PathShow_data_1 |
||
331 | call [PathShow_prepare] |
||
31 | halyavin | 332 | |
1611 | mario79 | 333 | call draw_PathShow |
334 | ;--------------------------------------------------------------------- |
||
7937 | leency | 335 | .2: |
3271 | mario79 | 336 | xor eax, eax |
337 | mov ebx, read_info |
||
338 | mov dword [ebx], eax ; subfunction: read |
||
339 | mov dword [ebx+4], eax ; offset (low dword) |
||
340 | mov dword [ebx+8], eax ; offset (high dword) |
||
341 | mov dword [ebx+12], 40 ; read colors file: 4*10 bytes |
||
342 | mov dword [ebx+16], color_table ; address |
||
343 | mcall 70 |
||
344 | ret |
||
1611 | mario79 | 345 | ;--------------------------------------------------------------------- |
346 | load_skin_file: |
||
347 | ;--------------------------------------------------------------------- |
||
348 | ; invoke OpenDialog |
||
3271 | mario79 | 349 | push dword OpenDialog_data2 |
350 | call [OpenDialog_Start] |
||
1611 | mario79 | 351 | cmp [OpenDialog_data2.status],1 |
352 | je .1 |
||
353 | ret |
||
354 | .1: |
||
355 | ; prepare for PathShow |
||
356 | push dword PathShow_data_2 |
||
357 | call [PathShow_prepare] |
||
31 | halyavin | 358 | |
1611 | mario79 | 359 | call draw_PathShow |
360 | ;--------------------------------------------------------------------- |
||
361 | .2: |
||
3271 | mario79 | 362 | xor eax,eax |
363 | mov ebx,read_info2 |
||
364 | mov dword [ebx], eax ; subfunction: read |
||
365 | mov dword [ebx+4], eax ; offset (low dword) |
||
366 | mov dword [ebx+8], eax ; offset (high dword) |
||
367 | mov dword [ebx+12], 32*1024 ; read: max 32 KBytes |
||
368 | mov dword [ebx+16], file_load_area ; address |
||
369 | mcall 70 |
||
31 | halyavin | 370 | |
3271 | mario79 | 371 | mov esi, file_load_area |
179 | mikedld | 372 | |
3271 | mario79 | 373 | cmp dword [esi], 'KPCK' |
374 | jnz notpacked |
||
31 | halyavin | 375 | |
3271 | mario79 | 376 | cmp dword [esi+4], 32*1024 ; max 32 KBytes |
377 | ja doret |
||
51 | mikedld | 378 | |
3271 | mario79 | 379 | push unpack_area |
380 | push esi |
||
381 | call unpack |
||
382 | mov esi,unpack_area |
||
383 | ;-------------------------------------- |
||
384 | notpacked: |
||
385 | cmp [esi+SKIN_HEADER.ident],dword 'SKIN' |
||
386 | jne doret |
||
51 | mikedld | 387 | |
3271 | mario79 | 388 | mov edi,not_packed_area |
389 | mov ecx,0x8000/4 |
||
390 | rep movsd |
||
51 | mikedld | 391 | |
3271 | mario79 | 392 | mov ebp,not_packed_area |
393 | mov esi,[ebp+SKIN_HEADER.params] |
||
394 | add esi,ebp |
||
395 | lea esi,[esi+SKIN_PARAMS.dtp.data] |
||
396 | mov edi,color_table |
||
397 | mov ecx,10 |
||
398 | rep movsd |
||
399 | ;-------------------------------------- |
||
400 | doret: |
||
401 | ret |
||
1611 | mario79 | 402 | ;--------------------------------------------------------------------- |
403 | save_file: |
||
404 | ;--------------------------------------------------------------------- |
||
405 | ; invoke OpenDialog |
||
406 | mov [OpenDialog_data.type],dword 1 |
||
3271 | mario79 | 407 | push dword OpenDialog_data |
408 | call [OpenDialog_Start] |
||
1611 | mario79 | 409 | cmp [OpenDialog_data.status],1 |
410 | je .1 |
||
411 | ret |
||
412 | .1: |
||
413 | ; prepare for PathShow |
||
414 | push dword PathShow_data_1 |
||
415 | call [PathShow_prepare] |
||
31 | halyavin | 416 | |
1611 | mario79 | 417 | call draw_PathShow |
418 | ;--------------------------------------------------------------------- |
||
3271 | mario79 | 419 | xor eax,eax |
420 | mov ebx,write_info |
||
421 | mov [ebx],dword 2 ; subfunction: write |
||
422 | and [ebx+4],eax ; (reserved) |
||
423 | and [ebx+8],eax ; (reserved) |
||
424 | mov [ebx+12],dword 10*4 ; bytes to write |
||
425 | mov [ebx+16],dword color_table ; address |
||
426 | mcall 70 |
||
427 | ret |
||
1611 | mario79 | 428 | ;--------------------------------------------------------------------- |
3435 | mario79 | 429 | draw_button_row: |
430 | mov edx,0x60000000 + 31 ; BUTTON ROW |
||
431 | mov ebx,220*65536+14 |
||
432 | mov ecx,10*65536+14 |
||
433 | mov eax,8 |
||
434 | ;----------------------------------- |
||
435 | .newb: |
||
436 | mcall |
||
437 | add ecx,20*65536 |
||
438 | inc edx |
||
439 | cmp edx,0x60000000 + 40 |
||
440 | jbe .newb |
||
3271 | mario79 | 441 | ret |
3435 | mario79 | 442 | ;--------------------------------------------------------------------- |
443 | draw_button_row_of_texts: |
||
444 | mov ebx,240*65536+13 ; ROW OF TEXTS |
||
445 | mov ecx,[w_work_text] |
||
446 | mov edx,text |
||
447 | mov esi,32 |
||
448 | mov eax,4 |
||
449 | ;----------------------------------- |
||
450 | .newline: |
||
451 | mcall |
||
452 | add ebx,20 |
||
453 | add edx,32 |
||
454 | cmp [edx],byte 'x' |
||
455 | jne .newline |
||
456 | ret |
||
457 | ;--------------------------------------------------------------------- |
||
31 | halyavin | 458 | draw_colours: |
3271 | mario79 | 459 | pusha |
460 | mov esi,color_table |
||
3435 | mario79 | 461 | mov ebx,220*65536+14 |
462 | mov ecx,10*65536+14 |
||
463 | mov eax,13 |
||
3472 | mario79 | 464 | mov [frame_data.draw_text_flag],dword 0 |
3271 | mario79 | 465 | ;-------------------------------------- |
466 | newcol: |
||
467 | mov edx,[esi] |
||
3435 | mario79 | 468 | mcall |
3472 | mario79 | 469 | |
470 | push ebx ecx |
||
471 | |||
472 | sub ebx,2 shl 16 |
||
473 | add bx,4 |
||
474 | sub ecx,2 shl 16 |
||
475 | add cx,4 |
||
476 | |||
477 | mov [frame_data.x],ebx |
||
478 | mov [frame_data.y],ecx |
||
479 | |||
480 | push dword frame_data |
||
481 | call [Frame_draw] |
||
482 | |||
483 | pop ecx ebx |
||
484 | |||
3435 | mario79 | 485 | add ecx,20*65536 |
3271 | mario79 | 486 | add esi,4 |
3435 | mario79 | 487 | cmp esi,color_table+4*9 |
3271 | mario79 | 488 | jbe newcol |
31 | halyavin | 489 | |
3271 | mario79 | 490 | popa |
491 | ret |
||
2068 | mario79 | 492 | ;---------------------------------------------------------------------- |
1611 | mario79 | 493 | draw_PathShow: |
494 | pusha |
||
3435 | mario79 | 495 | mcall 13, |
496 | mcall 13, |
||
1611 | mario79 | 497 | ; draw for PathShow |
498 | push dword PathShow_data_1 |
||
499 | call [PathShow_draw] |
||
500 | |||
501 | push dword PathShow_data_2 |
||
502 | call [PathShow_draw] |
||
503 | popa |
||
504 | ret |
||
505 | ;--------------------------------------------------------------------- |
||
31 | halyavin | 506 | ; ********************************************* |
507 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
||
508 | ; ********************************************* |
||
509 | draw_window: |
||
2068 | mario79 | 510 | mcall 12,1 |
511 | mcall 48,3,app_colours,10*4 |
||
512 | mcall 14 |
||
3435 | mario79 | 513 | mcall 48,4 |
514 | mov [current_skin_high],eax |
||
2068 | mario79 | 515 | ; DRAW WINDOW |
516 | xor eax,eax ; function 0 : define and draw window |
||
517 | xor esi,esi |
||
518 | mov edx,[w_work] ; color of work area RRGGBB,8->color |
||
3435 | mario79 | 519 | or edx,0x34000000 |
520 | mov ecx,50 shl 16 + 346 |
||
521 | add ecx,[current_skin_high] |
||
522 | mcall ,<110,440>,,,,title |
||
31 | halyavin | 523 | |
2068 | mario79 | 524 | mcall 9,procinfo,-1 |
525 | |||
526 | mov eax,[procinfo+70] ;status of window |
||
527 | test eax,100b |
||
528 | jne .end |
||
3271 | mario79 | 529 | |
3435 | mario79 | 530 | ;if lang eq ru |
51 | mikedld | 531 | load_w = (5*2+6*9) |
532 | save_w = (5*2+6*9) |
||
533 | flat_w = (5*2+6*7) |
||
534 | apply_w = (5*2+6*9) |
||
3435 | mario79 | 535 | ;else |
536 | ; load_w = (5*2+6*6) |
||
537 | ; save_w = (5*2+6*8) |
||
538 | ; flat_w = (5*2+6*4) |
||
539 | ; apply_w = (5*2+6*7) |
||
540 | ;end if |
||
541 | ;----------------------------------- |
||
542 | ; select color DTP frame |
||
543 | ; LOAD BUTTON ; button 12 |
||
6033 | leency | 544 | mcall 8, |
2068 | mario79 | 545 | ; SAVE BUTTON |
546 | add ebx,(load_w+2)*65536-load_w+save_w |
||
547 | inc edx |
||
3435 | mario79 | 548 | mcall ; button 13 |
549 | ; APPLY BUTTON |
||
550 | mov ebx,(frame_1.x + frame_1.width - apply_w - 15)*65536+apply_w |
||
551 | mcall 8,,,16 ; button 17 |
||
552 | ; select color DTP button text |
||
6033 | leency | 553 | mcall 4, |
3435 | mario79 | 554 | ;----------------------------------- |
555 | ; select skin frame |
||
556 | ; LOAD SKIN BUTTON ; button 17 |
||
6033 | leency | 557 | mcall 8, |
2068 | mario79 | 558 | ; 3D |
3435 | mario79 | 559 | mov ebx,(frame_2.x+155)*65536+34 |
560 | mcall ,,,14 ; button 14 |
||
2068 | mario79 | 561 | ; FLAT |
3435 | mario79 | 562 | add ebx,36*65536-34+flat_w |
2068 | mario79 | 563 | inc edx |
3435 | mario79 | 564 | mcall ; button 15 |
2068 | mario79 | 565 | ; APPLY SKIN BUTTON |
3435 | mario79 | 566 | mov ebx,(frame_2.x + frame_2.width - apply_w -15)*65536+apply_w |
567 | mcall ,,,18 ; button 18 |
||
568 | ; select skin button text |
||
6033 | leency | 569 | mcall 4, |
3435 | mario79 | 570 | ;----------------------------------- |
571 | call draw_button_row |
||
572 | call draw_button_row_of_texts |
||
573 | call draw_colours |
||
2068 | mario79 | 574 | ;----------------------------------- |
3472 | mario79 | 575 | mov [frame_data.x],dword frame_1.x shl 16+frame_1.width |
576 | mov [frame_data.y],dword frame_1.y shl 16+frame_1.height |
||
577 | mov [frame_data.text_pointer],dword select_dtp_text |
||
578 | mov eax,[w_work] |
||
579 | mov [frame_data.font_backgr_color],eax |
||
580 | mov eax,[w_work_text] |
||
581 | mov [frame_data.font_color],eax |
||
582 | mov [frame_data.draw_text_flag],dword 1 |
||
583 | |||
584 | push dword frame_data |
||
585 | call [Frame_draw] |
||
586 | ;----------------------------------- |
||
587 | mov [frame_data.x],dword frame_2.x shl 16+frame_2.width |
||
588 | mov [frame_data.y],dword frame_2.y shl 16+frame_2.height |
||
589 | mov [frame_data.text_pointer],dword select_skin_text |
||
31 | halyavin | 590 | |
3472 | mario79 | 591 | push dword frame_data |
592 | call [Frame_draw] |
||
2068 | mario79 | 593 | ;----------------------------------- |
3435 | mario79 | 594 | call draw_PathShow |
595 | ;----------------------------------- |
||
2068 | mario79 | 596 | cmp dword[not_packed_area+SKIN_HEADER.ident],'SKIN' |
597 | jne @f |
||
598 | call draw_skin |
||
599 | @@: |
||
600 | .end: |
||
601 | mcall 12,2 |
||
602 | ret |
||
3435 | mario79 | 603 | ;----------------------------------------------------------------------------- |
604 | include 'drawskin.inc' |
||
605 | ;----------------------------------------------------------------------------- |
||
31 | halyavin | 606 | ; DATA AREA |
3435 | mario79 | 607 | ;----------------------------------------------------------------------------- |
608 | include 'idata.inc' |
||
609 | ;----------------------------------------------------------------------------- |
||
610 | IM_END: |
||
611 | ;----------------------------------------------------------------------------- |
||
612 | include 'udata.inc' |
||
613 | ;----------------------------------------------------------------------------- |
||
31 | halyavin | 614 | I_END: |
3435 | mario79 | 615 | ;-----------------------------------------------------------------------------110,440>>> |