summaryrefslogtreecommitdiff
path: root/include/constants/flags.h
blob: 8b71380928fc627616b1cfecf68356abb386ab5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
#ifndef GUARD_CONSTANTS_FLAGS_H
#define GUARD_CONSTANTS_FLAGS_H

// temporary flags
// These temporary flags are are cleared every time a map is loaded. They are used
// for things like shortening an NPCs introduction text if the player already spoke
// to them once.
#define FLAG_TEMP_1   0x1
#define FLAG_TEMP_2   0x2
#define FLAG_TEMP_3   0x3
#define FLAG_TEMP_4   0x4
#define FLAG_TEMP_5   0x5
#define FLAG_TEMP_6   0x6
#define FLAG_TEMP_7   0x7
#define FLAG_TEMP_8   0x8
#define FLAG_TEMP_9   0x9
#define FLAG_TEMP_A   0xA
#define FLAG_TEMP_B   0xB
#define FLAG_TEMP_C   0xC
#define FLAG_TEMP_D   0xD
#define FLAG_TEMP_E   0xE
#define FLAG_TEMP_F   0xF
#define FLAG_TEMP_10  0x10
#define FLAG_TEMP_11  0x11
#define FLAG_TEMP_12  0x12
#define FLAG_TEMP_13  0x13
#define FLAG_TEMP_14  0x14
#define FLAG_TEMP_15  0x15
#define FLAG_TEMP_16  0x16
#define FLAG_TEMP_17  0x17
#define FLAG_TEMP_18  0x18
#define FLAG_TEMP_19  0x19
#define FLAG_TEMP_1A  0x1A
#define FLAG_TEMP_1B  0x1B
#define FLAG_TEMP_1C  0x1C
#define FLAG_TEMP_1D  0x1D
#define FLAG_TEMP_1E  0x1E
#define FLAG_TEMP_1F  0x1F
// FLAG_TEMP_20 was supposed to be used as a temporary flag (see above), but there
// was either an oversight or off-by-one error.
#define FLAG_TEMP_20  0x20
#define FLAG_VICTORY_ROAD_ROCK FLAG_TEMP_20

// scripts
#define FLAG_SET_WALL_CLOCK                 0x51
#define FLAG_RESCUED_BIRCH                  0x52

#define FLAG_LINK_CONTEST_ROOM_POKEBALL     0x56
#define FLAG_MET_RIVAL_MOM                  0x57
#define FLAG_BIRCH_AIDE_MET                 0x58
#define FLAG_DECLINED_BIKE                  0x59
#define FLAG_RECEIVED_BIKE                  0x5A

#define FLAG_RECEIVED_WAILMER_PAIL          0x5E
#define FLAG_RECEIVED_POKEBLOCK_CASE        0x5F
#define FLAG_RECEIVED_SECRET_POWER          0x60

#define FLAG_TV_EXPLAINED                   0x62
#define FLAG_MAUVILLE_GYM_BARRIERS_STATE    0x63
#define FLAG_MOSSDEEP_GYM_SWITCH_1          0x64
#define FLAG_MOSSDEEP_GYM_SWITCH_2          0x65
#define FLAG_MOSSDEEP_GYM_SWITCH_3          0x66
#define FLAG_MOSSDEEP_GYM_SWITCH_4          0x67

#define FLAG_OCEANIC_MUSEUM_MET_REPORTER    0x69
#define FLAG_RECEIVED_HM04                  0x6A
#define FLAG_RECEIVED_HM06                  0x6B

#define FLAG_RECEIVED_HM05                  0x6D
#define FLAG_RECEIVED_HM02                  0x6E
#define FLAG_MT_PYRE_ORB_STOLEN             0x6F
#define FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE 0x70
#define FLAG_LEGENDARY_BATTLE_COMPLETED     0x71 // defeated or caught Groudon/Kyogre in Cave of Origin

#define FLAG_RECEIVED_METEORITE             0x73
#define FLAG_ADVENTURE_STARTED              0x74 // received pokedex and set loose

#define FLAG_MET_HIDDEN_POWER_GIVER         0x76

#define FLAG_RECEIVED_TM31                  0x79
#define FLAG_RECEIVED_HM03                  0x7A
#define FLAG_RECEIVED_HM08                  0x7B

#define FLAG_DEFEATED_WALLY_VICTORY_ROAD    0x7E
#define FLAG_MET_PRETTY_PETAL_SHOP_OWNER    0x7F

#define FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN 0x81
#define FLAG_DEFEATED_RIVAL_ROUTE103        0x82
#define FLAG_RECEIVED_DOLL_LANETTE          0x83
#define FLAG_RECEIVED_POTION_OLDALE         0x84
#define FLAG_RECEIVED_AMULET_COIN           0x85
#define FLAG_PENDING_DAYCARE_EGG            0x86
#define FLAG_THANKED_FOR_PLAYING_WITH_WALLY 0x87

#define FLAG_RECEIVED_HM01                  0x89

#define FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY  0x8B
#define FLAG_RECEIVED_6_SODA_POP            0x8C
#define FLAG_DEFEATED_SEASHORE_HOUSE_TRAINERS 0x8D
#define FLAG_DEVON_GOODS_STOLEN             0x8E
#define FLAG_RECOVERED_DEVON_GOODS          0x8F
#define FLAG_RETURNED_DEVON_GOODS           0x90

#define FLAG_MR_BRINEY_SAILING_INTRO        0x93
#define FLAG_DOCK_REJECTED_DEVON_GOODS      0x94
#define FLAG_DELIVERED_DEVON_GOODS          0x95
#define FLAG_RECEIVED_CONTEST_PASS          0x96
#define FLAG_RECEIVED_CASTFORM              0x97
#define FLAG_RECEIVED_SUPER_ROD             0x98
#define FLAG_RUSTBORO_NPC_TRADE_COMPLETED   0x99
#define FLAG_PACIFIDLOG_NPC_TRADE_COMPLETED 0x9A
#define FLAG_FORTREE_NPC_TRADE_COMPLETED    0x9B

#define FLAG_UNKNOWN_9F                     0x9F
#define FLAG_COOL_PAINTING_MADE             0xA0
#define FLAG_BEAUTY_PAINTING_MADE           0xA1
#define FLAG_CUTE_PAINTING_MADE             0xA2
#define FLAG_SMART_PAINTING_MADE            0xA3
#define FLAG_TOUGH_PAINTING_MADE            0xA4
#define FLAG_RECEIVED_TM39                  0xA5
#define FLAG_RECEIVED_TM08                  0xA6
#define FLAG_RECEIVED_TM34                  0xA7
#define FLAG_RECEIVED_TM50                  0xA8
#define FLAG_RECEIVED_TM42                  0xA9
#define FLAG_RECEIVED_TM40                  0xAA
#define FLAG_RECEIVED_TM04                  0xAB
#define FLAG_RECEIVED_TM03                  0xAC
#define FLAG_DECORATION_1                   0xAD
#define FLAG_DECORATION_2                   0xAE
#define FLAG_DECORATION_3                   0xAF
#define FLAG_DECORATION_4                   0xB0
#define FLAG_DECORATION_5                   0xB1
#define FLAG_DECORATION_6                   0xB2
#define FLAG_DECORATION_7                   0xB3
#define FLAG_DECORATION_8                   0xB4
#define FLAG_DECORATION_9                   0xB5
#define FLAG_DECORATION_10                  0xB6
#define FLAG_DECORATION_11                  0xB7
#define FLAG_DECORATION_12                  0xB8
#define FLAG_DECORATION_13                  0xB9
#define FLAG_DECORATION_14                  0xBA
#define FLAG_DECORATION_15                  0xBB
#define FLAG_RECEIVED_POKENAV               0xBC
#define FLAG_DELIVERED_STEVEN_LETTER        0xBD
#define FLAG_DEFEATED_WALLY_MAUVILLE        0xBE

