/* 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_BURGER_FLAGS_H #define M4_BURGER_FLAGS_H #include "common/array.h" #include "common/serializer.h" #include "m4/m4_types.h" namespace M4 { namespace Burger { #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, V018 = 18, V019 = 19, V020 = 20, V021 = 21, V022 = 22, kHarryComingToRoof = 23, V024 = 24, V025 = 25, V026 = 26, WAKE_UP_STOLIE_COUNT = 27, V028 = 28, V029 = 29, V030 = 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, kRoadOpened = 43, V044 = 44, V045 = 45, V046 = 46, kPoliceState = 47, kPoliceCheckCtr = 48, V049 = 49, V050 = 50, V051 = 51, V052 = 52, V053 = 53, V054 = 54, V055 = 55, V056 = 56, V057 = 57, kTourBusAtDiner = 58, kIceBoxOpened = 59, V060 = 60, V061 = 61, V062 = 62, V063 = 63, V064 = 64, V065 = 65, V066 = 66, kDrumzFled = 67, V068 = 68, V069 = 69, V070 = 70, V071 = 71, V072 = 72, V073 = 73, V074 = 74, V075 = 75, V076 = 76, V077 = 77, V078 = 78, V079 = 79, V080 = 80, V081 = 81, V082 = 82, V083 = 83, V084 = 84, V085 = 85, V086 = 86, V087 = 87, V088 = 88, V089 = 89, V090 = 90, V091 = 91, V092 = 92, V093 = 93, V094 = 94, V095 = 95, V096 = 96, V097 = 97, V098 = 98, kThirdTestPassed = 99, V100 = 100, V101 = 101, kGetRidOfPerkins = 102, kNeedToFindBurger = 103, kAmplifyMySenses = 104, V105 = 105, V106 = 106, V107 = 107, V108 = 108, V109 = 109, V110 = 110, kTrufflesInMine = 111, kPerkinsLostIsland = 112, V113 = 113, V114 = 114, V115 = 115, V116 = 116, V117 = 117, V118 = 118, V119 = 119, V120 = 120, V121 = 121, V122 = 122, V123 = 123, kDrunkCarrotJuice = 124, V125 = 125, V126 = 126, V127 = 127, V128 = 128, V129 = 129, V130 = 130, V131 = 131, V132 = 132, V133 = 133, V134 = 134, V135 = 135, V136 = 136, kEnteredMine = 137, V138 = 138, V139 = 139, V140 = 140, V141 = 141, V142 = 142, V143 = 143, kTrufflesRanAway = 144, V145 = 145, V146 = 146, V147 = 147, V148 = 148, kMineRoomIndex = 149, V150 = 150, V151 = 151, kFifthTestPassed = 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, V180 = 180, V181 = 181, V182 = 182, V183 = 183, kFourthTestPassed = 184, V185 = 185, V186 = 186, V187 = 187, V188 = 188, V189 = 189, ROOM101_FLAG19 = 190, V191 = 191, V192 = 192, V193 = 193, V194 = 194, V195 = 195, V196 = 196, V197 = 197, kFireplaceHasFire = 198, V199 = 199, kStairsBorkState = 200, V201 = 201, V202 = 202, kBORK_STATE = 203, V204 = 204, V205 = 205, V206 = 206, V207 = 207, V208 = 208, V209 = 209, V210 = 210, V211 = 211, V212 = 212, V213 = 213, V214 = 214, V215 = 215, V216 = 216, V217 = 217, V218 = 218, kTVOnFire = 219, V220 = 220, V221 = 221, 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, kSecondTestPassed = 241, V242 = 242, kHampsterState = 243, V244 = 244, V245 = 245, V246 = 246, V247 = 247, V248 = 248, V249 = 249, V250 = 250, V251 = 251, V252 = 252, V253 = 253, V254 = 254, V255 = 255, kGerbilCageDoor = 256, V257 = 257, V258 = 258, V259 = 259, V260 = 260, V261 = 261, V262 = 262, V263 = 263, kStandingOnKibble = 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, V278 = 278, V279 = 279, V280 = 280, V281 = 281, V282 = 282, V283 = 283, V284 = 284, V285 = 285, V286 = 286, kFirstTestPassed = 287, kNEURO_TEST_COUNTER = 288, kGerbilsAreNasty = 289, kKnowHowToNukeGerbils = 290, V291 = 291, V292 = 292, digestability = 293, V294 = 294, V295 = 295, V296 = 296, V297 = 297, kDisableFootsteps = 298, V299 = 299, V300 = 300, V301 = 301, V302 = 302, V303 = 303, V304 = 304, V305 = 305, V306 = 306, V307 = 307, kBoonsvilleTime = 308, kBoonsvillePriorTime = 309, V310 = 310, V311 = 311, V312 = 312, V313 = 313, V314 = 314, V315 = 315, V316 = 316, V317 = 317, V318 = 318, V319 = 319, V320 = 320, V321 = 321, V322 = 322, V323 = 323, V324 = 324, V325 = 325, V326 = 326, V327 = 327, V328 = 328, V329 = 329, V330 = 330, V331 = 331, V332 = 332, V333 = 333, V334 = 334, V335 = 335, V336 = 336, V337 = 337, V338 = 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(); /** * Reset the variables back to initial game state */ void reset(); void reset1(); void reset2(); void reset3(); void reset4(); void reset5(); void conv_reset_all(); int32 get_boonsville_time_and_display(bool showTime = false); void set_boonsville_time(int32 time); bool advance_boonsville_time_and_check_schedule(int32 time); bool dispatch_scheduled_boonsville_time_trigger(int32 time); void schedule_boonsville_time(); /** * 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]; } const char *getConvName(); }; } // namespace Burger } // namespace M4 #endif