summaryrefslogtreecommitdiff
path: root/src/T2DLL/T2Mover.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/T2DLL/T2Mover.h')
-rw-r--r--src/T2DLL/T2Mover.h113
1 files changed, 64 insertions, 49 deletions
diff --git a/src/T2DLL/T2Mover.h b/src/T2DLL/T2Mover.h
index 18326bd..f4979dd 100644
--- a/src/T2DLL/T2Mover.h
+++ b/src/T2DLL/T2Mover.h
@@ -1,71 +1,86 @@
#pragma once
#include "common.h"
+#include "T2Equip.h"
-class T2Mover {
+enum {
+ kMoverStatus0 = 0,
+ kMoverStatus9 = 9
+};
+
+class AFX_EXT_CLASS T2Mover : public T2Equip {
public:
T2Mover();
virtual ~T2Mover();
- virtual void SetUsed(int);
- int InitMover(T2MoverDef*, const RECT&, unsigned int);
- int InitStair(T2MoverDef*, const RECT&, unsigned int);
- int InitElevator(T2MoverDef*, const RECT&, unsigned int);
+ virtual void SetUsed(BOOL);
+ virtual BOOL Enter(CLink*) { return false; }
+ virtual BOOL Leave(CLink*) { return false; }
+ virtual unsigned int Idle(T2TowerDoc*);
+ virtual void Draw(T2TowerDoc*, const RECT&);
+ virtual BOOL IsBuildFinish() { return mStatus >= kMoverStatus9; }
+ virtual PROCCODE DoDestruct(T2TowerDoc*, POINT, RECT&);
+ virtual BOOL Destruct(T2TowerDoc*, CRect&);
+ virtual T2InfoDialog* ShowInfoDialog(T2TowerDoc*, CPoint);
+
+ BOOL InitMover(T2MoverDef* moverDef, const RECT& baseRect, unsigned int valiation);
+ BOOL InitStair(T2MoverDef* moverDef, const RECT& baseRect, unsigned int valiation);
+ BOOL InitElevator(T2MoverDef* moverDef, const RECT& baseRect, unsigned int valiation);
void GetTypicalName(CString&) const;
- virtual PROCCODE DoDestruct(T2TowerDoc*, POINT, RECT&);
- virtual int Destruct(T2TowerDoc*, CRect&);
- virtual void Draw(T2TowerDoc*, const RECT&);
int GetNumStop() const;
- void AddStopBoth(T2TowerDoc*, int);
- int AddStop(T2FloorInfo*, int, ERequestUpDown);
- void RemoveStopBoth(T2TowerDoc*, int);
- void RemoveStop(T2TowerDoc*, int, ERequestUpDown);
- void RemoveCrossEquipID(T2FloorInfo*, int);
- void RemoveUnstoppable(T2TowerDoc*);
- void AddCrossEquipID(T2FloorInfo*, int);
- void AddCEFloorID(T2FloorInfo*, int);
- void ReplaceID(T2FloorInfo*, unsigned int);
- POINT PositionToStopPt(int, ERequestUpDown);
- int UnitToPosition(int) const;
- int PositionToUnit(int) const;
- int IsStopPosition(int) const;
- int IsStopPosition(int, ERequestUpDown);
- int AddModule(T2TowerDoc*, int);
- void AddStairModule(T2TowerDoc*, const RECT&, int);
- unsigned int GetRequestID(int, int) const;
+ void AddStopBoth(T2TowerDoc* towerDoc, int position);
+ BOOL AddStop(T2FloorInfo* floorInfo, int position, ERequestUpDown upDown);
+ void RemoveStopBoth(T2TowerDoc* towerDoc, int position);
+ void RemoveStop(T2TowerDoc* towerDoc, int position, ERequestUpDown upDown);
+ void RemoveCrossEquipID(T2FloorInfo* floorInfo, int position);
+ void RemoveUnstoppable(T2TowerDoc* towerDoc);
+ void AddCrossEquipID(T2FloorInfo* floorInfo, int position);
+ void AddCEFloorID(T2FloorInfo* floorInfo, int position);
+ void ReplaceID(T2FloorInfo* floorInfo, unsigned int);
+ POINT PositionToStopPt(int position, ERequestUpDown upDown);
+ int UnitToPosition(int unit) const;
+ int PositionToUnit(int position) const;
+ BOOL IsStopPosition(int position) const;
+ BOOL IsStopPosition(int position, ERequestUpDown upDown);
+ BOOL AddModule(T2TowerDoc* towerDoc, int position);
+ void AddStairModule(T2TowerDoc* towerDoc, const RECT& rect, BOOL insertAtEnd);
+ unsigned int GetRequestID(int position, BOOL isDown) const;
int GetModuleCount() const;
int FindStairModule(T2TowerDoc*, POINT, T2MoverModule*&, T2MoverModule*&);
int CalcModuleRect(const T2MoverModule*, RECT&, int&) const;
T2MoverModule* FindPeople(const T2People*) const;
void CalcMachineArea(EEquipPos, RECT&) const;
void AdjustLength();
- T2Request* GetRequest(T2FloorInfo*, int, int) const;
+ T2Request* GetRequest(T2FloorInfo* floorInfo, int position, BOOL isDown) const;
int CalcScore(int) const;
- int ExpandArea(T2TowerDoc*, EEquipPos, int);
- int IsHomePosition(int) const;
+ int ExpandArea(T2TowerDoc* towerDoc, EEquipPos pos, int count);
+ BOOL IsHomePosition(int) const;
void CalcBodyArea(RECT&) const;
int CalcModulePos(T2MoverModule*, ERequestUpDown);
void ShowShaft();
void HideShaft();
- virtual unsigned int Idle(T2TowerDoc*);
+
+ void SetShowShaft(BOOL v) { mShowShaft = v; }
+ void StartBuild() { mStatus = kMoverStatus0; }
+ BOOL IsStair() const { return IsSetAttribute(kMoverAttrIsStair); }
+ BOOL IsElevator() const { return IsSetAttribute(kMoverAttrIsElevator); }
+ BOOL IsCheckRequest() const { return mCheckRequest; }
+ void SetCheckRequest(BOOL v) { mCheckRequest = v; }
+ int GetLength() const { return mLength; }
+ int GetWaitCount() const { return mWaitCount; }
+ T2RequestIDArray* GetReqIDArray() const { return mReqIDArray; }
+ T2MoverModuleList* GetModuleList() const { return mModuleList; }
+ BOOL IsShaftVisible() const { return mShowShaft; }
+
protected:
- virtual void LoadSelf(T2Archive&, T2TowerDoc*);
- virtual void SaveSelf(T2Archive&);
-public:
- virtual T2InfoDialog* ShowInfoDialog(T2TowerDoc*, CPoint);
+ virtual void LoadSelf(T2Archive&, T2TowerDoc*);
+ virtual void SaveSelf(T2Archive&);
+
+ friend class T2MoverDef;
- void SetShowShaft(int) {}
- void StartBuild() {}
- virtual int IsBuildFinish() {}
- virtual int Enter(CLink*) {}
- virtual int Leave(CLink*) {}
- T2Mover(const T2Mover&) {}
- T2Mover& operator=(const T2Mover&) {}
- int IsStair() const {}
- int IsElevator() const {}
- int IsCheckRequest() const {}
- void SetCheckRequest(int) {}
- int GetLength() const {}
- int GetWaitCount() const {}
- T2RequestIDArray* GetReqIDArray() const {}
- T2MoverModuleList* GetModuleList() const {}
- int IsShaftVisible() const {}
+ int mLength;
+ T2RequestIDArray *mReqIDArray;
+ int mWaitCount;
+ int mMaxModule;
+ T2MoverModuleList *mModuleList;
+ BOOL mShowShaft;
+ BOOL mCheckRequest;
};