#pragma once #include "common.h" #include "LBroadcaster.h" #include "T2DrawableObject.h" // unknown name struct T2MoverModuleMessageData { T2MoverModule *moverModule; int value; }; class AFX_CLASS_EXPORT T2MoverModule : public T2DrawableObject, public LBroadcaster { public: T2MoverModule(); virtual ~T2MoverModule(); virtual void SetUsed(BOOL used); virtual void RemoveContents(T2TowerDoc*); virtual void StopAdded(T2TowerDoc*, T2Mover*, int); virtual void StopRemoved(T2TowerDoc*, T2Mover*, int); virtual void Enter(T2Mover*, T2People*); virtual BOOL Enter(CLink* link); virtual BOOL Leave(CLink* link); void SetDirection(int); void AddPosition(int); void SetModuleID(T2TowerDoc*); unsigned int GetModuleID() const { return mModuleID; } int GetPosition() const { return mPosition; } int GetDirection() const { return mDirection; } int GetWaitCounter() const { return mWaitCounter; } void SetWaitCounter(int v) { mWaitCounter = v; } void SubWaitCounter(int v) { mWaitCounter -= v; } int GetPatIndex() const { return mPatIndex; } void SetPatIndex(int v) { mPatIndex = v; } int GetNumPeople() const { return mNumPeople; } protected: virtual void LoadSelf(T2Archive&, T2TowerDoc*); virtual void SaveSelf(T2Archive&); friend class T2StairModuleList; friend class T2Mover; int mPosition; int mDirection; int mWaitCounter; int mPatIndex; int mNumPeople; int _4C; unsigned int mModuleID; // which one of these is first and which one is last? CLink *mLink1; CLink *mLink2; private: static unsigned int GetNewModuleID(T2TowerDoc*); static unsigned int sModuleID; };