AwakeMUD-0.6Beta/doc/
AwakeMUD-0.6Beta/lib/
AwakeMUD-0.6Beta/lib/etc/
AwakeMUD-0.6Beta/lib/etc/pfiles/
AwakeMUD-0.6Beta/lib/fixer_data/
AwakeMUD-0.6Beta/lib/misc/
AwakeMUD-0.6Beta/lib/plrobjs/
AwakeMUD-0.6Beta/lib/plrobjs/A-E/
AwakeMUD-0.6Beta/lib/plrobjs/F-J/
AwakeMUD-0.6Beta/lib/plrobjs/K-O/
AwakeMUD-0.6Beta/lib/plrobjs/U-Z/
AwakeMUD-0.6Beta/lib/plrspells/A-E/
AwakeMUD-0.6Beta/lib/plrspells/F-J/
AwakeMUD-0.6Beta/lib/plrtext/A-E/
AwakeMUD-0.6Beta/lib/world/
AwakeMUD-0.6Beta/lib/world/mob/
AwakeMUD-0.6Beta/lib/world/obj/
AwakeMUD-0.6Beta/lib/world/qst/
AwakeMUD-0.6Beta/lib/world/shp/
AwakeMUD-0.6Beta/lib/world/wld/
AwakeMUD-0.6Beta/lib/world/zon/
	/* file: vehicles.h
	 * purpose: header for vehicles, drones, robots, etc.
	 * authors: Dunkelzahn, Fastjack
	 * copyright: (c)2001 The AwakeMUD Consortium, Daniel Gelinske
	 * and Nick Robertson */

/*		*		*		*		*		*/


#ifndef _vehicles_h_
#define _vehicles_h_


/* vattr defines -- vehicle attributes */

#define NUM_OF_VATTRS				15

#define VATTR_BODY 				0
#define VATTR_ARMOR				1
#define VATTR_SPEED_CRUISE			2
#define VATTR_SPEED_MAX				3
#define VATTR_HANDLING				4
#define VATTR_SIGNATURE				5
#define VATTR_AUTOPILOT				6
#define VATTR_FIRMPOINTS			7
#define VATTR_HARDPOINTS			8
#define VATTR_FUEL_TYPE				9
#define VATTR_FUEL_ECON				10
#define VATTR_FUEL_STOR				11
#define VATTR_SEATING				12
#define VATTR_STORAGE				13
#define VATTR_RESERVED				14	/* must be last */


/* vtype defines -- vehicle types */

#define NUM_OF_VTYPES				17

#define VTYPE_CAR				0
#define VTYPE_BIKE				1
#define VTYPE_HOVERCRAFT			2
#define VTYPE_ROTOR				3
#define VTYPE_LAV				4
#define VTYPE_VECTOR				5
#define VTYPE_AIRCRAFT				6
#define VTYPE_BOAT_SAIL				7
#define VTYPE_BOAT_MOTOR			8
#define VTYPE_DRONE_HUNTER			9
#define VTYPE_DRONE_SURVEILLANCE		10
#define VTYPE_DRONE_SPOTTER			11
#define VTYPE_ROBOTIC				12
#define VTYPE_SUBORBITAL			13
#define VTYPE_ROCKET				14
#define VTYPE_SPACE_SHUTTLE			15
#define VTYPE_RESERVED				16	/* must be last */


/* vstate defines -- driving, rigged, etc */

#define NUM_OF_VSTATES				7

#define VSTATE_PARKED				0
#define VSTATE_NEUTRAL				1
#define VSTATE_IDLE				2
#define VSTATE_COASTING				3
#define VSTATE_DRIVING				4
#define VSTATE_RIGGING				5
#define VSTATE_RESERVED				6	/* must be last */


/* vdrive defines -- bike, 2wd, 4wd, water, air */

#define VDRIVE_MAX				7

#define VDRIVE_BIKE				0
#define VDRIVE_2WD				1
#define VDRIVE_4WD				2
#define VDRIVE_WATER				3
#define VDRIVE_HOVER				4
#define VDRIVE_FLY				5
#define VDRIVE_RESERVED				6


/* vspeed defines -- i.e. how fast are ya drivin'? */

#define NUM_OF_VSPEEDS				8

#define VSPEED_STOPPED				0
#define VSPEED_CRAWLING				1
#define VSPEED_SLOW				2
#define VSPEED_MODERATE				3
#define VSPEED_CRUISE				4
#define VSPEED_SPEEDING				5
#define VSPEED_MAX				6
#define VSPEED_RESERVED				7


/* fueltypes -- what ya put in yer gastank? */

#define NUM_OF_FUELTYPES			11

#define FUELTYPE_GASOLINE			0
#define FUELTYPE_PETROCHEM			1
#define FUELTYPE_ELECTRIC			2
#define FUELTYPE_PROPANE			3
#define FUELTYPE_KEROSENE			4
#define FUELTYPE_ETHANOL			5
#define FUELTYPE_HYDROGEN			6
#define FUELTYPE_JET				7
#define FUELTYPE_ROTOR				8
#define FUELTYPE_NUCLEAR			9
#define FUELTYPE_RESERVED			10

/* Winging it --
 * Could be fucked */

#define NOVEHICLE				-1	/* Null Ref
							 * For vehicles */
#define MAX_VEH_AFFECT				0	/* required	*/

typedef sh_int veh_num;

/* This is incomplete.  Just got to figure out what else to put in it.  **
 *		*		*		*		-Dunk   */
struct veh_data 
{	veh_num veh_number;          		/* Where in data-base   */
	room_num in_veh;             		/* In what room -1      */

/* Important, but incomplete.
 *	struct veh_flag_data veh_flags; 	** Vehicle information  **
 *	struct veh_affected_type affected[MAX_VEH_AFFECT];   ** affects **
 */
	char *name;                     /* Title of object :get etc.        */
	char *description;              /* When in room                     */
	char *short_description;        /* when worn/carry/in cont.         */
	char *long_description;         /* long description when examined   */
	char *inside_description;	/* Description inside of vehicle    */
	char *window_description;	/* Looking out the window --        **
					** I would like this to point to    **
					** Description of the room that the **
					** Vehicle is in.  Ya see?	    */
	struct extra_descr_data *ex_description; /* extra descriptions      */
	struct char_data *driven_by;		 /* who's drivin the lemon? */
	struct char_data *passengers;		 /* who's in it?	    */
	struct obj_data *contains;		 /* what's in it?	    */
	struct obj_data *next_content;		 /* contents lists stuph    */
	struct veh_data *weaponry;		 /* your mounted guns!!!    */
	struct veh_data *remain_fuel;		 /* units of fuel left      */

	veh_data() :
		name(NULL), description(NULL), short_description(NULL),
		long_description(NULL), inside_description(NULL),
		window_description(NULL), ex_description(NULL), driven_by(NULL),
		passengers(NULL), contains(NULL), next_content(NULL),
		weaponry(NULL), remain_fuel(NULL) {}		
};

/*		*		 Thats  it.		*		*
 *		*		Show's over.		*		*
 *		*		  Go home.		* 		*/

#endif