home *** CD-ROM | disk | FTP | other *** search
/ Black Art of 3D Game Programming / Black_Art_of_3D_Game_Programming.iso / source / borland / chap_9 / blazem0.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-26  |  21.6 KB  |  691 lines

  1.  
  2. // BLAZEM0.H
  3.  
  4. // D E F I N E S /////////////////////////////////////////////////////////////
  5.  
  6. // digital sound system
  7.  
  8. #define BLZCLK_VOC      0       // engaging the cloaking device
  9. #define BLZEXP1_VOC     1       // standard explosion
  10. #define BLZEXP2_VOC     2       // the super nova
  11. #define BLZLAS_VOC      3       // laser torpedo sound
  12. #define BLZNRG_VOC      4       // energy up sound
  13. #define BLZSHLD_VOC     5       // shields engaging
  14. #define BLZTAC_VOC      6       // tactical heads up
  15. #define BLZSCN_VOC      7       // scanners turning on
  16. #define BLZMISS_VOC     8       // mission debriefing
  17.  
  18. #define BLZBIOS_VOC     9       // bios is ok
  19. #define BLZENTR_VOC     10      // entering game arena
  20. #define BLZABRT_VOC     11      // function aborted
  21. #define BLZSEL_VOC      12      // a selection was made
  22. #define BLZKEY_VOC      13      // a key has been pressed
  23. #define BLZDIAL_VOC     14      // the computer is dialing
  24.  
  25. #define BLZLOS_VOC      15      // the loser sound
  26. #define BLZWIN_VOC      16      // the loser sound
  27.  
  28.  
  29. #define NUM_SOUND_FX    17     // the number of sound fx loaded in
  30.  
  31. // music system
  32.  
  33. #define NUM_INTRO_SEQUENCES  11 // the number of elements in intro music score
  34. #define NUM_GAME_SEQUENCES   18 // the number of elements in game music score
  35.  
  36. // modem defines
  37.  
  38. // defines for briefing instructions
  39.  
  40. #define NUM_PAGES          12
  41. #define NUM_LINES_PAGE     17
  42.  
  43. // defines for the super nova explosion
  44.  
  45. #define NUM_CINDERS        20     // maximum number of cinders per explosion
  46.  
  47. #define CINDER_START_COLOR 48     // starting cinder color
  48. #define CINDER_END_COLOR   48+15  // ending cinder color
  49.  
  50. #define NUM_NOVAS          3      // maximum number of super novas in game
  51.  
  52. #define NOVA_ACTIVE        1      // states of the novas
  53. #define NOVA_INACTIVE      0
  54.  
  55. // heads up display defines
  56.  
  57. #define SCANNER_X             128  // position of scanner on screen
  58. #define SCANNER_Y             166
  59.  
  60. #define MAX_BLIPS             50   // maximum number of scanner blips
  61.  
  62. #define BLIP_ASTEROID         9    // colors dor scanner blips
  63. #define BLIP_PLAYER           10
  64. #define BLIP_REMOTE           12
  65. #define BLIP_ALIEN            13
  66.  
  67. #define RIGHT_HEADS_TEXT_X    240  // position of rightmost text for headsup
  68. #define RIGHT_HEADS_TEXT_Y    120
  69.                                                                                           // position of leftmost text for headsup
  70. #define LEFT_HEADS_TEXT_X     0
  71. #define LEFT_HEADS_TEXT_Y     120
  72.  
  73. #define HEADS_CLOAK         1    // bitmap indices for various headsup elements
  74. #define HEADS_SCANNER       2
  75. #define HEADS_COMM          3
  76. #define HEADS_SHIPS         4
  77. #define HEADS_ENERGY        5
  78. #define HEADS_SHIELDS
  79.  
  80. #define HEADS_1             1
  81. #define HEADS_2             2
  82. #define HEADS_3             3
  83.  
  84. #define HEADS_GAUGE_1       1
  85.  
  86. // fuel cell defines
  87.  
  88. #define NUM_FUEL_CELLS      4   // number of fuel cells in game
  89. #define NUM_FUEL_FRAMES     3   // number of animation frames for fuel cells
  90.  
  91. #define FUEL_CELL_ACTIVE    1   // states of a fuel cell
  92. #define FUEL_CELL_ABSORBED  0
  93.  
  94. // alien defines
  95.                                                                                   // number of alien animation frames
  96. #define NUM_ALIEN_FRAMES    4
  97. #define ALIEN_ODDS          50  // probabiliy of alien comming out
  98.  
  99. #define ALIEN_INACTIVE      0  // states of the alien
  100. #define ALIEN_RANDOM        1  // the three modes of intelligence
  101. #define ALIEN_CHASE_PLAYER  2
  102. #define ALIEN_CHASE_REMOTE  3
  103.  
  104. // worm hole defines
  105.  
  106. #define NUM_WORMHOLE_FRAMES 8     // number of wormhole animation frames
  107.  
  108. #define WORMHOLE_X          1250  // position of wormhole
  109. #define WORMHOLE_Y          1250
  110.  
  111. // starting position of the intro startup sequence
  112.  
  113. #define START_MESS_X        2
  114. #define START_MESS_Y        8
  115.  
  116. // general explosions
  117.  
  118. #define NUM_EXPLOSIONS        4  // number of explosions that can run at once
  119. #define NUM_EXPLOSION_FRAMES  6  // number frames in explosion
  120.  
  121. #define EXPLOSION_INACTIVE    0  // state of an inactive explosion
  122. #define EXPLOSION_ACTIVE      1  // state of a live explosion
  123.  
  124. // missile defines
  125.  
  126. #define GENERIC_MISSILE    0
  127.  
  128. #define PLAYER_MISSILE     1   // this missile was fired by the local player
  129. #define REMOTE_MISSILE     2   // this missile was fired by remote player
  130.  
  131. #define MISS_ACTIVE        1   // flags that a missile is alive
  132. #define MISS_INACTIVE      0   // flags that a missile is dead
  133. #define NUM_MISSILES       12  // number of total missiles allowed in world
  134.  
  135. // state of the game itself
  136.  
  137. #define GAME_SETUP                  0   // the game is in the setup mode
  138. #define GAME_LINKING                1   // the communications link is being established
  139. #define GAME_RUNNING                2   // the game is running
  140. #define GAME_PAUSED                 3   // the game is paused (not implemented)
  141. #define GAME_OVER                   4   // what do you think
  142.  
  143. // general object states
  144.  
  145. #define DEAD                        0   // these are general states for any
  146. #define ALIVE                       1   // object
  147. #define DYING                       2
  148.  
  149. // defines for setup selections
  150.  
  151. #define SETUP_PLAY_SOLO             0
  152. #define SETUP_MAKE_CONNECTION       1
  153. #define SETUP_WAIT_FOR_CONNECTION   2
  154. #define SETUP_SELECT_SHIP           3
  155. #define SETUP_SET_COMM_PORT         4
  156. #define SETUP_BRIEFING              5
  157. #define SETUP_EXIT                  6
  158.  
  159. #define NUM_SETUP                   7   // number of setup choices
  160.  
  161. // the coordinates of the setup display window
  162.  
  163. #define DISPLAY_X                   243 // position of the small setup display
  164. #define DISPLAY_Y                   68  // box
  165. #define DISPLAY_WIDTH               73  // size of window
  166. #define DISPLAY_HEIGHT              28
  167.  
  168. #define DISPLAY_IMG_SHIPS           0   // commands to the display function
  169. #define DISPLAY_IMG_PORTS           1   // indicating icons to display
  170.  
  171. // size of the "tech" font used in intro
  172.  
  173. #define TECH_FONT_WIDTH         4   // width of high tech font
  174. #define TECH_FONT_HEIGHT        7   // height of high tech font
  175. #define NUM_TECH_FONT           64  // number of characters in tech font
  176.  
  177. // asteroid defines
  178.  
  179. #define ASTEROID_SMALL          0   // different asteroid sizes
  180. #define ASTEROID_MEDIUM         1
  181. #define ASTEROID_LARGE          2
  182.  
  183. #define ASTEROID_INACTIVE       0   // asteroid states
  184. #define ASTEROID_ACTIVE         1
  185. #define ASTEROID_INOP           2
  186.  
  187. #define NUM_LARGE_ASTEROIDS     6   // max number of large asteroids in the game
  188. #define NUM_MEDIUM_ASTEROIDS    10  // max number of medium asteroids in game
  189. #define NUM_SMALL_ASTEROIDS     24  // max number of small asteroids in game
  190.  
  191. #define START_LARGE_ASTEROIDS   0   // starting index of large asteroids
  192. #define START_MEDIUM_ASTEROIDS  6   // starting index of medium asteroids
  193. #define START_SMALL_ASTEROIDS   16  // starting index of small asteroids
  194.  
  195. #define END_LARGE_ASTEROIDS     (0+6-1)    // ending indices
  196. #define END_MEDIUM_ASTEROIDS    (6+10-1)
  197. #define END_SMALL_ASTEROIDS     (16+24-1)
  198.  
  199. #define ASTEROID_LARGE_WIDTH    34  // size of large asteroids
  200. #define ASTEROID_LARGE_HEIGHT   28
  201.  
  202. #define ASTEROID_MEDIUM_WIDTH   16  // size of medium asteroids
  203. #define ASTEROID_MEDIUM_HEIGHT  14
  204.  
  205. #define ASTEROID_SMALL_WIDTH    8   // size of small asteroids
  206. #define ASTEROID_SMALL_HEIGHT   6
  207.  
  208. #define NUM_ASTEROID_FRAMES     8   // number of asteroid animation frames
  209.  
  210. #define NUM_ASTEROIDS  (6+10+24)    // total number of asteroids in universe
  211.  
  212. // defines for the star field
  213.  
  214. #define NUM_STARS                50   // number of stars in universe
  215.  
  216. #define STAR_PLANE_0             0    // far plane
  217. #define STAR_PLANE_1             1    // near plane
  218. #define STAR_PLANE_2             2
  219.  
  220. #define STAR_COLOR_0             8    // color of farthest star plane
  221. #define STAR_COLOR_1             7
  222. #define STAR_COLOR_2             15   // color of nearest star plane
  223.  
  224. // dimensions of the universe
  225.  
  226. #define UNIVERSE_WIDTH           2500
  227. #define UNIVERSE_HEIGHT          2500
  228. #define UNIVERSE_BORDER          160   // the thickness of the border around
  229.                                        // the universe
  230. // defines for ships
  231.  
  232. #define GRYFON_SHIP             0
  233. #define RAPTOR_SHIP             1
  234.  
  235. #define SHIP_WIDTH              22     // size of both ships
  236. #define SHIP_HEIGHT             18
  237.  
  238.  
  239. // shield defines
  240.  
  241. #define PLAYERS_SHIELD_REG      240   // color registers of players shield
  242. #define REMOTES_SHIELD_REG      241   // color and remotes shield color
  243.  
  244. // engine defines
  245.  
  246. #define PLAYERS_ENGINE_REG      242  // color registers for engine flicker
  247. #define REMOTES_ENGINE_REG      243
  248.  
  249. // introduction panel colors
  250.  
  251. #define END_PANEL_REG           41   // the color register range for the
  252. #define START_PANEL_REG         32   // scrolling red lights on setup screen
  253.  
  254. // general identifiers for the player and remote
  255.  
  256. #define THE_PLAYER             0
  257. #define THE_REMOTE             1
  258.  
  259. #define WINNER_NONE            0
  260. #define WINNER_PLAYER          1
  261. #define WINNER_REMOTE          2
  262.  
  263.  
  264. // remote keyboard events
  265.  
  266. #define REMOTE_RIGHT           1   // each one of these bits is set or reset
  267. #define REMOTE_LEFT            2   // in a single byte and sent to the remote
  268. #define REMOTE_THRUST          4   // to indicate what the local player did
  269. #define REMOTE_SHIELDS         8
  270. #define REMOTE_CLOAK           16
  271. #define REMOTE_FIRE            32
  272. #define REMOTE_ESC             64
  273.  
  274. // S T R U C T U R E S ///////////////////////////////////////////////////////
  275.  
  276. // this is the structure for the asteroids
  277.  
  278. typedef struct asteroid_typ
  279.         {
  280.         int xv;                 // x velocity of asteroid
  281.         int yv;                 // y velocity of asteroid
  282.         int x,y;                // universe coordinates
  283.  
  284.         int type;               // type of asteroid, big, medium, small
  285.         sprite rock;            // the asteroid sprite
  286.  
  287.         } asteroid, *asteroid_ptr;
  288.  
  289. // this is the structure for the stars
  290.  
  291. typedef struct star_typ
  292.         {
  293.         int x,y;                   // position of star
  294.         int color;                 // color of star
  295.         int plane;                 // plane that star is in
  296.         int back_color;            // the color of the pixel under the star
  297.  
  298.         } star, *star_ptr;
  299.  
  300. // this is the structure used for weapons and explosion particles
  301.  
  302. typedef struct particle_type
  303.         {
  304.         int x,y;                    // universe position
  305.         int sx,sy;                  // screen coordinates
  306.         int xv,yv;                  // velocity
  307.         int type;                   // type of particle
  308.         int state;                  // state of particle
  309.         int counter;                // general counter
  310.         int threshold;              // threshold for counter
  311.         int color;                  // color of particle
  312.         int back_color;             // the color of the pixel under the particle
  313.         int visible;                // helps speed clipping
  314.         int lifetime;               // the liftime of the particle in frames
  315.  
  316.         } particle, *particle_ptr;
  317.  
  318. // this is the structure for a super nova explosion
  319.  
  320. typedef struct nova_typ
  321.         {
  322.         int state;                      // state of super nova explosion
  323.         int x,y;                        // position of super nova explosion
  324.         int lifetime;                   // the lifetime of the super nova
  325.  
  326.         particle cinders[NUM_CINDERS]; // particles of the explosion
  327.  
  328.         } nova, *nova_ptr;
  329.  
  330. // this is the structure for all simple creatures
  331.  
  332. typedef struct monster_typ
  333.         {
  334.  
  335.         int x,y;        // position in universe coordinates
  336.         int xv,yv;      // velocity of monster
  337.         int state;      // state fo monster
  338.         int type;       // type of monster
  339.  
  340.         sprite body;    // the body sprite for monster
  341.  
  342.         } monster, *monster_ptr;
  343.  
  344. // this is a scanner object
  345.  
  346. typedef struct blip_typ
  347.         {
  348.         int x,y;    // position of blip
  349.         int color;  // color of blip i.e. type of scanner object
  350.  
  351.         } blip, *blip_ptr;
  352.  
  353. // P R O T O T Y P E S //////////////////////////////////////////////////////
  354.  
  355. void Init_Stars(void);
  356.  
  357. void Move_Stars(void);
  358.  
  359. void Draw_Stars(void);
  360.  
  361. void Erase_Stars(void);
  362.  
  363. void Under_Stars(void);
  364.  
  365. void Init_Asteroids(int small, int medium, int large);
  366.  
  367. void Start_Asteroid(int x,int y,int type);
  368.  
  369. void Erase_Asteroids(void);
  370.  
  371. void Draw_Asteroids(void);
  372.  
  373. void Under_Asteroids(void);
  374.  
  375. void Move_Asteroids(void);
  376.  
  377. void Font_Engine_1(int x,int y,
  378.                    int font,int color,
  379.                    char *string,unsigned char far *destination);
  380.  
  381. void Clear_Display(int color);
  382.  
  383. void Intro_Title(void);
  384.  
  385. void Intro_Controls(void);
  386.  
  387. void Load_Icons(void);
  388.  
  389. void Load_Ships(void);
  390.  
  391. void Do_Starburst(void);
  392.  
  393. int Display_Select(int current);
  394.  
  395. void Copy_Frames(sprite_ptr dest, sprite_ptr source);
  396.  
  397. void Shield_Control(int ship,int on);
  398.  
  399. void Reset_System(void);
  400.  
  401. void Start_Players_Death(void);
  402.  
  403. void Reset_Player(void);
  404.  
  405. void Reset_Remote(void);
  406.  
  407. void Start_Remotes_Death(void);
  408.  
  409. void Panel_FX(void);
  410.  
  411. void Erase_Missiles(void);
  412.  
  413. void Under_Missiles(void);
  414.  
  415. void Draw_Missiles(void);
  416.  
  417. void Init_Missiles(void);
  418.  
  419. void Move_Missiles(void);
  420.  
  421. int Start_Missile(int x,int y,int xv,int yv, int color,int type);
  422.  
  423. void Start_Explosion(int x,int y,int speed);
  424.  
  425. void Under_Explosions(void);
  426.  
  427. void Erase_Explosions(void);
  428.  
  429. void Draw_Explosions(void);
  430.  
  431. void Animate_Explosions(void);
  432.  
  433. void Init_Explosions(void);
  434.  
  435. void Tech_Print(int x,int y,char *string,unsigned char far *destination);
  436.  
  437. void Load_Wormhole(void);
  438.  
  439. void Init_Wormhole(void);
  440.  
  441. void Under_Wormhole(void);
  442.  
  443. void Erase_Wormhole(void);
  444.  
  445. void Draw_Wormhole(void);
  446.  
  447. void Animate_Wormhole(void);
  448.  
  449. void Load_Alien(void);
  450.  
  451. void Init_Alien(void);
  452.  
  453. void Alien_Control(void);
  454.  
  455. void Under_Alien(void);
  456.  
  457. void Erase_Alien(void);
  458.  
  459. void Draw_alien(void);
  460.  
  461. void Move_Alien(void);
  462.  
  463. void Load_Fuel_Cells(void);
  464.  
  465. void Init_Fuel_Cells(void);
  466.  
  467. void Under_Fuel_Cells(void);
  468.  
  469. void Erase_Fuel_Cells(void);
  470.  
  471. void Draw_Fuel_Cells(void);
  472.  
  473. void Animate_Fuel_Cells(void);
  474.  
  475. void Init_Scanner(void);
  476.  
  477. void Erase_Scanner(void);
  478.  
  479. void Draw_Scanner(void);
  480.  
  481. void Init_Novas(void);
  482.  
  483. void Erase_Novas(void);
  484.  
  485. void Under_Novas(void);
  486.  
  487. void Draw_Novas(void);
  488.  
  489. void Move_Novas(void);
  490.  
  491. void Start_Nova(int x,int y);
  492.  
  493. void Music_Init(void);
  494.  
  495. void Music_Close(void);
  496.  
  497. void Digital_FX_Init(void);
  498.  
  499. void Digital_FX_Close(void);
  500.  
  501. int Digital_FX_Play(int the_effect, int priority);
  502.  
  503. void Draw_Blips(void);
  504.  
  505. void Under_Blips(void);
  506.  
  507. void Erase_Blips(void);
  508.  
  509. // G L O B A L S  ////////////////////////////////////////////////////////////
  510.  
  511. extern pcx_picture image_pcx,  // general PCX image used to load background and imagery
  512.             image_controls;  // this holds the controls screen
  513.  
  514.  
  515. extern RGB_color color_1,color_2; // used for temporaries during color rotation
  516.  
  517. extern RGB_palette game_palette;  // this will hold the startup system palette
  518.                            // so we can restore it after screen FX
  519.  
  520. extern sprite button_1,        // the setup buttons
  521.        button_2,
  522.        button_3,
  523.        displays,        // the display bitmaps
  524.        starburst,       // the startburt sprite
  525.        gryfon_r,        // this holds a generic gryfon ship with remote colors
  526.        raptor_r,        // this holds a generic raptor ship with remote colors
  527.        gryfon_l,        // this holds a generic gryfon ship with local colors
  528.        raptor_l,        // this holds a generic raptor ship with local colors
  529.        players_ship,    // this is the players ship
  530.        remotes_ship,    // this is the remotes ship
  531.        wormhole,        // a stationary worm hole in the game
  532.        fuel_cells[NUM_FUEL_CELLS], // the stationary fuel cells in the game
  533.  
  534.        heads_text,      // heads up display sprites
  535.        heads_numbers,
  536.        heads_gauge;
  537.  
  538.  
  539. extern monster alien;                     // the alien saucer that comes out of the
  540.                                    // wormhole
  541.  
  542. extern sprite explosions[NUM_EXPLOSIONS]; // the explosions in the game
  543.  
  544. extern nova novas[NUM_NOVAS];             // the super nova explosions!
  545.  
  546. extern int active_explosions;           // number of active explosions
  547.  
  548. extern asteroid asteroids[NUM_ASTEROIDS]; // the asteroid fields
  549.  
  550. extern star stars[NUM_STARS];             // the star fields
  551.  
  552. extern particle missiles[NUM_MISSILES];   // all the projectiles
  553.  
  554. extern bitmap tech_font[NUM_TECH_FONT];   // the tech font bitmaps
  555.  
  556. extern int game_state;  // the overall state of the game
  557.  
  558. extern int comm_port,    // currently selected comm port
  559.     players_ship_type,    // currently selected local ship type
  560.     remotes_ship_type;    // the remotes ships type
  561.  
  562.  
  563. extern int comm_port_to_address[2]; // converts the selected com port
  564.                                             // to an address
  565.  
  566. extern int master,    // the the player dials up a player
  567.     slave,    // then he is master else he is slave
  568.     linked,    // state of the modem communications system
  569.     winner;     // the winner of the game
  570.  
  571. // the start up arrays used to differentiate the player and remote
  572.  
  573. // master is index 1, slave is index 0
  574.  
  575. extern int game_start_x[];
  576. extern int game_start_y[];
  577.  
  578. // the variables for the player
  579.  
  580. extern int players_last_x,    // the last postiion of player
  581.     players_last_y,
  582.     players_x,             // current players position
  583.     players_y,
  584.     players_dx,               // players position deltas since last frame
  585.     players_dy,
  586.     players_xv,               // velocity of ship
  587.     players_yv,
  588.     players_engine,       // state of engines
  589.     players_stability,          // how long it takes for gravity
  590.     players_flame_count,        // used for engine flicker
  591.     players_flame_time,
  592.     players_gravity,           // current gravitron count
  593.     players_shields,           // state of the shields
  594.     players_shield_time,     // how long sheilds have been on
  595.     players_cloak,           // state of the shields  -1 off 1 on
  596.     players_heads,            // state of heads up display
  597.     players_comm,             // state of comm link
  598.     players_scanner,           // space scanner
  599.     players_num_ships,        // number of players ship
  600.     players_shield_strength, // the amount of energy players shields have
  601.      players_energy,          // the amount of ship energy
  602.     players_score,           // the score of the player
  603.     players_active_missiles, // the number of missiles the player has fired
  604.     players_state,           // satte of player
  605.      players_death_count;     // how long death sequence will last
  606.  
  607.  
  608. extern int debounce_hud,       // these are used to debounce the players
  609.      debounce_scan,         // inputs one some keys
  610.      debounce_cloak,
  611.      debounce_thrust,
  612.      debounce_fire,
  613.      debounce_shields;
  614.  
  615. extern int refresh_heads,              // used to track when hud needs refreshing
  616.      under_players_blip,             // these hold the pixels under the scanner
  617.     under_remotes_blip;             // blip image of the player and remote
  618.  
  619. // remote variables
  620.  
  621. extern int remotes_last_x,    // the last postiion of player
  622.     remotes_last_y      ,
  623.     remotes_x           ,    // current remotes position
  624.     remotes_y           ,
  625.      remotes_dx          ,       // remotes position deltas since last frame
  626.     remotes_dy          ,
  627.     remotes_xv          ,       // velocity of ship
  628.     remotes_yv          ,
  629.     remotes_engine      ,       // state of engines
  630.     remotes_stability   ,       // how long it takes for gravity
  631.     remotes_flame_count ,       // used for engine flicker
  632.     remotes_flame_time  ,
  633.     remotes_gravity     ,       // current gravitron count
  634.     remotes_shields     ,       // state of the shields
  635.     remotes_shield_time ,       // how long sheilds have been on
  636.     remotes_cloak       ,      // state of the shields  -1 off 1 on
  637.      remotes_heads       ,      // state of heads up display
  638.     remotes_comm        ,      // comm link
  639.     remotes_scanner     ,      // space scanner
  640.     remotes_num_ships   ,       // number of remotes ship
  641.     remotes_shield_strength, // the amount of energy remotes shields have
  642.     remotes_energy         , // the amount of ship energy
  643.     remotes_score          ,     // the remotes score
  644.     remotes_active_missiles,     // the number of missiles the remote has fired
  645.     remotes_state          , // state of remote
  646.     remotes_death_count    ;     // how long death sequence will last
  647.  
  648. // unit motion look up tables
  649.  
  650. extern int motion_dx[16];
  651. extern int motion_dy[16];
  652.  
  653. // musical sequence information
  654.  
  655. extern int music_enabled,      // flags that enable music and sound FX
  656.     digital_enabled;
  657.  
  658. extern int digital_FX_priority; // the priority tracker of the current effect
  659.  
  660. extern int intro_sequence[];
  661. extern int intro_seq_index;
  662.  
  663. extern int game_sequence[];
  664.  
  665. extern int game_seq_index;
  666.  
  667. extern music song;    // the music structure
  668.  
  669. // sound fx stuff
  670.  
  671. extern _sound digital_FX[NUM_SOUND_FX];
  672.  
  673. // these colors are used for the shields on the ships
  674.  
  675. extern RGB_color  primary_red,    // pure red
  676.            primary_blue,     // pure blue
  677.            primary_green,    // pure green
  678.            primary_black,     // pure black
  679.            primary_white, // pure white
  680.  
  681.            remotes_shield_color, // the current color of the remotes shield
  682.            players_shield_color, // the current color of the players shields
  683.  
  684.            players_engine_color, // the color or the players engine
  685.                                   remotes_engine_color; // the color or the remotes engine
  686.  
  687. // the instruction pages
  688.  
  689. extern char *instructions[];
  690.  
  691.