#pragma once #include "rpplayer.h" //########################################################################## //########################### Runner ################################ //########################################################################## class Runner : public RPPlayer { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Shared Data support // public: static Derivation *GetClassDerivations(); static SharedData DefaultData; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Message Support // private: static const HandlerEntry MessageHandlerEntries[]; protected: static MessageHandlerSet MessageHandlers; public: void ScoreZoneReplyMessageHandler(ScoreZone__ReplyMessage *message); void ScoreMessageHandler(ScoreMessage *message); void VehicleDeadMessageHandler(VehicleDeadMessage *message); void DropZoneReplyMessageHandler(DropZone__ReplyMessage *message); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Model Support // public: typedef void (Runner::*Performance)(Scalar time_slice); void SetPerformance(Performance performance) { Check(this); activePerformance = (Simulation::Performance)performance; } Time dropZonePenaltyOver; Scalar scoreMultiplier; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Construction and Destruction // public: Runner(MakeMessage *creation_message, SharedData &shared_data = DefaultData); ~Runner() {} Logical TestInstance() const; static Runner* Make(MakeMessage *creation_message); void AddOffensivePlayer(OffensivePlayer &offensive_player); };