#pragma once #include "MW4.hpp" #include "ProjectileWeapon.hpp" namespace MechWarrior4 { //########################################################################## //########################### ArtilleryWeapon ######################### //########################################################################## typedef ProjectileWeapon__GameModel ArtilleryWeapon__GameModel; typedef ProjectileWeapon__CreateMessage ArtilleryWeapon__CreateMessage; typedef ProjectileWeapon__ExecutionStateEngine ArtilleryWeapon__ExecutionStateEngine; typedef ProjectileWeapon__Message ArtilleryWeapon__Message; typedef ProjectileWeapon__ClassData ArtilleryWeapon__ClassData; class ArtilleryWeapon: public ProjectileWeapon { public: static void InitializeClass(); static void TerminateClass(); //########################################################################## // Inheritance support // public: typedef ArtilleryWeapon__ClassData ClassData; typedef ArtilleryWeapon__GameModel GameModel; typedef ArtilleryWeapon__Message Message; typedef ArtilleryWeapon__ExecutionStateEngine ExecutionStateEngine; typedef ArtilleryWeapon__CreateMessage CreateMessage; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Run-time Construction and Destruction Support // public: static ArtilleryWeapon* Make( CreateMessage *message, ReplicatorID *base_id ); protected: ArtilleryWeapon( ClassData *class_data, CreateMessage *message, ReplicatorID *base_id, ElementRenderer::Element *element ); ~ArtilleryWeapon(); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Shared Data support // public: static ClassData *DefaultData; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Simulation Support // public: void CreateProjectile(Stuff::Time till); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Test Support // public: void TestInstance() const; }; }