ScummVM API documentation
global_flags.h
1/* ScummVM - Graphic Adventure Engine
2 *
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
6 *
7 * Additional copyright for this file:
8 * Copyright (C) 1995 Presto Studios, Inc.
9 *
10 * This program is free software: you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation, either version 3 of the License, or
13 * (at your option) any later version.
14
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19
20 * You should have received a copy of the GNU General Public License
21 * along with this program. If not, see <http://www.gnu.org/licenses/>.
22 *
23 */
24
25#ifndef BURIED_GLOBAL_FLAGS_H
26#define BURIED_GLOBAL_FLAGS_H
27
28#include "common/scummsys.h"
29
30namespace Buried {
31
32// This is the struct that holds all the global variables for the game
33// Originally, it was just a 1024 byte block of data with offsets into it
34
36 byte cgWallExploded; // 0
37 byte cgHookPresent; // 1
38 byte cgArrowPresent; // 2
39 byte cgHammerPresent; // 3
40 byte cgSmithyStatus; // 4
41 byte cgSmithyGuard; // 5
42 byte cgBaileyOneWayGuard; // 6
43 byte cgBaileyTwoWayGuards; // 7
44 byte cgTapestryFlag; // 8
45 byte cgBurnedLetterPresent; // 9
46 byte cgGoldCoinsPresent; // 10
47 byte cgStorageRoomVisit; // 11
48 byte bcTranslateEnabled; // 12
49 byte bcCloakingEnabled; // 13
50 byte bcLocateEnabled; // 14
51 byte myPickedUpCeramicBowl; // 15
52 byte myTPCodeWheelStatus; // 16
53 byte myTPCodeWheelLeftIndex; // 17
54 byte myTPCodeWheelRightIndex; // 18
55 byte myMCPickedUpSkull; // 19
56 byte myMCDeathGodOfferings; // 20
57 byte myWGPlacedRope; // 21
58 byte myWGRetrievedJadeBlock; // 22
59 byte myWTRetrievedLimestoneBlock; // 23
60 byte myWTCurrentBridgeStatus; // 24
61 byte myAGRetrievedEntrySkull; // 25
62 byte myAGRetrievedSpearSkull; // 26
63 byte myAGRetrievedCopperMedal; // 27
64 byte myAGRetrievedObsidianBlock; // 28
65 byte myAGHeadAStatus; // 29
66 byte myAGHeadBStatus; // 30
67 byte myAGHeadCStatus; // 31
68 byte myAGHeadDStatus; // 32
69 byte myAGHeadAStatusSkullID; // 33
70 byte myAGHeadBStatusSkullID; // 34
71 byte myAGHeadCStatusSkullID; // 35
72 byte myAGHeadDStatusSkullID; // 36
73 byte myAGTimerHeadID; // 37
74 uint32 myAGTimerStartTime; // 38-41
75 byte myDGOfferedHeart; // 42
76 byte takenEnvironCart; // 43
77 byte alRDTakenLiveCore; // 44
78 byte alRDTakenDeadCore; // 45
79 byte alNMWrongAlienPrefixCode; // 46
80 byte faKIOvenStatus; // 47
81 byte faKIPostBoxSlotA; // 48
82 byte faKIPostBoxSlotB; // 49
83 byte faKIPostBoxSlotC; // 50
84 byte faERCurrentCartridge; // 51
85 byte faERTakenRemoteControl; // 52
86 byte myMCStingerID; // 53
87 byte myMCStingerChannelID; // 54
88 byte faStingerID; // 55
89 byte faStingerChannelID; // 56
90 uint16 curItem; // ScummVM enhancement, originally unused bytes 57-58
91 byte unused0; // 59
92 uint32 cgMWCatapultData; // 60-63
93 uint32 cgMWCatapultOffset; // 64-67
94 byte cgTSTriedDoor; // 68
95 byte cgMBCrossedMoat; // 69
96 byte cgKSSmithyEntryRead; // 70
97 byte cgKSSmithyEntryTranslated; // 71
98 byte cgBSFoundMold; // 72
99 byte readBurnedLetter; // 73
100 byte evcapNumCaptured; // 74
101 byte evcapBaseID[12]; // 75-86
102 byte unused1[3]; // 87-89
103 byte faMNEnvironDoor; // 90
104 byte faMNClockClicked; // 91
105 byte faMNBooksClicked; // 92
106 byte faMNTazClicked; // 93
107 byte faMNPongClicked; // 94
108 byte faKIBirdsBobbed; // 95
109 byte faKICoffeeSpilled; // 96
110 byte cgViewedKeepPlans; // 97
111 byte cgFoundChestPanel; // 98
112 byte cgTRFoundSword; // 99
113 byte faHeardAgentFigure; // 100
114 byte jumpBCNoInfoMessageCycle; // 101
115 byte myTPCalendarTopTranslated; // 102
116 byte myTPCalendarListTranslated; // 103
117 byte myTPTextTranslated; // 104
118 byte myMCTransDoor; // 105
119 byte myMCTransAGOffering; // 106
120 byte myMCTransWGOffering; // 107
121 byte myMCTransWTOffering; // 108
122 byte myMCTransDGOffering; // 109
123 byte myMCTransMadeAnOffering; // 110
124 byte myWGTransDoorTop; // 111
125 byte myWGSeenLowerPassage; // 112
126 byte myWGCrossedRopeBridge; // 113
127 byte myMCViewedDeathGodDoor; // 114
128 byte myTPTransBreathOfItzamna; // 115
129 uint32 myAGHeadAOpenedTime; // 116-119
130 uint32 myAGHeadBOpenedTime; // 120-123
131 uint32 myAGHeadCOpenedTime; // 124-127
132 uint32 myAGHeadDOpenedTime; // 128-131
133 byte myAGHeadATouched; // 132
134 byte myAGHeadBTouched; // 133
135 byte myAGHeadCTouched; // 134
136 byte myAGHeadDTouched; // 135
137 byte lensFilterActivated; // 136
138 byte dsPTElevatorPresent; // 137
139 byte dsPTElevatorLeverA; // 138
140 byte dsPTElevatorLeverB; // 139
141 byte dsPTDoorLocked; // 140
142 byte dsWSPickedUpWheelAssembly; // 141
143 byte dsWSPickedUpGearAssembly; // 142
144 byte dsWSPickedUpPegs; // 143
145 byte dsWSSiegeCycleStatus; // 144
146 byte dsWSGrabbedSiegeCycle; // 145
147 byte dsPTUseElevatorControls; // 146
148 byte dsPTTransElevatorControls; // 147
149 byte dsGDTakenCoilOfRope; // 148
150 byte dsCTUnlockedDoor; // 149
151 byte dsCTViewedAgent3; // 150
152 byte dsPTViewedAgent3; // 151
153 byte dsCTRetrievedLens; // 152
154 byte dsCTTakenHeart; // 153
155 byte dsCYFiredCannon; // 154
156 byte dsCYBallistaStatus; // 155
157 byte dsCYPlacedSiegeCycle; // 156
158 byte dsCYBallistaXPos; // 157
159 byte dsCYBallistaYPos; // 158
160 byte aiHWStingerID; // 159
161 byte aiHWStingerChannelID; // 160
162 byte aiCRStingerID; // 161
163 byte aiCRStingerChannelID; // 162
164 byte aiDBStingerID; // 163
165 byte aiDBStingerChannelID; // 164
166 byte aiCRGrabbedMetalBar; // 165
167 byte aiICGrabbedWaterCanister; // 166
168 byte aiOxygenTimer; // 167
169 byte aiCRPressurized; // 168
170 byte aiCRPressurizedAttempted; // 169
171 byte aiMRPressurized; // 170
172 byte aiIceMined; // 171
173 byte aiOxygenReserves; // 172
174 byte aiSCHeardInitialSpeech; // 173
175 byte aiSCInitialAudioChannel; // 174
176 byte aiSCDBDoorWarning; // 175
177 byte aiSCMoveCenterWarning; // 176
178 byte aiSCConversationStatus; // 177
179 byte aiHWIceDoorUnlocked; // 178
180 byte aiICWaterInFillHandle; // 179
181 byte aiICTakenWaterCanister; // 180
182 byte aiSWStingerID; // 181
183 byte aiSWStingerChannelID; // 182
184 byte aiMRCorrectFreqSet; // 183
185 byte aiSCHeardNexusDoorComment; // 184
186 byte aiSCHeardNexusDoorCode; // 185
187 byte asInitialGuardsPass; // 186
188 byte asRBPodAStatus; // 187
189 byte asRBPodBStatus; // 188
190 byte asRBPodCStatus; // 189
191 byte asRBPodDStatus; // 190
192 byte asRBPodEStatus; // 191
193 byte asRBPodFStatus; // 192
194 byte asRBPodATakenEnvironCart; // 193
195 byte asRBPodBTakenPuzzleBox; // 194
196 byte asRBPodCTakenCodex; // 195
197 byte asRBPodDTakenSculpture; // 196
198 byte asRBPodETakenSword; // 197
199 byte asTakenEvidenceThisTrip; // 198
200 byte asDangerDoorASealed; // 199
201 byte asDoorBGuardsSeen; // 200
202 byte asAmbassadorEncounter; // 201
203 byte dsCTTriedLockedDoor; // 202
204 byte dsCTCodexTranslateAttempted; // 203
205 byte dsCTCodexFormulaeFound; // 204
206 byte dsCTCodexAtlanticusPage2; // 205
207 byte dsCTTriedElevatorControls; // 206
208 byte aiDBPlayedMomComment; // 207
209 byte aiDBPlayedFirstArthur; // 208
210 byte aiDBPlayedSecondArthur; // 209
211 byte aiDBPlayedThirdArthur; // 210
212 byte aiDBPlayedFourthArthur; // 211
213 byte aiSCPlayedNoStinger; // 212
214 byte faKITakenPostboxItem; // 213
215 byte cgMBVisited; // 214
216 byte cgKCVisited; // 215
217 byte cgTRVisited; // 216
218 byte cgKSReadJournal; // 217
219 byte cgSRClickedOnLockedChest; // 218
220 byte cgSROpenedChest; // 219
221 byte dsVisitedCodexTower; // 220
222 byte dsPTRaisedPlatform; // 221
223 byte dsPTWalkedDownElevator; // 222
224 byte dsPTBeenOnBalcony; // 223
225 byte dsGDClickedOnCodexDoor; // 224
226 byte dsWSSeenCycleSketch; // 225
227 byte dsWSSeenBallistaSketch; // 226
228 byte genHadSiegeCycle; // 227
229 byte genHadDriveAssembly; // 228
230 byte genHadWheelAssembly; // 229
231 byte dsCYNeverConnectedHook; // 230
232 byte dsCYNeverShotBallista; // 231
233 byte dsCYNeverUsedCrank; // 232
234 byte dsCYNeverOpenedBalconyDoor; // 233
235 byte dsCYTranslatedCodex; // 234
236 byte dsCYTriedOpeningDoor; // 235
237 byte dsCYTriedElevator; // 236
238 byte dsCYFoundCodexes; // 237
239 byte myVisitedMainCavern; // 238
240 byte myVisitedArrowGod; // 239
241 byte myVisitedWaterGod; // 240
242 byte myVisitedWealthGod; // 241
243 byte myVisitedDeathGod; // 242
244 byte myVisitedSpecRooms; // 243
245 byte myWTSteppedOnSwings; // 244
246 byte myWTSteppedOnFarLedge; // 245
247 byte myDGOpenedPuzzleBox; // 246
248 byte myAGVisitedAltar; // 247
249 byte dsCTPlayedBallistaFalling; // 248
250 byte cgTSTriedDoorA; // 249
251 byte cgTSTriedDoorB; // 250
252 byte aiHWLastCommentPlayed; // 251
253 byte aiNXPlayedBrainComment; // 252
254 byte asRBLastStingerID; // 253
255 byte asRBStingerID; // 254
256 byte aiICProcessedOxygen; // 255
257 byte dsCYWeebleClicked; // 256
258 byte aiICUsedMiningControls; // 257
259 byte aiSWAttemptedPresMR; // 258
260 byte aiICRefilledOxygen; // 259
261 byte aiMRUsedHarmonicsInterface; // 260
262 byte alRestoreSkipAgent3Initial; // 261
263 byte unused2[38]; // 262-299
264 byte scoreGotTranslateBioChip; // 300
265 byte scoreEnteredSpaceStation; // 301
266 byte scoreDownloadedArthur; // 302
267 byte scoreFoundSculptureDiagram; // 303
268 byte scoreEnteredKeep; // 304
269 byte scoreGotKeyFromSmithy; // 305
270 byte scoreEnteredTreasureRoom; // 306
271 byte scoreFoundSwordDiamond; // 307
272 byte scoreMadeSiegeCycle; // 308
273 byte scoreEnteredCodexTower; // 309
274 byte scoreLoggedCodexEvidence; // 310
275 byte scoreEnteredMainCavern; // 311
276 byte scoreGotWealthGodPiece; // 312
277 byte scoreGotRainGodPiece; // 313
278 byte scoreGotWarGodPiece; // 314
279 byte scoreCompletedDeathGod; // 315
280 byte scoreEliminatedAgent3; // 316
281 byte scoreTransportToKrynn; // 317
282 byte scoreGotKrynnArtifacts; // 318
283 byte scoreDefeatedIcarus; // 319
284
285 // This data was modified between 1.01 and 1.03, without changing
286 // the saved game version field just to add the Louvre research
287 // boolean. The 1.01 offsets are in parentheses.
288 byte scoreResearchINNLouvreReport; // 320 (---)
289 byte scoreResearchINNHighBidder; // 321 (320)
290 byte scoreResearchINNAppeal; // 322 (321)
291 byte scoreResearchINNUpdate; // 323 (322)
292 byte scoreResearchINNJumpsuit; // 324 (323)
293 byte scoreResearchBCJumpsuit; // 325 (324)
294 byte scoreResearchMichelle; // 326 (325)
295 byte scoreResearchMichelleBkg; // 327 (326)
296 byte scoreResearchLensFilter; // 328 (327)
297 byte scoreResearchCastleFootprint; // 329 (328)
298 byte scoreResearchDaVinciFootprint; // 330 (329)
299 byte scoreResearchMorphSculpture; // 331 (330)
300 byte scoreResearchEnvironCart; // 332 (331)
301 byte scoreResearchAgent3Note; // 333 (332)
302 byte scoreResearchAgent3DaVinci; // 334 (333)
303 uint16 scoreHintsTotal; // 335-336 (334-335)
304 byte unused3[53]; // 337-389 (336-389)
305
306 byte genJumpCastleBriefing; // 390
307 byte genJumpMayanBriefing; // 391
308 byte genJumpDaVinciBriefing; // 392
309 byte genJumpStationBriefing; // 393
310 byte unused4[106]; // 394-499
311 byte generalWalkthroughMode; // 500
312 byte unused5[11]; // 501-511
313 byte aiData[512]; // 512-1023
314};
315
316enum {
317 kAIHWStartingValue = 100,
318 kAIICStartingValue = 100,
319 kAIOTWalkDecrement = 2,
320 kAIOTTurnDecrement = 1,
321 kAIOTWaitDecrement = 1,
322 kAIOTWaitTimePeriod = 10000
323};
324
325} // End of namespace Buried
326
327#endif
Definition: global_flags.h:35