Rev 6166 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6166 | Rev 7661 | ||
---|---|---|---|
Line 56... | Line 56... | ||
56 | byte x_size; |
56 | byte x_size; |
57 | byte y_size; |
57 | byte y_size; |
58 | byte nmines; |
58 | byte nmines; |
59 | } stdmodes[3] = {9,9,10, 16,16,40, 30,16,99}; // {x,y,m} |
59 | } stdmodes[3] = {9,9,10, 16,16,40, 30,16,99}; // {x,y,m} |
Line 60... | Line 60... | ||
60 | 60 | ||
61 | int XST, // offset of first pixel X - ñìåùåíèå ïîëÿ îò ãðàíèöû îêíà |
61 | ?define XST 5 // offset of first pixel X - ñìåùåíèå ïîëÿ îò ãðàíèöû îêíà |
- | 62 | ?define YST 28 |
|
62 | YST, |
63 | |
63 | ncx, // number of squares in X - ðàçìåð ïîëÿ |
64 | int ncx, // number of squares in X - ðàçìåð ïîëÿ |
64 | ncy, |
65 | ncy, |
65 | cmines, // mines discovered - êîëè÷åñòâî íåîòêðûòûõ ìèí |
66 | cmines, // mines discovered - êîëè÷åñòâî íåîòêðûòûõ ìèí |
66 | initmines, // number of initial mines - èçíà÷àëüíîå êîëè÷åñòâî ìèí |
67 | initmines, // number of initial mines - èçíà÷àëüíîå êîëè÷åñòâî ìèí |
Line 105... | Line 106... | ||
105 | 106 | ||
106 | 107 | ||
107 | void init() |
108 | void init() |
108 | // Èíèöèàëèçàöèÿ |
- | |
109 | { |
- | |
110 | XST = 10; YST = 52; // FIELD POSITION IN WINDOW |
109 | // Èíèöèàëèçàöèÿ |
111 | 110 | { |
|
112 | ECX = mode; |
111 | ECX = mode; |
113 | IF (ECX != 0) |
112 | IF (ECX != 0) |
114 | { |
113 | { |
Line 124... | Line 123... | ||
124 | ncy = DSBYTE[EBX]; EBX++; |
123 | ncy = DSBYTE[EBX]; EBX++; |
125 | cmines = initmines = DSBYTE[EBX]; |
124 | cmines = initmines = DSBYTE[EBX]; |
126 | } |
125 | } |
Line 127... | Line 126... | ||
127 | 126 | ||
128 | xsize = ncx * XPX + XST + XST; |
127 | xsize = ncx * XPX + XST + XST; |
129 | ysize = ncy * YPX + YST + XST; |
128 | ysize = ncy * YPX + YST + XST + sys_get_skin_height() + 4; |
Line 130... | Line 129... | ||
130 | } // init |
129 | } // init |
131 | 130 | ||
Line 256... | Line 255... | ||
256 | CASE 1: cmines--; |
255 | CASE 1: cmines--; |
257 | } |
256 | } |
Line 258... | Line 257... | ||
258 | 257 | ||
Line 259... | Line 258... | ||
259 | set_mark(x, y, EBX); |
258 | set_mark(x, y, EBX); |
260 | 259 | ||
261 | draw_minesi(); |
260 | draw_mines_left(); |
262 | draw_square(x, y); |
261 | draw_square(x, y); |
263 | return; |
262 | return; |
264 | } |
263 | } |
Line 285... | Line 284... | ||
285 | { |
284 | { |
286 | set_mark(x, y, 1); |
285 | set_mark(x, y, 1); |
287 | cmines--; |
286 | cmines--; |
288 | draw_square(x, y); |
287 | draw_square(x, y); |
289 | } |
288 | } |
290 | draw_minesi(); |
289 | draw_mines_left(); |
291 | } |
290 | } |
292 | } // do_mouse |
291 | } // do_mouse |
Line 293... | Line 292... | ||
293 | 292 | ||
Line 436... | Line 435... | ||
436 | mouse_enable(); |
435 | mouse_enable(); |
437 | while() |
436 | while() |
438 | { |
437 | { |
439 | switch (sys_wait_event_timeout(100)) // wait for 1 second |
438 | switch (sys_wait_event_timeout(100)) // wait for 1 second |
440 | { |
439 | { |
441 | case evReDraw: |
440 | CASE evReDraw: |
442 | draw_window(); |
441 | draw_window(); |
443 | continue; |
442 | continue; |
Line 444... | Line 443... | ||
444 | 443 | ||
445 | case evKey: |
444 | CASE evKey: |
446 | IF (sys_get_key() == 27) |
445 | IF (sys_get_key() == 27) |
447 | sys_exit_process(); |
446 | sys_exit_process(); |
Line 448... | Line 447... | ||
448 | continue; |
447 | continue; |
449 | 448 | ||
450 | case evButton: |
449 | CASE evButton: |
451 | EAX = sys_get_button_id(); |
450 | EAX = sys_get_button_id(); |
452 | IF (EAX == 911) // new game |
451 | IF (EAX == 911) // new game |
453 | { |
452 | { |
454 | new_game(); |
453 | new_game(); |
455 | draw_squares(); |
454 | draw_squares(); |
456 | draw_time(); |
455 | draw_time(); |
457 | draw_minesi(); |
456 | draw_mines_left(); |
458 | } |
457 | } |
- | 458 | ELSE IF (EAX == 1001) // change mode |
|
459 | ELSE IF (EAX == 1001) // change mode |
459 | { |
460 | { |
460 | mode++; |
Line 461... | Line 461... | ||
461 | // mode++; mode%=3; mode++; |
461 | if (mode==4) mode=1; |
462 | EAX = mode; EAX++; EAX = EAX%3; EAX++; mode = AL; |
462 | //EAX = mode; EAX++; EAX = EAX%3; EAX++; mode = AL; |
463 | 463 | ||
464 | new_game(); |
464 | new_game(); |
465 | window_move_size(OLD,OLD,xsize,ysize); |
465 | window_move_size(OLD,OLD,xsize+9,ysize); |
466 | CONTINUE; |
466 | CONTINUE; |
467 | } |
467 | } |