/* 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