dxx-rebirth/d1x-rebirth/main/hostage.h

161 lines
4.7 KiB
C

/*
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/hostage.h,v $
* $Revision: 1.1.1.1 $
* $Author: zicodxx $
* $Date: 2006/03/17 19:44:57 $
*
* Header for hostage.c
*
* $Log: hostage.h,v $
* Revision 1.1.1.1 2006/03/17 19:44:57 zicodxx
* initial import
*
* Revision 1.1.1.1 1999/06/14 22:12:29 donut
* Import of d1x 1.37 source.
*
* Revision 2.0 1995/02/27 11:27:50 john
* New version 2.0, which has no anonymous unions, builds with
* Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
*
* Revision 1.23 1995/01/15 19:42:06 matt
* Ripped out hostage faces for registered version
*
* Revision 1.22 1994/12/19 16:35:07 john
* Made hoastage playback end when ship dies.
*
* Revision 1.21 1994/11/30 17:22:12 matt
* Ripped out hostage faces in shareware version
*
* Revision 1.20 1994/11/19 19:53:43 matt
* Added code to full support different hostage head clip & message for
* each hostage.
*
* Revision 1.19 1994/11/19 16:35:28 matt
* Got rid of unused code, & made an array smaller
*
* Revision 1.18 1994/10/23 02:10:57 matt
* Got rid of obsolete hostage_info stuff
*
* Revision 1.17 1994/09/20 00:10:37 matt
* Finished gauges for Status Bar, including hostage video display.
*
* Revision 1.16 1994/09/01 10:41:24 matt
* Sizes for powerups now specified in bitmaps.tbl; blob bitmaps now plot
* correctly if width & height of bitmap are different.
*
* Revision 1.15 1994/08/14 23:15:14 matt
* Added animating bitmap hostages, and cleaned up vclips a bit
*
* Revision 1.14 1994/07/14 22:06:51 john
* Fix radar/hostage vclip conflict.
*
* Revision 1.13 1994/07/14 22:05:41 john
* Made radar display not conflict with hostage
* vclip talking.
*
* Revision 1.12 1994/07/06 13:41:46 matt
* Added support for bitmap hostages
*
* Revision 1.11 1994/07/06 12:43:36 john
* Made generic messages for hostages.
*
* Revision 1.10 1994/07/06 10:55:09 john
* New structures for hostages.
*
* Revision 1.9 1994/07/05 12:48:47 john
* Put functionality of New Hostage spec into code.
*
* Revision 1.8 1994/07/01 17:55:14 john
* First version of not-working hostage system.
*
* Revision 1.7 1994/06/15 14:57:10 john
* Added triggers to demo recording.
*
* Revision 1.6 1994/06/08 18:15:49 john
* Bunch of new stuff that basically takes constants out of the code
* and puts them into bitmaps.tbl.
*
* Revision 1.5 1994/05/02 12:43:06 yuan
* Fixed warnings.
*
* Revision 1.4 1994/04/06 14:42:46 yuan
* Adding new powerups.
*
* Revision 1.3 1994/04/01 11:15:14 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.2 1994/03/31 12:04:35 matt
* Added prototypes for 2 funcs
*
* Revision 1.1 1994/03/31 11:39:24 matt
* Initial revision
*
*
*/
#ifndef _HOSTAGE_H
#define _HOSTAGE_H
#include "vclip.h"
#define HOSTAGE_SIZE i2f(5) // 3d size of a hostage
#define MAX_HOSTAGE_TYPES 1
#define MAX_HOSTAGES 10 //max per any one level
#define HOSTAGE_MESSAGE_LEN 30
#define HOSTAGE_MAX_GLOBALS 10
// 1 per hostage
typedef struct hostage_data {
short objnum;
int objsig;
//ubyte type;
short vclip_num;
//short sound_num;
char text[HOSTAGE_MESSAGE_LEN];
} hostage_data;
extern char Hostage_global_message[HOSTAGE_MAX_GLOBALS][HOSTAGE_MESSAGE_LEN];
extern int Hostage_num_globals;
extern int N_hostage_types;
extern int Num_hostages;
extern int Hostage_vclip_num[MAX_HOSTAGE_TYPES]; // for each type of hostage
extern hostage_data Hostages[MAX_HOSTAGES];
void draw_hostage(object *obj);
void hostage_rescue( int hostage_number );
void hostage_init();
//returns true if something drew
int do_hostage_effects();
void hostage_init_all();
void hostage_compress_all();
int hostage_get_next_slot();
int hostage_is_valid( int hostage_num );
int hostage_object_is_valid( int objnum );
void hostage_init_info( int objnum );
#endif