0,0 → 1,142 |
draw_window: |
|
|
mov eax,12 ; function 12:tell os about windowdraw |
mov ebx,1 ; 1, start of draw |
int 0x40 |
|
; DRAW WINDOW |
mov eax,0 ; function 0 : define and draw window |
mov ebx,320*65536+(LEN_X-BORDER_LEFT-BORDER_RIGHT)*ADOBE_SIZE+X_LOCATION*2+98 |
mov ecx,25*65536+ (LEN_Y-BORDER_TOP-BORDER_BOTTOM)*ADOBE_SIZE+Y_LOCATION+4 |
mov edx,0x03000000 ; color of work area RRGGBB |
mov esi,0x006688ee ; color of grab bar RRGGBB,8->col |
mov edi,0x007799ff ; color of frames RRGGBB |
int 0x40 |
|
; WINDOW LABEL |
mov eax,4 ; function 4 : write text to window |
mov ebx,8*65536+5 ; [x start] *65536 + [y start] |
mov ecx,0x00ffffff ; color of text RRGGBB |
mov edx,labelt ; pointer to text beginning |
mov esi,scoretext-labelt ; text length |
int 0x40 |
|
cmp byte[status],'0' |
jne status1 |
call draw_logo |
call draw_menu |
|
status1: |
cmp byte[status],'1' |
jne status2 |
|
call draw_game |
|
status2: |
cmp byte[status],'2' |
jne status3 |
|
call draw_game |
|
mov eax,4 ; function 4 : write text to window |
mov ebx,80*65536+170 ; [x start] *65536 + [y start] |
mov ecx,0x10ff0000 ; color of text RRGGBB |
mov edx,paused ; pointer to text beginning |
mov esi,txt_end-paused ; text length |
int 0x40 |
|
status3: |
cmp byte[status],'3' |
jne status4 |
|
call draw_logo |
mov edx,history |
call show_text |
|
status4: |
cmp byte[status],'4' |
jne status5 |
|
call draw_logo |
mov edx,instructions |
call show_text |
|
status5: |
|
mov eax,12 ; function 12:tell os about windowdraw |
mov ebx,2 ; 2, end of draw |
int 0x40 |
|
ret |
|
draw_game: |
|
call draw_table |
movzx edx,byte [current_block_color] |
call draw_block |
|
call write_score |
|
mov eax,38 |
mov ebx,((LEN_X-BORDER_LEFT-BORDER_RIGHT)*ADOBE_SIZE+X_LOCATION*2-4) shl 16 + ((LEN_X-BORDER_LEFT-BORDER_RIGHT)*ADOBE_SIZE+X_LOCATION*2-4) |
mov ecx,20 shl 16 + ((LEN_Y-BORDER_TOP-BORDER_BOTTOM)*ADOBE_SIZE+Y_LOCATION+2-4) |
mov edx,0x00ffffff |
int 0x40 |
|
ret |
|
draw_logo: |
|
mov ebx,2 |
mov ecx,2 |
mov edx,[color_table+1*4] |
mov edi,tetris_t |
call draw_title_block |
mov ebx,5 |
mov ecx,3 |
mov edx,[color_table+2*4] |
mov edi,tetris_e |
call draw_title_block |
mov ebx,8 |
mov ecx,2 |
mov edx,[color_table+3*4] |
mov edi,tetris_t |
call draw_title_block |
mov ebx,11 |
mov ecx,3 |
mov edx,[color_table+4*4] |
mov edi,tetris_r |
call draw_title_block |
mov ebx,13 |
mov ecx,2 |
mov edx,[color_table+5*4] |
mov edi,tetris_i |
call draw_title_block |
mov ebx,15 |
mov ecx,3 |
mov edx,[color_table+6*4] |
mov edi,tetris_s |
call draw_title_block |
mov ebx,20 |
mov ecx,2 |
mov edx,[color_table+7*4] |
mov edi,tetris_II |
call draw_title_block |
|
ret |
|
show_text: |
mov ebx,6*65536+120 ; draw info text with function 4 |
mov ecx,0xff0000 |
mov esi,34 |
newline: |
mov eax,4 |
int 0x40 |
add ebx,10 |
add edx,34 |
cmp [edx],byte 'x' |
jne newline |
ret |
|
|
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |