12#ifndef TT_INCLUDE__VEHICLEGAMEOBJDEF_H
13#define TT_INCLUDE__VEHICLEGAMEOBJDEF_H
15#include "engine_vector.h"
16#include "SmartGameObjDef.h"
18class TransitionDataClass;
21 ENGINE_SOUND_STATE_STARTING = 0,
22 ENGINE_SOUND_STATE_RUNNING,
23 ENGINE_SOUND_STATE_STOPPING,
24 ENGINE_SOUND_STATE_OFF,
26 MAX_ENGINE_SOUND_STATES
37class VehicleGameObjDef :
public SmartGameObjDef
40 VehicleGameObjDef(
void );
41 virtual ~VehicleGameObjDef(
void );
42 virtual uint32 Get_Class_ID(
void )
const;
43 virtual PersistClass * Create(
void )
const ;
44 virtual bool Save( ChunkSaveClass &csave );
45 virtual bool Load( ChunkLoadClass &cload );
46 virtual void On_Post_Load(
void );
47 virtual const PersistFactoryClass & Get_Factory(
void )
const;
49 virtual void Dump (FileClass &file);
50 virtual void DumpPhys (FileClass &file);
52 DECLARE_EDITABLE( VehicleGameObjDef, SmartGameObjDef );
53 DynamicVectorClass<TransitionDataClass*> * Get_Transition_List(
void ) {
return &Transitions; }
54 const DynamicVectorClass<TransitionDataClass*> & Get_Transition_List(
void )
const {
return Transitions; }
55 void Free_Transition_List(
void );
56 int Get_Damage_Report(
int team)
const;
57 int Get_Destroy_Report(
int team)
const;
58 int Get_Seat_Count()
const {
return NumSeats;}
59 VehicleType Get_Type()
const {
return Type;}
60 const StringClass &Get_Fire0_Anim()
const {
return Fire0Anim;}
61 const StringClass &Get_Fire1_Anim()
const {
return Fire1Anim;}
62 bool Get_Build_At_Ground()
const {
return BuildAtGround;}
63 float Get_Factory_Ride_Height()
const {
return FactoryRideHeight;}
64 int Get_Purchase_Report(
int team)
const;
65 bool Can_Repair()
const {
return CanRepair; }
66 int Get_Engine_Sound(
int type)
const {
return EngineSound[type]; }
70 StringClass Fire0Anim;
71 StringClass Fire1Anim;
73 DynamicVectorClass<TransitionDataClass*> Transitions;
75 bool OccupantsVisible;
78 float EngineSoundMaxPitchFactor;
79 int EngineSound[MAX_ENGINE_SOUND_STATES];
83 int GDIDamageReportID;
84 int NodDamageReportID;
85 int GDIDestroyReportID;
86 int NodDestroyReportID;
88 bool AllowStealthWhileEmpty;
91 float FactoryRideHeight;
93 int GDIPurchaseReportID;
94 int NodPurchaseReportID;
97 Vector3 EntryHelpMessageColor;
98 bool ApplySurfaceEffectDamage;
99 bool DisableSurfaceSounds;
100 friend class VehicleGameObj;
101 friend class PresetDump;