#pragma once #include "MW4.hpp" #include "Vehicle.hpp" namespace MechWarrior4 { //########################################################################## //########################### ObservationVehicle ################################ //########################################################################## typedef Vehicle__ClassData ObservationVehicle__ClassData; typedef Vehicle__Message ObservationVehicle__Message; typedef Vehicle__CreateMessage ObservationVehicle__CreateMessage; typedef Vehicle__GameModel ObservationVehicle__GameModel; typedef Vehicle__ExecutionStateEngine ObservationVehicle__ExecutionStateEngine; class ObservationVehicle : public Vehicle { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Inheritance support // public: typedef ObservationVehicle__ClassData ClassData; typedef ObservationVehicle__GameModel GameModel; typedef ObservationVehicle__Message Message; typedef ObservationVehicle__ExecutionStateEngine ExecutionStateEngine; typedef ObservationVehicle__CreateMessage CreateMessage; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Static Methods // public: static void InitializeClass(); static void TerminateClass(); typedef Vehicle BaseClass; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Run-time Construction and Destruction Support // public: static ObservationVehicle* Make(CreateMessage *message,ReplicatorID *base_id); protected: ObservationVehicle(ClassData *class_data,CreateMessage *message,ReplicatorID *base_id,ElementRenderer::Element *element); ~ObservationVehicle(); void Reuse(const CreateMessage *message,ReplicatorID *base_id); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Shared Data support // public: static ClassData *DefaultData; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Simulation Support // protected: void TurnOn(void); public: int GetTableArray() {Check_Object(this); return NameTable::ObservationVehicleArray;} void PreCollisionExecute(Stuff::Time till); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Test Support // public: void TestInstance() const; }; }