ScummVM API documentation
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  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef M4_BURGER_FLAGS_H
23 #define M4_BURGER_FLAGS_H
24 
25 #include "common/array.h"
26 #include "common/serializer.h"
27 #include "m4/m4_types.h"
28 
29 namespace M4 {
30 namespace Burger {
31 
32 #define FLAGS_COUNT 512
33 
34 enum Flag {
35  V000 = 0,
36  V001 = 1,
37  V002 = 2,
38  V003 = 3,
39  V004 = 4,
40  V005 = 5,
41  V006 = 6,
42  V007 = 7,
43  V008 = 8,
44  V009 = 9,
45  V010 = 10,
46  V011 = 11,
47  V012 = 12,
48  V013 = 13,
49  V014 = 14,
50  V015 = 15,
51  V016 = 16,
52  V017 = 17,
53  V018 = 18,
54  V019 = 19,
55  V020 = 20,
56  V021 = 21,
57  V022 = 22,
58  kHarryComingToRoof = 23,
59  V024 = 24,
60  V025 = 25,
61  V026 = 26,
62  WAKE_UP_STOLIE_COUNT = 27,
63  V028 = 28,
64  V029 = 29,
65  V030 = 30,
66  V031 = 31,
67  V032 = 32,
68  V033 = 33,
69  V034 = 34,
70  V035 = 35,
71  V036 = 36,
72  V037 = 37,
73  V038 = 38,
74  V039 = 39,
75  V040 = 40,
76  V041 = 41,
77  V042 = 42,
78  kRoadOpened = 43,
79  V044 = 44,
80  V045 = 45,
81  V046 = 46,
82  kPoliceState = 47,
83  kPoliceCheckCtr = 48,
84  V049 = 49,
85  V050 = 50,
86  V051 = 51,
87  V052 = 52,
88  V053 = 53,
89  V054 = 54,
90  V055 = 55,
91  V056 = 56,
92  V057 = 57,
93  kTourBusAtDiner = 58,
94  kIceBoxOpened = 59,
95  V060 = 60,
96  V061 = 61,
97  V062 = 62,
98  V063 = 63,
99  V064 = 64,
100  V065 = 65,
101  V066 = 66,
102  kDrumzFled = 67,
103  V068 = 68,
104  V069 = 69,
105  V070 = 70,
106  V071 = 71,
107  V072 = 72,
108  V073 = 73,
109  V074 = 74,
110  V075 = 75,
111  V076 = 76,
112  V077 = 77,
113  V078 = 78,
114  V079 = 79,
115  V080 = 80,
116  V081 = 81,
117  V082 = 82,
118  V083 = 83,
119  V084 = 84,
120  V085 = 85,
121  V086 = 86,
122  V087 = 87,
123  V088 = 88,
124  V089 = 89,
125  V090 = 90,
126  V091 = 91,
127  V092 = 92,
128  V093 = 93,
129  V094 = 94,
130  V095 = 95,
131  V096 = 96,
132  V097 = 97,
133  V098 = 98,
134  kThirdTestPassed = 99,
135 
136  V100 = 100,
137  V101 = 101,
138  kGetRidOfPerkins = 102,
139  kNeedToFindBurger = 103,
140  kAmplifyMySenses = 104,
141  V105 = 105,
142  V106 = 106,
143  V107 = 107,
144  V108 = 108,
145  V109 = 109,
146  V110 = 110,
147  kTrufflesInMine = 111,
148  kPerkinsLostIsland = 112,
149  V113 = 113,
150  V114 = 114,
151  V115 = 115,
152  V116 = 116,
153  V117 = 117,
154  V118 = 118,
155  V119 = 119,
156  V120 = 120,
157  V121 = 121,
158  V122 = 122,
159  V123 = 123,
160  kDrunkCarrotJuice = 124,
161  V125 = 125,
162  V126 = 126,
163  V127 = 127,
164  V128 = 128,
165  V129 = 129,
166  V130 = 130,
167  V131 = 131,
168  V132 = 132,
169  V133 = 133,
170  V134 = 134,
171  V135 = 135,
172  V136 = 136,
173  kEnteredMine = 137,
174  V138 = 138,
175  V139 = 139,
176  V140 = 140,
177  V141 = 141,
178  V142 = 142,
179  V143 = 143,
180  kTrufflesRanAway = 144,
181  V145 = 145,
182  V146 = 146,
183  V147 = 147,
184  V148 = 148,
185  kMineRoomIndex = 149,
186  V150 = 150,
187  V151 = 151,
188  kFifthTestPassed = 152,
189  V153 = 153,
190  V154 = 154,
191  V155 = 155,
192  V156 = 156,
193  V157 = 157,
194  V158 = 158,
195  V159 = 159,
196  V160 = 160,
197  V161 = 161,
198  V162 = 162,
199  V163 = 163,
200  V164 = 164,
201  V165 = 165,
202  V166 = 166,
203  V167 = 167,
204  V168 = 168,
205  V169 = 169,
206  V170 = 170,
207  V171 = 171,
208  V172 = 172,
209  V173 = 173,
210  V174 = 174,
211  V175 = 175,
212  V176 = 176,
213  V177 = 177,
214  V178 = 178,
215  V179 = 179,
216  V180 = 180,
217  V181 = 181,
218  V182 = 182,
219  V183 = 183,
220  kFourthTestPassed = 184,
221  V185 = 185,
222  V186 = 186,
223  V187 = 187,
224  V188 = 188,
225  V189 = 189,
226  ROOM101_FLAG19 = 190,
227  V191 = 191,
228  V192 = 192,
229  V193 = 193,
230  V194 = 194,
231  V195 = 195,
232  V196 = 196,
233  V197 = 197,
234  kFireplaceHasFire = 198,
235  V199 = 199,
236 
237  kStairsBorkState = 200,
238  V201 = 201,
239  V202 = 202,
240  kBORK_STATE = 203,
241  V204 = 204,
242  V205 = 205,
243  V206 = 206,
244  V207 = 207,
245  V208 = 208,
246  V209 = 209,
247  V210 = 210,
248  V211 = 211,
249  V212 = 212,
250  V213 = 213,
251  V214 = 214,
252  V215 = 215,
253  V216 = 216,
254  V217 = 217,
255  V218 = 218,
256  kTVOnFire = 219,
257  V220 = 220,
258  V221 = 221,
259  V222 = 222,
260  V223 = 223,
261  V224 = 224,
262  V225 = 225,
263  V226 = 226,
264  V227 = 227,
265  V228 = 228,
266  V229 = 229,
267  V230 = 230,
268  V231 = 231,
269  V232 = 232,
270  V233 = 233,
271  V234 = 234,
272  V235 = 235,
273  V236 = 236,
274  V237 = 237,
275  V238 = 238,
276  V239 = 239,
277  V240 = 240,
278  kSecondTestPassed = 241,
279  V242 = 242,
280  kHampsterState = 243,
281  V244 = 244,
282  V245 = 245,
283  V246 = 246,
284  V247 = 247,
285  V248 = 248,
286  V249 = 249,
287  V250 = 250,
288  V251 = 251,
289  V252 = 252,
290  V253 = 253,
291  V254 = 254,
292  V255 = 255,
293  kGerbilCageDoor = 256,
294  V257 = 257,
295  V258 = 258,
296  V259 = 259,
297  V260 = 260,
298  V261 = 261,
299  V262 = 262,
300  V263 = 263,
301  kStandingOnKibble = 264,
302  V265 = 265,
303  V266 = 266,
304  V267 = 267,
305  V268 = 268,
306  V269 = 269,
307  V270 = 270,
308  V271 = 271,
309  V272 = 272,
310  V273 = 273,
311  V274 = 274,
312  V275 = 275,
313  V276 = 276,
314  V277 = 277,
315  V278 = 278,
316  V279 = 279,
317  V280 = 280,
318  V281 = 281,
319  V282 = 282,
320  V283 = 283,
321  V284 = 284,
322  V285 = 285,
323  V286 = 286,
324  kFirstTestPassed = 287,
325  kNEURO_TEST_COUNTER = 288,
326  kGerbilsAreNasty = 289,
327  kKnowHowToNukeGerbils = 290,
328  V291 = 291,
329  V292 = 292,
330  digestability = 293,
331  V294 = 294,
332  V295 = 295,
333  V296 = 296,
334  V297 = 297,
335  kDisableFootsteps = 298,
336  V299 = 299,
337 
338  V300 = 300,
339  V301 = 301,
340  V302 = 302,
341  V303 = 303,
342  V304 = 304,
343  V305 = 305,
344  V306 = 306,
345  V307 = 307,
346  kBoonsvilleTime = 308,
347  kBoonsvillePriorTime = 309,
348  V310 = 310,
349  V311 = 311,
350  V312 = 312,
351  V313 = 313,
352  V314 = 314,
353  V315 = 315,
354  V316 = 316,
355  V317 = 317,
356  V318 = 318,
357  V319 = 319,
358  V320 = 320,
359  V321 = 321,
360  V322 = 322,
361  V323 = 323,
362  V324 = 324,
363  V325 = 325,
364  V326 = 326,
365  V327 = 327,
366  V328 = 328,
367  V329 = 329,
368  V330 = 330,
369  V331 = 331,
370  V332 = 332,
371  V333 = 333,
372  V334 = 334,
373  V335 = 335,
374  V336 = 336,
375  V337 = 337,
376  V338 = 338,
377  V339 = 339,
378  V340 = 340,
379  V341 = 341,
380  V342 = 342,
381  V343 = 343,
382  V344 = 344,
383  V345 = 345,
384  V346 = 346,
385  V347 = 347,
386  V348 = 348,
387  V349 = 349,
388  V350 = 350,
389  V351 = 351,
390  V352 = 352,
391  V353 = 353,
392  V354 = 354,
393  V355 = 355,
394  V356 = 356,
395  V357 = 357,
396  V358 = 358,
397  V359 = 359,
398  V360 = 360,
399  V361 = 361,
400  V362 = 362,
401  V363 = 363,
402  V364 = 364,
403  V365 = 365,
404  V366 = 366,
405  V367 = 367,
406  V368 = 368,
407  V369 = 369,
408  V370 = 370,
409  V371 = 371,
410  V372 = 372,
411  V373 = 373,
412  V374 = 374,
413  V375 = 375,
414  V376 = 376,
415  V377 = 377,
416  V378 = 378,
417  V379 = 379,
418  V380 = 380,
419  V381 = 381,
420  V382 = 382,
421  V383 = 383,
422  V384 = 384,
423  V385 = 385,
424  V386 = 386,
425  V387 = 387,
426  V388 = 388,
427  V389 = 389,
428  V390 = 390,
429  V391 = 391,
430  V392 = 392,
431  V393 = 393,
432  V394 = 394,
433  V395 = 395,
434  V396 = 396,
435  V397 = 397,
436  V398 = 398,
437  V399 = 399,
438 
439  V400 = 400,
440  V401 = 401,
441  V402 = 402,
442  V403 = 403,
443  V404 = 404,
444  V405 = 405,
445  V406 = 406,
446  V407 = 407,
447  V408 = 408,
448  V409 = 409,
449  V410 = 410,
450  V411 = 411,
451  V412 = 412,
452  V413 = 413,
453  V414 = 414,
454  V415 = 415,
455  V416 = 416,
456  V417 = 417,
457  V418 = 418,
458  V419 = 419,
459  V420 = 420,
460  V421 = 421,
461  V422 = 422,
462  V423 = 423,
463  V424 = 424,
464  V425 = 425,
465  V426 = 426,
466  V427 = 427,
467  V428 = 428,
468  V429 = 429,
469  V430 = 430,
470  V431 = 431,
471  V432 = 432,
472  V433 = 433,
473  V434 = 434,
474  V435 = 435,
475  V436 = 436,
476  V437 = 437,
477  V438 = 438,
478  V439 = 439,
479  V440 = 440,
480  V441 = 441,
481  V442 = 442,
482  V443 = 443,
483  V444 = 444,
484  V445 = 445,
485  V446 = 446,
486  V447 = 447,
487  V448 = 448,
488  V449 = 449,
489  V450 = 450,
490  V451 = 451,
491  V452 = 452,
492  V453 = 453,
493  V454 = 454,
494  V455 = 455,
495  V456 = 456,
496  V457 = 457,
497  V458 = 458,
498  V459 = 459,
499  V460 = 460,
500  V461 = 461,
501  V462 = 462,
502  V463 = 463,
503  V464 = 464,
504  V465 = 465,
505  V466 = 466,
506  V467 = 467,
507  V468 = 468,
508  V469 = 469,
509  V470 = 470,
510  V471 = 471,
511  V472 = 472,
512  V473 = 473,
513  V474 = 474,
514  V475 = 475,
515  V476 = 476,
516  V477 = 477,
517  V478 = 478,
518  V479 = 479,
519  V480 = 480,
520  V481 = 481,
521  V482 = 482,
522  V483 = 483,
523  V484 = 484,
524  V485 = 485,
525  V486 = 486,
526  V487 = 487,
527  V488 = 488,
528  V489 = 489,
529  V490 = 490,
530  V491 = 491,
531  V492 = 492,
532  V493 = 493,
533  V494 = 494,
534  V495 = 495,
535  V496 = 496,
536  V497 = 497,
537  V498 = 498,
538  V499 = 499,
539 
540  V500 = 500,
541  V501 = 501,
542  V502 = 502,
543  V503 = 503,
544  V504 = 504,
545  V505 = 505,
546  V506 = 506,
547  V507 = 507,
548  V508 = 508,
549  V509 = 509,
550  V510 = 510,
551  V511 = 511
552 };
553 
554 class Flags {
555 public:
556  static int32 _flags[FLAGS_COUNT];
557 
558 public:
559  Flags();
560 
564  void reset();
565 
566  void reset1();
567  void reset2();
568  void reset3();
569  void reset4();
570  void reset5();
571  void conv_reset_all();
572 
573  int32 get_boonsville_time_and_display(bool showTime = false);
574  void set_boonsville_time(int32 time);
575  bool advance_boonsville_time_and_check_schedule(int32 time);
576  bool dispatch_scheduled_boonsville_time_trigger(int32 time);
577  void schedule_boonsville_time();
578 
582  void sync(Common::Serializer &s);
583 
584  size_t size() const {
585  return FLAGS_COUNT;
586  }
587  int32 &operator[](Flag flag) {
588  assert((int)flag < FLAGS_COUNT);
589  return _flags[flag];
590  }
591 
592  const char *getConvName();
593 };
594 
595 } // namespace Burger
596 } // namespace M4
597 
598 #endif
Definition: flags.h:554
Definition: serializer.h:79
void sync(Common::Serializer &s)
Definition: database.h:28