home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #6 / amigaacscoverdisc1998-061998.iso / games / descent / source / main / fireball.h < prev    next >
Text File  |  1998-06-08  |  4KB  |  111 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/fireball.h $
  15.  * $Revision: 2.0 $
  16.  * $Author: john $
  17.  * $Date: 1995/02/27 11:27:03 $
  18.  * 
  19.  * Header for fireball.c
  20.  * 
  21.  * $Log: fireball.h $
  22.  * Revision 2.0  1995/02/27  11:27:03  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.13  1995/01/17  12:14:38  john
  27.  * Made walls, object explosion vclips load at level start.
  28.  * 
  29.  * Revision 1.12  1995/01/13  15:41:52  rob
  30.  * Added prototype for maybe_replace_powerup_with_energy
  31.  * 
  32.  * Revision 1.11  1994/11/17  16:28:36  rob
  33.  * Changed maybe_drop_cloak_powerup to maybe_drop_net_powerup (more
  34.  * generic and useful)
  35.  * 
  36.  * Revision 1.10  1994/10/12  08:03:42  mike
  37.  * Prototype maybe_drop_cloak_powerup.
  38.  * 
  39.  * Revision 1.9  1994/10/11  12:24:39  matt
  40.  * Cleaned up/change badass explosion calls
  41.  * 
  42.  * Revision 1.8  1994/09/07  16:00:34  mike
  43.  * Add object pointer to parameter list of object_create_badass_explosion.
  44.  * 
  45.  * Revision 1.7  1994/09/02  14:00:39  matt
  46.  * Simplified explode_object() & mutliple-stage explosions
  47.  * 
  48.  * Revision 1.6  1994/08/17  16:49:58  john
  49.  * Added damaging fireballs, missiles.
  50.  * 
  51.  * Revision 1.5  1994/07/14  22:39:19  matt
  52.  * Added exploding doors
  53.  * 
  54.  * Revision 1.4  1994/06/08  10:56:36  matt
  55.  * Improved debris: now get submodel size from new POF files; debris now has
  56.  * limited life; debris can now be blown up.
  57.  * 
  58.  * Revision 1.3  1994/04/01  13:35:44  matt
  59.  * Added multiple-stage explosions
  60.  * 
  61.  * Revision 1.2  1994/02/17  11:33:32  matt
  62.  * Changes in object system
  63.  * 
  64.  * Revision 1.1  1994/02/16  22:41:15  matt
  65.  * Initial revision
  66.  * 
  67.  * 
  68.  */
  69.  
  70.  
  71.  
  72. #ifndef _FIREBALL_H
  73. #define _FIREBALL_H
  74.  
  75. //explosion types
  76. #define ET_SPARKS            0        //little sparks, like when laser hits wall
  77. #define ET_MULTI_START    1        //first part of multi-part explosion
  78. #define ET_MULTI_SECOND    2        //second part of multi-part explosion
  79.  
  80. object *object_create_explosion(short segnum, vms_vector * position, fix size, int vclip_type );
  81. object *object_create_muzzle_flash(short segnum, vms_vector * position, fix size, int vclip_type );
  82.  
  83. object *object_create_badass_explosion(object *objp, short segnum, 
  84.         vms_vector * position, fix size, int vclip_type, 
  85.         fix maxdamage, fix maxdistance, fix maxforce, int parent );
  86.  
  87. //blows up a badass weapon, creating the badass explosion
  88. //return the explosion object
  89. object *explode_badass_weapon(object *obj);
  90.  
  91. //blows up the player with a badass explosion
  92. //return the explosion object
  93. object *explode_badass_player(object *obj);
  94.  
  95. void explode_object(object *obj,fix delay_time);
  96. void do_explosion_sequence(object *obj);
  97. void do_debris_frame(object *obj);        //deal with debris for this frame
  98.  
  99. void draw_fireball(object *obj);
  100.  
  101. void explode_wall(int segnum,int sidenum);
  102. void do_exploding_wall_frame(void);
  103. void init_exploding_walls(void);
  104. extern void maybe_drop_net_powerup(int powerup_type);
  105. extern void maybe_replace_powerup_with_energy(object *del_obj);
  106.  
  107. extern int get_explosion_vclip(object *obj,int stage);
  108.  
  109. #endif
  110. 
  111.