fixed some bugs in new 'g'o system
[k8-i-v-a-n.git] / src / game / actions / action_go.cpp
blobd2cc9d9ef7e2b28e4d10faa21d33b06ccab3c879
1 #ifdef HEADER_PHASE
2 ACTION(go, action)
4 public:
5 go () : Direction(0), WalkingInOpen(false), mPrevWasTurn(false) {}
7 virtual void Save (outputfile &SaveFile) const;
8 virtual void Load (inputfile &SaveFile);
9 virtual void Handle ();
10 int GetDirection () const { return Direction; }
11 void SetDirection (int What) { Direction = What; }
12 truth IsWalkingInOpen () const { return WalkingInOpen; }
13 void SetIsWalkingInOpen (truth What) { WalkingInOpen = What; }
14 virtual truth TryDisplace ();
15 virtual cchar *GetDescription () const;
16 virtual truth ShowEnvironment () const { return false; }
18 inline truth GetPrevWasTurn () const { return mPrevWasTurn; }
19 inline void SetPrevWasTurn (truth v) { mPrevWasTurn = v; }
21 protected:
22 int Direction;
23 truth WalkingInOpen;
24 truth mPrevWasTurn;
28 #else
31 cchar *go::GetDescription () const { return "going"; }
34 void go::Save (outputfile &SaveFile) const {
35 action::Save(SaveFile);
36 SaveFile << Direction << WalkingInOpen;
40 void go::Load (inputfile &SaveFile) {
41 action::Load(SaveFile);
42 SaveFile >> Direction >> WalkingInOpen;
46 void go::Handle () {
47 GetActor()->EditAP(GetActor()->GetStateAPGain(100)); // gum solution
48 GetActor()->GoOn(this);
52 truth go::TryDisplace () {
53 Terminate(false);
54 return true;
58 #endif