Subversion Repositories Kolibri OS

Rev

Rev 6166 | 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
        }