The SimVehicleClass

Superclasses

VuEntity

FalconEntity

Other Subclasses: CampBaseClass , SimBaseClass,TeamClass

SimBaseClass

Other Subclasses:   SimStaticClass

SimMoverClass

Subclasses :SimWeaponClass, EjectedPilotClass


SimVehicleClass

Subclasses: SimGroundVehicle,SimAircraft,SimHelicopter,[GNDAI]

protected:
      // Controls
      BaseBrain* theBrain;
//      int numHardpoints;
          float ioPerturb;

          // how does the thing die
          int dyingType;
          enum
          {
                  DIE_SMOKE             = 0,
                  DIE_FIREBALL,
                  DIE_SHORT_FIREBALL,
                  DIE_INTERMITTENT_FIRE,
                  DIE_INTERMITTENT_SMOKE
          };

        public:
          // rates and timers for targeting
          VU_TIME nextTargetUpdate;
          VU_TIME targetUpdateRate;
          VU_TIME nextGeomCalc;
          VU_TIME geomCalcRate;

      virtual void InitData (void);
          virtual void Cleanup(void);

   public:
      void SendFireMessage (SimWeaponClass* curWeapon, int type, int startFlag, SimObjectType* targetPtr, VU_ID tgtId = FalconNullId);
      // Avionics
      PilotInputs* theInputs;
      void InitWeapons (ushort *type, ushort *num);
      enum SOI {SOI_HUD, SOI_RADAR, SOI_WEAPON};
      SOI curSOI;
      void SOIManager(SOI newSOI);

      BaseBrain* Brain(void) {return theBrain;};

      //Steering Info
      WayPointClass* curWaypoint;
                WayPointClass* waypoint;
                Int32  numWaypoints;

      virtual void ReceiveOrders (FalconEvent*) {};

      void ApplyProximityDamage (void);

          // for dying, we no longer send the death message as soon as
          // strength goes to 0, we delay until object explodes
          FalconDeathMessage *deathMessage;

      SimVehicleClass(int type);
      SimVehicleClass(VU_BYTE** stream);
      SimVehicleClass(FILE* filePtr);
      virtual ~SimVehicleClass (void);
      virtual void Init (SimInitDataClass* initData);
      virtual int Wake (void);
      virtual int Sleep (void);
      virtual void MakeLocal (void);
      virtual void MakeRemote (void);
      virtual int Exec (void);
      virtual void SetDead (int);
      virtual void ApplyDamage (FalconDamageMessage *damageMessage);
      virtual FireControlComputer* GetFCC(void) { return NULL; };
      virtual SMSBaseClass* GetSMS(void) { return NULL; };
      virtual float GetRCSFactor (void);
      virtual float GetIRFactor (void);
          virtual int GetRadarType (void);
      virtual long      GetTotalFuel (void) { return -1; }; // KCK: -1 means "unfueled vehicle"

          //all ground vehicles and helicopters have pilots until they die
          //this determines whether they can talk on the radio or not
          virtual int HasPilot (void)           { return TRUE;}
          virtual int IsVehicle (void)          { return TRUE;}

      // this function can be called for entities which aren't necessarily
      // exec'd in a frame (ie ground units), but need to have their
      // gun tracers and (possibly other) weapons serviced
      virtual void WeaponKeepAlive( void ) { return; };

      // virtual function interface
      // serialization functions
      virtual int SaveSize();
      virtual int Save(VU_BYTE **stream);       // returns bytes written
      virtual int Save(FILE *file);             // returns bytes written

      // event handlers
      virtual int Handle(VuFullUpdateEvent *event);
      virtual int Handle(VuPositionUpdateEvent *event);
      virtual int Handle(VuTransferEvent *event);
      virtual VU_ERRCODE InsertionCallback(void);