#define FLAG_RECEIVED_SUN_STONE_MOSSDEEP    0xC0
#define FLAG_WALLY_SPEECH                   0xC1
#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1  0xC2
#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2  0xC3
#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3  0xC4
#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4  0xC5
#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5  0xC6
#define FLAG_RUSTURF_TUNNEL_OPENED          0xC7
#define FLAG_RECEIVED_RED_SCARF             0xC8
#define FLAG_RECEIVED_BLUE_SCARF            0xC9
#define FLAG_RECEIVED_PINK_SCARF            0xCA
#define FLAG_RECEIVED_GREEN_SCARF           0xCB
#define FLAG_RECEIVED_YELLOW_SCARF          0xCC

#define FLAG_ENCOUNTERED_LATIAS_OR_LATIOS    0xCE

#define FLAG_RECEIVED_BASEMENT_KEY          0xD0
#define FLAG_RECEIVED_TM24                  0xD1

#define FLAG_RECEIVED_RED_OR_BLUE_ORB       0xD4
#define FLAG_RECEIVED_PREMIER_BALL_RUSTBORO 0xD5

#define FLAG_ROUTE104_PROTOTYPE_COMPLETED_1 0xD7
#define FLAG_ROUTE104_PROTOTYPE_COMPLETED_2 0xD8
#define FLAG_MET_DIVING_TREASURE_HUNTER     0xD9
#define FLAG_MET_WAILMER_TRAINER            0xDA
#define FLAG_EVIL_LEADER_PLEASE_STOP        0xDB

#define FLAG_RECEIVED_GO_GOGGLES            0xDD
#define FLAG_WINGULL_SENT_ON_ERRAND         0xDE
#define FLAG_RECEIVED_MENTAL_HERB           0xDF
#define FLAG_WINGULL_DELIVERED_MAIL         0xE0
#define FLAG_RECEIVED_20_COINS              0xE1
#define FLAG_RECEIVED_STARTER_DOLL          0xE2
#define FLAG_RECEIVED_GOOD_ROD              0xE3
#define FLAG_REGI_DOORS_OPENED              0xE4
#define FLAG_RECEIVED_TM27                  0xE5
#define FLAG_RECEIVED_TM36                  0xE6
#define FLAG_RECEIVED_TM05                  0xE7
#define FLAG_RECEIVED_TM19                  0xE8

#define FLAG_RECEIVED_TM44                  0xEA
#define FLAG_RECEIVED_TM45                  0xEB
#define FLAG_RECEIVED_GLASS_ORNAMENT        0xEC
#define FLAG_RECEIVED_SILVER_SHIELD         0xED
#define FLAG_RECEIVED_GOLD_SHIELD           0xEE
#define FLAG_USED_STORAGE_KEY               0xEF
#define FLAG_USED_ROOM_1_KEY                0xF0
#define FLAG_USED_ROOM_2_KEY                0xF1
#define FLAG_USED_ROOM_4_KEY                0xF2
#define FLAG_USED_ROOM_6_KEY                0xF3
#define FLAG_MET_PROF_COSMO                 0xF4
#define FLAG_RECEIVED_WAILMER_DOLL          0xF5
#define FLAG_RECEIVED_CHESTO_BERRY_ROUTE104 0xF6
#define FLAG_DEFEATED_SS_TIDAL_TRAINERS     0xF7
#define FLAG_RECEIVED_SPELON_BERRY          0xF8
#define FLAG_RECEIVED_PAMTRE_BERRY          0xF9
#define FLAG_RECEIVED_WATMEL_BERRY          0xFA
#define FLAG_RECEIVED_DURIN_BERRY           0xFB
#define FLAG_RECEIVED_BELUE_BERRY           0xFC

#define FLAG_RECEIVED_CHARCOAL              0xFE
#define FLAG_LATIOS_OR_LATIAS_ROAMING       0xFF
#define FLAG_RECEIVED_REPEAT_BALL           0x100
#define FLAG_RECEIVED_OLD_ROD               0x101
#define FLAG_RECEIVED_COIN_CASE             0x102
#define FLAG_RETURNED_RED_OR_BLUE_ORB       0x103
#define FLAG_RECEIVED_TM49                  0x104
#define FLAG_RECEIVED_TM28                  0x105
#define FLAG_RECEIVED_TM09                  0x106
#define FLAG_ENTERED_ELITE_FOUR             0x107
#define FLAG_RECEIVED_TM10                  0x108
#define FLAG_RECEIVED_TM41                  0x109
#define FLAG_RECEIVED_LAVARIDGE_EGG         0x10A
#define FLAG_RECEIVED_FOSSIL_MON            0x10B
#define FLAG_SECRET_BASE_REGISTRY_ENABLED   0x10C
#define FLAG_RECEIVED_TM46                  0x10D
#define FLAG_CONTEST_SKETCH_CREATED         0x10E
#define FLAG_EVIL_TEAM_ESCAPED_STERN_SPOKE  0x10F
#define FLAG_RECEIVED_EXP_SHARE             0x110
#define FLAG_POKERUS_EXPLAINED              0x111
#define FLAG_RECEIVED_RUNNING_SHOES         0x112
#define FLAG_RECEIVED_QUICK_CLAW            0x113
#define FLAG_RECEIVED_KINGS_ROCK            0x114
#define FLAG_RECEIVED_MACHO_BRACE           0x115
#define FLAG_RECEIVED_SOOTHE_BELL           0x116
#define FLAG_RECEIVED_WHITE_HERB            0x117
#define FLAG_RECEIVED_SOFT_SAND             0x118

#define FLAG_RECEIVED_CLEANSE_TAG           0x11A
#define FLAG_RECEIVED_FOCUS_BAND            0x11B
#define FLAG_DECLINED_WALLY_BATTLE_MAUVILLE 0x11C
#define FLAG_RECEIVED_DEVON_SCOPE           0x11D
#define FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE 0x11E
#define FLAG_MET_DEVON_EMPLOYEE             0x11F
#define FLAG_MET_RIVAL_RUSTBORO             0x120
#define FLAG_RECEIVED_SILK_SCARF            0x121
#define FLAG_NOT_READY_FOR_BATTLE_ROUTE120  0x122
#define FLAG_RECEIVED_SS_TICKET             0x123
#define FLAG_MET_RIVAL_LILYCOVE             0x124
#define FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE 0x125
#define FLAG_EXCHANGED_SCANNER              0x126
#define FLAG_KECLEON_FLED_FORTREE           0x127
#define FLAG_PETALBURG_MART_EXPANDED_ITEMS  0x128
#define FLAG_RECEIVED_MIRACLE_SEED          0x129
#define FLAG_RECEIVED_BELDUM                0x12A
#define FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK  0x12B
#define FLAG_MET_FANCLUB_YOUNGER_BROTHER    0x12C
#define FLAG_RIVAL_LEFT_FOR_ROUTE103        0x12D
#define FLAG_OMIT_DIVE_FROM_STEVEN_LETTER   0x12E

