home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #6 / amigaacscoverdisc1998-061998.iso / games / descent / source / main / powerup.h < prev    next >
Text File  |  1998-06-08  |  8KB  |  242 lines

  1. /*
  2. THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
  3. SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
  4. END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
  5. ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
  6. IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
  7. SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
  8. FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
  9. CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
  10. AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
  11. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
  12. */
  13. /*
  14.  * $Source: f:/miner/source/main/rcs/powerup.h $
  15.  * $Revision: 2.0 $
  16.  * $Author: john $
  17.  * $Date: 1995/02/27 11:27:35 $
  18.  * 
  19.  * Powerup header file.
  20.  * 
  21.  * $Log: powerup.h $
  22.  * Revision 2.0  1995/02/27  11:27:35  john
  23.  * New version 2.0, which has no anonymous unions, builds with
  24.  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
  25.  * 
  26.  * Revision 1.34  1995/02/06  15:52:37  mike
  27.  * add mini megawow powerup for giving reasonable weapons.
  28.  * 
  29.  * Revision 1.33  1995/01/30  17:14:11  mike
  30.  * halve rate of vulcan ammo consumption.
  31.  * 
  32.  * Revision 1.32  1995/01/15  20:47:56  mike
  33.  * add lighting field to powerups.
  34.  * 
  35.  * Revision 1.31  1994/12/12  21:39:58  matt
  36.  * Changed vulcan ammo: 10K max, 5K w/weapon, 1250 per powerup
  37.  * 
  38.  * Revision 1.30  1994/12/07  12:55:26  mike
  39.  * tweak vulcan amounts.
  40.  * 
  41.  * Revision 1.29  1994/12/02  20:06:46  matt
  42.  * Made vulcan ammo print at approx 25 times actual
  43.  * 
  44.  * Revision 1.28  1994/10/26  15:56:27  yuan
  45.  * Made vulcan cannon give 100 ammo if it has less than that.
  46.  * 
  47.  * Revision 1.27  1994/10/15  19:07:10  mike
  48.  * Define constants for amount of vulcan ammo per powerup.
  49.  * 
  50.  * Revision 1.26  1994/09/26  13:29:38  matt
  51.  * Added extra life each 100,000 points, and show icons on HUD for num lives
  52.  * 
  53.  * Revision 1.25  1994/09/22  19:00:25  mike
  54.  * Kill constants ENERGY_BOOST and SHIELD_BOOST: it's now difficulty level dependent.
  55.  * 
  56.  * Revision 1.24  1994/09/20  19:46:11  mike
  57.  * Fix powerup number assignments.
  58.  * 
  59.  * Revision 1.23  1994/09/02  11:53:34  mike
  60.  * Add the megawow powerup.  If you don't know about it, that's because it's a secret.
  61.  * 
  62.  * Revision 1.22  1994/09/01  10:41:35  matt
  63.  * Sizes for powerups now specified in bitmaps.tbl; blob bitmaps now plot
  64.  * correctly if width & height of bitmap are different.
  65.  * 
  66.  * Revision 1.21  1994/08/31  19:26:14  mike
  67.  * Start adding new pile of powerups.
  68.  * 
  69.  * Revision 1.20  1994/08/25  17:56:08  matt
  70.  * Added quad laser powerup
  71.  * 
  72.  * Revision 1.19  1994/08/18  15:11:50  mike
  73.  * missile powerups.
  74.  * 
  75.  * Revision 1.18  1994/08/09  17:54:33  adam
  76.  * upped no. of powerup types
  77.  * 
  78.  * Revision 1.17  1994/08/09  17:53:39  adam
  79.  * *** empty log message ***
  80.  * 
  81.  * Revision 1.16  1994/07/27  19:44:16  mike
  82.  * Objects containing objects.
  83.  * 
  84.  * Revision 1.15  1994/07/26  18:31:32  mike
  85.  * Move some constants here from eobject.c.
  86.  * 
  87.  * Revision 1.14  1994/07/20  17:35:03  yuan
  88.  * Some minor bug fixes and new key gauges...
  89.  * 
  90.  * Revision 1.13  1994/07/12  15:53:23  john
  91.  * *** empty log message ***
  92.  * 
  93.  * Revision 1.12  1994/07/12  15:30:47  mike
  94.  * Prototype diminish_towards_max.
  95.  * 
  96.  * Revision 1.11  1994/07/07  14:59:04  john
  97.  * Made radar powerups.
  98.  * 
  99.  * 
  100.  * Revision 1.10  1994/07/01  16:35:40  yuan
  101.  * Added key system
  102.  * 
  103.  * Revision 1.9  1994/06/29  19:43:33  matt
  104.  * Made powerup animation not happen in render routine
  105.  * 
  106.  * Revision 1.8  1994/06/21  18:54:03  matt
  107.  * Added support for powerups that don't get picked up if not needed, but this
  108.  * feature is commented out at the end of do_powerup(), since the physics gave 
  109.  * me all sorts of problems, with the player getting stuck on a powerup.
  110.  * 
  111.  * Revision 1.7  1994/06/08  18:16:32  john
  112.  * Bunch of new stuff that basically takes constants out of the code
  113.  * and puts them into bitmaps.tbl.
  114.  * 
  115.  * Revision 1.6  1994/05/18  13:26:30  yuan
  116.  * *** empty log message ***
  117.  * 
  118.  * Revision 1.5  1994/05/17  17:01:48  yuan
  119.  * Added constant for boosts.
  120.  * 
  121.  * Revision 1.4  1994/04/06  14:42:50  yuan
  122.  * Adding new powerups.
  123.  * 
  124.  * Revision 1.3  1994/04/01  14:36:59  yuan
  125.  * John's head is an extra life...
  126.  * 
  127.  * Revision 1.2  1994/04/01  11:15:22  yuan
  128.  * Added multiple bitmap functionality to all objects...
  129.  * (hostages, powerups, lasers, etc.)  
  130.  * Hostages and powerups are implemented in the object system,
  131.  * just need to finish function call to "affect" player.
  132.  * 
  133.  * Revision 1.1  1994/03/31  17:01:43  yuan
  134.  * Initial revision
  135.  * 
  136.  * 
  137.  */
  138.  
  139.  
  140.  
  141. #ifndef _POWERUP_H
  142. #define _POWERUP_H
  143.  
  144. #include "vclip.h"
  145.  
  146. #define    POW_EXTRA_LIFE             0
  147. #define    POW_ENERGY                    1
  148. #define    POW_SHIELD_BOOST            2
  149. #define    POW_LASER                    3
  150.  
  151. #define    POW_KEY_BLUE                4
  152. #define    POW_KEY_RED                    5
  153. #define    POW_KEY_GOLD                6
  154.  
  155. #define    POW_RADAR_ROBOTS            7
  156. #define    POW_RADAR_POWERUPS        8
  157. #define    POW_FULL_MAP                9
  158.  
  159. #define    POW_MISSILE_1                10
  160. #define    POW_MISSILE_4                11
  161.  
  162. #define    POW_QUAD_FIRE                12
  163.  
  164. //--#define    POW_VULCAN_WEAPON            13
  165. //--#define    POW_SPREADFIRE_WEAPON    14
  166. //--#define    POW_PLASMA_WEAPON            15
  167. //--#define    POW_FUSION_WEAPON            16
  168. //--#define    POW_PROXIMITY_WEAPON        17
  169. //--#define    POW_SMARTBOMB_WEAPON        18
  170. //--#define    POW_MEGA_WEAPON            19
  171. //--#define    POW_VULCAN_AMMO            20
  172. //--#define    POW_HOMING_AMMO_1            21
  173. //--#define    POW_HOMING_AMMO_4            22
  174. //--#define    POW_CLOAK                    23
  175. //--#define    POW_TURBO                    24
  176. //--#define    POW_INVULNERABILITY        25
  177. //--#define    POW_HEADLIGHT                26
  178. //--#define    POW_MEGAWOW                    27
  179.  
  180. #define    POW_VULCAN_WEAPON            13
  181. #define    POW_SPREADFIRE_WEAPON    14
  182. #define    POW_PLASMA_WEAPON            15
  183. #define    POW_FUSION_WEAPON            16
  184. #define    POW_PROXIMITY_WEAPON        17
  185. #define    POW_SMARTBOMB_WEAPON        20    //18
  186. #define    POW_MEGA_WEAPON            21    //19
  187. #define    POW_VULCAN_AMMO            22    //20
  188. #define    POW_HOMING_AMMO_1            18    //21
  189. #define    POW_HOMING_AMMO_4            19    //22
  190. #define    POW_CLOAK                    23
  191. #define    POW_TURBO                    24
  192. #define    POW_INVULNERABILITY        25
  193. #define    POW_HEADLIGHT                26
  194. #define    POW_MEGAWOW                    27
  195.  
  196. #define    VULCAN_AMMO_MAX                (392*2)
  197. #define    VULCAN_WEAPON_AMMO_AMOUNT    196
  198. #define    VULCAN_AMMO_AMOUNT            (49*2)
  199.  
  200. // What I picked up        What it said I picked up
  201. // ----------------        ------------------------
  202. // vulcan ammo             4 homing missiles
  203. // mega missile            1 homing missile
  204. // smart missile           vulcan ammo
  205. // 4 homing missiles       mega missile
  206. // 1 homing missile        smart missile
  207. // 
  208. // The rest were correct.  I can help you with this whenever you're free.
  209.  
  210. #define MAX_POWERUP_TYPES            29
  211.  
  212. #define    POWERUP_NAME_LENGTH    16        //    Length of a robot or powerup name.
  213. extern char    Powerup_names[MAX_POWERUP_TYPES][POWERUP_NAME_LENGTH];
  214.  
  215. typedef struct powerup_type_info {
  216.     int    vclip_num;
  217.     int    hit_sound;
  218.     fix    size;            //3d size of longest dimension
  219.     fix    light;        //    amount of light cast by this powerup, set in bitmaps.tbl
  220. } powerup_type_info;
  221.  
  222. extern int N_powerup_types;
  223. extern powerup_type_info Powerup_info[MAX_POWERUP_TYPES];
  224.  
  225. void draw_powerup(object *obj);
  226.  
  227. //returns true if powerup consumed
  228. int do_powerup(object *obj);
  229.  
  230. //process (animate) a powerup for one frame
  231. void do_powerup_frame(object *obj);
  232.  
  233. //    Diminish shields and energy towards max in case they exceeded it.
  234. extern void diminish_towards_max(void);
  235.  
  236. extern void do_megawow_powerup(int quantity);
  237.  
  238. extern powerup_basic(int redadd, int greenadd, int blueadd, int score, char *format, ...);
  239.  
  240. #endif
  241. 
  242.