home *** CD-ROM | disk | FTP | other *** search
/ ISV Strong Games / ISV_STRONG_GAMES.iso / shootemup / hive / !Hive / c / waves < prev   
Text File  |  2000-11-27  |  1KB  |  64 lines

  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #include "DeskLib:h.File"
  5. #include "DeskLib:h.SWI"
  6.  
  7. #include "Popcorn:h.Popcorn"
  8.  
  9. #include "h.game"
  10. #include "h.sound"
  11. #include "h.useful"
  12.  
  13. void wave_initialise(int num)
  14. {
  15.   FILE                 *wave_file;
  16.   char               filename[256], back_name[256];
  17.   struct game_object   *obj;
  18.   int               id,x,y,xv,yv;
  19.  
  20.   sprintf(filename, "<Hive$Dir>.Data.Wave%d\0", num);
  21.  
  22.   wave_file = fopen(filename, "rb");
  23.   if (wave_file == NULL)
  24.     return;
  25.  
  26.   fscanf(wave_file, "%s\n", back_name);
  27.   File_LoadTo(back_name, backdrop, NULL);
  28.  
  29.   while (!feof(wave_file))
  30.   {
  31.     fscanf(wave_file, "%s %d %d %d %d\n", &id, &x, &y, &xv, &yv);
  32.     obj = Popcorn_NewPrototype(alien_table, id, x<<12, y<<12);
  33.     obj->xv = xv; obj->yv = yv;
  34.     aliens_left++;
  35.   }
  36.   fclose(wave_file);
  37.  
  38. }
  39.  
  40. void check_newwave(void)
  41. {
  42.   int  time;
  43.  
  44.   if (aliens_left == 0 && wave != 0)
  45.   {
  46.     SWI(0, 1, SWI_OS_ReadMonotonicTime, &time);
  47.  
  48.     if (last_killed_at == -1)
  49.     {
  50.       make_sound("<Hive$Dir>.Sounds.EndLevel");
  51.       last_killed_at = time;
  52.     }
  53.  
  54.     if ( (time - last_killed_at) >= 400 )
  55.     {
  56.       hit_bottom = FALSE;
  57.       last_killed_at = -1;
  58.       fire_freq = 50;
  59.       wave++;
  60.       wave_initialise(wave);
  61.     }
  62.   }
  63. }
  64.