// hidden item flags
#define FLAG_HIDDEN_ITEMS_START  0x258
#define FLAG_HIDDEN_ITEM_0       0x258
#define FLAG_HIDDEN_ITEM_1       0x259
#define FLAG_HIDDEN_ITEM_2       0x25A
#define FLAG_HIDDEN_ITEM_3       0x25B
#define FLAG_HIDDEN_ITEM_4       0x25C
#define FLAG_HIDDEN_ITEM_5       0x25D
#define FLAG_HIDDEN_ITEM_6       0x25E
#define FLAG_HIDDEN_ITEM_7       0x25F
#define FLAG_HIDDEN_ITEM_8       0x260
#define FLAG_HIDDEN_ITEM_9       0x261
#define FLAG_HIDDEN_ITEM_A       0x262
#define FLAG_HIDDEN_ITEM_B       0x263
#define FLAG_HIDDEN_ITEM_C       0x264
#define FLAG_HIDDEN_ITEM_D       0x265
#define FLAG_HIDDEN_ITEM_E       0x266
#define FLAG_HIDDEN_ITEM_F       0x267
#define FLAG_HIDDEN_ITEM_10      0x268
#define FLAG_HIDDEN_ITEM_11      0x269
#define FLAG_HIDDEN_ITEM_12      0x26A
#define FLAG_HIDDEN_ITEM_13      0x26B
#define FLAG_HIDDEN_ITEM_14      0x26C
#define FLAG_HIDDEN_ITEM_15      0x26D
#define FLAG_HIDDEN_ITEM_16      0x26E
#define FLAG_HIDDEN_ITEM_17      0x26F
#define FLAG_HIDDEN_ITEM_18      0x270
#define FLAG_HIDDEN_ITEM_19      0x271
#define FLAG_HIDDEN_ITEM_1A      0x272
#define FLAG_HIDDEN_ITEM_1B      0x273
#define FLAG_HIDDEN_ITEM_1C      0x274
#define FLAG_HIDDEN_ITEM_1D      0x275
#define FLAG_HIDDEN_ITEM_1E      0x276
#define FLAG_HIDDEN_ITEM_1F      0x277
#define FLAG_HIDDEN_ITEM_20      0x278
#define FLAG_HIDDEN_ITEM_21      0x279
#define FLAG_HIDDEN_ITEM_22      0x27A
#define FLAG_HIDDEN_ITEM_23      0x27B
#define FLAG_HIDDEN_ITEM_24      0x27C
#define FLAG_HIDDEN_ITEM_25      0x27D
#define FLAG_HIDDEN_ITEM_26      0x27E
#define FLAG_HIDDEN_ITEM_27      0x27F
#define FLAG_HIDDEN_ITEM_28      0x280
#define FLAG_HIDDEN_ITEM_29      0x281
#define FLAG_HIDDEN_ITEM_2A      0x282
#define FLAG_HIDDEN_ITEM_2B      0x283
#define FLAG_HIDDEN_ITEM_2C      0x284
#define FLAG_HIDDEN_ITEM_2D      0x285
#define FLAG_HIDDEN_ITEM_2E      0x286
#define FLAG_HIDDEN_ITEM_2F      0x287
#define FLAG_HIDDEN_ITEM_30      0x288
#define FLAG_HIDDEN_ITEM_31      0x289
#define FLAG_HIDDEN_ITEM_32      0x28A
#define FLAG_HIDDEN_ITEM_33      0x28B
#define FLAG_HIDDEN_ITEM_34      0x28C
#define FLAG_HIDDEN_ITEM_35      0x28D
#define FLAG_HIDDEN_ITEM_36      0x28E
#define FLAG_HIDDEN_ITEM_37      0x28F
#define FLAG_HIDDEN_ITEM_38      0x290
#define FLAG_HIDDEN_ITEM_39      0x291
#define FLAG_HIDDEN_ITEM_3A      0x292
#define FLAG_HIDDEN_ITEM_3B      0x293
#define FLAG_HIDDEN_ITEM_3C      0x294
#define FLAG_HIDDEN_ITEM_3D      0x295
#define FLAG_HIDDEN_ITEM_3E      0x296
#define FLAG_HIDDEN_ITEM_3F      0x297
#define FLAG_HIDDEN_ITEM_40      0x298
#define FLAG_HIDDEN_ITEM_41      0x299
#define FLAG_HIDDEN_ITEM_42      0x29A
#define FLAG_HIDDEN_ITEM_43      0x29B
#define FLAG_HIDDEN_ITEM_44      0x29C
#define FLAG_HIDDEN_ITEM_45      0x29D
#define FLAG_HIDDEN_ITEM_46      0x29E
#define FLAG_HIDDEN_ITEM_47      0x29F
#define FLAG_HIDDEN_ITEM_48      0x2A0
#define FLAG_HIDDEN_ITEM_49      0x2A1
#define FLAG_HIDDEN_ITEM_4A      0x2A2
#define FLAG_HIDDEN_ITEM_4B      0x2A3
#define FLAG_HIDDEN_ITEM_4C      0x2A4
#define FLAG_HIDDEN_ITEM_4D      0x2A5
#define FLAG_HIDDEN_ITEM_4E      0x2A6
#define FLAG_HIDDEN_ITEM_4F      0x2A7
#define FLAG_HIDDEN_ITEM_50      0x2A8
#define FLAG_HIDDEN_ITEM_51      0x2A9
#define FLAG_HIDDEN_ITEM_52      0x2AA
#define FLAG_HIDDEN_ITEM_53      0x2AB
#define FLAG_HIDDEN_ITEM_54      0x2AC
#define FLAG_HIDDEN_ITEM_55      0x2AD
#define FLAG_HIDDEN_ITEM_56      0x2AE
#define FLAG_HIDDEN_ITEM_57      0x2AF
#define FLAG_HIDDEN_ITEM_58      0x2B0
#define FLAG_HIDDEN_ITEM_59      0x2B1
#define FLAG_HIDDEN_ITEM_5A      0x2B2
#define FLAG_HIDDEN_ITEM_5B      0x2B3
#define FLAG_HIDDEN_ITEM_5C      0x2B4
#define FLAG_HIDDEN_ITEM_5D      0x2B5
#define FLAG_HIDDEN_ITEM_5E      0x2B6
#define FLAG_HIDDEN_ITEM_5F      0x2B7
#define FLAG_HIDDEN_ITEM_BLACK_GLASSES 0x2B8
#define FLAG_HIDDEN_ITEM_61      0x2B9


// object event hide/show flags
#define FLAG_HIDE_BIRCH_STARTERS_BAG        0x2BC

#define FLAG_HIDE_BIRCH_BATTLE_POOCHYENA    0x2D0
#define FLAG_HIDE_BIRCH_IN_LAB              0x2D1
#define FLAG_HIDE_MAY_UPSTAIRS              0x2D2
#define FLAG_HIDE_RIVAL_ROUTE103            0x2D3
#define FLAG_HIDE_DEVON_PETALBURG_WOODS     0x2D4
#define FLAG_HIDE_EVIL_TEAM_PETALBURG_WOODS 0x2D5
#define FLAG_HIDE_WALLY_PETALBURG           0x2D6
#define FLAG_HIDE_STEVENS_LETTER            0x2D7
#define FLAG_HIDE_WALLY_MOM_PETALBURG_1     0x2D8

#define FLAG_HIDE_GRUNT_RUSTBORO            0x2DB
#define FLAG_HIDE_DEVON_RUSTBORO            0x2DC
#define FLAG_HIDE_SLEEPING_MON_SEAFLOOR_CAVERN 0x2DD
#define FLAG_HIDE_NORMAN_LITTLEROOT         0x2DE

#define FLAG_UNKNOWN_2E1                    0x2E1
#define FLAG_HIDE_MR_BRINEY_ROUTE104        0x2E2
#define FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE  0x2E3
#define FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN    0x2E4
#define FLAG_HIDE_MR_BRINEY_ROUTE109        0x2E5
#define FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104   0x2E6
#define FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD    0x2E7
#define FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109   0x2E8

