0,0 → 1,146 |
;--------------------------------------------------------------------- |
confirmation_action: |
mov [work_confirmation],0 |
mov [work_confirmation_yes],0 |
jmp .red |
.red_1: |
call draw_window |
.red: |
call draw_confirmation_button |
call draw_confirmation_menu |
.still: |
mcall 10 |
cmp eax,1 |
je .red_1 |
cmp eax,2 |
je key_menu_confirmation |
cmp eax,3 |
jne .still |
mcall 17 |
cmp ah,161 |
je .no_del |
cmp ah,160 |
je .del |
cmp ah,1 |
jne .still |
mcall -1 |
.del: |
mov [work_confirmation_yes],1 |
.no_del: |
call draw_window |
.ret: |
ret |
;--------------------------------------------------------------------- |
draw_confirmation_button: |
mov ecx,[window_high] |
mov ebx,[window_width] |
shr ecx,1 |
shr ebx,1 |
sub ebx,45 |
shl ecx,16 |
shl ebx,16 |
mov cx,15 |
mov bx,40 |
mov esi,0xffffff |
mov edx,0x40000000+160 |
mov eax,8 |
int 0x40 |
add ebx,50 shl 16 |
inc edx |
int 0x40 |
ret |
;--------------------------------------------------------------------- |
draw_confirmation_menu: |
mov ecx,[window_high] |
mov ebx,[window_width] |
shr ecx,1 |
shr ebx,1 |
sub ecx,22 |
sub ebx,60 |
shl ecx,16 |
shl ebx,16 |
mov cx,44 |
mov bx,120 |
mcall 13, , ,0x6060ff ;0xff |
push ebx ecx |
add ebx,15 shl 16 |
add ecx,22 shl 16 |
mov bx,40 |
mov cx,15 |
mov edx,0 |
push ebx ecx |
cmp [work_confirmation],0 |
jne @f |
add ebx,50 shl 16 |
@@: |
int 0x40 |
add ecx,1 shl 16 |
add ebx,1 shl 16 |
mov bx,38 |
mov cx,13 |
mov edx,0x6060ff |
int 0x40 |
pop ecx ebx |
mov edx,0xff0000 |
cmp [work_confirmation],0 |
je @f |
add ebx,50 shl 16 |
mov edx,0xaa00 |
@@: |
int 0x40 |
pop ecx ebx |
shr ecx,16 |
mov bx,cx |
add ebx,15 shl 16+5 |
mcall 4, ,0x90ffffff,[confirmation_type] |
add ebx,7 shl 16+20 |
mov edx,type_yes |
int 0x40 |
add ebx,56 shl 16 |
mov edx,type_no |
int 0x40 |
ret |
;--------------------------------------------------------------------- |
key_menu_confirmation: |
mcall 2 |
cmp [extended_key],1 |
je .extended_key |
test al, al |
jnz .end_1 |
cmp ah, 0xE0 |
jne @f |
.end_1: |
jmp confirmation_action.still |
@@: |
cmp ah,75 |
je confirmation_key_75.1 |
cmp ah,77 |
je confirmation_key_75.1 |
cmp ah,28 |
je confirmation_key_28.1 |
.end: |
cmp ah,1 |
jne confirmation_action.still |
ret |
;--------------------------------------------------------------------- |
.extended_key: |
mov [extended_key],0 |
confirmation_key_75: |
cmp ah,75 ;arrow left |
je .1 |
cmp ah,77 ; arrow right |
jne confirmation_key_28 |
.1: |
dec [work_confirmation] |
and [work_confirmation],1 |
jmp confirmation_action.red |
confirmation_key_28: |
cmp ah,28 ; Enter |
jne confirmation_action.still |
.1: |
cmp [work_confirmation],0 |
jne @f |
mov [work_confirmation_yes],1 |
@@: |
ret |
;--------------------------------------------------------------------- |