#pragma once #include "MW4.hpp" #include "StickyMover.hpp" namespace MechWarrior4 { //########################################################################## //############################ Narc ################################## //########################################################################## //------------------------------------------------------------------------- // The following helper classes must always be typedef'd or overriden by an // inheritor // typedef StickyMover__ExecutionStateEngine Narc__ExecutionStateEngine; typedef StickyMover__GameModel Narc__GameModel; typedef StickyMover__ClassData Narc__ClassData; typedef StickyMover__Message Narc__Message; typedef StickyMover__CreateMessage Narc__CreateMessage; //----------------------- End of inheritance stuff ------------------------ class Narc: public StickyMover { public: static void InitializeClass(); static void TerminateClass(); typedef StickyMover BaseClass; //########################################################################## // Inheritance support // public: typedef Narc__ClassData ClassData; typedef Narc__GameModel GameModel; typedef Narc__Message Message; typedef Narc__ExecutionStateEngine ExecutionStateEngine; typedef Narc__CreateMessage CreateMessage; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Run-time Construction and Destruction Support // public: static Narc* Make( CreateMessage *message, ReplicatorID *base_id ); Narc( ClassData *class_data, CreateMessage *message, ReplicatorID *base_id, ElementRenderer::Element *element ); ~Narc(); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Class Data support // public: static ClassData *DefaultData; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game Model support // public: const GameModel* GetGameModel() {return Cast_Pointer(const GameModel*, gameModelResource.GetPointer());} //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Execution Support // public: void OnActiveTimeStart(); void OnActiveTimeEnd(); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Test Support // public: void TestInstance() const; }; }