#define FLAG_UNKNOWN_2EB                    0x2EB
#define FLAG_UNKNOWN_2EC                    0x2EC
#define FLAG_UNKNOWN_2ED                    0x2ED
#define FLAG_HIDE_POOCHYENA_ROUTE101        0x2EE
#define FLAG_HIDE_WALLY_DEFEATED_VICTORY_ROAD 0x2EF
#define FLAG_HIDE_MOM_LITTLEROOT            0x2F0

#define FLAG_HIDE_MACHOKE_MOVER_1           0x2F2
#define FLAG_HIDE_MACHOKE_MOVER_2           0x2F3
#define FLAG_UNKNOWN_2F4                    0x2F4
#define FLAG_HIDE_MOM_UPSTAIRS              0x2F5
#define FLAG_HIDE_BRENDAN_MOM_DOWNSTAIRS    0x2F6
#define FLAG_HIDE_MAY_MOM_DOWNSTAIRS        0x2F7
#define FLAG_HIDE_BRENDAN_UPSTAIRS          0x2F8
#define FLAG_HIDE_MOVING_TRUCK_BRENDAN      0x2F9
#define FLAG_HIDE_MOVING_TRUCK_MAY          0x2FA

#define FLAG_HIDE_VICTOR_WINSTRATE          0x300
#define FLAG_HIDE_VICTORIA_WINSTRATE        0x301
#define FLAG_HIDE_VIVI_WINSTRATE            0x302
#define FLAG_HIDE_VICKI_WINSTRATE           0x303
#define FLAG_HIDE_NORMAN_PETALBURG_GYM      0x304
#define FLAG_HIDE_RAYQUAZA                  0x305
#define FLAG_HIDE_LILYCOVE_CONTEST_ATTENDENT_1 0x306
#define FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR   0x307
#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_LADY 0x308
#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_GIRL 0x309
#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_MAN 0x30A
#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTER   0x30B
#define FLAG_HIDE_LILYCOVE_MUSEUM_VISITORS  0x30C
#define FLAG_HIDE_PETALBURG_GYM_GUIDE       0x30D
#define FLAG_UNKNOWN_30E                    0x30E
#define FLAG_UNKNOWN_30F                    0x30F
#define FLAG_HIDE_BRENDAN_MOM               0x310
#define FLAG_HIDE_MAY_MOM                   0x311

#define FLAG_HIDE_FANCLUB_OLD_LADY          0x315
#define FLAG_HIDE_FANCLUB_BOY               0x316
#define FLAG_HIDE_FANCLUB_LITTLE_BOY        0x317
#define FLAG_HIDE_FANCLUB_LADY              0x318

#define FLAG_HIDE_GABBY_AND_TY_ROUTE111_1   0x31C
#define FLAG_HIDE_GABBY_AND_TY_ROUTE118_1   0x31D
#define FLAG_HIDE_GABBY_AND_TY_ROUTE120_1   0x31E
#define FLAG_HIDE_GABBY_AND_TY_ROUTE111_2   0x31F
#define FLAG_HIDE_CONTEST_REPORTER_FALLARBOR  0x320
#define FLAG_HIDE_CONTEST_REPORTER_VERDANTURF 0x321
#define FLAG_HIDE_CONTEST_REPORTER_LILYCOVE   0x322
#define FLAG_HIDE_CONTEST_REPORTER_SLATEPORT  0x323
#define FLAG_HIDE_WALLY_MAUVILLE            0x324
#define FLAG_HIDE_WALLY_FATHER_MAUVILLE     0x325
#define FLAG_HIDE_WALLY_WANDAS_HOUSE        0x326
#define FLAG_HIDE_BOYFRIEND_RUSTURF_TUNNEL  0x327
#define FLAG_HIDE_BOYFRIEND_WANDAS_HOUSE    0x328
#define FLAG_HIDE_WALLY_FATHER_WANDAS_HOUSE 0x329

#define FLAG_HIDE_WALLY_FATHER_PETALBURG    0x32B
#define FLAG_HIDE_WALLY_MOTHER_PETALBURG    0x32C
#define FLAG_HIDE_LOST_GLASSES_MAN          0x32D
#define FLAG_HIDE_RIVAL_RUSTBORO            0x32E
#define FLAG_HIDE_WALLACE_SOOTOPOLIS_GYM    0x32F
#define FLAG_HIDE_WALLACE_SOOTOPOLIS        0x330

#define FLAG_HIDE_GRUNTS_BLOCKING_CABLE_CAR 0x333

#define FLAG_HIDE_GRUNT_1_BLOCKING_HIDEOUT  0x335
#define FLAG_HIDE_GRUNT_2_BLOCKING_HIDEOUT  0x336
#define FLAG_UNKNOWN_337                    0x337

#define FLAG_HIDE_LEGEND_MON_CAVE_OF_ORIGIN 0x339

#define FLAG_HIDE_EVIL_LEADER_SEAFLOOR_CAVERN  0x33C
#define FLAG_HIDE_OTHER_LEADER_SEAFLOOR_CAVERN 0x33D

#define FLAG_HIDE_OTHER_TEAM_GRUNTS_SEAFLOOR_CAVERN 0x33F

#define FLAG_HIDE_STEVEN_GRANITE_CAVE       0x341
#define FLAG_HIDE_STEVEN_ROUTE128           0x342
#define FLAG_HIDE_GABBY_AND_TY_SLATEPORT    0x343

#define FLAG_HIDE_STERN_SLATEPORT           0x348
#define FLAG_HIDE_STERN_SLATEPORT_HARBOR    0x349

#define FLAG_UNKNOWN_34B                    0x34B
#define FLAG_UNKNOWN_34C                    0x34C
#define FLAG_HIDE_GRUNT_1_SLATEPORT_HARBOR  0x34D
#define FLAG_HIDE_GRUNT_2_SLATEPORT_HARBOR  0x34E
#define FLAG_UNKNOWN_34F                    0x34F
#define FLAG_HIDE_SUBMARINE_SHADOW_SLATEPORT_HARBOR 0x350
#define FLAG_HIDE_MAY_PICHU_DOLL            0x351

#define FLAG_HIDE_RIVAL_ROUTE119            0x353
#define FLAG_HIDE_GRUNTS_LILYCOVE           0x354

#define FLAG_HIDE_SOOTOPOLIS_RESIDENTS      0x356
#define FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_1 0x357
#define FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_2 0x358

#define FLAG_HIDE_WALLY_BATTLE_VICTORY_ROAD 0x35A
#define FLAG_HIDE_AWAKENED_MON_SEAFLOOR_CAVERN 0x35B
#define FLAG_HIDE_SS_TIDAL_SLATEPORT_HARBOR 0x35C
#define FLAG_HIDE_SS_TIDAL_LILYCOVE_HARBOR  0x35D

#define FLAG_HIDE_WALLY_PETALBURG_GYM       0x362
#define FLAG_UNKNOWN_363                    0x363
#define FLAG_HIDE_FAT_MAN_LITTLEROOT        0x364
#define FLAG_HIDE_BRINEY_SLATEPORT_SHIPYARD 0x365
#define FLAG_HIDE_LANETTE                   0x366
#define FLAG_HIDE_LANETTE_FALLARBOR         0x367
#define FLAG_HIDE_TRICKMASTER_ENTRANCE      0x368

