www.pudn.com > BucklandSimpleSoccer.rar > FieldPlayerStates.h
#ifndef FIELDPLAYERSTATES_H #define FIELDPLAYERSTATES_H //------------------------------------------------------------------------ // // Name: FieldPlayerStates.h // // Desc: States for the field players of Simple Soccer. See my book // for detailed descriptions // // Author: Mat Buckland 2003 (fup@ai-junkie.com) // //------------------------------------------------------------------------ #include#include "FSM/State.h" #include "Messaging/Telegram.h" #include "constants.h" class FieldPlayer; class SoccerPitch; //------------------------------------------------------------------------ class GlobalPlayerState : public State { private: GlobalPlayerState(){} public: //this is a singleton static GlobalPlayerState* Instance(); void Enter(FieldPlayer* player){} void Execute(FieldPlayer* player); void Exit(FieldPlayer* player){} bool OnMessage(FieldPlayer*, const Telegram&); }; //------------------------------------------------------------------------ class ChaseBall : public State { private: ChaseBall(){} public: //this is a singleton static ChaseBall* Instance(); void Enter(FieldPlayer* player); void Execute(FieldPlayer* player); void Exit(FieldPlayer* player); bool OnMessage(FieldPlayer*, const Telegram&){return false;} }; //------------------------------------------------------------------------ class Dribble : public State { private: Dribble(){} public: //this is a singleton static Dribble* Instance(); void Enter(FieldPlayer* player); void Execute(FieldPlayer* player); void Exit(FieldPlayer* player){} bool OnMessage(FieldPlayer*, const Telegram&){return false;} }; //------------------------------------------------------------------------ class ReturnToHomeRegion: public State { private: ReturnToHomeRegion(){} public: //this is a singleton static ReturnToHomeRegion* Instance(); void Enter(FieldPlayer* player); void Execute(FieldPlayer* player); void Exit(FieldPlayer* player); bool OnMessage(FieldPlayer*, const Telegram&){return false;} }; //------------------------------------------------------------------------ class Wait: public State { private: Wait(){} public: //this is a singleton static Wait* Instance(); void Enter(FieldPlayer* player); void Execute(FieldPlayer* player); void Exit(FieldPlayer* player); bool OnMessage(FieldPlayer*, const Telegram&){return false;} }; //------------------------------------------------------------------------ class KickBall: public State { private: KickBall(){} public: //this is a singleton static KickBall* Instance(); void Enter(FieldPlayer* player); void Execute(FieldPlayer* player); void Exit(FieldPlayer* player){} bool OnMessage(FieldPlayer*, const Telegram&){return false;} }; //------------------------------------------------------------------------ class ReceiveBall: public State { private: ReceiveBall(){} public: //this is a singleton static ReceiveBall* Instance(); void Enter(FieldPlayer* player); void Execute(FieldPlayer* player); void Exit(FieldPlayer* player); bool OnMessage(FieldPlayer*, const Telegram&){return false;} }; //------------------------------------------------------------------------ class SupportAttacker: public State { private: SupportAttacker(){} public: //this is a singleton static SupportAttacker* Instance(); void Enter(FieldPlayer* player); void Execute(FieldPlayer* player); void Exit(FieldPlayer* player); bool OnMessage(FieldPlayer*, const Telegram&){return false;} }; #endif