/* ScummVM - Graphic Adventure Engine * * ScummVM is the legal property of its developers, whose names * are too numerous to list here. Please refer to the COPYRIGHT * file distributed with this source distribution. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #ifndef M4_RIDDLE_FLAGS_H #define M4_RIDDLE_FLAGS_H #include "common/array.h" #include "common/serializer.h" #include "m4/m4_types.h" namespace M4 { namespace Riddle { #define FLAGS_COUNT 512 enum Flag { V000 = 0, V001 = 1, V002 = 2, V003 = 3, V004 = 4, V005 = 5, V006 = 6, V007 = 7, V008 = 8, V009 = 9, V010 = 10, V011 = 11, V012 = 12, V013 = 13, V014 = 14, V015 = 15, V016 = 16, V017 = 17, kWolfFled = 18, V019 = 19, V020 = 20, V021 = 21, V022 = 22, V023 = 23, V024 = 24, V025 = 25, V026 = 26, V027 = 27, V028 = 28, V029 = 29, kLeftCastleUnderground = 30, V031 = 31, V032 = 32, V033 = 33, V034 = 34, V035 = 35, V036 = 36, V037 = 37, V038 = 38, V039 = 39, V040 = 40, V041 = 41, V042 = 42, V043 = 43, V044 = 44, V045 = 45, V046 = 46, V047 = 47, V048 = 48, V049 = 49, V050 = 50, V051 = 51, V052 = 52, V053 = 53, V054 = 54, V055 = 55, V056 = 56, V057 = 57, V058 = 58, // Room 207 - 0 = Wheel ; 1 = Wheel broken down to pieces V059 = 59, V060 = 60, V061 = 61, V062 = 62, V063 = 63, V064 = 64, V065 = 65, V066 = 66, V067 = 67, V068 = 68, V069 = 69, V070 = 70, V071 = 71, V072 = 72, V073 = 73, V074 = 74, V075 = 75, kChinshiCartoon = 76, kTabletsCartoon = 77, V078 = 78, V079 = 79, V080 = 80, // Room 303 Puffball : first look animation played V081 = 81, // Room 303 Torso Tomato : first look animation played V082 = 82, V083 = 83, V084 = 84, // Room 304: 1 if cobra is dead, 2 if cobra has been caught alive V085 = 85, V086 = 86, V087 = 87, V088 = 88, V089 = 89, V090 = 90, V091 = 91, V092 = 92, V093 = 93, kBridgeWheelPosition = 94, // 0 and 4 = horizontal and walkable V095 = 95, V096 = 96, V097 = 97, V098 = 98, V099 = 99, kBridgeLocked = 100, V101 = 101, V102 = 102, V103 = 103, V104 = 104, V105 = 105, V106 = 106, V107 = 107, V108 = 108, V109 = 109, V110 = 110, V111 = 111, V112 = 112, V113 = 113, V114 = 114, // Give marks to Wolf, room 402 V115 = 115, V116 = 116, // Try to give to Wolf a foreign currency, room 402 V117 = 117, V118 = 118, V119 = 119, V120 = 120, V121 = 121, V122 = 122, V123 = 123, V124 = 124, V125 = 125, V126 = 126, V127 = 127, V128 = 128, kTravelDest = 129, kCastleCartoon = 130, kWolfLocation = 131, V132 = 132, V133 = 133, V134 = 134, V135 = 135, kEmeraldCartoon = 136, kEpitaphCartoon = 137, kGraveyardCartoon = 138, V139 = 139, kMocaMocheCartoon = 140, V141 = 141, V142 = 142, V143 = 143, V144 = 144, V145 = 145, V146 = 146, V147 = 147, V148 = 148, V149 = 149, V150 = 150, V151 = 151, V152 = 152, V153 = 153, V154 = 154, V155 = 155, V156 = 156, V157 = 157, V158 = 158, V159 = 159, V160 = 160, V161 = 161, V162 = 162, V163 = 163, V164 = 164, V165 = 165, V166 = 166, V167 = 167, V168 = 168, V169 = 169, V170 = 170, V171 = 171, V172 = 172, V173 = 173, V174 = 174, V175 = 175, V176 = 176, V177 = 177, V178 = 178, V179 = 179, kEasterIslandCartoon = 180, V181 = 181, V182 = 182, V183 = 183, V184 = 184, V185 = 185, V186 = 186, V187 = 187, V188 = 188, V189 = 189, // Room 604: 2= wire connected to pull 3= Also connected to the plug V190 = 190, V191 = 191, V192 = 192, V193 = 193, V194 = 194, V195 = 195, V196 = 196, V197 = 197, V198 = 198, V199 = 199, V200 = 200, V201 = 201, V202 = 202, V203 = 203, V204 = 204, V205 = 205, V206 = 206, V207 = 207, V208 = 208, V209 = 209, V210 = 210, V211 = 211, V212 = 212, V213 = 213, V214 = 214, kTempleCartoon = 215, V216 = 216, V217 = 217, // Prayer wheel in niche, room 703 V218 = 218, V219 = 219, // Prayer wheel in niche, room 704 / 706 V220 = 220, // prayer wheel (left), room 705 V221 = 221, // prayer wheel (right), room 705 V222 = 222, V223 = 223, V224 = 224, V225 = 225, V226 = 226, V227 = 227, V228 = 228, V229 = 229, V230 = 230, V231 = 231, V232 = 232, V233 = 233, V234 = 234, V235 = 235, V236 = 236, V237 = 237, V238 = 238, V239 = 239, V240 = 240, V241 = 241, V242 = 242, V243 = 243, V244 = 244, V245 = 245, V246 = 246, V247 = 247, V248 = 248, V249 = 249, V250 = 250, V251 = 251, kTerracottaSoldiers = 252, kRiceSackMoved = 253, kDugInWall = 254, kOpenedHoleInWall = 255, V256 = 256, V257 = 257, V258 = 258, V259 = 259, V260 = 260, V261 = 261, V262 = 262, V263 = 263, // Set after the first walk in room 809 V264 = 264, V265 = 265, V266 = 266, V267 = 267, V268 = 268, V269 = 269, V270 = 270, V271 = 271, V272 = 272, V273 = 273, V274 = 274, V275 = 275, V276 = 276, V277 = 277, // look at "hole in chasm wall", 808 -> 1 when animation displayed once V278 = 278, // look at "hole in bridge", 808 -> 1 when animation displayed once V279 = 279, V280 = 280, V281 = 281, V282 = 282, V283 = 283, V284 = 284, V285 = 285, V286 = 286, V287 = 287, V288 = 288, V289 = 289, V290 = 290, V291 = 291, V292 = 292, V293 = 293, V294 = 294, V295 = 295, V296 = 296, V297 = 297, V298 = 298, V299 = 299, V300 = 300, V301 = 301, V302 = 302, V303 = 303, V304 = 304, V305 = 305, kGamesCabinetOpen = 306, V307 = 307, V308 = 308, kWritingDeskDrawerOpen = 309, kCardSwitchRevealed = 310, V311 = 311, kBilliardsTableState = 312, V313 = 313, V314 = 314, V315 = 315, kCrackedMirror = 316, V317 = 317, // Look at the game cabinet for the first time after opening it, room 406 V318 = 318, V319 = 319, V320 = 320, kBilliardBallInCabinet = 321, kBilliardsFan = 322, V323 = 323, V324 = 324, V325 = 325, V326 = 326, V327 = 327, V328 = 328, V329 = 329, V330 = 330, V331 = 331, V332 = 332, kPaintingOpen = 333, kButlerSaidWolfFled = 334, V335 = 335, V336 = 336, V337 = 337, kGermanBanknoteFound = 338, V339 = 339, V340 = 340, V341 = 341, V342 = 342, V343 = 343, V344 = 344, V345 = 345, V346 = 346, V347 = 347, V348 = 348, V349 = 349, V350 = 350, V351 = 351, V352 = 352, V353 = 353, V354 = 354, V355 = 355, V356 = 356, V357 = 357, V358 = 358, V359 = 359, V360 = 360, V361 = 361, V362 = 362, V363 = 363, V364 = 364, V365 = 365, V366 = 366, V367 = 367, V368 = 368, V369 = 369, V370 = 370, V371 = 371, V372 = 372, V373 = 373, V374 = 374, V375 = 375, V376 = 376, V377 = 377, V378 = 378, V379 = 379, V380 = 380, V381 = 381, V382 = 382, V383 = 383, V384 = 384, V385 = 385, V386 = 386, V387 = 387, V388 = 388, V389 = 389, V390 = 390, V391 = 391, V392 = 392, V393 = 393, V394 = 394, V395 = 395, V396 = 396, V397 = 397, V398 = 398, V399 = 399, V400 = 400, V401 = 401, V402 = 402, V403 = 403, V404 = 404, V405 = 405, V406 = 406, V407 = 407, V408 = 408, V409 = 409, V410 = 410, V411 = 411, V412 = 412, V413 = 413, V414 = 414, V415 = 415, V416 = 416, V417 = 417, V418 = 418, V419 = 419, V420 = 420, V421 = 421, V422 = 422, V423 = 423, V424 = 424, V425 = 425, V426 = 426, V427 = 427, V428 = 428, V429 = 429, V430 = 430, V431 = 431, V432 = 432, V433 = 433, V434 = 434, V435 = 435, V436 = 436, V437 = 437, V438 = 438, V439 = 439, V440 = 440, V441 = 441, V442 = 442, V443 = 443, V444 = 444, V445 = 445, V446 = 446, V447 = 447, V448 = 448, V449 = 449, V450 = 450, V451 = 451, V452 = 452, V453 = 453, V454 = 454, V455 = 455, V456 = 456, V457 = 457, V458 = 458, V459 = 459, V460 = 460, V461 = 461, V462 = 462, V463 = 463, V464 = 464, V465 = 465, V466 = 466, V467 = 467, V468 = 468, V469 = 469, V470 = 470, V471 = 471, V472 = 472, V473 = 473, V474 = 474, V475 = 475, V476 = 476, V477 = 477, V478 = 478, V479 = 479, V480 = 480, V481 = 481, V482 = 482, V483 = 483, V484 = 484, V485 = 485, V486 = 486, V487 = 487, V488 = 488, V489 = 489, V490 = 490, V491 = 491, V492 = 492, V493 = 493, V494 = 494, V495 = 495, V496 = 496, V497 = 497, V498 = 498, V499 = 499, V500 = 500, V501 = 501, V502 = 502, V503 = 503, V504 = 504, V505 = 505, V506 = 506, V507 = 507, V508 = 508, V509 = 509, V510 = 510, V511 = 511 }; class Flags { public: static int32 _flags[FLAGS_COUNT]; public: Flags(); /** * Save/load values to a save file */ void sync(Common::Serializer &s); size_t size() const { return FLAGS_COUNT; } int32 &operator[](Flag flag) { assert((int)flag < FLAGS_COUNT); return _flags[flag]; } /** * Reset the flags */ void reset(); }; } // namespace Riddle } // namespace M4 #endif