#define FLAG_HIDE_MT_CHIMNEY_PEOPLE         0x36D
#define FLAG_HIDE_GRUNT_RUSTURF_TUNNEL      0x36E
#define FLAG_HIDE_BRINEY_RUSTURF_TUNNEL     0x36F
#define FLAG_HIDE_PEEKO_RUSTURF_TUNNEL      0x370
#define FLAG_HIDE_PEEKO_BRINEY_HOUSE        0x371
#define FLAG_HIDE_EVIL_TEAM_SLATEPORT       0x372
#define FLAG_HIDE_EVIL_TEAM_OCEANIC_MUSEUM  0x373
#define FLAG_HIDE_GRUNT_1_OCEANIC_MUSEUM_2F 0x374
#define FLAG_HIDE_GRUNT_2_OCEANIC_MUSEUM_2F 0x375
#define FLAG_HIDE_EVIL_TEAM_LEADER_OCEANIC_MUSEUM_2F 0x376
#define FLAG_HIDE_STERN_OCEANIC_MUSEUM_2F   0x377
#define FLAG_HIDE_BATTLE_TOWER_OPPONENT     0x378
#define FLAG_HIDE_RIVAL_BIRCH_LAB           0x379
#define FLAG_HIDE_EVIL_TEAM_WEATHER_INSTITUTE  0x37A
#define FLAG_HIDE_BRINEY_ROUTE116              0x37B
#define FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_1F 0x37C
#define FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_2F 0x37D
#define FLAG_HIDE_TUNNER_DIGGER_ROUTE116    0x37E
#define FLAG_HIDE_ARTIST_LILCOVE_CONTEST    0x37F
#define FLAG_UNKNOWN_BIRCH_380              0x380 // TODO: what should this be called?
#define FLAG_HIDE_BIRCH_ROUTE101            0x381
#define FLAG_HIDE_BIRCH_ROUTE103            0x382
#define FLAG_HIDE_TRICKMASTER_END           0x383
#define FLAG_HIDE_EVIL_TEAM_ROUTE110        0x384
#define FLAG_HIDE_GABBY_AND_TY_ROUTE118_2   0x385
#define FLAG_HIDE_GABBY_AND_TY_ROUTE120_2   0x386
#define FLAG_HIDE_GABBY_AND_TY_ROUTE111_3   0x387
#define FLAG_HIDE_GABBY_AND_TY_ROUTE118_3   0x388
#define FLAG_HIDE_WORKERS_SLATEPORT_HARBOR  0x389
#define FLAG_HIDE_FLOWER_SHOP_WORKER_OUTSIDE 0x38A
#define FLAG_HIDE_AZURILL_FALLARBOR         0x38B
#define FLAG_HIDE_FERRY_ATTENDANT_LILYCOVE  0x38C
#define FLAG_HIDE_FERRY_SAILOR_LILYCOVE     0x38D
#define FLAG_HIDE_LATIOS_OR_LATIAS_FLYING   0x38E
#define FLAG_HIDE_LATIOS_OR_LATIAS_STATIONARY 0x38F
#define FLAG_HIDE_WATTSON_MAUVILLE          0x390
#define FLAG_HIDE_WATTSON_MAUVILLE_GYM      0x391
#define FLAG_HIDE_GRUNTS_ROUTE121           0x392
#define FLAG_UNKNOWN_393                    0x393
#define FLAG_HIDE_LEADER_MT_PYRE_SUMMIT     0x394
#define FLAG_HIDE_GRUNTS_MT_PYRE_SUMMIT     0x395
#define FLAG_HIDE_REPORTER_BATTLE_TOWER     0x396
#define FLAG_HIDE_RIVAL_ROUTE110            0x397
#define FLAG_HIDE_RIVAL_CHAMPIONS_ROOM      0x398
#define FLAG_HIDE_BIRCH_CHAMPIONS_ROOM      0x399
#define FLAG_HIDE_RIVAL_ON_BIKE_ROUTE110    0x39A
#define FLAG_HIDE_RIVAL_ROUTE119_ON_BIKE    0x39B
#define FLAG_HIDE_GRUNTS_HIDEOUTS           0x39C
#define FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE     0x39D
#define FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY      0x39E
#define FLAG_HIDE_OTHER_TEAM_MT_CHIMNEY     0x39F
#define FLAG_HIDE_PROF_COSMO_FALLARBOR      0x3A0
#define FLAG_HIDE_RIVAL_LAVARIDGE_1         0x3A1
#define FLAG_HIDE_RIVAL_LAVARIDGE_2         0x3A2
#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1     0x3A3
#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2     0x3A4
#define FLAG_HIDE_WINGULL_FORTREE_HOUSE     0x3A5
#define FLAG_HIDE_WINGULL_MOSSDEEP_HOUSE    0x3A6
#define FLAG_HIDE_REGIROCK                  0x3A7
#define FLAG_HIDE_REGICE                    0x3A8
#define FLAG_HIDE_REGISTEEL                 0x3A9
#define FLAG_HIDE_GRUNTS_METEOR_FALLS_1F    0x3AA
#define FLAG_HIDE_OTHER_TEAM_METEOR_FALLS_1F 0x3AB
#define FLAG_HIDE_SLUDGE_BOMB_MAN_DEWFORD_HALL 0x3AC
#define FLAG_HIDE_AWARD_MAN_BATTLE_TOWER    0x3AD
#define FLAG_HIDE_PROF_COSMO_METEOR_FALLS   0x3AE
#define FLAG_HIDE_SUBMARINE_SHADOW_HIDEOUT  0x3AF
#define FLAG_HIDE_EVIL_LEADER_ROUTE128      0x3B0
#define FLAG_HIDE_OTHER_LEADER_ROUTE128     0x3B1
#define FLAG_HIDE_EVIL_TEAM_GRUNTS_SEAFLOOR_CAVERN 0x3B2
#define FLAG_HIDE_DEVON_EMPLOYEE_ROUTE116   0x3B3
#define FLAG_HIDE_TM_SALESMAN_SLATEPORT     0x3B4
#define FLAG_HIDE_EMPLOYEE_DEVON_CORP_3F    0x3B5
#define FLAG_HIDE_BRINEY_AND_PEEKO_SS_TIDAL 0x3B6
#define FLAG_HIDE_TM_49_GIVER_SS_TIDAL      0x3B7
#define FLAG_HIDE_TOOK_SHOAL_SALT_1         0x3B8
#define FLAG_HIDE_TOOK_SHOAL_SALT_2         0x3B9
#define FLAG_HIDE_TOOK_SHOAL_SALT_3         0x3BA
#define FLAG_HIDE_TOOK_SHOAL_SALT_4         0x3BB
#define FLAG_HIDE_TOOK_SHOAL_SHELL_1        0x3BC
#define FLAG_HIDE_TOOK_SHOAL_SHELL_2        0x3BD
#define FLAG_HIDE_TOOK_SHOAL_SHELL_3        0x3BE
#define FLAG_HIDE_TOOK_SHOAL_SHELL_4        0x3BF
#define FLAG_HIDE_SECRET_POWER_MAN          0x3C0
#define FLAG_HIDE_OCEANIC_MUSEUM_VISITORS   0x3C1
#define FLAG_HIDE_ROOFTOP_LADY_LILYCOVE_MART 0x3C2
#define FLAG_HIDE_ROOT_FOSSIL               0x3C3
#define FLAG_HIDE_CLAW_FOSSIL               0x3C4
#define FLAG_HIDE_SCARED_GRUNT_OCEANIC_MUSEUM 0x3C5
#define FLAG_HIDE_STEVEN_ROUTE118           0x3C6
#define FLAG_HIDE_STEVEN_STEVENS_HOUSE      0x3C7
#define FLAG_HIDE_BELDUM_BALL_STEVENS_HOUSE 0x3C8
#define FLAG_HIDE_KECLEON_FORTREE           0x3C9
#define FLAG_HIDE_KECLEON_ROUTE120_1        0x3CA
#define FLAG_HIDE_RIVAL_LILYCOVE_MART       0x3CB
#define FLAG_HIDE_STEVEN_ROUTE120           0x3CC
#define FLAG_HIDE_STEVEN_SOOTOPOLIS         0x3CD
#define FLAG_HIDE_VOLTORB_1_NEW_MAUVILLE    0x3CE
#define FLAG_HIDE_VOLTORB_2_NEW_MAUVILLE    0x3CF
#define FLAG_HIDE_VOLTORB_3_NEW_MAUVILLE    0x3D0
#define FLAG_HIDE_ELECTRODE_1_HIDEOUT       0x3D1
#define FLAG_HIDE_ELECTRODE_2_HIDEOUT       0x3D2
#define FLAG_HIDE_RIVAL_OLDALE_TOWN         0x3D3
#define FLAG_HIDE_UNDERWATER_SUBMARINE_INTERACTION 0x3D4
#define FLAG_HIDE_KECLEON_ROUTE120_2        0x3D5
#define FLAG_HIDE_KECLEON_ROUTE120_3        0x3D6
#define FLAG_HIDE_GIRLFRIEND_RUSTURF_TUNNEL 0x3D7
#define FLAG_HIDE_GIRLFRIEND_WANDAS_HOUSE   0x3D8
#define FLAG_HIDE_KECLEON_ROUTE120_4        0x3D9
#define FLAG_HIDE_KECLEON_ROUTE120_5        0x3DA
#define FLAG_HIDE_KECLEON_ROUTE120_6        0x3DB
#define FLAG_HIDE_KECLEON_ROUTE120_7        0x3DC
#define FLAG_HIDE_KECLEON_ROUTE119_1        0x3DD
#define FLAG_HIDE_KECLEON_ROUTE119_2        0x3DE
#define FLAG_HIDE_BOY_ROUTE101              0x3DF

