summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--constants/engine_flags.asm218
-rw-r--r--constants/wram_constants.asm19
-rw-r--r--data/engine_flags.asm120
-rwxr-xr-xengine/events/engine_flags.asm113
-rwxr-xr-xengine/events/happiness_egg.asm8
-rwxr-xr-xengine/events/shuckle.asm3
-rwxr-xr-xengine/events/specials.asm9
-rw-r--r--engine/menus/intro_menu.asm6
-rw-r--r--macros.asm1
-rwxr-xr-xmacros/flag.asm45
-rwxr-xr-xtools/unused_sources.sh3
11 files changed, 269 insertions, 276 deletions
diff --git a/constants/engine_flags.asm b/constants/engine_flags.asm
index 51fb02cc..4bdadba9 100644
--- a/constants/engine_flags.asm
+++ b/constants/engine_flags.asm
@@ -1,110 +1,112 @@
+; EngineFlags indexes (see data/engine_flags.asm)
const_def
-
- engine_flag_def ENGINE_RADIO_CARD, wPokegearFlags, 1 ; radio card ; $0
- engine_flag_def ENGINE_MAP_CARD, wPokegearFlags, 0 ; map card
- engine_flag_def ENGINE_PHONE_CARD, wPokegearFlags, 2 ; phone card
- engine_flag_def ENGINE_EXPN_CARD, wPokegearFlags, 3 ; expn card
- engine_flag_def ENGINE_POKEGEAR, wPokegearFlags, 7 ; on/off
-
- engine_flag_def ENGINE_DAY_CARE_MAN_HAS_EGG, wDayCareMan, DAYCAREMAN_HAS_EGG_F
- engine_flag_def ENGINE_DAY_CARE_MAN_HAS_MON, wDayCareMan, DAYCAREMAN_HAS_MON_F
-
- engine_flag_def ENGINE_DAY_CARE_LADY_HAS_MON, wDayCareLady, DAYCARELADY_HAS_MON_F
-
- engine_flag_def ENGINE_MOM_SAVING_MONEY, wMomSavingMoney, 0 ; mom saving money ; $8
- engine_flag_def ENGINE_DST, wMomSavingMoney, 7 ; dst
-
- engine_flag_def ENGINE_0A, wUnusedTwoDayTimerOn, 0 ; unused
-
- engine_flag_def ENGINE_POKEDEX, wStatusFlags, 0 ; pokedex
- engine_flag_def ENGINE_UNOWN_DEX, wStatusFlags, 1 ; unown dex
- engine_flag_def ENGINE_POKERUS, wStatusFlags, 3 ; pokerus
- engine_flag_def ENGINE_ROCKET_SIGNAL_ON_CH20, wStatusFlags, 4 ; rocket signal on ch20
- engine_flag_def ENGINE_CREDITS_SKIP, wStatusFlags, 6 ; credits skip
- engine_flag_def ENGINE_BUG_CONTEST_TIMER, wStatusFlags2, 2 ; bug contest timer ; $10
- engine_flag_def ENGINE_SAFARI_ZONE, wStatusFlags2, 1 ; safari zone?
- engine_flag_def ENGINE_ROCKETS_IN_RADIO_TOWER, wStatusFlags2, 0 ; rockets in radio tower
- engine_flag_def ENGINE_BIKE_SHOP_CALL_ENABLED, wStatusFlags2, 4 ; bike shop call enabled (1024 bike steps reqd)
- engine_flag_def ENGINE_GIVE_POKERUS, wStatusFlags2, 5 ; give pokerus
- engine_flag_def ENGINE_REACHED_GOLDENROD, wStatusFlags2, 6 ; berry -> berry juice when trading?
- engine_flag_def ENGINE_ROCKETS_IN_MAHOGANY, wStatusFlags2, 7 ; rockets in mahogany
-
- engine_flag_def ENGINE_STRENGTH_ACTIVE, wBikeFlags, 0 ; strength active
- engine_flag_def ENGINE_ALWAYS_ON_BIKE, wBikeFlags, 1 ; always on bike (cant surf) ; $18
- engine_flag_def ENGINE_DOWNHILL, wBikeFlags, 2 ; downhill (cycling road)
-
- engine_flag_def ENGINE_ZEPHYRBADGE, wJohtoBadges, 0 ; zephyrbadge
- engine_flag_def ENGINE_HIVEBADGE, wJohtoBadges, 1 ; hivebadge
- engine_flag_def ENGINE_PLAINBADGE, wJohtoBadges, 2 ; plainbadge
- engine_flag_def ENGINE_FOGBADGE, wJohtoBadges, 3 ; fogbadge
- engine_flag_def ENGINE_MINERALBADGE, wJohtoBadges, 4 ; mineralbadge
- engine_flag_def ENGINE_STORMBADGE, wJohtoBadges, 5 ; stormbadge
- engine_flag_def ENGINE_GLACIERBADGE, wJohtoBadges, 6 ; glacierbadge ; $20
- engine_flag_def ENGINE_RISINGBADGE, wJohtoBadges, 7 ; risingbadge
-
- engine_flag_def ENGINE_BOULDERBADGE, wKantoBadges, 0 ; boulderbadge
- engine_flag_def ENGINE_CASCADEBADGE, wKantoBadges, 1 ; cascadebadge
- engine_flag_def ENGINE_THUNDERBADGE, wKantoBadges, 2 ; thunderbadge
- engine_flag_def ENGINE_RAINBOWBADGE, wKantoBadges, 3 ; rainbowbadge
- engine_flag_def ENGINE_SOULBADGE, wKantoBadges, 4 ; soulbadge
- engine_flag_def ENGINE_MARSHBADGE, wKantoBadges, 5 ; marshbadge
- engine_flag_def ENGINE_VOLCANOBADGE, wKantoBadges, 6 ; volcanobadge ; $28
- engine_flag_def ENGINE_EARTHBADGE, wKantoBadges, 7 ; earthbadge
-
- engine_flag_def ENGINE_UNLOCKED_UNOWNS_A_TO_K, wUnlockedUnowns, 0
- engine_flag_def ENGINE_UNLOCKED_UNOWNS_L_TO_R, wUnlockedUnowns, 1
- engine_flag_def ENGINE_UNLOCKED_UNOWNS_S_TO_W, wUnlockedUnowns, 2
- engine_flag_def ENGINE_UNLOCKED_UNOWNS_X_TO_Z, wUnlockedUnowns, 3
- engine_flag_def ENGINE_UNLOCKED_UNOWNS_UNUSED_4, wUnlockedUnowns, 4
- engine_flag_def ENGINE_UNLOCKED_UNOWNS_UNUSED_5, wUnlockedUnowns, 5
- engine_flag_def ENGINE_UNLOCKED_UNOWNS_UNUSED_6, wUnlockedUnowns, 6 ; $30
- engine_flag_def ENGINE_UNLOCKED_UNOWNS_UNUSED_7, wUnlockedUnowns, 7
-
- engine_flag_def ENGINE_FLYPOINT_PLAYERS_HOUSE, wVisitedSpawns, 0 ; your house
- engine_flag_def ENGINE_FLYPOINT_VIRIDIAN_POKECENTER, wVisitedSpawns, 1 ; viridian pokecenter
- engine_flag_def ENGINE_FLYPOINT_PALLET, wVisitedSpawns, 2 ; pallet
- engine_flag_def ENGINE_FLYPOINT_VIRIDIAN, wVisitedSpawns, 3 ; viridian
- engine_flag_def ENGINE_FLYPOINT_PEWTER, wVisitedSpawns, 4 ; pewter
- engine_flag_def ENGINE_FLYPOINT_CERULEAN, wVisitedSpawns, 5 ; cerulean
- engine_flag_def ENGINE_FLYPOINT_ROCK_TUNNEL, wVisitedSpawns, 6 ; rock tunnel ; $38
- engine_flag_def ENGINE_FLYPOINT_VERMILION, wVisitedSpawns, 7 ; vermilion
- engine_flag_def ENGINE_FLYPOINT_LAVENDER, wVisitedSpawns + 1, 0 ; lavender
- engine_flag_def ENGINE_FLYPOINT_SAFFRON, wVisitedSpawns + 1, 1 ; saffron
- engine_flag_def ENGINE_FLYPOINT_CELADON, wVisitedSpawns + 1, 2 ; celadon
- engine_flag_def ENGINE_FLYPOINT_FUCHSIA, wVisitedSpawns + 1, 3 ; fuchsia
- engine_flag_def ENGINE_FLYPOINT_CINNABAR, wVisitedSpawns + 1, 4 ; cinnabar
- engine_flag_def ENGINE_FLYPOINT_INDIGO_PLATEAU, wVisitedSpawns + 1, 5 ; indigo plateau
- engine_flag_def ENGINE_FLYPOINT_NEW_BARK, wVisitedSpawns + 1, 6 ; new bark ; $40
- engine_flag_def ENGINE_FLYPOINT_CHERRYGROVE, wVisitedSpawns + 1, 7 ; cherrygrove
- engine_flag_def ENGINE_FLYPOINT_VIOLET, wVisitedSpawns + 2, 0 ; violet
- ; union cave
- engine_flag_def ENGINE_FLYPOINT_AZALEA, wVisitedSpawns + 2, 2 ; azalea
- engine_flag_def ENGINE_FLYPOINT_CIANWOOD, wVisitedSpawns + 2, 3 ; cianwood
- engine_flag_def ENGINE_FLYPOINT_GOLDENROD, wVisitedSpawns + 2, 4 ; goldenrod
- engine_flag_def ENGINE_FLYPOINT_OLIVINE, wVisitedSpawns + 2, 5 ; olivine
- engine_flag_def ENGINE_FLYPOINT_ECRUTEAK, wVisitedSpawns + 2, 6 ; ecruteak
- engine_flag_def ENGINE_FLYPOINT_MAHOGANY, wVisitedSpawns + 2, 7 ; mahogany ; $48
- engine_flag_def ENGINE_FLYPOINT_LAKE_OF_RAGE, wVisitedSpawns + 3, 0 ; lake of rage
- engine_flag_def ENGINE_FLYPOINT_BLACKTHORN, wVisitedSpawns + 3, 1 ; blackthorn
- engine_flag_def ENGINE_FLYPOINT_SILVER_CAVE, wVisitedSpawns + 3, 2 ; silver cave
- ; fast ship
- engine_flag_def ENGINE_FLYPOINT_UNUSED, wVisitedSpawns + 3, 4 ; unused
- engine_flag_def ENGINE_LUCKY_NUMBER_SHOW, wLuckyNumberShowFlag, 0
- engine_flag_def ENGINE_4E, wStatusFlags2, 3
-
- engine_flag_def ENGINE_KURT_MAKING_BALLS, wDailyFlags1, 0 ; kurt making balls
- engine_flag_def ENGINE_DAILY_BUG_CONTEST, wDailyFlags1, 1 ; did bug catching contest today ; $50
- engine_flag_def ENGINE_SPECIAL_WILDDATA, wDailyFlags1, 2 ; special wilddata?
- engine_flag_def ENGINE_TIME_CAPSULE, wDailyFlags1, 3 ; time capsule (24h wait)
- engine_flag_def ENGINE_ALL_FRUIT_TREES, wDailyFlags1, 4 ; all fruit trees
- engine_flag_def ENGINE_GOT_SHUCKIE_TODAY, wDailyFlags1, 5 ; shuckle given
- engine_flag_def ENGINE_GOLDENROD_UNDERGROUND_MERCHANT_CLOSED, wDailyFlags1, 6 ; goldenrod underground merchant closed
- engine_flag_def ENGINE_FOUGHT_IN_TRAINER_HALL_TODAY, wDailyFlags1, 7 ; fought in trainer hall today
-
- engine_flag_def ENGINE_MT_MOON_SQUARE_CLEFAIRY, wDailyFlags2, 0 ; mt moon square clefairy
- engine_flag_def ENGINE_UNION_CAVE_LAPRAS, wDailyFlags2, 1 ; union cave lapras ; $58
- engine_flag_def ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT, wDailyFlags2, 2 ; goldenrod underground haircut used
- engine_flag_def ENGINE_GOLDENROD_DEPT_STORE_TM27_RETURN, wDailyFlags2, 3 ; goldenrod mall happiness event floor05 person07
- engine_flag_def ENGINE_DAISYS_GROOMING, wDailyFlags2, 4 ; tea in blues house
- engine_flag_def ENGINE_INDIGO_PLATEAU_RIVAL_FIGHT, wDailyFlags2, 5 ; indigo plateau rival fight
+; wPokegearFlags
+ const ENGINE_RADIO_CARD
+ const ENGINE_MAP_CARD
+ const ENGINE_PHONE_CARD
+ const ENGINE_EXPN_CARD
+ const ENGINE_POKEGEAR
+; wDayCareMan
+ const ENGINE_DAY_CARE_MAN_HAS_EGG
+ const ENGINE_DAY_CARE_MAN_HAS_MON
+; wDayCareLady
+ const ENGINE_DAY_CARE_LADY_HAS_MON
+; wMomSavingMoney
+ const ENGINE_MOM_SAVING_MONEY
+ const ENGINE_MOM_ACTIVE
+; wUnusedTwoDayTimerOn
+ const ENGINE_0A
+; wStatusFlags
+ const ENGINE_POKEDEX
+ const ENGINE_UNOWN_DEX
+ const ENGINE_CAUGHT_POKERUS
+ const ENGINE_ROCKET_SIGNAL_ON_CH20
+ const ENGINE_CREDITS_SKIP
+; wStatusFlags2
+ const ENGINE_BUG_CONTEST_TIMER ; 10
+ const ENGINE_SAFARI_ZONE
+ const ENGINE_ROCKETS_IN_RADIO_TOWER
+ const ENGINE_BIKE_SHOP_CALL_ENABLED
+ const ENGINE_14
+ const ENGINE_REACHED_GOLDENROD
+ const ENGINE_ROCKETS_IN_MAHOGANY
+; wBikeFlags
+ const ENGINE_STRENGTH_ACTIVE
+ const ENGINE_ALWAYS_ON_BIKE
+ const ENGINE_DOWNHILL
+; wJohtoBadges
+ const ENGINE_ZEPHYRBADGE
+ const ENGINE_HIVEBADGE
+ const ENGINE_PLAINBADGE
+ const ENGINE_FOGBADGE
+ const ENGINE_MINERALBADGE
+ const ENGINE_STORMBADGE
+ const ENGINE_GLACIERBADGE ; 20
+ const ENGINE_RISINGBADGE
+; wKantoBadges
+ const ENGINE_BOULDERBADGE
+ const ENGINE_CASCADEBADGE
+ const ENGINE_THUNDERBADGE
+ const ENGINE_RAINBOWBADGE
+ const ENGINE_SOULBADGE
+ const ENGINE_MARSHBADGE
+ const ENGINE_VOLCANOBADGE
+ const ENGINE_EARTHBADGE
+; wUnlockedUnowns
+ const ENGINE_UNLOCKED_UNOWNS_A_TO_K
+ const ENGINE_UNLOCKED_UNOWNS_L_TO_R
+ const ENGINE_UNLOCKED_UNOWNS_S_TO_W
+ const ENGINE_UNLOCKED_UNOWNS_X_TO_Z
+ const ENGINE_UNLOCKED_UNOWNS_UNUSED_4
+ const ENGINE_UNLOCKED_UNOWNS_UNUSED_5
+ const ENGINE_UNLOCKED_UNOWNS_UNUSED_6 ; 30
+ const ENGINE_UNLOCKED_UNOWNS_UNUSED_7
+; wVisitedSpawns
+ const ENGINE_FLYPOINT_PLAYERS_HOUSE
+ const ENGINE_FLYPOINT_DEBUG
+ const ENGINE_FLYPOINT_PALLET
+ const ENGINE_FLYPOINT_VIRIDIAN
+ const ENGINE_FLYPOINT_PEWTER
+ const ENGINE_FLYPOINT_CERULEAN
+ const ENGINE_FLYPOINT_ROCK_TUNNEL
+ const ENGINE_FLYPOINT_VERMILION
+ const ENGINE_FLYPOINT_LAVENDER
+ const ENGINE_FLYPOINT_SAFFRON
+ const ENGINE_FLYPOINT_CELADON
+ const ENGINE_FLYPOINT_FUCHSIA
+ const ENGINE_FLYPOINT_CINNABAR
+ const ENGINE_FLYPOINT_INDIGO_PLATEAU
+ const ENGINE_FLYPOINT_NEW_BARK ; 40
+ const ENGINE_FLYPOINT_CHERRYGROVE
+ const ENGINE_FLYPOINT_VIOLET
+ const ENGINE_FLYPOINT_AZALEA
+ const ENGINE_FLYPOINT_CIANWOOD
+ const ENGINE_FLYPOINT_GOLDENROD
+ const ENGINE_FLYPOINT_OLIVINE
+ const ENGINE_FLYPOINT_ECRUTEAK
+ const ENGINE_FLYPOINT_MAHOGANY
+ const ENGINE_FLYPOINT_LAKE_OF_RAGE
+ const ENGINE_FLYPOINT_BLACKTHORN
+ const ENGINE_FLYPOINT_SILVER_CAVE
+ const ENGINE_FLYPOINT_UNUSED
+; wLuckyNumberShowFlag
+ const ENGINE_LUCKY_NUMBER_SHOW
+; wStatusFlags2
+ const ENGINE_4E
+; wDailyFlags1
+ const ENGINE_KURT_MAKING_BALLS
+ const ENGINE_DAILY_BUG_CONTEST ; 50
+ const ENGINE_FISH_SWARM
+ const ENGINE_TIME_CAPSULE
+ const ENGINE_ALL_FRUIT_TREES
+ const ENGINE_GOT_SHUCKIE_TODAY
+ const ENGINE_GOLDENROD_UNDERGROUND_MERCHANT_CLOSED
+ const ENGINE_FOUGHT_IN_TRAINER_HALL_TODAY
+; wDailyFlags2
+ const ENGINE_MT_MOON_SQUARE_CLEFAIRY
+ const ENGINE_UNION_CAVE_LAPRAS
+ const ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT
+ const ENGINE_GOLDENROD_DEPT_STORE_TM27_RETURN
+ const ENGINE_DAISYS_GROOMING
+ const ENGINE_INDIGO_PLATEAU_RIVAL_FIGHT
NUM_ENGINE_FLAGS EQU const_value
diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm
index 13d716b6..d4d94d06 100644
--- a/constants/wram_constants.asm
+++ b/constants/wram_constants.asm
@@ -212,6 +212,13 @@ NUM_JOHTO_BADGES EQU const_value
NUM_KANTO_BADGES EQU const_value
NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES
+; wPokegearFlags::
+ const_def
+ const POKEGEAR_MAP_CARD_F ; 0
+ const POKEGEAR_RADIO_CARD_F ; 1
+ const POKEGEAR_PHONE_CARD_F ; 2
+ const POKEGEAR_EXPN_CARD_F ; 3
+
POKEGEAR_OBTAINED_F EQU 7
; wWhichRegisteredItem:: ; d680
@@ -242,6 +249,18 @@ PLAYER_SURF_PIKA EQU 8
const DAILYFLAGS1_GOLDENROD_UNDERGROUND_BARGAIN_F ; 6
const DAILYFLAGS1_TRAINER_HOUSE_F ; 7
+; wDailyFlags2::
+ const_def
+ const DAILYFLAGS2_MT_MOON_SQUARE_CLEFAIRY_F ; 0
+ const DAILYFLAGS2_UNION_CAVE_LAPRAS_F ; 1
+ const DAILYFLAGS2_GOLDENROD_UNDERGROUND_GOT_HAIRCUT_F ; 2
+ const DAILYFLAGS2_GOLDENROD_DEPT_STORE_TM27_RETURN_F ; 3
+ const DAILYFLAGS2_DAISYS_GROOMING_F ; 4
+ const DAILYFLAGS2_INDIGO_PLATEAU_RIVAL_FIGHT_F ; 5
+
+; wLuckyNumberShowFlag::
+LUCKYNUMBERSHOW_GAME_OVER_F EQU 0
+
; wDayCareMan:: ; dc40
DAYCAREMAN_HAS_MON_F EQU 0
DAYCAREMAN_MONS_COMPATIBLE_F EQU 5
diff --git a/data/engine_flags.asm b/data/engine_flags.asm
new file mode 100644
index 00000000..41c5597f
--- /dev/null
+++ b/data/engine_flags.asm
@@ -0,0 +1,120 @@
+engine_flag: MACRO
+; location, bit
+; (all locations are in WRAM bank 1)
+ dwb \1 + (\2 / 8), 1 << (\2 % 8)
+ENDM
+
+EngineFlags:
+; entries correspond to ENGINE_* constants
+
+ ; pokegear
+ engine_flag wPokegearFlags, POKEGEAR_RADIO_CARD_F ; $0
+ engine_flag wPokegearFlags, POKEGEAR_MAP_CARD_F
+ engine_flag wPokegearFlags, POKEGEAR_PHONE_CARD_F
+ engine_flag wPokegearFlags, POKEGEAR_EXPN_CARD_F
+ engine_flag wPokegearFlags, POKEGEAR_OBTAINED_F
+
+ ; day-care
+ engine_flag wDayCareMan, DAYCAREMAN_HAS_EGG_F
+ engine_flag wDayCareMan, DAYCAREMAN_HAS_MON_F
+ engine_flag wDayCareLady, DAYCARELADY_HAS_MON_F
+
+ engine_flag wMomSavingMoney, MOM_SAVING_SOME_MONEY_F ; $8
+ engine_flag wMomSavingMoney, MOM_ACTIVE_F
+
+ engine_flag wUnusedTwoDayTimerOn, 0 ; unused, possibly related to a 2-day timer
+
+ engine_flag wStatusFlags, STATUSFLAGS_POKEDEX_F
+ engine_flag wStatusFlags, STATUSFLAGS_UNOWN_DEX_F
+ engine_flag wStatusFlags, STATUSFLAGS_CAUGHT_POKERUS_F
+ engine_flag wStatusFlags, STATUSFLAGS_ROCKET_SIGNAL_F
+ engine_flag wStatusFlags, STATUSFLAGS_HALL_OF_FAME_F
+
+ engine_flag wStatusFlags2, STATUSFLAGS2_BUG_CONTEST_TIMER_F ; $10
+ engine_flag wStatusFlags2, STATUSFLAGS2_SAFARI_GAME_F
+ engine_flag wStatusFlags2, STATUSFLAGS2_ROCKETS_IN_RADIO_TOWER_F
+ engine_flag wStatusFlags2, STATUSFLAGS2_BIKE_SHOP_CALL_F
+ engine_flag wStatusFlags2, STATUSFLAGS2_UNUSED_5_F
+ engine_flag wStatusFlags2, STATUSFLAGS2_REACHED_GOLDENROD_F
+ engine_flag wStatusFlags2, STATUSFLAGS2_ROCKETS_IN_MAHOGANY_F
+
+ engine_flag wBikeFlags, BIKEFLAGS_STRENGTH_ACTIVE_F
+ engine_flag wBikeFlags, BIKEFLAGS_ALWAYS_ON_BIKE_F ; $18
+ engine_flag wBikeFlags, BIKEFLAGS_DOWNHILL_F
+
+ engine_flag wJohtoBadges, ZEPHYRBADGE
+ engine_flag wJohtoBadges, HIVEBADGE
+ engine_flag wJohtoBadges, PLAINBADGE
+ engine_flag wJohtoBadges, FOGBADGE
+ engine_flag wJohtoBadges, MINERALBADGE
+ engine_flag wJohtoBadges, STORMBADGE
+ engine_flag wJohtoBadges, GLACIERBADGE ; $20
+ engine_flag wJohtoBadges, RISINGBADGE
+
+ engine_flag wKantoBadges, BOULDERBADGE
+ engine_flag wKantoBadges, CASCADEBADGE
+ engine_flag wKantoBadges, THUNDERBADGE
+ engine_flag wKantoBadges, RAINBOWBADGE
+ engine_flag wKantoBadges, SOULBADGE
+ engine_flag wKantoBadges, MARSHBADGE
+ engine_flag wKantoBadges, VOLCANOBADGE ; $28
+ engine_flag wKantoBadges, EARTHBADGE
+
+ ; unown sets (see data/wild/unlocked_unowns.asm)
+ engine_flag wUnlockedUnowns, 0 ; A-K
+ engine_flag wUnlockedUnowns, 1 ; L-R
+ engine_flag wUnlockedUnowns, 2 ; S-W
+ engine_flag wUnlockedUnowns, 3 ; X-Z
+ engine_flag wUnlockedUnowns, 4 ; unused
+ engine_flag wUnlockedUnowns, 5 ; unused
+ engine_flag wUnlockedUnowns, 6 ; unused ; $30
+ engine_flag wUnlockedUnowns, 7 ; unused
+
+ ; fly
+ engine_flag wVisitedSpawns, SPAWN_HOME
+ engine_flag wVisitedSpawns, SPAWN_DEBUG
+ engine_flag wVisitedSpawns, SPAWN_PALLET
+ engine_flag wVisitedSpawns, SPAWN_VIRIDIAN
+ engine_flag wVisitedSpawns, SPAWN_PEWTER
+ engine_flag wVisitedSpawns, SPAWN_CERULEAN
+ engine_flag wVisitedSpawns, SPAWN_ROCK_TUNNEL ; $38
+ engine_flag wVisitedSpawns, SPAWN_VERMILION
+ engine_flag wVisitedSpawns, SPAWN_LAVENDER
+ engine_flag wVisitedSpawns, SPAWN_SAFFRON
+ engine_flag wVisitedSpawns, SPAWN_CELADON
+ engine_flag wVisitedSpawns, SPAWN_FUCHSIA
+ engine_flag wVisitedSpawns, SPAWN_CINNABAR
+ engine_flag wVisitedSpawns, SPAWN_INDIGO
+ engine_flag wVisitedSpawns, SPAWN_NEW_BARK ; $40
+ engine_flag wVisitedSpawns, SPAWN_CHERRYGROVE
+ engine_flag wVisitedSpawns, SPAWN_VIOLET
+ engine_flag wVisitedSpawns, SPAWN_AZALEA
+ engine_flag wVisitedSpawns, SPAWN_CIANWOOD
+ engine_flag wVisitedSpawns, SPAWN_GOLDENROD
+ engine_flag wVisitedSpawns, SPAWN_OLIVINE
+ engine_flag wVisitedSpawns, SPAWN_ECRUTEAK
+ engine_flag wVisitedSpawns, SPAWN_MAHOGANY ; $48
+ engine_flag wVisitedSpawns, SPAWN_LAKE_OF_RAGE
+ engine_flag wVisitedSpawns, SPAWN_BLACKTHORN
+ engine_flag wVisitedSpawns, SPAWN_MT_SILVER
+ engine_flag wVisitedSpawns, NUM_SPAWNS ; unused
+
+ engine_flag wLuckyNumberShowFlag, LUCKYNUMBERSHOW_GAME_OVER_F
+
+ engine_flag wStatusFlags2, STATUSFLAGS2_UNUSED_3_F
+
+ engine_flag wDailyFlags1, DAILYFLAGS1_KURT_MAKING_BALLS_F
+ engine_flag wDailyFlags1, DAILYFLAGS1_BUG_CONTEST_F ; $50
+ engine_flag wDailyFlags1, DAILYFLAGS1_FISH_SWARM_F
+ engine_flag wDailyFlags1, DAILYFLAGS1_TIME_CAPSULE_F
+ engine_flag wDailyFlags1, DAILYFLAGS1_ALL_FRUIT_TREES_F
+ engine_flag wDailyFlags1, DAILYFLAGS1_GOT_SHUCKIE_TODAY_F
+ engine_flag wDailyFlags1, DAILYFLAGS1_GOLDENROD_UNDERGROUND_BARGAIN_F
+ engine_flag wDailyFlags1, DAILYFLAGS1_TRAINER_HOUSE_F
+
+ engine_flag wDailyFlags2, DAILYFLAGS2_MT_MOON_SQUARE_CLEFAIRY_F
+ engine_flag wDailyFlags2, DAILYFLAGS2_UNION_CAVE_LAPRAS_F ; $58
+ engine_flag wDailyFlags2, DAILYFLAGS2_GOLDENROD_UNDERGROUND_GOT_HAIRCUT_F
+ engine_flag wDailyFlags2, DAILYFLAGS2_GOLDENROD_DEPT_STORE_TM27_RETURN_F
+ engine_flag wDailyFlags2, DAILYFLAGS2_DAISYS_GROOMING_F
+ engine_flag wDailyFlags2, DAILYFLAGS2_INDIGO_PLATEAU_RIVAL_FIGHT_F
diff --git a/engine/events/engine_flags.asm b/engine/events/engine_flags.asm
index 9fa5f8c0..d1329f1d 100755
--- a/engine/events/engine_flags.asm
+++ b/engine/events/engine_flags.asm
@@ -81,115 +81,4 @@ EngineFlagAction:: ; c01b
ld [de], a
ret
-; 404d
-EngineFlags:
-; All locations are in WRAM bank 1.
-
- ; location, bit
- engine_flag ENGINE_RADIO_CARD
- engine_flag ENGINE_MAP_CARD
- engine_flag ENGINE_PHONE_CARD
- engine_flag ENGINE_EXPN_CARD
- engine_flag ENGINE_POKEGEAR
-
- engine_flag ENGINE_DAY_CARE_MAN_HAS_EGG
- engine_flag ENGINE_DAY_CARE_MAN_HAS_MON
-
- engine_flag ENGINE_DAY_CARE_LADY_HAS_MON
-
- engine_flag ENGINE_MOM_SAVING_MONEY
- engine_flag ENGINE_DST
-
- engine_flag ENGINE_0A
-
- engine_flag ENGINE_POKEDEX
- engine_flag ENGINE_UNOWN_DEX
- engine_flag ENGINE_POKERUS
- engine_flag ENGINE_ROCKET_SIGNAL_ON_CH20
- engine_flag ENGINE_CREDITS_SKIP
- engine_flag ENGINE_BUG_CONTEST_TIMER
- engine_flag ENGINE_SAFARI_ZONE
- engine_flag ENGINE_ROCKETS_IN_RADIO_TOWER
- engine_flag ENGINE_BIKE_SHOP_CALL_ENABLED
- engine_flag ENGINE_GIVE_POKERUS
- engine_flag ENGINE_REACHED_GOLDENROD
- engine_flag ENGINE_ROCKETS_IN_MAHOGANY
-
- engine_flag ENGINE_STRENGTH_ACTIVE
- engine_flag ENGINE_ALWAYS_ON_BIKE
- engine_flag ENGINE_DOWNHILL
-
- engine_flag ENGINE_ZEPHYRBADGE
- engine_flag ENGINE_HIVEBADGE
- engine_flag ENGINE_PLAINBADGE
- engine_flag ENGINE_FOGBADGE
- engine_flag ENGINE_MINERALBADGE
- engine_flag ENGINE_STORMBADGE
- engine_flag ENGINE_GLACIERBADGE
- engine_flag ENGINE_RISINGBADGE
-
- engine_flag ENGINE_BOULDERBADGE
- engine_flag ENGINE_CASCADEBADGE
- engine_flag ENGINE_THUNDERBADGE
- engine_flag ENGINE_RAINBOWBADGE
- engine_flag ENGINE_SOULBADGE
- engine_flag ENGINE_MARSHBADGE
- engine_flag ENGINE_VOLCANOBADGE
- engine_flag ENGINE_EARTHBADGE
-
- engine_flag ENGINE_UNLOCKED_UNOWNS_A_TO_K
- engine_flag ENGINE_UNLOCKED_UNOWNS_L_TO_R
- engine_flag ENGINE_UNLOCKED_UNOWNS_S_TO_W
- engine_flag ENGINE_UNLOCKED_UNOWNS_X_TO_Z
- engine_flag ENGINE_UNLOCKED_UNOWNS_UNUSED_4
- engine_flag ENGINE_UNLOCKED_UNOWNS_UNUSED_5
- engine_flag ENGINE_UNLOCKED_UNOWNS_UNUSED_6
- engine_flag ENGINE_UNLOCKED_UNOWNS_UNUSED_7
-
- engine_flag ENGINE_FLYPOINT_PLAYERS_HOUSE
- engine_flag ENGINE_FLYPOINT_VIRIDIAN_POKECENTER
- engine_flag ENGINE_FLYPOINT_PALLET
- engine_flag ENGINE_FLYPOINT_VIRIDIAN
- engine_flag ENGINE_FLYPOINT_PEWTER
- engine_flag ENGINE_FLYPOINT_CERULEAN
- engine_flag ENGINE_FLYPOINT_ROCK_TUNNEL
- engine_flag ENGINE_FLYPOINT_VERMILION
- engine_flag ENGINE_FLYPOINT_LAVENDER
- engine_flag ENGINE_FLYPOINT_SAFFRON
- engine_flag ENGINE_FLYPOINT_CELADON
- engine_flag ENGINE_FLYPOINT_FUCHSIA
- engine_flag ENGINE_FLYPOINT_CINNABAR
- engine_flag ENGINE_FLYPOINT_INDIGO_PLATEAU
- engine_flag ENGINE_FLYPOINT_NEW_BARK
- engine_flag ENGINE_FLYPOINT_CHERRYGROVE
- engine_flag ENGINE_FLYPOINT_VIOLET
-
- engine_flag ENGINE_FLYPOINT_AZALEA
- engine_flag ENGINE_FLYPOINT_CIANWOOD
- engine_flag ENGINE_FLYPOINT_GOLDENROD
- engine_flag ENGINE_FLYPOINT_OLIVINE
- engine_flag ENGINE_FLYPOINT_ECRUTEAK
- engine_flag ENGINE_FLYPOINT_MAHOGANY
- engine_flag ENGINE_FLYPOINT_LAKE_OF_RAGE
- engine_flag ENGINE_FLYPOINT_BLACKTHORN
- engine_flag ENGINE_FLYPOINT_SILVER_CAVE
-
- engine_flag ENGINE_FLYPOINT_UNUSED
- engine_flag ENGINE_LUCKY_NUMBER_SHOW
- engine_flag ENGINE_4E
-
- engine_flag ENGINE_KURT_MAKING_BALLS
- engine_flag ENGINE_DAILY_BUG_CONTEST
- engine_flag ENGINE_SPECIAL_WILDDATA
- engine_flag ENGINE_TIME_CAPSULE
- engine_flag ENGINE_ALL_FRUIT_TREES
- engine_flag ENGINE_GOT_SHUCKIE_TODAY
- engine_flag ENGINE_GOLDENROD_UNDERGROUND_MERCHANT_CLOSED
- engine_flag ENGINE_FOUGHT_IN_TRAINER_HALL_TODAY
-
- engine_flag ENGINE_MT_MOON_SQUARE_CLEFAIRY
- engine_flag ENGINE_UNION_CAVE_LAPRAS
- engine_flag ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT
- engine_flag ENGINE_GOLDENROD_DEPT_STORE_TM27_RETURN
- engine_flag ENGINE_DAISYS_GROOMING
- engine_flag ENGINE_INDIGO_PLATEAU_RIVAL_FIGHT
+INCLUDE "data/engine_flags.asm"
diff --git a/engine/events/happiness_egg.asm b/engine/events/happiness_egg.asm
index 9e6bffb4..85b6f710 100755
--- a/engine/events/happiness_egg.asm
+++ b/engine/events/happiness_egg.asm
@@ -140,7 +140,8 @@ StepHappiness::
ret
DayCareStep::
- CheckFlag ENGINE_DAY_CARE_MAN_HAS_MON
+ ld a, [wDayCareMan]
+ bit DAYCAREMAN_HAS_MON_F, a
jr z, .day_care_lady
ld a, [wBreedMon1Level]
@@ -161,7 +162,8 @@ DayCareStep::
ld [hl], a
.day_care_lady
- CheckFlag ENGINE_DAY_CARE_LADY_HAS_MON
+ ld a, [wDayCareLady]
+ bit DAYCARELADY_HAS_MON_F, a
jr z, .check_egg
ld a, [wBreedMon2Level] ; level
@@ -212,5 +214,5 @@ DayCareStep::
ret nc
ld hl, wDayCareMan
res DAYCAREMAN_MONS_COMPATIBLE_F, [hl]
- SetFlagForceReuseHL ENGINE_DAY_CARE_MAN_HAS_EGG
+ set DAYCAREMAN_HAS_EGG_F, [hl]
ret
diff --git a/engine/events/shuckle.asm b/engine/events/shuckle.asm
index e83357b2..db6db8f9 100755
--- a/engine/events/shuckle.asm
+++ b/engine/events/shuckle.asm
@@ -50,7 +50,8 @@ GiveShuckle:
call CopyName2
; Engine flag for this event.
- SetFlag ENGINE_GOT_SHUCKIE_TODAY
+ ld hl, wDailyFlags1
+ set DAILYFLAGS1_GOT_SHUCKIE_TODAY_F, [hl]
ld a, 1
ld [wScriptVar], a
ret
diff --git a/engine/events/specials.asm b/engine/events/specials.asm
index c3d2f9ad..1086861a 100755
--- a/engine/events/specials.asm
+++ b/engine/events/specials.asm
@@ -421,11 +421,13 @@ StoreSwarmMapIndices::
ld [wDunsparceMapNumber], a
; fallthrough
SetSwarmFlag:
- SetFlag ENGINE_SPECIAL_WILDDATA
+ ld hl, wDailyFlags1
+ set DAILYFLAGS1_FISH_SWARM_F, [hl]
ret
CheckSwarmFlag::
- CheckFlagHL ENGINE_SPECIAL_WILDDATA
+ ld hl, wDailyFlags1
+ bit DAILYFLAGS1_FISH_SWARM_F, [hl]
jr z, .asm_c578
xor a
ld [wScriptVar], a
@@ -446,7 +448,8 @@ CheckPokerus: ; c588 (3:4588)
ResetLuckyNumberShowFlag: ; c591 (3:4591)
farcall RestartLuckyNumberCountdown
- ClearFlag ENGINE_LUCKY_NUMBER_SHOW
+ ld hl, wLuckyNumberShowFlag
+ res LUCKYNUMBERSHOW_GAME_OVER_F, [hl]
farcall LoadOrRegenerateLuckyIDNumber
ret
diff --git a/engine/menus/intro_menu.asm b/engine/menus/intro_menu.asm
index 1b19d41e..74eb21f4 100644
--- a/engine/menus/intro_menu.asm
+++ b/engine/menus/intro_menu.asm
@@ -615,7 +615,8 @@ Continue_LoadMenuHeader: ; 5ed7 (1:5ed7)
xor a
ldh [hBGMapMode], a
ld hl, .MenuDataHeader_Dex
- CheckFlag ENGINE_POKEDEX
+ ld a, [wStatusFlags]
+ bit STATUSFLAGS_POKEDEX_F, a
jr nz, .asm_5ee7
ld hl, .MenuDataHeader_NoDex
.asm_5ee7
@@ -695,7 +696,8 @@ Continue_DisplayBadgeCount: ; 5f64 (1:5f64)
jp PrintNum
Continue_DisplayPokedexNumCaught: ; 5f77 (1:5f77)
- CheckFlag ENGINE_POKEDEX
+ ld a, [wStatusFlags]
+ bit STATUSFLAGS_POKEDEX_F, a
ret z
push hl
ld hl, wPokedexCaught
diff --git a/macros.asm b/macros.asm
index 272c2185..88f7115a 100644
--- a/macros.asm
+++ b/macros.asm
@@ -17,7 +17,6 @@ INCLUDE "macros/scripts/trade_anims.asm"
INCLUDE "macros/move_anim.asm"
INCLUDE "macros/pic.asm"
INCLUDE "macros/pals.asm"
-INCLUDE "macros/flag.asm"
INCLUDE "macros/legacy.asm"
diff --git a/macros/flag.asm b/macros/flag.asm
deleted file mode 100755
index c2b307f0..00000000
--- a/macros/flag.asm
+++ /dev/null
@@ -1,45 +0,0 @@
-engine_flag_def: macro
- const \1
-\1_ADDR EQUS "\2"
-\1_BIT EQU \3
-endm
-
-engine_flag: macro
- dwb \1_ADDR, (1 << \1_BIT)
-endm
-
-CheckFlag: macro
- ld a, [\1_ADDR]
- bit \1_BIT, a
-endm
-
-CheckFlagHL: macro
- ld hl, \1_ADDR
- bit \1_BIT, [hl]
-endm
-
-SetFlag: macro
- ld hl, \1_ADDR
- set \1_BIT, [hl]
-endm
-
-ClearFlag: macro
- ld hl, \1_ADDR
- res \1_BIT, [hl]
-endm
-
-CheckFlagForceReuseA: macro
- bit \1_BIT, a
-endm
-
-CheckFlagForceReuseHL: macro
- bit \1_BIT, [hl]
-endm
-
-SetFlagForceReuseHL: macro
- set \1_BIT, [hl]
-endm
-
-ClearFlagForceReuseHL: macro
- res \1_BIT, [hl]
-endm
diff --git a/tools/unused_sources.sh b/tools/unused_sources.sh
index 233c032c..6a441e32 100755
--- a/tools/unused_sources.sh
+++ b/tools/unused_sources.sh
@@ -3,7 +3,8 @@
# top-level sources listed in Makefile
toplevel='audio.asm data/text/common.asm data/pokemon/dex_entries.asm wram.asm
-main.asm home.asm gfx/sprites.asm gfx/pics_gold.asm gfx/pics_silver.asm'
+main.asm home.asm gfx/sprites.asm gfx/pics_gold.asm gfx/pics_silver.asm
+data/maps/map_data.asm engine/overworld/events.asm'
for asm in $toplevel; do
echo "$asm"