home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Games / xjewel / panel.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-03  |  3.3 KB  |  223 lines

  1. /*
  2. **
  3. **    X11 Jewel By David Cooper and Jose Guterman 05/92
  4. **
  5. */
  6.  
  7. #include "general.h"
  8. #include "hscore.h"
  9. #include "panel.h"
  10.  
  11. static int Score;
  12. static int Lives;
  13. static float Speed;
  14. static int Stage;
  15. static int Rest;
  16. static BOOL _Sound = DEF_SOUND;
  17. static BOOL _Paused;
  18.  
  19. static float Speeds[]=
  20.     {
  21.     1.500,        /* Stage 1 */
  22.     1.250,        /* Stage 2 */
  23.     1.000,        /* Stage 3 */
  24.     0.750,        /* Stage 4 */
  25.     0.500,        /* Stage 5 */
  26.     0.250,        /* Stage 6 */
  27.     0.2375,        /* Stage 7 */
  28.     0.2250,        /* Stage 8 */
  29.     0.2125,        /* Stage 9 */
  30.     0.2000,        /* Stage 10 */
  31.     0.1875,        /* Stage 11 */
  32.     0.1750,        /* Stage 12 */
  33.     0.1625,        /* Stage 13 */
  34.     0.1500,        /* Stage 14 */
  35.     0.1375,        /* Stage 15 */
  36.     0.1250,        /* Stage 16 */
  37.     0.1125,        /* Stage 17 */
  38.     0.1000,        /* Stage 18 */
  39.     0.0875,        /* Stage 19 */
  40.     0.0750,        /* Stage 20 */
  41.     0.0625,        /* Stage 21 */
  42.     0.0500,        /* Stage 22 */
  43.     0.0375,        /* Stage 23 */
  44.     0.0250,        /* Stage 24 */
  45.     0.0125,        /* Stage 25 */
  46.     0.0000,        /* Stage 26 */
  47.     0.0000        /* Stage 27 */
  48.     };
  49.  
  50. void Reset_Score()
  51.     {
  52.     /* set to zero */
  53.     Score=0;
  54.     Redraw_Score(Score);
  55.     }
  56.  
  57. void Add_Raw_Score(pts,mult)
  58. int pts, mult;
  59.     {
  60.     /* a pts is any value */
  61.     /*  mult is simply the number of times pts is to be added */
  62.     /* Redraw_Add_Score(pts,mult);*/
  63.     Score+=(pts*mult);
  64.     Redraw_Score(Score);
  65.     }
  66.  
  67.  
  68. void Add_Score(pts,iteration)
  69. int pts, iteration;
  70.     {
  71.     int Mult=1<<(iteration-1);
  72.     /* mult is simply the iteration of match algorithm */
  73.     Redraw_Add_Score(pts,Mult);
  74.     Score+=(pts*Mult);
  75.     Redraw_Score(Score);
  76.     }
  77.  
  78. int Get_Score()
  79.     {
  80.     return(Score);
  81.     }
  82.  
  83. void Reset_Lives()
  84.     {
  85.     /* set to default */
  86.     Lives=INITIAL_LIVES;
  87.     Redraw_Lives(Lives);
  88.     }
  89.  
  90. void Dec_Lives()
  91.     {
  92.     /* obvious */
  93.     Lives--;
  94.     Redraw_Lives(Lives);
  95.     if (Lives == 0)        /* Sorry my friend you are history... */
  96.         {
  97.         End_Game();
  98.         }
  99.     }
  100.  
  101. void Reset_Stage()
  102.     {
  103.     /* set stage and speed */
  104.     Stage=1;
  105.     Speed=Speeds[0];
  106.     Redraw_Speed(Speed);
  107.     Redraw_Stage(Stage);
  108.     }
  109.  
  110. void Inc_Stage()
  111.     {
  112.     /* set stage and speed */
  113.     Stage++;
  114.     if (Stage > MAX_STAGE)
  115.         {
  116.         Stage = 1;
  117.         }
  118.     Speed=Speeds[Stage-1];
  119.     Redraw_Speed(Speed);
  120.     Redraw_Stage(Stage);
  121.     }
  122.  
  123. void Dec_Stage()
  124.     {
  125.     /* set stage and speed */
  126.     if (Stage > 1)
  127.         {
  128.         Stage--;
  129.         Speed=Speeds[Stage-1];
  130.         Redraw_Speed(Speed);
  131.         Redraw_Stage(Stage);
  132.         }
  133.     }
  134.  
  135. int Get_Stage()
  136.     {
  137.     return(Stage);
  138.     }
  139.  
  140. unsigned long Get_Speed_ms()
  141.     {
  142.     return((unsigned long)(Speed*1000));
  143.     }
  144.  
  145. void Reset_Rest()
  146.     {
  147.     Rest=PIECES_PER_STAGE;
  148.     Redraw_Rest(Rest);
  149.     }
  150.  
  151. BOOL Dec_Rest(val)
  152.     {
  153.     BOOL new_stage;
  154.  
  155.     new_stage=FALSE;
  156.     Rest = Rest-val;
  157.     if (Rest <= 0)           /* Time for next stage */
  158.         {
  159.         Inc_Stage();
  160.         Rest = PIECES_PER_STAGE + Rest;
  161.         new_stage=TRUE;
  162.         }
  163.     Redraw_Rest(Rest);
  164.     return(new_stage);
  165.     }
  166.  
  167. void Reset_Pause()
  168.     {
  169.     _Paused=FALSE;
  170.     Redraw_Pause();
  171.     }
  172.  
  173. void Set_Pause()
  174.     {
  175.     _Paused=TRUE;
  176.     Redraw_Pause();
  177.     }
  178.  
  179. BOOL Toggle_Pause()
  180.     {
  181.     _Paused=((_Paused) ? FALSE : TRUE);
  182.     Redraw_Pause();
  183.     return(_Paused);
  184.     }
  185.  
  186. BOOL Paused()
  187.     {
  188.     return(_Paused);
  189.     }
  190.  
  191. BOOL Toggle_Sound()
  192.     {
  193.     _Sound=((_Sound) ? FALSE : TRUE);
  194.     Redraw_Sound();
  195.     return(_Sound);
  196.     }
  197.  
  198. BOOL Sound()
  199.     {
  200.     return(_Sound);
  201.     }
  202.  
  203. void Redraw_Text()
  204.     {
  205.     /* do all of above */
  206.     Redraw_Score(Score);
  207.     Redraw_Lives(Lives);
  208.     Redraw_Speed(Speed);
  209.     Redraw_Stage(Stage);
  210.     Redraw_Rest(Rest);
  211.     Redraw_Sound();
  212.     Redraw_Pause();
  213.     }
  214.  
  215. void New_Game()
  216.     {
  217.     Reset_Score();
  218.     Reset_Lives();
  219.     Reset_Stage();
  220.     Reset_Rest();
  221.     Reset_Pause();
  222.     }
  223.