#define FLAG_ITEM_ROUTE102_1                0x3E8
#define FLAG_ITEM_ROUTE116_1                0x3E9
#define FLAG_ITEM_ROUTE104_1                0x3EA
#define FLAG_ITEM_ROUTE105_1                0x3EB
#define FLAG_ITEM_ROUTE106_1                0x3EC
#define FLAG_ITEM_ROUTE109_1                0x3ED
#define FLAG_ITEM_ROUTE110_1                0x3EE
#define FLAG_ITEM_ROUTE110_2                0x3EF
#define FLAG_ITEM_ROUTE111_1                0x3F0
#define FLAG_ITEM_ROUTE111_2                0x3F1
#define FLAG_ITEM_ROUTE111_3                0x3F2
#define FLAG_ITEM_ROUTE112_1                0x3F3
#define FLAG_ITEM_ROUTE113_1                0x3F4
#define FLAG_ITEM_ROUTE113_2                0x3F5
#define FLAG_ITEM_ROUTE114_1                0x3F6
#define FLAG_ITEM_ROUTE114_2                0x3F7
#define FLAG_ITEM_ROUTE115_1                0x3F8
#define FLAG_ITEM_ROUTE115_2                0x3F9
#define FLAG_ITEM_ROUTE115_3                0x3FA
#define FLAG_ITEM_ROUTE116_2                0x3FB
#define FLAG_ITEM_ROUTE116_3                0x3FC
#define FLAG_ITEM_ROUTE116_4                0x3FD
#define FLAG_ITEM_ROUTE117_1                0x3FE
#define FLAG_ITEM_ROUTE117_2                0x3FF
#define FLAG_ITEM_ROUTE119_1                0x400
#define FLAG_ITEM_ROUTE119_2                0x401
#define FLAG_ITEM_ROUTE119_3                0x402
#define FLAG_ITEM_ROUTE119_4                0x403
#define FLAG_ITEM_ROUTE119_5                0x404
#define FLAG_ITEM_ROUTE119_6                0x405
#define FLAG_ITEM_ROUTE120_1                0x406
#define FLAG_ITEM_ROUTE120_2                0x407
#define FLAG_ITEM_ROUTE123_1                0x408
#define FLAG_ITEM_ROUTE123_2                0x409
#define FLAG_ITEM_ROUTE127_1                0x40A
#define FLAG_ITEM_ROUTE127_2                0x40B
#define FLAG_ITEM_ROUTE132_1                0x40C
#define FLAG_ITEM_ROUTE133_1                0x40D
#define FLAG_ITEM_ROUTE133_2                0x40E
#define FLAG_ITEM_PETALBURG_1               0x40F
#define FLAG_ITEM_PETALBURG_2               0x410
#define FLAG_ITEM_RUSTBORO_1                0x411
#define FLAG_ITEM_LILYCOVE_1                0x412
#define FLAG_ITEM_MOSSDEEP_1                0x413
#define FLAG_ITEM_METEOR_FALLS_1F_1R_1      0x414
#define FLAG_ITEM_METEOR_FALLS_1F_1R_2      0x415
#define FLAG_ITEM_METEOR_FALLS_1F_1R_3      0x416
#define FLAG_ITEM_METEOR_FALLS_1F_1R_4      0x417
#define FLAG_ITEM_RUSTURF_TUNNEL_1          0x418
#define FLAG_ITEM_RUSTURF_TUNNEL_2          0x419
#define FLAG_ITEM_GRANITE_CAVE_1F_1         0x41A
#define FLAG_ITEM_GRANITE_CAVE_B1F_1        0x41B
#define FLAG_ITEM_MT_PYRE_5F_1              0x41C
#define FLAG_ITEM_GRANITE_CAVE_B2F_1        0x41D
#define FLAG_ITEM_GRANITE_CAVE_B2F_2        0x41E
#define FLAG_ITEM_PETALBURG_WOODS_1         0x41F
#define FLAG_ITEM_PETALBURG_WOODS_2         0x420
#define FLAG_ITEM_ROUTE104_2                0x421
#define FLAG_ITEM_PETALBURG_WOODS_3         0x422
#define FLAG_ITEM_CAVE_OF_ORIGIN_B3F_1      0x423
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_1_1    0x424
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_2_1    0x425
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_2_2    0x426
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_3_1    0x427
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_3_2    0x428
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_4_1    0x429
#define FLAG_ITEM_ROUTE124_1                0x42A
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_6_1    0x42B
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_7_1    0x42C
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_8_1    0x42D
#define FLAG_ITEM_JAGGED_PASS_1             0x42E
#define FLAG_ITEM_AQUA_HIDEOUT_B1F_1        0x42F
#define FLAG_ITEM_AQUA_HIDEOUT_B2F_1        0x430
#define FLAG_ITEM_MT_PYRE_EXTERIOR_1        0x431
#define FLAG_ITEM_MT_PYRE_EXTERIOR_2        0x432
#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_1     0x433
#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_2     0x434
#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_1 0x435
#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_2 0x436
#define FLAG_ITEM_SCORCHED_SLAB_1           0x437
#define FLAG_ITEM_METEOR_FALLS_B1F_2R_1     0x438
#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ENTRANCE_1 0x439
#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_INNER_ROOM_1 0x43A
#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM_1 0x43B
#define FLAG_ITEM_VICTORY_ROAD_1F_1         0x43C
#define FLAG_ITEM_VICTORY_ROAD_1F_2         0x43D
#define FLAG_ITEM_VICTORY_ROAD_B1F_1        0x43E
#define FLAG_ITEM_VICTORY_ROAD_B1F_2        0x43F
#define FLAG_ITEM_VICTORY_ROAD_B2F_1        0x440
#define FLAG_ITEM_MT_PYRE_6F_1              0x441
#define FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_1  0x442
#define FLAG_ITEM_FIERY_PATH_1              0x443
#define FLAG_ITEM_ROUTE124_2                0x444
#define FLAG_ITEM_ROUTE124_3                0x445
#define FLAG_ITEM_SAFARI_ZONE_NORTHWEST_1   0x446
#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_1F_1 0x447
#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_1 0x448
#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_B1F_1 0x449
#define FLAG_ITEM_ABANDONED_SHIP_ROOM_B1F_1  0x44A
#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_1F_1 0x44B
#define FLAG_ITEM_ABANDONED_SHIP_CAPTAINS_OFFICE_1 0x44C
#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_3 0x44D
#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_4 0x44E
#define FLAG_ITEM_ROUTE121_1                0x44F
#define FLAG_ITEM_ROUTE123_3                0x450
#define FLAG_ITEM_ROUTE126_1                0x451
#define FLAG_ITEM_ROUTE119_7                0x452
#define FLAG_ITEM_ROUTE120_3                0x453
#define FLAG_ITEM_ROUTE120_4                0x454
#define FLAG_ITEM_ROUTE123_4                0x455
#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_3     0x456
#define FLAG_ITEM_FIERY_PATH_2              0x457
#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ICE_ROOM_1 0x458
#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ICE_ROOM_2 0x459
#define FLAG_ITEM_ROUTE103_1                0x45A
#define FLAG_ITEM_ROUTE104_3                0x45B
#define FLAG_ITEM_MAUVILLE_1                0x45C
#define FLAG_ITEM_PETALBURG_WOODS_4         0x45D
#define FLAG_ITEM_ROUTE115_4                0x45E
#define FLAG_ITEM_SAFARI_ZONE_NORTHEAST_1   0x45F
#define FLAG_ITEM_MT_PYRE_3F_1              0x460
#define FLAG_ITEM_ROUTE118_1                0x461
#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_4     0x462
#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_5     0x463
#define FLAG_ITEM_AQUA_HIDEOUT_B1F_2        0x464
#define FLAG_ITEM_MAGMA_HIDEOUT_B1F_1       0x465
#define FLAG_ITEM_MAGMA_HIDEOUT_B1F_2       0x466
#define FLAG_ITEM_MAGMA_HIDEOUT_B2F_1       0x467

