/*
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: f:/miner/source/main/rcs/hostage.h $
 * $Revision: 2.0 $
 * $Author: john $
 * $Date: 1995/02/27 11:27:50 $
 * 
 * Header for hostage.c
 * 
 * $Log: hostage.h $
 * 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_FACES	1		//if defined, hostage faces are in

#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 vclip Hostage_face_clip[MAX_HOSTAGES];

extern hostage_data Hostages[MAX_HOSTAGES];

void draw_hostage(object *obj);
void hostage_rescue( int hostage_num );
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 );

#ifdef HOSTAGE_FACES
int hostage_is_vclip_playing();
void stop_all_hostage_clips();
#else
#define hostage_is_vclip_playing() (0)
#endif


#endif
