/* THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. */ /* * $Source: /cvsroot/dxx-rebirth/d1x-rebirth/main/powerup.h,v $ * $Revision: 1.1.1.1 $ * $Author: zicodxx $ * $Date: 2006/03/17 19:41:45 $ * * Powerup header file. * * $Log: powerup.h,v $ * Revision 1.1.1.1 2006/03/17 19:41:45 zicodxx * initial import * * Revision 1.1.1.1 1999/06/14 22:13:01 donut * Import of d1x 1.37 source. * * Revision 2.0 1995/02/27 11:27:35 john * New version 2.0, which has no anonymous unions, builds with * Watcom 10.0, and doesn't require parsing BITMAPS.TBL. * * Revision 1.34 1995/02/06 15:52:37 mike * add mini megawow powerup for giving reasonable weapons. * * Revision 1.33 1995/01/30 17:14:11 mike * halve rate of vulcan ammo consumption. * * Revision 1.32 1995/01/15 20:47:56 mike * add lighting field to powerups. * * Revision 1.31 1994/12/12 21:39:58 matt * Changed vulcan ammo: 10K max, 5K w/weapon, 1250 per powerup * * Revision 1.30 1994/12/07 12:55:26 mike * tweak vulcan amounts. * * Revision 1.29 1994/12/02 20:06:46 matt * Made vulcan ammo print at approx 25 times actual * * Revision 1.28 1994/10/26 15:56:27 yuan * Made vulcan cannon give 100 ammo if it has less than that. * * Revision 1.27 1994/10/15 19:07:10 mike * Define constants for amount of vulcan ammo per powerup. * * Revision 1.26 1994/09/26 13:29:38 matt * Added extra life each 100,000 points, and show icons on HUD for num lives * * Revision 1.25 1994/09/22 19:00:25 mike * Kill constants ENERGY_BOOST and SHIELD_BOOST: it's now difficulty level dependent. * * Revision 1.24 1994/09/20 19:46:11 mike * Fix powerup number assignments. * * Revision 1.23 1994/09/02 11:53:34 mike * Add the megawow powerup. If you don't know about it, that's because it's a secret. * * Revision 1.22 1994/09/01 10:41:35 matt * Sizes for powerups now specified in bitmaps.tbl; blob bitmaps now plot * correctly if width & height of bitmap are different. * * Revision 1.21 1994/08/31 19:26:14 mike * Start adding new pile of powerups. * * Revision 1.20 1994/08/25 17:56:08 matt * Added quad laser powerup * * Revision 1.19 1994/08/18 15:11:50 mike * missile powerups. * * Revision 1.18 1994/08/09 17:54:33 adam * upped no. of powerup types * * Revision 1.17 1994/08/09 17:53:39 adam * *** empty log message *** * * Revision 1.16 1994/07/27 19:44:16 mike * Objects containing objects. * * Revision 1.15 1994/07/26 18:31:32 mike * Move some constants here from eobject.c. * * Revision 1.14 1994/07/20 17:35:03 yuan * Some minor bug fixes and new key gauges... * * Revision 1.13 1994/07/12 15:53:23 john * *** empty log message *** * * Revision 1.12 1994/07/12 15:30:47 mike * Prototype diminish_towards_max. * * Revision 1.11 1994/07/07 14:59:04 john * Made radar powerups. * * * Revision 1.10 1994/07/01 16:35:40 yuan * Added key system * * Revision 1.9 1994/06/29 19:43:33 matt * Made powerup animation not happen in render routine * * Revision 1.8 1994/06/21 18:54:03 matt * Added support for powerups that don't get picked up if not needed, but this * feature is commented out at the end of do_powerup(), since the physics gave * me all sorts of problems, with the player getting stuck on a powerup. * * Revision 1.7 1994/06/08 18:16:32 john * Bunch of new stuff that basically takes constants out of the code * and puts them into bitmaps.tbl. * * Revision 1.6 1994/05/18 13:26:30 yuan * *** empty log message *** * * Revision 1.5 1994/05/17 17:01:48 yuan * Added constant for boosts. * * Revision 1.4 1994/04/06 14:42:50 yuan * Adding new powerups. * * Revision 1.3 1994/04/01 14:36:59 yuan * John's head is an extra life... * * Revision 1.2 1994/04/01 11:15:22 yuan * Added multiple bitmap functionality to all objects... * (hostages, powerups, lasers, etc.) * Hostages and powerups are implemented in the object system, * just need to finish function call to "affect" player. * * Revision 1.1 1994/03/31 17:01:43 yuan * Initial revision * * */ #ifndef _POWERUP_H #define _POWERUP_H #include "vclip.h" #include "player.h" #define POW_EXTRA_LIFE 0 #define POW_ENERGY 1 #define POW_SHIELD_BOOST 2 #define POW_LASER 3 #define POW_KEY_BLUE 4 #define POW_KEY_RED 5 #define POW_KEY_GOLD 6 #define POW_RADAR_ROBOTS 7 #define POW_RADAR_POWERUPS 8 #define POW_FULL_MAP 9 #define POW_MISSILE_1 10 #define POW_MISSILE_4 11 #define POW_QUAD_FIRE 12 //--#define POW_VULCAN_WEAPON 13 //--#define POW_SPREADFIRE_WEAPON 14 //--#define POW_PLASMA_WEAPON 15 //--#define POW_FUSION_WEAPON 16 //--#define POW_PROXIMITY_WEAPON 17 //--#define POW_SMARTBOMB_WEAPON 18 //--#define POW_MEGA_WEAPON 19 //--#define POW_VULCAN_AMMO 20 //--#define POW_HOMING_AMMO_1 21 //--#define POW_HOMING_AMMO_4 22 //--#define POW_CLOAK 23 //--#define POW_TURBO 24 //--#define POW_INVULNERABILITY 25 //--#define POW_HEADLIGHT 26 //--#define POW_MEGAWOW 27 #define POW_VULCAN_WEAPON 13 #define POW_SPREADFIRE_WEAPON 14 #define POW_PLASMA_WEAPON 15 #define POW_FUSION_WEAPON 16 #define POW_PROXIMITY_WEAPON 17 #define POW_HOMING_AMMO_1 18 //21 #define POW_HOMING_AMMO_4 19 //22 #define POW_SMARTBOMB_WEAPON 20 //18 #define POW_MEGA_WEAPON 21 //19 #define POW_VULCAN_AMMO 22 //20 #define POW_CLOAK 23 #define POW_TURBO 24 #define POW_INVULNERABILITY 25 #define POW_HEADLIGHT 26 #define POW_MEGAWOW 27 #define VULCAN_AMMO_MAX (392*2) #define VULCAN_WEAPON_AMMO_AMOUNT 196 #define VULCAN_AMMO_AMOUNT (49*2) // What I picked up What it said I picked up // ---------------- ------------------------ // vulcan ammo 4 homing missiles // mega missile 1 homing missile // smart missile vulcan ammo // 4 homing missiles mega missile // 1 homing missile smart missile // // The rest were correct. I can help you with this whenever you're free. #define MAX_POWERUP_TYPES 29 #define POWERUP_NAME_LENGTH 16 // Length of a robot or powerup name. extern char Powerup_names[MAX_POWERUP_TYPES][POWERUP_NAME_LENGTH]; typedef struct powerup_type_info { int vclip_num; int hit_sound; fix size; //3d size of longest dimension fix light; // amount of light cast by this powerup, set in bitmaps.tbl } __pack__ powerup_type_info; extern int N_powerup_types; extern powerup_type_info Powerup_info[MAX_POWERUP_TYPES]; void draw_powerup(object *obj); //returns true if powerup consumed int do_powerup(object *obj); //process (animate) a powerup for one frame void do_powerup_frame(object *obj); // Diminish shields and energy towards max in case they exceeded it. extern void diminish_towards_max(void); extern void do_megawow_powerup(int quantity); extern void powerup_basic(int redadd, int greenadd, int blueadd, int score, char *format, ...); extern void count_powerup_start_level(); extern int powerup_start_level[MAX_POWERUP_TYPES]; extern void pow_count_level(); extern void pow_add_random(); // add pow_count to powerup_start_level extern void pow_add_level_pow_count(int *pow_count); // fill pow_count with items that would be dropped if player dies extern void player_to_pow_count(player *player, int *pow_count); #define NUM_PLAYER_DROP_POWERUPS 16 extern int player_drop_powerups[NUM_PLAYER_DROP_POWERUPS]; // reduce player drop powerups extern void clip_player_pow_count(int *pow_count); // may this powerup be added to the level? // returns number of powerups left if true, otherwise 0. extern int may_create_powerup(int powerup); #endif