#define FLAG_ITEM_MT_PYRE_2F_1              0x469
#define FLAG_ITEM_MT_PYRE_4F_1              0x46A
#define FLAG_ITEM_SAFARI_ZONE_SOUTHWEST     0x46B
#define FLAG_ITEM_AQUA_HIDEOUT_B1F_3        0x46C
#define FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_HM08 0x46D
#define FLAG_ITEM_MAGMA_HIDEOUT_B1F_3       0x46E
#define FLAG_ITEM_ROUTE104_4                0x46F

#define FLAG_DEFEATED_RUSTBORO_GYM          0x4B1

#define FLAG_DEFEATED_DEWFORD_GYM           0x4B4

#define FLAG_DEFEATED_MAUVILLE_GYM          0x4B8

#define FLAG_DEFEATED_LAVARIDGE_GYM         0x4BD

#define FLAG_DEFEATED_PETALBURG_GYM         0x4C1

#define FLAG_DEFEATED_FORTREE_GYM           0x4C9

#define FLAG_DEFEATED_MOSSDEEP_GYM          0x4CD

#define FLAG_DEFEATED_SOOTOPOLIS_GYM        0x4D4

#define FLAG_DEFEATED_ELITE_4_SYDNEY        0x4DD
#define FLAG_DEFEATED_ELITE_4_PHOEBE        0x4DE
#define FLAG_DEFEATED_ELITE_4_GLACIA        0x4DF
#define FLAG_DEFEATED_ELITE_4_DRAKE         0x4E0


#define TRAINER_FLAG_START 0x500


// SYSTEM FLAGS

#define NUMBER_OF_TRAINERS  693
#define SYSTEM_FLAGS        (TRAINER_FLAG_START + NUMBER_OF_TRAINERS + 0x4B) // 0x800

#define FLAG_SYS_POKEMON_GET  (SYSTEM_FLAGS + 0x00)
#define FLAG_SYS_POKEDEX_GET  (SYSTEM_FLAGS + 0x01)
#define FLAG_SYS_POKENAV_GET  (SYSTEM_FLAGS + 0x02)
#define FLAG_SYS_GAME_CLEAR   (SYSTEM_FLAGS + 0x04)
#define FLAG_SYS_CHAT_USED    (SYSTEM_FLAGS + 0x05)
#define FLAG_SYS_HIPSTER_MEET (SYSTEM_FLAGS + 0x06)

// badges
#define FLAG_BADGE01_GET (SYSTEM_FLAGS + 0x07)
#define FLAG_BADGE02_GET (SYSTEM_FLAGS + 0x08)
#define FLAG_BADGE03_GET (SYSTEM_FLAGS + 0x09)
#define FLAG_BADGE04_GET (SYSTEM_FLAGS + 0x0A)
#define FLAG_BADGE05_GET (SYSTEM_FLAGS + 0x0B)
#define FLAG_BADGE06_GET (SYSTEM_FLAGS + 0x0C)
#define FLAG_BADGE07_GET (SYSTEM_FLAGS + 0x0D)
#define FLAG_BADGE08_GET (SYSTEM_FLAGS + 0x0E)

// cities and towns 
#define FLAG_VISITED_LITTLEROOT_TOWN  (SYSTEM_FLAGS + 0x0F)
#define FLAG_VISITED_OLDALE_TOWN      (SYSTEM_FLAGS + 0x10)
#define FLAG_VISITED_DEWFORD_TOWN     (SYSTEM_FLAGS + 0x11)
#define FLAG_VISITED_LAVARIDGE_TOWN   (SYSTEM_FLAGS + 0x12)
#define FLAG_VISITED_FALLARBOR_TOWN   (SYSTEM_FLAGS + 0x13)
#define FLAG_VISITED_VERDANTURF_TOWN  (SYSTEM_FLAGS + 0x14)
#define FLAG_VISITED_PACIFIDLOG_TOWN  (SYSTEM_FLAGS + 0x15)
#define FLAG_VISITED_PETALBURG_CITY   (SYSTEM_FLAGS + 0x16)
#define FLAG_VISITED_SLATEPORT_CITY   (SYSTEM_FLAGS + 0x17)
#define FLAG_VISITED_MAUVILLE_CITY    (SYSTEM_FLAGS + 0x18)
#define FLAG_VISITED_RUSTBORO_CITY    (SYSTEM_FLAGS + 0x19)
#define FLAG_VISITED_FORTREE_CITY     (SYSTEM_FLAGS + 0x1A)
#define FLAG_VISITED_LILYCOVE_CITY    (SYSTEM_FLAGS + 0x1B)
#define FLAG_VISITED_MOSSDEEP_CITY    (SYSTEM_FLAGS + 0x1C)
#define FLAG_VISITED_SOOTOPOLIS_CITY  (SYSTEM_FLAGS + 0x1D)
#define FLAG_VISITED_EVER_GRANDE_CITY (SYSTEM_FLAGS + 0x1E)

#define FLAG_SYS_USE_FLASH        (SYSTEM_FLAGS + 0x28)
#define FLAG_SYS_USE_STRENGTH     (SYSTEM_FLAGS + 0x29)
#define FLAG_SYS_WEATHER_CTRL     (SYSTEM_FLAGS + 0x2A)
#define FLAG_SYS_CYCLING_ROAD     (SYSTEM_FLAGS + 0x2B)
#define FLAG_SYS_SAFARI_MODE      (SYSTEM_FLAGS + 0x2C)
#define FLAG_SYS_CRUISE_MODE      (SYSTEM_FLAGS + 0x2D)

