24 #include "common/serializer.h" 26 #include "hadesch/enums.h" 28 #ifndef HADESCH_PERSISTENT_H 29 #define HADESCH_PERSISTENT_H 44 return x._slot < y._slot;
48 static const int inventorySize = 6;
57 RoomId _currentRoomId;
58 RoomId _previousRoomId;
59 bool _roomVisited[kNumRooms];
60 bool _statuesTouched[kNumStatues];
61 int _statuePhase[kNumStatues];
63 InventoryItem _inventory[inventorySize];
64 bool _hintsAreEnabled;
67 bool _argoSailedInQuest[kNumRooms][kNumQuests];
68 bool _argoSaidTroyFinally;
69 bool _argoSaidCretePort;
72 bool _creteShowMerchant;
73 bool _creteShowAtlantisBoat;
74 bool _creteShowHorned;
75 bool _creteShowHornless1;
76 bool _creteShowHornless2;
77 bool _creteShowHornless3;
78 bool _creteShowHornless4;
79 bool _creteDaedalusRoomAvailable;
80 bool _creteMinosInstructed;
81 bool _creteIntroMerchant;
82 bool _cretePlayedEyeGhostTown;
83 bool _creteTriedHornless[4];
84 bool _creteIntroAtlantisBoat;
85 bool _creteIntroAtlantisWood;
86 bool _creteAlchemistExploded;
87 enum CreteSandalsState {
92 enum CreteStrongBoxState {
94 BOX_OPEN_POTION, BOX_OPEN_NO_POTION } _creteStrongBoxState;
95 bool _cretePlayedPhilAlchemist;
96 bool _cretePlayedZeusCheckOutThatBox;
97 bool _creteHadesPusnishesPainAndPanic;
98 bool _creteVisitedAfterAlchemistIntro;
99 bool _creteSaidHelenPermanentResident;
102 bool _daedalusShowedNote;
103 bool _daedalusLabItem[4];
106 bool _seriphosStrawCartTaken;
107 bool _seriphosPlayedMedusa;
108 bool _seriphosPhilWarnedAthena;
109 bool _seriphosPhilCurtainsItems;
112 bool _athenaPuzzleSolved;
113 bool _athenaSwordTaken;
114 bool _athenaShieldTaken;
115 bool _athenaPlayedPainAndPanic;
116 bool _athenaIntroPlayed;
119 bool _medisleStoneTaken;
120 bool _medislePlacedItems[5];
121 bool _medislePlayedPerseusIntro;
122 bool _medisleShowFates;
123 bool _medisleShowFatesIntro;
124 bool _medisleEyeballIsActive;
125 FateId _medisleEyePosition;
126 enum MedisleBagPuzzleState {
131 } _medisleBagPuzzleState;
132 bool _medislePlayedPhilFatesDesc;
135 bool _troyPlayAttack;
136 bool _troyWallDamaged;
137 bool _troyShowBricks;
138 bool _troyIsDefeated;
139 bool _troyPlayedOdysseus;
140 bool _troyMessageIsDelivered;
141 enum TroyKeyAndDecreeState {
142 KEY_AND_DECREE_NOT_GIVEN,
143 KEY_AND_DECREE_THROWN,
145 } _troyKeyAndDecreeState;
146 int _troyCatacombCounter;
147 bool _troyCatacombsUnlocked;
148 bool _troyPlayedOdysseusCongrats;
149 bool _troyPlayFinish;
152 int _catacombVariants[3][3];
153 CatacombsPath _catacombPaths[3][3];
154 CatacombsLevel _catacombLevel;
155 CatacombsPosition _catacombDecoderSkullPosition;
156 CatacombsLevel _catacombLastLevel;
157 bool _catacombPainAndPanic;
160 bool _volcanoPainAndPanicIntroDone;
162 enum VolcanoPuzzleState {
163 VOLCANO_NO_BOULDERS_THROWN,
164 VOLCANO_SQUASHED_PANIC,
165 VOLCANO_BOULDER_ON_VOLCANO,
167 } _volcanoPuzzleState;
168 int _volcanoToStyxCounter;
171 bool _styxCharonUsedPotion;
172 bool _styxCharonUsedCoin;
173 bool _styxAlchemistSaidIntro;
177 bool isInInventory(InventoryItem item);
179 bool isRoomVisited(RoomId
id)
const {
180 return _roomVisited[id];
183 void clearInventory();
Definition: persistent.h:33
Definition: persistent.h:50
Definition: persistent.h:42
Definition: serializer.h:79