18,6 → 18,9 |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
*******************************************************************************/ |
?define HEADER_Y 4 |
?define BTNSIZE 19 |
char game_mode[] = "1/3"; |
|
void draw_window() // Ïðîöåäóðà îòðèñîâêè îêíà |
{ |
25,9 → 28,9 |
|
// WINDOW |
sys_window_redraw(1); |
EBX = xpos << 16 + xsize; |
EBX = xpos << 16 + xsize + 9; |
ECX = ypos << 16 + ysize; |
sys_draw_window(EBX, ECX, 0x14CCCCCC, colors.w_work | 0x80000000, "MineSweeper"); |
sys_draw_window(EBX, ECX, 0x34CCCCCC, colors.w_work | 0x80000000, "MineSweeper"); |
sys_window_redraw(2); |
|
// Leency ROLLED UP FIX |
36,17 → 39,21 |
|
// <NEW GAME> BUTTON (911) |
EBX = xsize / 2 - 10; |
EBX = EBX << 16 + 20; |
sys_draw_button(EBX, 25<<16+20, 911, clLightGray); |
EBX = EBX << 16 + BTNSIZE; |
sys_draw_button(EBX, HEADER_Y<<16+BTNSIZE, 911+BT_HIDE, clLightGray); |
draw_rectangle(xsize/2-10,HEADER_Y,BTNSIZE,BTNSIZE,clWhite,clDarkGray); |
|
// <CHANGE MODE> BUTTON (1001) |
sys_draw_button(10<<16+7, 23<<16+7, 1001, 0x118811); |
sys_draw_button(5<<16+32, HEADER_Y<<16+BTNSIZE, 1001+BT_HIDE, clLightGray); |
draw_rectangle(5,HEADER_Y,32,BTNSIZE,clWhite,clDarkGray); |
game_mode[0] = mode + '0'; |
sys_write_text(9<<16+HEADER_Y+3, 0x90000000+clDarkGray, #game_mode, 3); |
|
// <USER FIELD> BUTTON (1002) |
//sys_draw_button(20<<16+7, ECX, EDX+1, 0xddbb44); |
//sys_draw_button(BTNSIZE<<16+7, ECX, EDX+1, 0xddbb44); |
|
draw_time(); // draw timer |
draw_minesi(); // draw mines |
draw_mines_left(); // draw mines |
draw_squares(); // draw field |
} |
|
131,25 → 138,17 |
} |
} |
|
|
// Òàéìåð |
void draw_time() |
{ |
sys_draw_bar(XST<<16+25, 31<<16+14, 0xCCCCCC); |
sys_write_number(0x00030000, time, XST<<16+32, 0x10ff0000); |
sys_draw_bar(xsize-XST-58<<16+29, HEADER_Y<<16+20, clWhiteGray); |
sys_write_number(0x00030000, time, xsize-XST-56<<16+HEADER_Y+3, 0x101166C3); |
} |
|
|
// Èíäèêàòîð êîëè÷åñòâà íåðàññòàâëåííûõ ìèí |
void draw_minesi() |
void draw_mines_left() |
{ |
EBX = xsize - XST - 25; |
$PUSH EBX |
EBX = EBX << 16 + 25; |
sys_draw_bar(EBX, 31<<16+14, 0xCCCCCC); |
$POP EDX |
EDX <<= 16; EDX += 32; |
sys_write_number(0x00030000, cmines, EDX, 0x10ff0000); |
sys_draw_bar(xsize-XST-29<<16+29, HEADER_Y<<16+20, clWhiteGray); |
sys_write_number(0x00030000, cmines, xsize-XST-27<<16+HEADER_Y+3, 0x10ff0000); |
} |
|
|
162,3 → 161,11 |
FOR (x=0; x < ncx; x++) |
draw_square(x, y); |
} |
|
void draw_rectangle(dword x,y,w,h,color1,color2) |
{ |
sys_draw_bar(x<<16+w+1,y<<16+1,color1); |
sys_draw_bar(x<<16+1,y+1<<16+h-1,color1); |
sys_draw_bar(x+w<<16+1,y+1<<16+h,color2); |
sys_draw_bar(x<<16+w,y+h<<16+1,color2); |
} |