#define FLAG_SYS_TV_HOME          (SYSTEM_FLAGS + 0x30)
#define FLAG_SYS_TV_WATCH         (SYSTEM_FLAGS + 0x31)
#define FLAG_SYS_TV_START         (SYSTEM_FLAGS + 0x32)
#define FLAG_SYS_POPWORD_INPUT    (SYSTEM_FLAGS + 0x33)
#define FLAG_SYS_MIX_RECORD       (SYSTEM_FLAGS + 0x34)
#define FLAG_SYS_CLOCK_SET        (SYSTEM_FLAGS + 0x35)
#define FLAG_SYS_NATIONAL_DEX     (SYSTEM_FLAGS + 0x36)
#define FLAG_SYS_CAVE_SHIP        (SYSTEM_FLAGS + 0x37)
#define FLAG_SYS_CAVE_WONDER      (SYSTEM_FLAGS + 0x38)
#define FLAG_SYS_CAVE_BATTLE      (SYSTEM_FLAGS + 0x39)
#define FLAG_SYS_SHOAL_TIDE       (SYSTEM_FLAGS + 0x3A)
#define FLAG_SYS_RIBBON_GET       (SYSTEM_FLAGS + 0x3B)

#define FLAG_LANDMARK_FLOWER_SHOP        (SYSTEM_FLAGS + 0x3C)
#define FLAG_LANDMARK_MR_BRINEY_HOUSE    (SYSTEM_FLAGS + 0x3D)
#define FLAG_LANDMARK_ABANDONED_SHIP     (SYSTEM_FLAGS + 0x3E)
#define FLAG_LANDMARK_SEASHORE_HOUSE     (SYSTEM_FLAGS + 0x3F)
#define FLAG_LANDMARK_NEW_MAUVILLE       (SYSTEM_FLAGS + 0x40)
#define FLAG_LANDMARK_OLD_LADY_REST_SHOP (SYSTEM_FLAGS + 0x41)
#define FLAG_LANDMARK_TRICK_HOUSE        (SYSTEM_FLAGS + 0x42)
#define FLAG_LANDMARK_WINSTRATE_FAMILY   (SYSTEM_FLAGS + 0x43)
#define FLAG_LANDMARK_GLASS_WORKSHOP     (SYSTEM_FLAGS + 0x44)
#define FLAG_LANDMARK_LANETTES_HOUSE     (SYSTEM_FLAGS + 0x45)
#define FLAG_LANDMARK_POKEMON_DAYCARE    (SYSTEM_FLAGS + 0x46)
#define FLAG_LANDMARK_SEAFLOOR_CAVERN    (SYSTEM_FLAGS + 0x47)
#define FLAG_LANDMARK_BATTLE_TOWER       (SYSTEM_FLAGS + 0x48)
#define FLAG_LANDMARK_SOUTHERN_ISLAND    (SYSTEM_FLAGS + 0x49)
#define FLAG_LANDMARK_FIERY_PATH         (SYSTEM_FLAGS + 0x4A)

#define FLAG_SYS_PC_LANETTE       (SYSTEM_FLAGS + 0x4B)
#define FLAG_SYS_EXDATA_ENABLE    (SYSTEM_FLAGS + 0x4C)
#define FLAG_SYS_ENC_UP_ITEM      (SYSTEM_FLAGS + 0x4D)
#define FLAG_SYS_ENC_DOWN_ITEM    (SYSTEM_FLAGS + 0x4E)
#define FLAG_SYS_BRAILLE_DIG      (SYSTEM_FLAGS + 0x4F)
#define FLAG_SYS_BRAILLE_STRENGTH (SYSTEM_FLAGS + 0x50)
#define FLAG_SYS_BRAILLE_WAIT     (SYSTEM_FLAGS + 0x51)
#define FLAG_SYS_BRAILLE_FLY      (SYSTEM_FLAGS + 0x52)
#define FLAG_SYS_HAS_EON_TICKET   (SYSTEM_FLAGS + 0x53)
#define FLAG_SYS_POKEMON_LEAGUE_FLY (SYSTEM_FLAGS + 0x54)

#define FLAG_LANDMARK_ISLAND_CAVE          (SYSTEM_FLAGS + 0x55)
#define FLAG_LANDMARK_DESERT_RUINS         (SYSTEM_FLAGS + 0x56)
#define FLAG_LANDMARK_FOSSIL_MANIACS_HOUSE (SYSTEM_FLAGS + 0x57)
#define FLAG_LANDMARK_SCORCHED_SLAB        (SYSTEM_FLAGS + 0x58)
#define FLAG_LANDMARK_ANCIENT_TOMB         (SYSTEM_FLAGS + 0x59)
#define FLAG_LANDMARK_TUNNELERS_REST_HOUSE (SYSTEM_FLAGS + 0x5A)
#define FLAG_LANDMARK_HUNTERS_HOUSE        (SYSTEM_FLAGS + 0x5B)
#define FLAG_LANDMARK_SEALED_CHAMBER       (SYSTEM_FLAGS + 0x5C)

#define FLAG_SYS_TV_LATI          (SYSTEM_FLAGS + 0x5D)

#define FLAG_LANDMARK_SKY_PILLAR (SYSTEM_FLAGS + 0x5E)

#define FLAG_SYS_SHOAL_ITEM       (SYSTEM_FLAGS + 0x5F)
#define FLAG_SYS_B_DASH           (SYSTEM_FLAGS + 0x60) // got Running Shoes
#define FLAG_SYS_CTRL_OBJ_DELETE  (SYSTEM_FLAGS + 0x61)
#define FLAG_SYS_RESET_RTC_ENABLE (SYSTEM_FLAGS + 0x62)

#define FLAG_LANDMARK_BERRY_MASTERS_HOUSE (SYSTEM_FLAGS + 0x63)


// Daily Flags. These 64 flags are cleared once per day.
#define DAILY_FLAGS_START (SYSTEM_FLAGS + 0xC0)

#define FLAG_DAILY_RECEIVED_BERRY_FALLARBOR   (SYSTEM_FLAGS + 0xC1)
#define FLAG_DAILY_UNKNOWN_8C2                (SYSTEM_FLAGS + 0xC2)

#define FLAG_DAILY_PICKED_LOTTO_TICKET        (SYSTEM_FLAGS + 0xCA)
#define FLAG_DAILY_RECEIVED_BERRY_ROUTE114    (SYSTEM_FLAGS + 0xCB)
#define FLAG_DAILY_RECEIVED_BERRY_ROUTE111    (SYSTEM_FLAGS + 0xCC)
#define FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER (SYSTEM_FLAGS + 0xCD)
#define FLAG_DAILY_RECEIVED_BERRY_ROUTE120    (SYSTEM_FLAGS + 0xCE)
#define FLAG_DAILY_RECEIVED_BERRY_LILYCOVE    (SYSTEM_FLAGS + 0xCF)
#define FLAG_DAILY_RECEIVED_BERRY_FLOWER_SHOP (SYSTEM_FLAGS + 0xD0)
#define FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER_WIFE (SYSTEM_FLAGS + 0xD1)
#define FLAG_DAILY_RECEIVED_BERRY_SOOTOPOLIS  (SYSTEM_FLAGS + 0xD2)
// Daily flags end at 0x8FF

// SPECIAL FLAGS

#define FLAG_HIDE_MAP_NAME_POPUP 0x4000
#define FLAG_DONT_TRANSITION_MUSIC 0x4001

#endif // GUARD_CONSTANTS_FLAGS_H