#ifndef _LOGIC_H #define _LOGIC_H #include "../../stdafx.h" class Logic : public IO_Module { public: Logic() { this->parent = NULL; this->moduleId = 0; this->isKeeper = false; this->status = 0; } Logic(uint32 logicId) { this->parent = NULL; this->moduleId = logicId; this->isKeeper = false; this->status = 0; } protected: bool isKeeper; uint8 status; enum LogicalStatus { STATUS_KEEPER_TURN_RIGHT, STATUS_KEEPER_TURN_LEFT, }; void OnBallOwned(); void OnBallLost(); void OnBecomeKeeper(); void OnBecomeAttacker(); public: void Update(); bool IsKeeper() { return isKeeper; } bool IsAttacker() { return !isKeeper; } void SetKeeper(bool newStatus) { if(!this->isKeeper && newStatus) { this->OnBecomeKeeper(); } else if(this->isKeeper && !newStatus) { this->OnBecomeAttacker(); } this->isKeeper = newStatus; } bool HasBall() { //fill me! } }; #endif