home *** CD-ROM | disk | FTP | other *** search
/ RISCWORLD 7 / RISCWORLD_VOL7.iso / Software / Issue4 / IYONIX / MANICMINER / SOURCE.ZIP / manicminer-1.6.3 / c / demo < prev    next >
Encoding:
Text File  |  2000-12-04  |  2.5 KB  |  154 lines

  1. #include "manic.h"
  2. #include "gfxlibs/keyboard.h"
  3. #include "gfxlibs/gfx.h"
  4. #include "gfxdata/gfxdata.h"
  5. #include "miscdata/misc.h"
  6. #include "functions.h"
  7. #include "sndlibs/snd.h"
  8.  
  9. static void DemoSetup (void);
  10. static void RunDemo (void);
  11. static void DrawDemoLevel (void);
  12.  
  13.  
  14. void
  15. DoDemo (void)
  16. {
  17.   switch (DEMOm) {
  18.   case 0:
  19.     if (TONKS == 0)
  20.       LEVEL = 0;
  21.     else
  22.       LEVEL = 20;
  23.  
  24.     DemoSetup ();
  25.     break;
  26.   case 1:
  27.     RunDemo ();
  28.     break;
  29.   case 2:
  30.     NextDemo ();
  31.     break;
  32.   }
  33. }
  34.  
  35. /* ////////////////////////////////////////////////////////////
  36. //      Setup Demo
  37. //////////////////////////////////////////////////////////// */
  38. static void
  39. DemoSetup (void)
  40. {
  41.   int count;
  42.  
  43.   DEMOm = 1;
  44.   DEMOp = 0;
  45.   LIVES = 3;
  46.   LIVESp = 0;
  47.   LIVESf = 0;
  48.  
  49.   for (count = 0; count < 768; count++) {
  50.     PALwhite[count] = 63;
  51.     PALblack[count] = 0;
  52.     PALfade[count] = PALmain[count];
  53.     PALover[count] = PALmain[count];
  54.   }
  55.  
  56.   CopyLevelInfo ();
  57.   DrawDemoLevel ();
  58.   mm_gfx_flush ();
  59.   mm_gfx_palset (PALmain);
  60. }
  61.  
  62. /* ////////////////////////////////////////////////////////////
  63. //      Do Demo
  64. //////////////////////////////////////////////////////////// */
  65. static void
  66. RunDemo (void)
  67. {
  68.   int waitvrcount;
  69.  
  70.   cWILLY.pos.x = 0;
  71.   cWILLY.pos.y = 128;
  72.  
  73.   RemoveSPG ();
  74.   RemoveSky ();
  75.   RemoveKong ();
  76.   RemoveVRobo ();
  77.   RemoveHRobo ();
  78.   RemoveEugene ();
  79.  
  80.   DrawKeys ();
  81.   DrawConv ();
  82.  
  83.   DrawSwitches ();
  84.  
  85.   DoHRobo ();
  86.   DoVRobo ();
  87.   DoSpecialRobo ();
  88.  
  89.   DrawExit ();
  90.   DrawAir ();
  91.  
  92.   DrawLives ();
  93.  
  94.   DEMOp++;
  95.  
  96.   if (DEMOp > 60) {
  97.     DEMOm = 2;
  98.     LevelDoneExtra ();
  99.     mm_gfx_flush ();
  100.     FadeToBlue ();
  101.   }
  102.  
  103.   for (waitvrcount = 0; waitvrcount < SPEED; waitvrcount++) {
  104.     mm_gfx_waitvr ();
  105.     mm_snd_update ();
  106.   }
  107.   mm_gfx_flush ();
  108.  
  109.   if (mm_keyb_pressed (KEYB_ANYKEY)) {
  110.     MODE = 0;
  111.     TITLEm = 0;
  112.     mm_snd_stopmod ();
  113.   }
  114. }
  115.  
  116. /* ////////////////////////////////////////////////////////////
  117. //      Draw Level
  118. //////////////////////////////////////////////////////////// */
  119. static void
  120. DrawDemoLevel (void)
  121. {
  122.   DrawCurrentLevel ();
  123.   DrawConv ();
  124.   DrawKeys ();
  125.   DrawSwitches ();
  126.   DrawExit ();
  127.   DrawTPlate ();
  128.   DrawAirBG ();
  129.   DoHRobo ();
  130.   DoVRobo ();
  131.   DoSpecialRobo ();
  132.   DrawExit ();
  133.   DrawAir ();
  134.  
  135.   mm_gfx_fillbox (0, 144, 256, 48, PAPER);
  136.  
  137.   PrintScore ();
  138.   PrintHighScore ();
  139.   DrawLives ();
  140. }
  141.  
  142. /* ////////////////////////////////////////////////////////////
  143. //      Next Demo Level
  144. //////////////////////////////////////////////////////////// */
  145. void
  146. NextDemo (void)
  147. {
  148.   LEVEL++;
  149.   if (LEVEL == 20 || LEVEL == 40)
  150.     LEVEL -= 20;
  151.  
  152.   DemoSetup ();
  153. }
  154.