summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-01-08 04:26:26 -0500
committerhuderlem <huderlem@gmail.com>2020-01-12 19:39:30 -0600
commit6a470ddfdaf4480190792823464fcc05df8704f7 (patch)
treeb30177963bd4544a581768a6aef9adfe98d0637c
parent0284014e0e53449f030cc6429e81de080a10bebf (diff)
Some script clean up, document secret base secrets show
-rw-r--r--data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc507
-rw-r--r--data/maps/BattleFrontier_BattleTowerLobby/scripts.inc4
-rw-r--r--data/maps/LilycoveCity_Harbor/scripts.inc3
-rw-r--r--data/maps/MtChimney/scripts.inc45
-rw-r--r--data/maps/PetalburgCity/scripts.inc3
-rw-r--r--data/maps/PetalburgCity_Gym/scripts.inc3
-rw-r--r--data/maps/Route128/scripts.inc6
-rw-r--r--data/maps/RustboroCity_DevonCorp_3F/scripts.inc3
-rw-r--r--data/maps/RusturfTunnel/scripts.inc9
-rw-r--r--data/maps/SeafloorCavern_Room9/scripts.inc6
-rw-r--r--data/maps/SlateportCity/scripts.inc3
-rw-r--r--data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc3
-rw-r--r--data/scripts/secret_base.inc42
-rw-r--r--data/scripts/shared_secret_base.inc20
-rw-r--r--data/specials.inc36
-rw-r--r--data/text/tv.inc86
-rw-r--r--include/battle_tower.h2
-rw-r--r--include/constants/metatile_labels.h218
-rw-r--r--include/constants/tv.h88
-rw-r--r--include/event_scripts.h86
-rw-r--r--include/fldeff_misc.h2
-rw-r--r--include/link.h2
-rw-r--r--include/secret_base.h10
-rw-r--r--include/tv.h4
-rw-r--r--src/battle_tower.c6
-rw-r--r--src/cable_club.c7
-rw-r--r--src/decoration.c3
-rw-r--r--src/field_control_avatar.c8
-rw-r--r--src/fldeff_misc.c82
-rw-r--r--src/item.c3
-rw-r--r--src/link.c5
-rw-r--r--src/mevent_news.c1
-rw-r--r--src/overworld.c2
-rwxr-xr-xsrc/script_pokemon_util_80F87D8.c40
-rw-r--r--src/secret_base.c482
-rw-r--r--src/tv.c375
36 files changed, 919 insertions, 1286 deletions
diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc
deleted file mode 100644
index 6d7bb156f..000000000
--- a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc
+++ /dev/null
@@ -1,507 +0,0 @@
-BattleFrontier_BattleTowerBattleRoom2_MapScripts:: @ 8248EE8
- map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleTowerBattleRoom2_MapScript1_248EF8
- map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleTowerBattleRoom2_MapScript2_248F33
- map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleTowerBattleRoom2_MapScript2_248F43
- .byte 0
-
-BattleFrontier_BattleTowerBattleRoom2_MapScript1_248EF8: @ 8248EF8
- compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS
- call_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_248F0F
- compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS
- call_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_248F2F
- end
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_248F0F:: @ 8248F0F
- setvar VAR_0x8004, BATTLE_TOWER_FUNC_14
- special CallBattleTowerFunc
- checkplayergender
- compare VAR_RESULT, FEMALE
- goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_248F29
- setvar VAR_OBJ_GFX_ID_F, EVENT_OBJ_GFX_BRENDAN_NORMAL
- return
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_248F29:: @ 8248F29
- setvar VAR_OBJ_GFX_ID_F, EVENT_OBJ_GFX_MAY_NORMAL
- return
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_248F2F:: @ 8248F2F
- special SetBattleTowerLinkPlayerGfx
- return
-
-BattleFrontier_BattleTowerBattleRoom2_MapScript2_248F33: @ 8248F33
- map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_248F3D
- .2byte 0
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_248F3D:: @ 8248F3D
- hideobjectat EVENT_OBJ_ID_PLAYER, MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM2
- end
-
-BattleFrontier_BattleTowerBattleRoom2_MapScript2_248F43: @ 8248F43
- map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_248F4D
- .2byte 0
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_248F4D:: @ 8248F4D
- setvar VAR_TEMP_0, 1
- applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249518
- applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_24951E
- waitmovement 0
- frontier_get FRONTIER_DATA_BATTLE_NUM
- compare VAR_RESULT, 0
- goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_248FB4
- applymovement 2, BattleFrontier_BattleTowerBattleRoom2_Movement_24953E
- applymovement 3, BattleFrontier_BattleTowerBattleRoom2_Movement_24953E
- waitmovement 0
- applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249524
- applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_249524
- waitmovement 0
- frontier_set FRONTIER_DATA_6, 1
- goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249143
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_248FB4:: @ 8248FB4
- tower_setopponent
- addobject 1
- addobject 4
- applymovement 1, BattleFrontier_BattleTowerBattleRoom2_Movement_249528
- applymovement 4, BattleFrontier_BattleTowerBattleRoom2_Movement_24952E
- waitmovement 0
- compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS
- goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249026
- tower_getopponentintro 0
- delay 15
- applymovement 1, BattleFrontier_BattleTowerBattleRoom2_Movement_249545
- waitmovement 0
- msgbox gStringVar4, MSGBOX_DEFAULT
- waitmessage
- tower_getopponentintro 1
- applymovement 4, BattleFrontier_BattleTowerBattleRoom2_Movement_249545
- waitmovement 0
- msgbox gStringVar4, MSGBOX_DEFAULT
- waitmessage
- goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249069
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249026:: @ 8249026
- tower_getopponentintro 0
- delay 15
- applymovement 1, BattleFrontier_BattleTowerBattleRoom2_Movement_249545
- waitmovement 0
- messageautoscroll gStringVar4
- waitmessage
- delay 48
- tower_getopponentintro 1
- applymovement 4, BattleFrontier_BattleTowerBattleRoom2_Movement_249545
- waitmovement 0
- messageautoscroll gStringVar4
- waitmessage
- delay 48
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249069:: @ 8249069
- call BattleFrontier_BattleTowerBattleRoom2_EventScript_24210E
- switch VAR_RESULT
- case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_2490AA
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_24907E:: @ 824907E
- frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST
- tower_set TOWER_DATA_LVL_MODE
- setvar VAR_0x8004, 3
- special Script_TryGainNewFanFromCounter
- goto BattleFrontier_BattleTowerBattleRoom2_EventScript_2421B8
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_2490AA:: @ 82490AA
- call BattleFrontier_EventScript_IncrementWinStreak
- tower_setbattlewon
- switch VAR_RESULT
- case 7, BattleFrontier_BattleTowerBattleRoom2_EventScript_2492AF
- applymovement 4, BattleFrontier_BattleTowerBattleRoom2_Movement_249534
- applymovement 1, BattleFrontier_BattleTowerBattleRoom2_Movement_249539
- waitmovement 0
- removeobject 1
- removeobject 4
- applymovement 2, BattleFrontier_BattleTowerBattleRoom2_Movement_24953E
- applymovement 3, BattleFrontier_BattleTowerBattleRoom2_Movement_24953E
- waitmovement 0
- applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249524
- applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_249524
- waitmovement 0
- compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS
- goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249118
- msgbox BattleFrontier_BattleTowerBattleRoom2_Text_242217, MSGBOX_DEFAULT
- goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249121
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249118:: @ 8249118
- messageautoscroll BattleFrontier_BattleTowerBattleRoom2_Text_242217
- waitmessage
- delay 48
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249121:: @ 8249121
- special LoadPlayerParty
- frontier_setpartyorder FRONTIER_MULTI_PARTY_SIZE
- compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS
- call_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249514
- playfanfare MUS_ME_ASA
- waitfanfare
- special HealPlayerParty
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249143:: @ 8249143
- frontier_get FRONTIER_DATA_BATTLE_NUM
- call BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD
- compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS
- goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249283
- call BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8E0
- compare VAR_RESULT, 1
- goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_2491B1
- multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, 1
- switch VAR_RESULT
- case 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_249283
- case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_2491E7
- case 2, BattleFrontier_BattleTowerBattleRoom2_EventScript_249223
- case 3, BattleFrontier_BattleTowerBattleRoom2_EventScript_249251
- case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_2491B1:: @ 82491B1
- multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1
- switch VAR_RESULT
- case 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_249283
- case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_249223
- case 2, BattleFrontier_BattleTowerBattleRoom2_EventScript_249251
- case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_2491E7:: @ 82491E7
- message BattleFrontier_BattleTowerBattleRoom2_Text_2423A3
- waitmessage
- multichoicedefault 20, 8, MULTI_YESNO, 1, 0
- switch VAR_RESULT
- case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143
- case 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_249219
- case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249219:: @ 8249219
- call BattleFrontier_EventScript_SaveBattle
- goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249143
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249223:: @ 8249223
- msgbox BattleFrontier_BattleTowerBattleRoom2_Text_2423FC, MSGBOX_YESNO
- switch VAR_RESULT
- case NO, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143
- case YES, BattleFrontier_BattleTowerBattleRoom2_EventScript_2492DB
- case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249251:: @ 8249251
- message BattleFrontier_BattleTowerBattleRoom2_Text_24244C
- waitmessage
- multichoicedefault 20, 8, MULTI_YESNO, 1, 0
- switch VAR_RESULT
- case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143
- case 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_24907E
- case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249283:: @ 8249283
- closemessage
- clearflag FLAG_TEMP_2
- applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249526
- applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_249526
- waitmovement 0
- applymovement 2, BattleFrontier_BattleTowerBattleRoom2_Movement_249541
- applymovement 3, BattleFrontier_BattleTowerBattleRoom2_Movement_249541
- waitmovement 0
- goto BattleFrontier_BattleTowerBattleRoom2_EventScript_248FB4
- end
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_2492AF:: @ 82492AF
- frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON
- tower_set TOWER_DATA_LVL_MODE
- setvar VAR_0x8004, 3
- special Script_TryGainNewFanFromCounter
- goto BattleFrontier_BattleTowerBattleRoom2_EventScript_2421B8
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_2492DB:: @ 82492DB
- message BattleFrontier_BattleTowerBattleRoom2_Text_242426
- waitmessage
- tower_save CHALLENGE_STATUS_PAUSED
- playse SE_SAVE
- waitse
- fadescreen FADE_TO_BLACK
- frontier_reset
- end
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD:: @ 82492FD
- compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS
- goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_24937E
- copyvar VAR_TEMP_F, VAR_RESULT
- switch VAR_TEMP_F
- case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_249354
- case 2, BattleFrontier_BattleTowerBattleRoom2_EventScript_24935B
- case 3, BattleFrontier_BattleTowerBattleRoom2_EventScript_249362
- case 4, BattleFrontier_BattleTowerBattleRoom2_EventScript_249369
- case 5, BattleFrontier_BattleTowerBattleRoom2_EventScript_249370
- case 6, BattleFrontier_BattleTowerBattleRoom2_EventScript_249377
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249354:: @ 8249354
- message BattleFrontier_BattleTowerBattleRoom2_Text_249547
- waitmessage
- return
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_24935B:: @ 824935B
- message BattleFrontier_BattleTowerBattleRoom2_Text_249578
- waitmessage
- return
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249362:: @ 8249362
- message BattleFrontier_BattleTowerBattleRoom2_Text_2495A9
- waitmessage
- return
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249369:: @ 8249369
- message BattleFrontier_BattleTowerBattleRoom2_Text_2495DA
- waitmessage
- return
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249370:: @ 8249370
- message BattleFrontier_BattleTowerBattleRoom2_Text_24960B
- waitmessage
- return
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249377:: @ 8249377
- message BattleFrontier_BattleTowerBattleRoom2_Text_24963C
- waitmessage
- return
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_24937E:: @ 824937E
- copyvar VAR_TEMP_F, VAR_RESULT
- switch VAR_TEMP_F
- case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_2493CA
- case 2, BattleFrontier_BattleTowerBattleRoom2_EventScript_2493D6
- case 3, BattleFrontier_BattleTowerBattleRoom2_EventScript_2493E2
- case 4, BattleFrontier_BattleTowerBattleRoom2_EventScript_2493EE
- case 5, BattleFrontier_BattleTowerBattleRoom2_EventScript_2493FA
- case 6, BattleFrontier_BattleTowerBattleRoom2_EventScript_249406
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_2493CA:: @ 82493CA
- message BattleFrontier_BattleTowerBattleRoom2_Text_249547
- waitmessage
- goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249417
- end
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_2493D6:: @ 82493D6
- message BattleFrontier_BattleTowerBattleRoom2_Text_249578
- waitmessage
- goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249417
- end
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_2493E2:: @ 82493E2
- message BattleFrontier_BattleTowerBattleRoom2_Text_2495A9
- waitmessage
- goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249417
- end
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_2493EE:: @ 82493EE
- message BattleFrontier_BattleTowerBattleRoom2_Text_2495DA
- waitmessage
- goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249417
- end
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_2493FA:: @ 82493FA
- message BattleFrontier_BattleTowerBattleRoom2_Text_24960B
- waitmessage
- goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249417
- end
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249406:: @ 8249406
- message BattleFrontier_BattleTowerBattleRoom2_Text_24963C
- waitmessage
- goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249417
- end
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249412:: @ 8249412
- waitmessage
- delay 48
- return
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249417:: @ 8249417
- goto_if_set FLAG_TEMP_2, BattleFrontier_BattleTowerBattleRoom2_EventScript_249457
- multichoice 19, 6, MULTI_GO_ON_RECORD_RETIRE, 1
- switch VAR_RESULT
- case 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_249483
- case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_2494A8
- case 2, BattleFrontier_BattleTowerBattleRoom2_EventScript_2494DD
- case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_2494DD
- end
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249457:: @ 8249457
- multichoice 20, 8, MULTI_GO_ON_RETIRE, 1
- switch VAR_RESULT
- case 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_249483
- case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_2494DD
- case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_2494DD
- end
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249483:: @ 8249483
- setvar VAR_0x8004, 0
- setvar VAR_0x8005, 0
- message gText_LinkStandby3
- waitmessage
- special sub_813B568
- waitstate
- compare VAR_RESULT, 0
- goto_if_ne BattleFrontier_BattleTowerBattleRoom2_EventScript_24907E
- goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249412
- end
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_2494A8:: @ 82494A8
- message BattleFrontier_BattleTowerBattleRoom2_Text_2423A3
- waitmessage
- multichoicedefault 20, 8, MULTI_YESNO, 1, 0
- switch VAR_RESULT
- case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143
- case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143
- call BattleFrontier_EventScript_SaveBattle
- setflag FLAG_TEMP_2
- goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249143
- end
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_2494DD:: @ 82494DD
- message BattleFrontier_BattleTowerBattleRoom2_Text_24244C
- waitmessage
- multichoicedefault 20, 8, MULTI_YESNO, 1, 0
- compare VAR_RESULT, 0
- goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_2494FA
- goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249143
- end
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_2494FA:: @ 82494FA
- setvar VAR_0x8004, 1
- setvar VAR_0x8005, 0
- message gText_LinkStandby3
- waitmessage
- special sub_813B568
- waitstate
- goto BattleFrontier_BattleTowerBattleRoom2_EventScript_24907E
- end
-
-BattleFrontier_BattleTowerBattleRoom2_EventScript_249514:: @ 8249514
- special sub_813B534
- return
-
-BattleFrontier_BattleTowerBattleRoom2_Movement_249518: @ 8249518
- walk_up
- walk_up
- walk_up
- walk_up
- face_right
- step_end
-
-BattleFrontier_BattleTowerBattleRoom2_Movement_24951E: @ 824951E
- walk_left
- walk_up
- walk_up
- walk_up
- face_right
- step_end
-
-BattleFrontier_BattleTowerBattleRoom2_Movement_249524: @ 8249524
- face_left
- step_end
-
-BattleFrontier_BattleTowerBattleRoom2_Movement_249526: @ 8249526
- walk_in_place_fastest_right
- step_end
-
-BattleFrontier_BattleTowerBattleRoom2_Movement_249528: @ 8249528
- walk_down
- walk_down
- walk_down
- walk_down
- face_left
- step_end
-
-BattleFrontier_BattleTowerBattleRoom2_Movement_24952E: @ 824952E
- walk_right
- walk_down
- walk_down
- walk_down
- face_left
- step_end
-
-BattleFrontier_BattleTowerBattleRoom2_Movement_249534: @ 8249534
- walk_up
- walk_up
- walk_up
- set_invisible
- step_end
-
-BattleFrontier_BattleTowerBattleRoom2_Movement_249539: @ 8249539
- walk_up
- walk_up
- walk_up
- walk_up
- step_end
-
-BattleFrontier_BattleTowerBattleRoom2_Movement_24953E: @ 824953E
- walk_right
- walk_right
- step_end
-
-BattleFrontier_BattleTowerBattleRoom2_Movement_249541: @ 8249541
- walk_left
- walk_left
- walk_in_place_fastest_right
- step_end
-
-BattleFrontier_BattleTowerBattleRoom2_Movement_249545: @ 8249545
- walk_in_place_left
- step_end
-
-BattleFrontier_BattleTowerBattleRoom2_Text_249547: @ 8249547
- .string "The 2nd set of opponents is next.\n"
- .string "Are you ready?$"
-
-BattleFrontier_BattleTowerBattleRoom2_Text_249578: @ 8249578
- .string "The 3rd set of opponents is next.\n"
- .string "Are you ready?$"
-
-BattleFrontier_BattleTowerBattleRoom2_Text_2495A9: @ 82495A9
- .string "The 4th set of opponents is next.\n"
- .string "Are you ready?$"
-
-BattleFrontier_BattleTowerBattleRoom2_Text_2495DA: @ 82495DA
- .string "The 5th set of opponents is next.\n"
- .string "Are you ready?$"
-
-BattleFrontier_BattleTowerBattleRoom2_Text_24960B: @ 824960B
- .string "The 6th set of opponents is next.\n"
- .string "Are you ready?$"
-
-BattleFrontier_BattleTowerBattleRoom2_Text_24963C: @ 824963C
- .string "The 7th set of opponents is next.\n"
- .string "Are you ready?$"
-
-BattleFrontier_BattleTowerBattleRoom2_Text_24966D: @ 824966D
- .string "The 2nd set of opponents is next.\n"
- .string "Do your best!$"
-
-BattleFrontier_BattleTowerBattleRoom2_Text_24969D: @ 824969D
- .string "The 3rd set of opponents is next.\n"
- .string "Do your best!$"
-
-BattleFrontier_BattleTowerBattleRoom2_Text_2496CD: @ 82496CD
- .string "The 4th set of opponents is next.\n"
- .string "Do your best!$"
-
-BattleFrontier_BattleTowerBattleRoom2_Text_2496FD: @ 82496FD
- .string "The 5th set of opponents is next.\n"
- .string "Do your best!$"
-
-BattleFrontier_BattleTowerBattleRoom2_Text_24972D: @ 824972D
- .string "The 6th set of opponents is next.\n"
- .string "Do your best!$"
-
-BattleFrontier_BattleTowerBattleRoom2_Text_24975D: @ 824975D
- .string "The 7th set of opponents is next.\n"
- .string "Do your best!$"
-
-gText_LinkStandby3:: @ 824978D
- .string "Link standby…$"
-
-gText_YourPartnerHasRetired:: @ 824979B
- .string "Your partner has retired.\p"
- .string "Your BATTLE ROOM challenge\n"
- .string "will be canceled.$"
diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
index b3fd57a0a..297f05fb0 100644
--- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
@@ -6,7 +6,7 @@ BattleFrontier_BattleTowerLobby_MapScripts:: @ 823E67B
.byte 0
BattleFrontier_BattleTowerLobby_OnResume: @ 823E690
- special sub_81653CC
+ special TryHideBattleTowerReporter
end
BattleFrontier_BattleTowerLobby_OnTransition: @ 823E694
@@ -857,7 +857,7 @@ BattleFrontier_BattleTowerLobby_EventScript_CableLinkSuccessful:: @ 823F3AF
waitstate
playse SE_SAVE
waitse
- special sub_80B3BC4
+ special TrySetBattleTowerLinkType
goto BattleFrontier_BattleTowerLobby_EventScript_EnterElevator
end
diff --git a/data/maps/LilycoveCity_Harbor/scripts.inc b/data/maps/LilycoveCity_Harbor/scripts.inc
index cf273bcb8..1c2bf07ea 100644
--- a/data/maps/LilycoveCity_Harbor/scripts.inc
+++ b/data/maps/LilycoveCity_Harbor/scripts.inc
@@ -457,8 +457,7 @@ LilycoveCity_Harbor_Movement_PlayerBoardFerryNorth: @ 821E633
walk_up
step_end
-@ Unused
-LilycoveCity_Harbor_Movement_21E635: @ 821E635
+LilycoveCity_Harbor_Movement_UnusedBoardFerry: @ 821E635
walk_up
step_end
diff --git a/data/maps/MtChimney/scripts.inc b/data/maps/MtChimney/scripts.inc
index 76559a856..158e13678 100644
--- a/data/maps/MtChimney/scripts.inc
+++ b/data/maps/MtChimney/scripts.inc
@@ -184,8 +184,7 @@ MtChimney_Movement_ArchieExitNorth: @ 822EF9C
walk_down
step_end
-@ Unused
-MtChimney_Movement_22EFA6: @ 822EFA6
+MtChimney_Movement_Unused1: @ 822EFA6
walk_down
walk_down
walk_down
@@ -205,8 +204,7 @@ MtChimney_Movement_22EFA6: @ 822EFA6
walk_down
step_end
-@ Unused
-MtChimney_Movement_22EFB8: @ 822EFB8
+MtChimney_Movement_Unused2: @ 822EFB8
walk_down
walk_down
walk_down
@@ -217,8 +215,7 @@ MtChimney_Movement_22EFB8: @ 822EFB8
walk_down
step_end
-@ Unused
-MtChimney_Movement_22EFC1: @ 822EFC1
+MtChimney_Movement_Unused3: @ 822EFC1
walk_right
walk_down
walk_down
@@ -235,8 +232,7 @@ MtChimney_Movement_22EFC1: @ 822EFC1
walk_down
step_end
-@ Unused
-MtChimney_Movement_22EFD0: @ 822EFD0
+MtChimney_Movement_Unused4: @ 822EFD0
walk_fast_down
walk_fast_down
walk_fast_down
@@ -263,8 +259,7 @@ MtChimney_Movement_22EFD0: @ 822EFD0
walk_down
step_end
-@ Unused
-MtChimney_Movement_22EFE9: @ 822EFE9
+MtChimney_Movement_Unused5: @ 822EFE9
delay_16
delay_16
delay_16
@@ -277,8 +272,7 @@ MtChimney_Movement_22EFE9: @ 822EFE9
walk_down
step_end
-@ Unused
-MtChimney_Movement_22EFF4: @ 822EFF4
+MtChimney_Movement_Unused6: @ 822EFF4
delay_16
walk_left
walk_down
@@ -296,8 +290,7 @@ MtChimney_Movement_22EFF4: @ 822EFF4
walk_down
step_end
-@ Unused
-MtChimney_Movement_22F004: @ 822F004
+MtChimney_Movement_Unused7: @ 822F004
delay_16
walk_left
walk_left
@@ -316,8 +309,7 @@ MtChimney_Movement_22F004: @ 822F004
walk_down
step_end
-@ Unused
-MtChimney_Movement_22F015: @ 822F015
+MtChimney_Movement_Unused8: @ 822F015
delay_16
walk_down
walk_left
@@ -327,8 +319,7 @@ MtChimney_Movement_22F015: @ 822F015
walk_in_place_fastest_down
step_end
-@ Unused
-MtChimney_Movement_22F01D: @ 822F01D
+MtChimney_Movement_Unused9: @ 822F01D
walk_down
walk_down
walk_down
@@ -344,13 +335,11 @@ MtChimney_Movement_22F01D: @ 822F01D
walk_down
step_end
-@ Unused
-MtChimney_Movement_22F02B: @ 822F02B
+MtChimney_Movement_Unused10: @ 822F02B
walk_down
step_end
-@ Unused
-MtChimney_Movement_22F02D: @ 822F02D
+MtChimney_Movement_Unused11: @ 822F02D
walk_down
walk_down
walk_down
@@ -360,8 +349,7 @@ MtChimney_Movement_22F02D: @ 822F02D
walk_down
step_end
-@ Unused
-MtChimney_Movement_22F035: @ 822F035
+MtChimney_Movement_Unused12: @ 822F035
delay_16
delay_16
walk_in_place_fastest_left
@@ -373,8 +361,7 @@ MtChimney_Movement_22F035: @ 822F035
walk_down
step_end
-@ Unused
-MtChimney_Movement_22F03F: @ 822F03F
+MtChimney_Movement_Unused13: @ 822F03F
delay_16
delay_16
delay_16
@@ -387,16 +374,14 @@ MtChimney_Movement_22F03F: @ 822F03F
walk_down
step_end
-@ Unused
-MtChimney_Movement_22F04A: @ 822F04A
+MtChimney_Movement_Unused14: @ 822F04A
lock_facing_direction
walk_fast_left
unlock_facing_direction
face_right
step_end
-@ Unused
-MtChimney_Movement_22F04F: @ 822F04F
+MtChimney_Movement_Unused15: @ 822F04F
walk_left
walk_in_place_fastest_right
delay_16
diff --git a/data/maps/PetalburgCity/scripts.inc b/data/maps/PetalburgCity/scripts.inc
index 5d3bbf1ef..80badcfd2 100644
--- a/data/maps/PetalburgCity/scripts.inc
+++ b/data/maps/PetalburgCity/scripts.inc
@@ -351,7 +351,8 @@ PetalburgCity_EventScript_LeadPlayerToGym3:: @ 81DC5FF
waitmovement 0
return
-PetalburgCity_Movement_1DC611:: @ 81DC611
+@ Unused
+PetalburgCity_Movement_Delay48:: @ 81DC611
delay_16
delay_16
delay_16
diff --git a/data/maps/PetalburgCity_Gym/scripts.inc b/data/maps/PetalburgCity_Gym/scripts.inc
index d9f299db2..02685ef47 100644
--- a/data/maps/PetalburgCity_Gym/scripts.inc
+++ b/data/maps/PetalburgCity_Gym/scripts.inc
@@ -673,8 +673,7 @@ PetalburgCity_Gym_Movement_WallysUncleApproachPlayerWest: @ 82050D0
walk_up
step_end
-@ Unused
-PetalburgCity_Gym_Movement_2050D8: @ 82050D8
+PetalburgCity_Gym_Movement_Unused: @ 82050D8
walk_in_place_fastest_up
delay_16
delay_16
diff --git a/data/maps/Route128/scripts.inc b/data/maps/Route128/scripts.inc
index 2ea7a5d06..90abbddd5 100644
--- a/data/maps/Route128/scripts.inc
+++ b/data/maps/Route128/scripts.inc
@@ -78,13 +78,11 @@ Route128_EventScript_KyogreAwakenedScene:: @ 81F6B57
releaseall
end
-@ Unused
-Route128_Movement_1F6C76: @ 81F6C76
+Route128_Movement_Unused1: @ 81F6C76
walk_fast_left
step_end
-@ Unused
-Route128_Movement_1F6C78: @ 81F6C78
+Route128_Movement_Unused2: @ 81F6C78
walk_left
walk_left
walk_left
diff --git a/data/maps/RustboroCity_DevonCorp_3F/scripts.inc b/data/maps/RustboroCity_DevonCorp_3F/scripts.inc
index 143ff4543..034f6fbd4 100644
--- a/data/maps/RustboroCity_DevonCorp_3F/scripts.inc
+++ b/data/maps/RustboroCity_DevonCorp_3F/scripts.inc
@@ -72,8 +72,7 @@ RustboroCity_DevonCorp_3F_EventScript_MeetPresident:: @ 821246E
releaseall
end
-@ Unused
-RustboroCity_DevonCorp_3F_Movement_21252F: @ 821252F
+RustboroCity_DevonCorp_3F_Movement_Unused: @ 821252F
walk_up
walk_up
walk_up
diff --git a/data/maps/RusturfTunnel/scripts.inc b/data/maps/RusturfTunnel/scripts.inc
index 9219ba3e4..aa99d8740 100644
--- a/data/maps/RusturfTunnel/scripts.inc
+++ b/data/maps/RusturfTunnel/scripts.inc
@@ -184,22 +184,19 @@ RusturfTunnel_Movement_PlayerWatchWandaExit: @ 822D02F
walk_in_place_fastest_right
step_end
-@ Unused
-RusturfTunnel_Movement_22D035: @ 822D035
+RusturfTunnel_Movement_Unused1: @ 822D035
walk_left
walk_in_place_fastest_right
step_end
-@ Unused
-RusturfTunnel_Movement_22D038: @ 822D038
+RusturfTunnel_Movement_Unused2: @ 822D038
walk_down
walk_in_place_fastest_up
delay_8
walk_in_place_fastest_right
step_end
-@ Unused
-RusturfTunnel_Movement_22D03D: @ 822D03D
+RusturfTunnel_Movement_Unused3: @ 822D03D
walk_up
walk_in_place_fastest_down
delay_8
diff --git a/data/maps/SeafloorCavern_Room9/scripts.inc b/data/maps/SeafloorCavern_Room9/scripts.inc
index 43c503682..46d1a1f36 100644
--- a/data/maps/SeafloorCavern_Room9/scripts.inc
+++ b/data/maps/SeafloorCavern_Room9/scripts.inc
@@ -153,8 +153,7 @@ SeafloorCavern_Room9_Movement_ArchieApproachPlayer: @ 823502A
walk_right
step_end
-@ Unused
-SeafloorCavern_Room9_Movement_235032: @ 8235032
+SeafloorCavern_Room9_Movement_Unused1: @ 8235032
walk_left
walk_left
step_end
@@ -164,8 +163,7 @@ SeafloorCavern_Room9_Movement_ArchieListenMessage: @ 8235035
delay_16
step_end
-@ Unused
-SeafloorCavern_Room9_Movement_235038: @ 8235038
+SeafloorCavern_Room9_Movement_Unused2: @ 8235038
walk_right
step_end
diff --git a/data/maps/SlateportCity/scripts.inc b/data/maps/SlateportCity/scripts.inc
index 9f951e83d..025618b61 100644
--- a/data/maps/SlateportCity/scripts.inc
+++ b/data/maps/SlateportCity/scripts.inc
@@ -668,8 +668,7 @@ SlateportCity_Movement_TyExit: @ 81DD326
walk_left
step_end
-@ Unused
-SlateportCity_Movement_1DD334: @ 81DD334
+SlateportCity_Movement_Unused: @ 81DD334
walk_down
walk_in_place_fastest_up
step_end
diff --git a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc
index 38fb70e7d..7593b7824 100644
--- a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc
+++ b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc
@@ -129,8 +129,7 @@ SlateportCity_OceanicMuseum_2F_Movement_PlayerApproachGruntWest: @ 820BCC2
walk_in_place_fastest_left
step_end
-@ Unused
-SlateportCity_OceanicMuseum_2F_Movement_20BCC8: @ 820BCC8
+SlateportCity_OceanicMuseum_2F_Movement_Unused: @ 820BCC8
walk_up
walk_left
walk_left
diff --git a/data/scripts/secret_base.inc b/data/scripts/secret_base.inc
index 0f2ad02b1..aa5f63b9e 100644
--- a/data/scripts/secret_base.inc
+++ b/data/scripts/secret_base.inc
@@ -364,7 +364,7 @@ SecretBase_EventScript_Trainer0PreChampion:: @ 8275E25
end
SecretBase_EventScript_Trainer0DeclineBattle:: @ 8275E2F
- special sub_80EB300
+ special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0
special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer0DeclineBattle, MSGBOX_DEFAULT
@@ -401,7 +401,7 @@ SecretBase_EventScript_Trainer1PreChampion:: @ 8275E9D
end
SecretBase_EventScript_Trainer1DeclineBattle:: @ 8275EA7
- special sub_80EB300
+ special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0
special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer1DeclineBattle, MSGBOX_DEFAULT
@@ -438,7 +438,7 @@ SecretBase_EventScript_Trainer2PreChampion:: @ 8275F15
end
SecretBase_EventScript_Trainer2DeclineBattle:: @ 8275F1F
- special sub_80EB300
+ special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0
special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer2DeclineBattle, MSGBOX_DEFAULT
@@ -475,7 +475,7 @@ SecretBase_EventScript_Trainer3PreChampion:: @ 8275F8D
end
SecretBase_EventScript_Trainer3DeclineBattle:: @ 8275F97
- special sub_80EB300
+ special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0
special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer3DeclineBattle, MSGBOX_DEFAULT
@@ -512,7 +512,7 @@ SecretBase_EventScript_Trainer4PreChampion:: @ 8276005
end
SecretBase_EventScript_Trainer4DeclineBattle:: @ 827600F
- special sub_80EB300
+ special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0
special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer4DeclineBattle, MSGBOX_DEFAULT
@@ -549,7 +549,7 @@ SecretBase_EventScript_Trainer5PreChampion:: @ 827607D
end
SecretBase_EventScript_Trainer5DeclineBattle:: @ 8276087
- special sub_80EB300
+ special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0
special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer5DeclineBattle, MSGBOX_DEFAULT
@@ -586,7 +586,7 @@ SecretBase_EventScript_Trainer6PreChampion:: @ 82760F5
end
SecretBase_EventScript_Trainer6DeclineBattle:: @ 82760FF
- special sub_80EB300
+ special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0
special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer6DeclineBattle, MSGBOX_DEFAULT
@@ -623,7 +623,7 @@ SecretBase_EventScript_Trainer7PreChampion:: @ 827616D
end
SecretBase_EventScript_Trainer7DeclineBattle:: @ 8276177
- special sub_80EB300
+ special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0
special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer7DeclineBattle, MSGBOX_DEFAULT
@@ -660,7 +660,7 @@ SecretBase_EventScript_Trainer8PreChampion:: @ 82761E5
end
SecretBase_EventScript_Trainer8DeclineBattle:: @ 82761EF
- special sub_80EB300
+ special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0
special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer8DeclineBattle, MSGBOX_DEFAULT
@@ -697,7 +697,7 @@ SecretBase_EventScript_Trainer9PreChampion:: @ 827625D
end
SecretBase_EventScript_Trainer9DeclineBattle:: @ 8276267
- special sub_80EB300
+ special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0
special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer9DeclineBattle, MSGBOX_DEFAULT
@@ -716,35 +716,35 @@ SecretBase_EventScript_BattleTrainer:: @ 8276286
special DoSpecialTrainerBattle
waitstate
compare VAR_RESULT, B_OUTCOME_DREW
- call_if_eq SecretBase_EventScript_2762BD
+ call_if_eq SecretBase_EventScript_DrewSecretBaseBattle
compare VAR_RESULT, B_OUTCOME_WON
- call_if_eq SecretBase_EventScript_2762C1
+ call_if_eq SecretBase_EventScript_WonSecretBaseBattle
compare VAR_RESULT, B_OUTCOME_LOST
- call_if_eq SecretBase_EventScript_2762C5
+ call_if_eq SecretBase_EventScript_LostSecretBaseBattle
special HealPlayerParty
release
end
-SecretBase_EventScript_2762BD:: @ 82762BD
- special sub_80EB438
+SecretBase_EventScript_DrewSecretBaseBattle:: @ 82762BD
+ special DrewSecretBaseBattle
return
-SecretBase_EventScript_2762C1:: @ 82762C1
- special sub_80EB368
+SecretBase_EventScript_WonSecretBaseBattle:: @ 82762C1
+ special WonSecretBaseBattle
return
-SecretBase_EventScript_2762C5:: @ 82762C5
- special sub_80EB3D0
+SecretBase_EventScript_LostSecretBaseBattle:: @ 82762C5
+ special LostSecretBaseBattle
return
.include "data/scripts/secret_power_tm.inc"
SecretBase_EventScript_DollInteract:: @ 82766A2
- special sub_80EB290
+ special CheckInteractedWithFriendsDollDecor
end
SecretBase_EventScript_CushionInteract:: @ 82766A6
- special sub_80EB2C8
+ special CheckInteractedWithFriendsCushionDecor
end
SecretBase_Text_AllDecorationsWillBeReturned: @ 82766AA
diff --git a/data/scripts/shared_secret_base.inc b/data/scripts/shared_secret_base.inc
index de5dcc703..0fa61a214 100644
--- a/data/scripts/shared_secret_base.inc
+++ b/data/scripts/shared_secret_base.inc
@@ -157,33 +157,33 @@ SecretBase_EventScript_PCTurnOff:: @ 823B66E
end
@ Unused
-SecretBase_EventScript_23B674:: @ 823B674
- special SetSecretBaseSecretsTvFlags_Poster
+SecretBase_EventScript_Poster:: @ 823B674
+ special CheckInteractedWithFriendsPosterDecor
end
@ Unused
-SecretBase_EventScript_23B678:: @ 823B678
- special SetSecretBaseSecretsTvFlags_MiscFurnature
+SecretBase_EventScript_FurnitureBottom:: @ 823B678
+ special CheckInteractedWithFriendsFurnitureBottom
end
@ Unused
-SecretBase_EventScript_23B67C:: @ 823B67C
- special SetSecretBaseSecretsTvFlags_LargeDecorationSpot
+SecretBase_EventScript_FurnitureMiddle:: @ 823B67C
+ special CheckInteractedWithFriendsFurnitureMiddle
end
@ Unused
-SecretBase_EventScript_23B680:: @ 823B680
- special SetSecretBaseSecretsTvFlags_SmallDecorationSpot
+SecretBase_EventScript_FurnitureTop:: @ 823B680
+ special CheckInteractedWithFriendsFurnitureTop
end
SecretBase_EventScript_SandOrnament:: @ 823B684
- special SetSecretBaseSecretsTvFlags_SandOrnament
+ special CheckInteractedWithFriendsSandOrnament
dofieldeffect FLDEFF_SAND_PILLAR
waitstate
end
SecretBase_EventScript_ShieldOrToyTV:: @ 823B68C
- special GetShieldToyTVDecorationInfo
+ special InteractWithShieldOrTVDecoration
compare VAR_RESULT, 0
goto_if_eq SecretBase_EventScript_BattleTowerShield
compare VAR_RESULT, 1
diff --git a/data/specials.inc b/data/specials.inc
index 17f459a1f..95a0ac5d3 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -28,7 +28,7 @@ gSpecials:: @ 81DBA64
def_special GetSecretBaseOwnerAndState
def_special InitSecretBaseDecorationSprites
def_special SetDecoration
- def_special sub_81297AC
+ def_special GetEventObjectLocalIdByFlag
def_special GetSecretBaseTypeInFrontOfPlayer
def_special SetSecretBaseOwnerGfxId
def_special sub_8129708
@@ -44,7 +44,7 @@ gSpecials:: @ 81DBA64
def_special ColosseumPlayerSpotTriggered
def_special PlayerEnteredTradeSeat
def_special nullsub_37
- def_special sub_80B3254
+ def_special CableClubSaveGame
def_special TryBerryBlenderLinkup
def_special GetLinkPartnerNames
def_special SpawnLinkPartnerEventObject
@@ -147,7 +147,7 @@ gSpecials:: @ 81DBA64
def_special CountPartyAliveNonEggMons_IgnoreVar0x8004Slot
def_special ShouldReadyContestArtist
def_special SaveMuseumContestPainting
- def_special sub_80F8864
+ def_special DoesContestCategoryHaveWinner
def_special CountPlayerContestPaintings
def_special ShowContestWinner
def_special MauvilleGymSetDefaultBarriers
@@ -317,7 +317,7 @@ gSpecials:: @ 81DBA64
def_special ScriptCheckFreePokemonStorageSpace
def_special DoSealedChamberShakingEffect1
def_special ShowDeptStoreElevatorFloorSelect
- def_special GetShieldToyTVDecorationInfo
+ def_special InteractWithShieldOrTVDecoration
def_special IsPokerusInParty
def_special SetSootopolisGymCrackedIceMetatiles
def_special ShakeCamera
@@ -348,7 +348,7 @@ gSpecials:: @ 81DBA64
def_special HasAllHoennMons
def_special MonOTNameNotPlayer
def_special BufferLottoTicketNumber
- def_special sub_81653CC
+ def_special TryHideBattleTowerReporter
def_special DoesPartyHaveEnigmaBerry
def_special ScriptRandom
def_special SetChampionSaveWarp
@@ -361,17 +361,17 @@ gSpecials:: @ 81DBA64
def_special IncrementDailyPlantedBerries
def_special IncrementDailyPickedBerries
def_special InitSecretBaseVars
- def_special SetSecretBaseSecretsTvFlags_SandOrnament
- def_special sub_80EB300
- def_special sub_80EB438
- def_special sub_80EB368
- def_special sub_80EB3D0
- def_special sub_80EB290
- def_special sub_80EB2C8
- def_special SetSecretBaseSecretsTvFlags_MiscFurnature
- def_special SetSecretBaseSecretsTvFlags_LargeDecorationSpot
- def_special SetSecretBaseSecretsTvFlags_SmallDecorationSpot
- def_special SetSecretBaseSecretsTvFlags_Poster
+ def_special CheckInteractedWithFriendsSandOrnament
+ def_special DeclinedSecretBaseBattle
+ def_special DrewSecretBaseBattle
+ def_special WonSecretBaseBattle
+ def_special LostSecretBaseBattle
+ def_special CheckInteractedWithFriendsDollDecor
+ def_special CheckInteractedWithFriendsCushionDecor
+ def_special CheckInteractedWithFriendsFurnitureBottom
+ def_special CheckInteractedWithFriendsFurnitureMiddle
+ def_special CheckInteractedWithFriendsFurnitureTop
+ def_special CheckInteractedWithFriendsPosterDecor
def_special SetLilycoveLadyGfx
def_special Script_GetLilycoveLadyId
def_special GetFavorLadyState
@@ -444,7 +444,7 @@ gSpecials:: @ 81DBA64
def_special GetDeptStoreDefaultFloorChoice
def_special BufferVarsForIVRater
def_special LinkContestWaitForConnection
- def_special sub_800B518
+ def_special GetWirelessCommType
def_special LinkContestTryShowWirelessIndicator
def_special LinkContestTryHideWirelessIndicator
def_special IsWirelessContest
@@ -534,4 +534,4 @@ gSpecials:: @ 81DBA64
def_special TryPrepareSecondApproachingTrainer
def_special RemoveRecordsWindow
def_special CloseDeptStoreElevatorWindow
- def_special sub_80B3BC4
+ def_special TrySetBattleTowerLinkType
diff --git a/data/text/tv.inc b/data/text/tv.inc
index c6453af0c..c0d262cbf 100644
--- a/data/text/tv.inc
+++ b/data/text/tv.inc
@@ -2079,7 +2079,7 @@ gTVWhatsNo1InHoennTodayText08:: @ 0828858B
.string "Viewers, take heart from {STR_VAR_1}!\n"
.string "You, too, can be no. 1 every day!$"
-gTVSecretBaseSecretsText00:: @ 08288608
+TVSecretBaseSecrets_Text_Intro:: @ 08288608
.string "SECRET BASE SECRETS!\p"
.string "What do TRAINERS do in the secrecy\n"
.string "of SECRET BASES?\p"
@@ -2090,88 +2090,88 @@ gTVSecretBaseSecretsText00:: @ 08288608
.string "Let's have a peek!\p"
.string "What will {STR_VAR_2} do?$"
-gTVSecretBaseSecretsText01:: @ 082886C8
+TVSecretBaseSecrets_Text_WhatWillPlayerDoNext1:: @ 082886C8
.string "What will {STR_VAR_2} do next?$"
-gTVSecretBaseSecretsText02:: @ 082886DE
+TVSecretBaseSecrets_Text_WhatWillPlayerDoNext2:: @ 082886DE
.string "And now, what will {STR_VAR_2} do?$"
-gTVSecretBaseSecretsText03:: @ 082886F8
+TVSecretBaseSecrets_Text_TookXStepsBeforeLeaving:: @ 082886F8
.string "In the end, {STR_VAR_2} took {STR_VAR_3} steps\n"
.string "in {STR_VAR_1}'s SECRET BASE before\l"
.string "leaving.$"
-gTVSecretBaseSecretsText04:: @ 08288739
+TVSecretBaseSecrets_Text_BaseFailedToInterestPlayer:: @ 08288739
.string "Hmm…\p"
.string "It appears as if {STR_VAR_1}'s SECRET\n"
.string "BASE failed to interest {STR_VAR_2}…$"
-gTVSecretBaseSecretsText05:: @ 08288777
+TVSecretBaseSecrets_Text_PlayerEnjoyedBase:: @ 08288777
.string "{STR_VAR_2} appears to have enjoyed\n"
.string "{STR_VAR_1}'s SECRET BASE thoroughly.$"
-gTVSecretBaseSecretsText06:: @ 082887AF
+TVSecretBaseSecrets_Text_PlayerHugeFanOfBase:: @ 082887AF
.string "{STR_VAR_2} appears to have become\n"
.string "a huge fan of {STR_VAR_1}'s\l"
.string "SECRET BASE.$"
-gTVSecretBaseSecretsText07:: @ 082887E9
+TVSecretBaseSecrets_Text_Outro:: @ 082887E9
.string "Viewers may want to check out\n"
.string "{STR_VAR_1}'s SECRET BASE, too.\p"
.string "Tune in next time as we visit another\n"
.string "SECRET BASE! Thanks for joining us!$"
-gTVSecretBaseSecretsText08:: @ 08288868
+TVSecretBaseSecrets_Text_StoppedMoving1:: @ 08288868
.string "The visitor has stopped!\p"
.string "The visitor isn't moving at all!\p"
.string "Was {STR_VAR_1}'s SECRET BASE\n"
.string "that unimpressive?$"
-gTVSecretBaseSecretsText09:: @ 082888CA
+TVSecretBaseSecrets_Text_StoppedMoving2:: @ 082888CA
.string "The visitor has stopped!\p"
.string "The visitor isn't moving at all!\p"
.string "Is it fatigue?\n"
.string "Has the visitor grown weary?$"
-gTVSecretBaseSecretsText10:: @ 08288930
+TVSecretBaseSecrets_Text_UsedChair:: @ 08288930
.string "The visitor sat down on a chair!\n"
.string "The visitor is seated!\p"
.string "Look at that look of delight!\p"
.string "That chair must be very comfortable\n"
.string "to get that response!$"
-gTVSecretBaseSecretsText11:: @ 082889C0
+TVSecretBaseSecrets_Text_UsedBalloon:: @ 082889C0
.string "The visitor charged at a balloon!\p"
.string "It burst!\n"
.string "Oh, my goodness, it popped!\p"
.string "The visitor appears startled by\n"
.string "the sudden noise!$"
-gTVSecretBaseSecretsText12:: @ 08288A3A
+TVSecretBaseSecrets_Text_UsedTent:: @ 08288A3A
.string "The visitor entered a TENT!\p"
.string "The visitor is running around!\p"
.string "Oh, my, the visitor is frolicking!\p"
.string "The visitor appears surprised by\n"
.string "the TENT's size!$"
-gTVSecretBaseSecretsText13:: @ 08288ACA
+TVSecretBaseSecrets_Text_UsedPlant:: @ 08288ACA
.string "The visitor is examining\n"
.string "a potted plant!\p"
.string "The visitor has surprisingly\n"
.string "mature taste!$"
-gTVSecretBaseSecretsText14:: @ 08288B1E
+TVSecretBaseSecrets_Text_UsedGoldShield:: @ 08288B1E
.string "The visitor is examining\n"
.string "a GOLD SHIELD!\p"
.string "The visitor's eyes appear to be\n"
.string "lit up with wonder!$"
-gTVSecretBaseSecretsText15:: @ 08288B7A
+TVSecretBaseSecrets_Text_UsedSilverShield:: @ 08288B7A
.string "The visitor is examining\n"
.string "a SILVER SHIELD!\p"
.string "The visitor appears to be wide-eyed!$"
-gTVSecretBaseSecretsText16:: @ 08288BC9
+TVSecretBaseSecrets_Text_UsedGlassOrnament:: @ 08288BC9
.string "The visitor is examining\n"
.string "a GLASS ORNAMENT!\p"
.string "Oh, no!\p"
@@ -2179,15 +2179,15 @@ gTVSecretBaseSecretsText16:: @ 08288BC9
.string "It's getting covered with\n"
.string "fingerprints…$"
-gTVSecretBaseSecretsText17:: @ 08288C40
+TVSecretBaseSecrets_Text_UsedTV:: @ 08288C40
.string "The visitor is watching television!\p"
.string "Looks like we have a big fan of TV!$"
-gTVSecretBaseSecretsText18:: @ 08288C88
+TVSecretBaseSecrets_Text_UsedMudBall:: @ 08288C88
.string "The visitor stomped on a MUD BALL!\p"
.string "The visitor looks delighted!$"
-gTVSecretBaseSecretsText19:: @ 08288CC8
+TVSecretBaseSecrets_Text_UsedBag:: @ 08288CC8
.string "…Oh?\p"
.string "The visitor is reaching for their own\n"
.string "BAG and rummaging about in it!\p"
@@ -2197,19 +2197,19 @@ gTVSecretBaseSecretsText19:: @ 08288CC8
.string "holding up the {STR_VAR_2}!\p"
.string "It's like a TV commercial!$"
-gTVSecretBaseSecretsText20:: @ 08288D7F
+TVSecretBaseSecrets_Text_UsedCushion:: @ 08288D7F
.string "The visitor grabs a cushion and…$"
-gTVSecretBaseSecretsText21:: @ 08288DA0
+TVSecretBaseSecrets_Text_HitCushion:: @ 08288DA0
.string "…begins hitting it!\p"
.string "Is the visitor under a lot of stress?$"
-gTVSecretBaseSecretsText22:: @ 08288DDA
+TVSecretBaseSecrets_Text_HuggedCushion:: @ 08288DDA
.string "…hugs it tight!\p"
.string "Could the visitor be feeling happy\n"
.string "about something?$"
-gTVSecretBaseSecretsText23:: @ 08288E1E
+TVSecretBaseSecrets_Text_BattledWon:: @ 08288E1E
.string "The visitor is chatting with\n"
.string "{STR_VAR_1}!\p"
.string "It looks like they're going to\n"
@@ -2220,7 +2220,7 @@ gTVSecretBaseSecretsText23:: @ 08288E1E
.string "The visitor is doing\n"
.string "a victory dance!$"
-gTVSecretBaseSecretsText24:: @ 08288EC9
+TVSecretBaseSecrets_Text_BattledLost:: @ 08288EC9
.string "The visitor is chatting with\n"
.string "{STR_VAR_1}!\p"
.string "It looks like they're going to\n"
@@ -2230,7 +2230,7 @@ gTVSecretBaseSecretsText24:: @ 08288EC9
.string "The visitor has lost!\p"
.string "The visitor looks dejected!$"
-gTVSecretBaseSecretsText25:: @ 08288F58
+TVSecretBaseSecrets_Text_DeclinedBattle:: @ 08288F58
.string "The visitor is chatting with\n"
.string "{STR_VAR_1}!\p"
.string "It looks like they're going to\n"
@@ -2241,7 +2241,7 @@ gTVSecretBaseSecretsText25:: @ 08288F58
.string "Did the visitor find {STR_VAR_1}\n"
.string "unappealing?$"
-gTVSecretBaseSecretsText26:: @ 08289011
+TVSecretBaseSecrets_Text_UsedPoster:: @ 08289011
.string "The visitor is staring intently\n"
.string "at a poster!\p"
.string "Is the poster to the visitor's\n"
@@ -2249,12 +2249,12 @@ gTVSecretBaseSecretsText26:: @ 08289011
.string "…But… There's something disturbing\n"
.string "about the visitor's stares.$"
-gTVSecretBaseSecretsText27:: @ 082890A4
+TVSecretBaseSecrets_Text_UsedNoteMat:: @ 082890A4
.string "The visitor stepped on a NOTE MAT!\p"
.string "…Hmm…\n"
.string "The visitor composed a funny tune!$"
-gTVSecretBaseSecretsText28:: @ 082890F0
+TVSecretBaseSecrets_Text_BattledDraw:: @ 082890F0
.string "The visitor is chatting with\n"
.string "{STR_VAR_1}!\p"
.string "It looks like they're going to\n"
@@ -2265,14 +2265,14 @@ gTVSecretBaseSecretsText28:: @ 082890F0
.string "Both TRAINERS appear to be very\n"
.string "disappointed!$"
-gTVSecretBaseSecretsText29:: @ 08289193
+TVSecretBaseSecrets_Text_UsedSpinMat:: @ 08289193
.string "The visitor stepped on\n"
.string "a SPIN MAT!\p"
.string "It looks like the visitor is dizzy!\p"
.string "The visitor is tottering about!\n"
.string "Look out!$"
-gTVSecretBaseSecretsText30:: @ 08289204
+TVSecretBaseSecrets_Text_UsedSandOrnament:: @ 08289204
.string "The visitor is reaching for\n"
.string "a SAND ORNAMENT!\p"
.string "Oh!\p"
@@ -2281,7 +2281,7 @@ gTVSecretBaseSecretsText30:: @ 08289204
.string "The visitor looks sheepish\n"
.string "and guilty!$"
-gTVSecretBaseSecretsText31:: @ 0828927C
+TVSecretBaseSecrets_Text_UsedDesk:: @ 0828927C
.string "The visitor is rubbing a desktop\n"
.string "with their finger!\p"
.string "Apparently, the visitor disapproves\n"
@@ -2289,25 +2289,25 @@ gTVSecretBaseSecretsText31:: @ 0828927C
.string "The visitor is surprisingly concerned\n"
.string "about neatness!$"
-gTVSecretBaseSecretsText32:: @ 08289313
+TVSecretBaseSecrets_Text_UsedBrick:: @ 08289313
.string "The visitor is staring at a BRICK!\p"
.string "Perhaps the visitor is thinking about\n"
.string "the object on the BRICK.$"
-gTVSecretBaseSecretsText33:: @ 08289375
+TVSecretBaseSecrets_Text_UsedSolidBoard:: @ 08289375
.string "The visitor is walking across\n"
.string "the SOLID BOARD.\p"
.string "The visitor keeps looking down.\p"
.string "The visitor appears to be surprisingly\n"
.string "timid and cautious!$"
-gTVSecretBaseSecretsText34:: @ 082893FF
+TVSecretBaseSecrets_Text_UsedFence:: @ 082893FF
.string "The visitor is looking intently\n"
.string "at a FENCE!\p"
.string "Has a new idea for a trap popped\n"
.string "into the visitor's head?$"
-gTVSecretBaseSecretsText35:: @ 08289465
+TVSecretBaseSecrets_Text_UsedGlitterMat:: @ 08289465
.string "The visitor stepped on\n"
.string "a GLITTER MAT!\p"
.string "The visitor is striking a variety\n"
@@ -2315,13 +2315,13 @@ gTVSecretBaseSecretsText35:: @ 08289465
.string "The visitor appears to be fantasizing\n"
.string "about being an idol!$"
-gTVSecretBaseSecretsText36:: @ 082894F2
+TVSecretBaseSecrets_Text_UsedTire:: @ 082894F2
.string "The visitor is staring intently\n"
.string "at a TIRE!\p"
.string "Could the visitor be thinking about\n"
.string "the kind of car that would use it?$"
-gTVSecretBaseSecretsText37:: @ 08289564
+TVSecretBaseSecrets_Text_UsedStand:: @ 08289564
.string "The visitor climbed a STAND!\p"
.string "The visitor is looking out across\n"
.string "{STR_VAR_1}'s BASE from high up!\p"
@@ -2329,16 +2329,16 @@ gTVSecretBaseSecretsText37:: @ 08289564
.string "Lets loose a roar!\n"
.string "The visitor is roaring!$"
-gTVSecretBaseSecretsText38:: @ 082895EB
+TVSecretBaseSecrets_Text_BrokeDoor:: @ 082895EB
.string "The visitor charged headlong into\n"
.string "a BREAKABLE DOOR!\p"
.string "The visitor is laughing uproariously!$"
-gTVSecretBaseSecretsText39:: @ 08289645
+TVSecretBaseSecrets_Text_UsedDoll:: @ 08289645
.string "The visitor is talking to a DOLL!\p"
.string "…It's a little creepy…$"
-gTVSecretBaseSecretsText40:: @ 0828967E
+TVSecretBaseSecrets_Text_UsedSlide:: @ 0828967E
.string "The visitor is climbing the ladder\n"
.string "on a SLIDE!\p"
.string "And…\p"
@@ -2346,7 +2346,7 @@ gTVSecretBaseSecretsText40:: @ 0828967E
.string "Looks like the visitor is having\n"
.string "a grand old time!$"
-gTVSecretBaseSecretsText41:: @ 082896FC
+TVSecretBaseSecrets_Text_UsedSlideButDidntGoDown:: @ 082896FC
.string "The visitor is climbing the ladder\n"
.string "on a SLIDE!\p"
.string "And…\p"
@@ -2354,7 +2354,7 @@ gTVSecretBaseSecretsText41:: @ 082896FC
.string "the ladder!\p"
.string "Did the visitor suddenly chicken out?$"
-gTVSecretBaseSecretsText42:: @ 0828977D
+TVSecretBaseSecrets_Text_UsedJumpMat:: @ 0828977D
.string "The visitor stepped on\n"
.string "a JUMP MAT!\p"
.string "The visitor jumped once!\p"
diff --git a/include/battle_tower.h b/include/battle_tower.h
index 2366cac12..2e85c8018 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -71,7 +71,7 @@ void GetEreaderTrainerName(u8 *dst);
void ValidateEReaderTrainer(void);
void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *ereaderTrainer);
void CopyEReaderTrainerGreeting(void);
-void sub_81653CC(void);
+void TryHideBattleTowerReporter(void);
bool32 RubyBattleTowerRecordToEmerald(struct RSBattleTowerRecord *src, struct EmeraldBattleTowerRecord *dst);
bool32 EmeraldBattleTowerRecordToRuby(struct EmeraldBattleTowerRecord *src, struct RSBattleTowerRecord *dst);
void CalcApprenticeChecksum(struct Apprentice *apprentice);
diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h
index 58ac90eab..a0ea6855b 100644
--- a/include/constants/metatile_labels.h
+++ b/include/constants/metatile_labels.h
@@ -2,29 +2,39 @@
#define GUARD_METATILE_LABELS_H
// gTileset_General
-#define METATILE_General_Grass 0x001
-#define METATILE_General_TallGrass 0x00D
-#define METATILE_General_LongGrass 0x015
-#define METATILE_General_TallGrass_TreeUp 0x025
-#define METATILE_General_Grass_TreeUp 0x00E
-#define METATILE_General_TallGrass_TreeLeft 0x1C6
-#define METATILE_General_TallGrass_TreeRight 0x1C7
-#define METATILE_General_Grass_TreeLeft 0x1CE
-#define METATILE_General_Grass_TreeRight 0x1CF
-#define METATILE_General_MuddySlope_Frame0 0x0E8
-#define METATILE_General_MuddySlope_Frame1 0x0E9
-#define METATILE_General_MuddySlope_Frame2 0x0EA
-#define METATILE_General_MuddySlope_Frame3 0x0EB
-#define METATILE_General_SandPit_Center 0x121
-#define METATILE_General_CaveEntrance_Top 0x09F
-#define METATILE_General_CaveEntrance_Bottom 0x0A7
-#define METATILE_General_RockWall_GrassBase 0x079
-#define METATILE_General_RockWall_RockBase 0x07C
-#define METATILE_General_RockWall_SandBase 0x091
-#define METATILE_General_CalmWater 0x170
-#define METATILE_General_RoughWater 0x14E
-#define METATILE_General_RoughDeepWater 0x14F
-#define METATILE_General_ReflectiveWater 0x0A1
+#define METATILE_General_Grass 0x001
+#define METATILE_General_TallGrass 0x00D
+#define METATILE_General_LongGrass 0x015
+#define METATILE_General_TallGrass_TreeUp 0x025
+#define METATILE_General_Grass_TreeUp 0x00E
+#define METATILE_General_TallGrass_TreeLeft 0x1C6
+#define METATILE_General_TallGrass_TreeRight 0x1C7
+#define METATILE_General_Grass_TreeLeft 0x1CE
+#define METATILE_General_Grass_TreeRight 0x1CF
+#define METATILE_General_MuddySlope_Frame0 0x0E8
+#define METATILE_General_MuddySlope_Frame1 0x0E9
+#define METATILE_General_MuddySlope_Frame2 0x0EA
+#define METATILE_General_MuddySlope_Frame3 0x0EB
+#define METATILE_General_SandPit_Center 0x121
+#define METATILE_General_CaveEntrance_Top 0x09F
+#define METATILE_General_CaveEntrance_Bottom 0x0A7
+#define METATILE_General_RockWall_GrassBase 0x079
+#define METATILE_General_RockWall_RockBase 0x07C
+#define METATILE_General_RockWall_SandBase 0x091
+#define METATILE_General_CalmWater 0x170
+#define METATILE_General_RoughWater 0x14E
+#define METATILE_General_RoughDeepWater 0x14F
+#define METATILE_General_ReflectiveWater 0x0A1
+#define METATILE_General_SecretBase_TreeLeft 0x026
+#define METATILE_General_SecretBase_TreeRight 0x027
+#define METATILE_General_SecretBase_VineLeft 0x036
+#define METATILE_General_SecretBase_VineRight 0x037
+#define METATILE_General_RedCaveIndent 0x1A0
+#define METATILE_General_RedCaveOpen 0x1A1
+#define METATILE_General_YellowCaveIndent 0x1A8
+#define METATILE_General_YellowCaveOpen 0x1A9
+#define METATILE_General_BlueCaveIndent 0x1B0
+#define METATILE_General_BlueCaveOpen 0x1B1
// gTileset_Building
#define METATILE_Building_PC_Off 0x004
@@ -143,6 +153,8 @@
#define METATILE_Fortree_BridgeOverGrass_Lowered 0x24F
#define METATILE_Fortree_BridgeOverTrees_Raised 0x256
#define METATILE_Fortree_BridgeOverTrees_Lowered 0x257
+#define METATILE_Fortree_SecretBase_Shrub 0x271
+#define METATILE_Fortree_SecretBase_ShrubOpen 0x278
#define METATILE_Fortree_SecretBase_LongGrass_TopLeft 0x279
#define METATILE_Fortree_SecretBase_LongGrass_TopMid 0x27A
#define METATILE_Fortree_SecretBase_LongGrass_TopRight 0x27B
@@ -164,6 +176,8 @@
// gTileset_Fallarbor
#define METATILE_Fallarbor_AshGrass 0x20A
+#define METATILE_Fallarbor_BrownCaveIndent 0x208
+#define METATILE_Fallarbor_BrownCaveOpen 0x210
#define METATILE_Fallarbor_NormalGrass 0x212
#define METATILE_Fallarbor_AshField 0x218
#define METATILE_Fallarbor_BrownCaveEntrance_Top 0x259
@@ -414,4 +428,162 @@
#define METATILE_Underwater_RockWall 0x21E
#define METATILE_Underwater_FloorShadow 0x228
+// gTileset_SecretBase
+#define METATILE_SecretBase_Wall_TopMid 0x202
+#define METATILE_SecretBase_Ground 0x20A
+#define METATILE_SecretBase_PC 0x220
+#define METATILE_SecretBase_RegisterPC 0x221
+#define METATILE_SecretBase_PC_On 0x224
+#define METATILE_SecretBase_RedBrick_Top 0x225
+#define METATILE_SecretBase_RedBrick_Bottom 0x22D
+#define METATILE_SecretBase_YellowBrick_Top 0x226
+#define METATILE_SecretBase_YellowBrick_Bottom 0x22E
+#define METATILE_SecretBase_BlueBrick_Top 0x227
+#define METATILE_SecretBase_BlueBrick_Bottom 0x22F
+#define METATILE_SecretBase_MudBall 0x228
+#define METATILE_SecretBase_Fence_Horizontal 0x22C
+#define METATILE_SecretBase_Fence_Vertical 0x233
+#define METATILE_SecretBase_Board_Top 0x234
+#define METATILE_SecretBase_Board_Bottom 0x23C
+#define METATILE_SecretBase_RedTent_DoorTop 0x239
+#define METATILE_SecretBase_RedTent_Door 0x241
+#define METATILE_SecretBase_BlueTent_DoorTop 0x251
+#define METATILE_SecretBase_BlueTent_Door 0x259
+#define METATILE_SecretBase_Slide_Stairs 0x23D
+#define METATILE_SecretBase_Slide 0x23E
+#define METATILE_SecretBase_Stand_LeftCorner 0x26A
+#define METATILE_SecretBase_Stand_RightCorner 0x26D
+#define METATILE_SecretBase_BreakableDoor_TopClosed 0x237
+#define METATILE_SecretBase_BreakableDoor_BottomClosed 0x23F
+#define METATILE_SecretBase_BreakableDoor_TopOpen 0x26E
+#define METATILE_SecretBase_BreakableDoor_BottomOpen 0x276
+#define METATILE_SecretBase_NoteMat_C 0x278
+#define METATILE_SecretBase_NoteMat_D 0x279
+#define METATILE_SecretBase_NoteMat_E 0x27A
+#define METATILE_SecretBase_NoteMat_F 0x27B
+#define METATILE_SecretBase_NoteMat_G 0x27C
+#define METATILE_SecretBase_NoteMat_A 0x27D
+#define METATILE_SecretBase_NoteMat_B 0x27E
+#define METATILE_SecretBase_NoteMat_C_Sharp 0x2B3
+#define METATILE_SecretBase_Tire_TopLeft 0x280
+#define METATILE_SecretBase_Tire_TopRight 0x281
+#define METATILE_SecretBase_Tire_BottomLeft 0x288
+#define METATILE_SecretBase_Tire_BottomRight 0x289
+#define METATILE_SecretBase_GlassOrnament_Base1 0x28A
+#define METATILE_SecretBase_GlassOrnament_Base2 0x28B
+#define METATILE_SecretBase_SandOrnament_BrokenTop 0x284
+#define METATILE_SecretBase_SandOrnament_BrokenBase 0x28C
+#define METATILE_SecretBase_SandOrnament_Top 0x285
+#define METATILE_SecretBase_SandOrnament_Base1 0x28D
+#define METATILE_SecretBase_SandOrnament_TopWall 0x286
+#define METATILE_SecretBase_SandOrnament_Base2 0x28E
+#define METATILE_SecretBase_SmallDesk 0x287
+#define METATILE_SecretBase_PokemonDesk 0x28F
+#define METATILE_SecretBase_HeavyDesk_TopLeft 0x290
+#define METATILE_SecretBase_HeavyDesk_TopMid 0x291
+#define METATILE_SecretBase_HeavyDesk_TopRight 0x292
+#define METATILE_SecretBase_HeavyDesk_BottomLeft 0x298
+#define METATILE_SecretBase_HeavyDesk_BottomMid 0x299
+#define METATILE_SecretBase_HeavyDesk_BottomRight 0x29A
+#define METATILE_SecretBase_RaggedDesk_TopLeft 0x293
+#define METATILE_SecretBase_RaggedDesk_TopMid 0x294
+#define METATILE_SecretBase_RaggedDesk_TopRight 0x295
+#define METATILE_SecretBase_RaggedDesk_BottomLeft 0x29B
+#define METATILE_SecretBase_RaggedDesk_BottomMid 0x29C
+#define METATILE_SecretBase_RaggedDesk_BottomRight 0x29D
+#define METATILE_SecretBase_ComfortDesk_TopLeft 0x296
+#define METATILE_SecretBase_ComfortDesk_TopMid 0x297
+#define METATILE_SecretBase_ComfortDesk_TopRight 0x2A3
+#define METATILE_SecretBase_ComfortDesk_BottomLeft 0x29E
+#define METATILE_SecretBase_ComfortDesk_BottomMid 0x29F
+#define METATILE_SecretBase_ComfortDesk_BottomRight 0x2AB
+#define METATILE_SecretBase_BrickDesk_TopLeft 0x2A0
+#define METATILE_SecretBase_BrickDesk_TopMid 0x2A1
+#define METATILE_SecretBase_BrickDesk_TopRight 0x2A2
+#define METATILE_SecretBase_BrickDesk_MidLeft 0x2A8
+#define METATILE_SecretBase_BrickDesk_Center 0x2A9
+#define METATILE_SecretBase_BrickDesk_MidRight 0x2AA
+#define METATILE_SecretBase_BrickDesk_BottomLeft 0x2B0
+#define METATILE_SecretBase_BrickDesk_BottomMid 0x2B1
+#define METATILE_SecretBase_BrickDesk_BottomRight 0x2B2
+#define METATILE_SecretBase_CampDesk_TopLeft 0x2A4
+#define METATILE_SecretBase_CampDesk_TopMid 0x2A5
+#define METATILE_SecretBase_CampDesk_TopRight 0x2A6
+#define METATILE_SecretBase_CampDesk_MidLeft 0x2AC
+#define METATILE_SecretBase_CampDesk_Center 0x2AD
+#define METATILE_SecretBase_CampDesk_MidRight 0x2AE
+#define METATILE_SecretBase_CampDesk_BottomLeft 0x2B4
+#define METATILE_SecretBase_CampDesk_BottomMid 0x2B5
+#define METATILE_SecretBase_CampDesk_BottomRight 0x2B6
+#define METATILE_SecretBase_HardDesk_TopLeft 0x2A7
+#define METATILE_SecretBase_HardDesk_TopMid 0x2BB
+#define METATILE_SecretBase_HardDesk_TopRight 0x2BC
+#define METATILE_SecretBase_HardDesk_MidLeft 0x2AF
+#define METATILE_SecretBase_HardDesk_Center 0x2C3
+#define METATILE_SecretBase_HardDesk_MidRight 0x2C4
+#define METATILE_SecretBase_HardDesk_BottomLeft 0x2B7
+#define METATILE_SecretBase_HardDesk_BottomMid 0x2CB
+#define METATILE_SecretBase_HardDesk_BottomRight 0x2CC
+#define METATILE_SecretBase_PrettyDesk_TopLeft 0x2BD
+#define METATILE_SecretBase_PrettyDesk_TopMid 0x2BE
+#define METATILE_SecretBase_PrettyDesk_TopRight 0x2BF
+#define METATILE_SecretBase_PrettyDesk_MidLeft 0x2C5
+#define METATILE_SecretBase_PrettyDesk_Center 0x2C6
+#define METATILE_SecretBase_PrettyDesk_MidRight 0x2C7
+#define METATILE_SecretBase_PrettyDesk_BottomLeft 0x2CD
+#define METATILE_SecretBase_PrettyDesk_BottomMid 0x2CE
+#define METATILE_SecretBase_PrettyDesk_BottomRight 0x2CF
+#define METATILE_SecretBase_SmallChair 0x2B8
+#define METATILE_SecretBase_PokemonChair 0x2B9
+#define METATILE_SecretBase_HeavyChair 0x2BA
+#define METATILE_SecretBase_PrettyChair 0x2C0
+#define METATILE_SecretBase_ComfortChair 0x2C1
+#define METATILE_SecretBase_RaggedChair 0x2C2
+#define METATILE_SecretBase_BrickChair 0x2C8
+#define METATILE_SecretBase_CampChair 0x2C9
+#define METATILE_SecretBase_HardChair 0x2Ca
+#define METATILE_SecretBase_RedPlant_Base1 0x2D8
+#define METATILE_SecretBase_RedPlant_Base2 0x2D9
+#define METATILE_SecretBase_TropicalPlant_Base1 0x2DA
+#define METATILE_SecretBase_TropicalPlant_Base2 0x2DB
+#define METATILE_SecretBase_PrettyFlower_Base1 0x2DC
+#define METATILE_SecretBase_PrettyFlower_Base2 0x2DD
+#define METATILE_SecretBase_ColorfulFlowers_BaseLeft1 0x2E8
+#define METATILE_SecretBase_ColorfulFlowers_BaseRight1 0x2E9
+#define METATILE_SecretBase_ColorfulFlowers_BaseLeft2 0x2EA
+#define METATILE_SecretBase_ColorfulFlowers_BaseRight2 0x2EB
+#define METATILE_SecretBase_BigPlant_BaseLeft1 0x2EC
+#define METATILE_SecretBase_BigPlant_BaseRight1 0x2ED
+#define METATILE_SecretBase_BigPlant_BaseLeft2 0x2EE
+#define METATILE_SecretBase_BigPlant_BaseRight2 0x2EF
+#define METATILE_SecretBase_GorgeousPlant_BaseLeft1 0x2F8
+#define METATILE_SecretBase_GorgeousPlant_BaseRight1 0x2F9
+#define METATILE_SecretBase_GorgeousPlant_BaseLeft2 0x2FA
+#define METATILE_SecretBase_GorgeousPlant_BaseRight2 0x2FB
+#define METATILE_SecretBase_TV 0x2F4
+#define METATILE_SecretBase_RoundTV 0x2F5
+#define METATILE_SecretBase_CuteTV 0x2F6
+#define METATILE_SecretBase_PikaPoster_Left 0x31C
+#define METATILE_SecretBase_PikaPoster_Right 0x31D
+#define METATILE_SecretBase_LongPoster_Left 0x31E
+#define METATILE_SecretBase_LongPoster_Right 0x31F
+#define METATILE_SecretBase_SeaPoster_Left 0x324
+#define METATILE_SecretBase_SeaPoster_Right 0x325
+#define METATILE_SecretBase_SkyPoster_Left 0x326
+#define METATILE_SecretBase_SkyPoster_Right 0x327
+#define METATILE_SecretBase_KissPoster_Left 0x32C
+#define METATILE_SecretBase_KissPoster_Right 0x32D
+#define METATILE_SecretBase_BallPoster 0x330
+#define METATILE_SecretBase_GreenPoster 0x331
+#define METATILE_SecretBase_RedPoster 0x332
+#define METATILE_SecretBase_BluePoster 0x333
+#define METATILE_SecretBase_CutePoster 0x334
+#define METATILE_SecretBase_SilverShield_Base1 0x2DE
+#define METATILE_SecretBase_SilverShield_Base2 0x2DF
+#define METATILE_SecretBase_GoldShield_Base1 0x336
+#define METATILE_SecretBase_GoldShield_Base2 0x337
+#define METATILE_SecretBase_RedBalloon 0x338
+#define METATILE_SecretBase_BlueBalloon 0x33c
+#define METATILE_SecretBase_YellowBalloon 0x340
+
#endif // GUARD_METATILE_LABELS_H
diff --git a/include/constants/tv.h b/include/constants/tv.h
index fddf650e4..6f686f727 100644
--- a/include/constants/tv.h
+++ b/include/constants/tv.h
@@ -46,4 +46,92 @@
// Number of ribbons to put Spot the Cuties on air
#define NUM_CUTIES_RIBBONS 4
+// TV Show states for Secret Base Secrets
+#define SBSECRETS_STATE_INTRO 0
+#define SBSECRETS_STATE_DO_NEXT1 1
+#define SBSECRETS_STATE_DO_NEXT2 2
+#define SBSECRETS_STATE_TOOK_X_STEPS 3
+#define SBSECRETS_STATE_BASE_INTEREST_LOW 4
+#define SBSECRETS_STATE_BASE_INTEREST_MED 5
+#define SBSECRETS_STATE_BASE_INTEREST_HIGH 6
+#define SBSECRETS_STATE_OUTRO 7
+#define SBSECRETS_STATE_NOTHING_USED1 8
+#define SBSECRETS_STATE_NOTHING_USED2 9
+#define SBSECRETS_STATE_USED_CHAIR 10
+#define SBSECRETS_STATE_USED_BALLOON 11
+#define SBSECRETS_STATE_USED_TENT 12
+#define SBSECRETS_STATE_USED_PLANT 13
+#define SBSECRETS_STATE_USED_GOLD_SHIELD 14
+#define SBSECRETS_STATE_USED_SILVER_SHIELD 15
+#define SBSECRETS_STATE_USED_GLASS_ORNAMENT 16
+#define SBSECRETS_STATE_USED_TV 17
+#define SBSECRETS_STATE_USED_MUD_BALL 18
+#define SBSECRETS_STATE_USED_BAG 19
+#define SBSECRETS_STATE_USED_CUSHION 20
+#define SBSECRETS_STATE_HIT_CUSHION 21
+#define SBSECRETS_STATE_HUGGED_CUSHION 22
+#define SBSECRETS_STATE_BATTLED_WON 23
+#define SBSECRETS_STATE_BATTLED_LOST 24
+#define SBSECRETS_STATE_DECLINED_BATTLE 25
+#define SBSECRETS_STATE_USED_POSTER 26
+#define SBSECRETS_STATE_USED_NOTE_MAT 27
+#define SBSECRETS_STATE_BATTLED_DRAW 28
+#define SBSECRETS_STATE_USED_SPIN_MAT 29
+#define SBSECRETS_STATE_USED_SAND_ORNAMENT 30
+#define SBSECRETS_STATE_USED_DESK 31
+#define SBSECRETS_STATE_USED_BRICK 32
+#define SBSECRETS_STATE_USED_SOLID_BOARD 33
+#define SBSECRETS_STATE_USED_FENCE 34
+#define SBSECRETS_STATE_USED_GLITTER_MAT 35
+#define SBSECRETS_STATE_USED_TIRE 36
+#define SBSECRETS_STATE_USED_STAND 37
+#define SBSECRETS_STATE_USED_BREAKABLE_DOOR 38
+#define SBSECRETS_STATE_USED_DOLL 39
+#define SBSECRETS_STATE_USED_SLIDE 40
+#define SBSECRETS_STATE_DECLINED_SLIDE 41
+#define SBSECRETS_STATE_USED_JUMP_MAT 42
+#define SBSECRETS_NUM_STATES 43
+
+// The below flags are set when interacting with objects in a friends secret base
+// Theyre set as bits in a var, and with 32 flags they're spread across 2 vars
+
+// VAR_SECRET_BASE_LOW_TV_FLAGS
+#define SECRET_BASE_USED_CHAIR (1 << 0)
+#define SECRET_BASE_USED_BALLOON (1 << 1)
+#define SECRET_BASE_USED_TENT (1 << 2)
+#define SECRET_BASE_USED_PLANT (1 << 3)
+#define SECRET_BASE_USED_GOLD_SHIELD (1 << 4)
+#define SECRET_BASE_USED_SILVER_SHIELD (1 << 5)
+#define SECRET_BASE_USED_GLASS_ORNAMENT (1 << 6)
+#define SECRET_BASE_USED_TV (1 << 7)
+#define SECRET_BASE_USED_MUD_BALL (1 << 8)
+#define SECRET_BASE_USED_BAG (1 << 9)
+#define SECRET_BASE_USED_CUSHION (1 << 10)
+#define SECRET_BASE_BATTLED_WON (1 << 11)
+#define SECRET_BASE_BATTLED_LOST (1 << 12)
+#define SECRET_BASE_DECLINED_BATTLE (1 << 13)
+#define SECRET_BASE_USED_POSTER (1 << 14)
+#define SECRET_BASE_USED_NOTE_MAT (1 << 15)
+
+// VAR_SECRET_BASE_HIGH_TV_FLAGS
+#define SECRET_BASE_BATTLED_DRAW (1 << 0)
+#define SECRET_BASE_USED_SPIN_MAT (1 << 1)
+#define SECRET_BASE_USED_SAND_ORNAMENT (1 << 2)
+#define SECRET_BASE_USED_DESK (1 << 3)
+#define SECRET_BASE_USED_BRICK (1 << 4)
+#define SECRET_BASE_USED_SOLID_BOARD (1 << 5)
+#define SECRET_BASE_USED_FENCE (1 << 6)
+#define SECRET_BASE_USED_GLITTER_MAT (1 << 7)
+#define SECRET_BASE_USED_TIRE (1 << 8)
+#define SECRET_BASE_USED_STAND (1 << 9)
+#define SECRET_BASE_USED_BREAKABLE_DOOR (1 << 10)
+#define SECRET_BASE_USED_DOLL (1 << 11)
+#define SECRET_BASE_USED_SLIDE (1 << 12)
+#define SECRET_BASE_DECLINED_SLIDE (1 << 13)
+#define SECRET_BASE_USED_JUMP_MAT (1 << 14)
+#define SECRET_BASE_UNUSED_FLAG (1 << 15)
+
+#define NUM_SECRET_BASE_FLAGS 32 // by definition, bitfield of 2 u16s
+
+
#endif //GUARD_CONSTANTS_TV_H
diff --git a/include/event_scripts.h b/include/event_scripts.h
index c2716a214..a56ab89e0 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -240,49 +240,49 @@ extern const u8 gTVWhatsNo1InHoennTodayText05[];
extern const u8 gTVWhatsNo1InHoennTodayText06[];
extern const u8 gTVWhatsNo1InHoennTodayText07[];
extern const u8 gTVWhatsNo1InHoennTodayText08[];
-extern const u8 gTVSecretBaseSecretsText00[];
-extern const u8 gTVSecretBaseSecretsText01[];
-extern const u8 gTVSecretBaseSecretsText02[];
-extern const u8 gTVSecretBaseSecretsText03[];
-extern const u8 gTVSecretBaseSecretsText04[];
-extern const u8 gTVSecretBaseSecretsText05[];
-extern const u8 gTVSecretBaseSecretsText06[];
-extern const u8 gTVSecretBaseSecretsText07[];
-extern const u8 gTVSecretBaseSecretsText08[];
-extern const u8 gTVSecretBaseSecretsText09[];
-extern const u8 gTVSecretBaseSecretsText10[];
-extern const u8 gTVSecretBaseSecretsText11[];
-extern const u8 gTVSecretBaseSecretsText12[];
-extern const u8 gTVSecretBaseSecretsText13[];
-extern const u8 gTVSecretBaseSecretsText14[];
-extern const u8 gTVSecretBaseSecretsText15[];
-extern const u8 gTVSecretBaseSecretsText16[];
-extern const u8 gTVSecretBaseSecretsText17[];
-extern const u8 gTVSecretBaseSecretsText18[];
-extern const u8 gTVSecretBaseSecretsText19[];
-extern const u8 gTVSecretBaseSecretsText20[];
-extern const u8 gTVSecretBaseSecretsText21[];
-extern const u8 gTVSecretBaseSecretsText22[];
-extern const u8 gTVSecretBaseSecretsText23[];
-extern const u8 gTVSecretBaseSecretsText24[];
-extern const u8 gTVSecretBaseSecretsText25[];
-extern const u8 gTVSecretBaseSecretsText26[];
-extern const u8 gTVSecretBaseSecretsText27[];
-extern const u8 gTVSecretBaseSecretsText28[];
-extern const u8 gTVSecretBaseSecretsText29[];
-extern const u8 gTVSecretBaseSecretsText30[];
-extern const u8 gTVSecretBaseSecretsText31[];
-extern const u8 gTVSecretBaseSecretsText32[];
-extern const u8 gTVSecretBaseSecretsText33[];
-extern const u8 gTVSecretBaseSecretsText34[];
-extern const u8 gTVSecretBaseSecretsText35[];
-extern const u8 gTVSecretBaseSecretsText36[];
-extern const u8 gTVSecretBaseSecretsText37[];
-extern const u8 gTVSecretBaseSecretsText38[];
-extern const u8 gTVSecretBaseSecretsText39[];
-extern const u8 gTVSecretBaseSecretsText40[];
-extern const u8 gTVSecretBaseSecretsText41[];
-extern const u8 gTVSecretBaseSecretsText42[];
+extern const u8 TVSecretBaseSecrets_Text_Intro[];
+extern const u8 TVSecretBaseSecrets_Text_WhatWillPlayerDoNext1[];
+extern const u8 TVSecretBaseSecrets_Text_WhatWillPlayerDoNext2[];
+extern const u8 TVSecretBaseSecrets_Text_TookXStepsBeforeLeaving[];
+extern const u8 TVSecretBaseSecrets_Text_BaseFailedToInterestPlayer[];
+extern const u8 TVSecretBaseSecrets_Text_PlayerEnjoyedBase[];
+extern const u8 TVSecretBaseSecrets_Text_PlayerHugeFanOfBase[];
+extern const u8 TVSecretBaseSecrets_Text_Outro[];
+extern const u8 TVSecretBaseSecrets_Text_StoppedMoving1[];
+extern const u8 TVSecretBaseSecrets_Text_StoppedMoving2[];
+extern const u8 TVSecretBaseSecrets_Text_UsedChair[];
+extern const u8 TVSecretBaseSecrets_Text_UsedBalloon[];
+extern const u8 TVSecretBaseSecrets_Text_UsedTent[];
+extern const u8 TVSecretBaseSecrets_Text_UsedPlant[];
+extern const u8 TVSecretBaseSecrets_Text_UsedGoldShield[];
+extern const u8 TVSecretBaseSecrets_Text_UsedSilverShield[];
+extern const u8 TVSecretBaseSecrets_Text_UsedGlassOrnament[];
+extern const u8 TVSecretBaseSecrets_Text_UsedTV[];
+extern const u8 TVSecretBaseSecrets_Text_UsedMudBall[];
+extern const u8 TVSecretBaseSecrets_Text_UsedBag[];
+extern const u8 TVSecretBaseSecrets_Text_UsedCushion[];
+extern const u8 TVSecretBaseSecrets_Text_HitCushion[];
+extern const u8 TVSecretBaseSecrets_Text_HuggedCushion[];
+extern const u8 TVSecretBaseSecrets_Text_BattledWon[];
+extern const u8 TVSecretBaseSecrets_Text_BattledLost[];
+extern const u8 TVSecretBaseSecrets_Text_DeclinedBattle[];
+extern const u8 TVSecretBaseSecrets_Text_UsedPoster[];
+extern const u8 TVSecretBaseSecrets_Text_UsedNoteMat[];
+extern const u8 TVSecretBaseSecrets_Text_BattledDraw[];
+extern const u8 TVSecretBaseSecrets_Text_UsedSpinMat[];
+extern const u8 TVSecretBaseSecrets_Text_UsedSandOrnament[];
+extern const u8 TVSecretBaseSecrets_Text_UsedDesk[];
+extern const u8 TVSecretBaseSecrets_Text_UsedBrick[];
+extern const u8 TVSecretBaseSecrets_Text_UsedSolidBoard[];
+extern const u8 TVSecretBaseSecrets_Text_UsedFence[];
+extern const u8 TVSecretBaseSecrets_Text_UsedGlitterMat[];
+extern const u8 TVSecretBaseSecrets_Text_UsedTire[];
+extern const u8 TVSecretBaseSecrets_Text_UsedStand[];
+extern const u8 TVSecretBaseSecrets_Text_BrokeDoor[];
+extern const u8 TVSecretBaseSecrets_Text_UsedDoll[];
+extern const u8 TVSecretBaseSecrets_Text_UsedSlide[];
+extern const u8 TVSecretBaseSecrets_Text_UsedSlideButDidntGoDown[];
+extern const u8 TVSecretBaseSecrets_Text_UsedJumpMat[];
extern const u8 gTVSafariFanClubText00[];
extern const u8 gTVSafariFanClubText01[];
extern const u8 gTVSafariFanClubText02[];
diff --git a/include/fldeff_misc.h b/include/fldeff_misc.h
index fd96f5646..6fd15c1ea 100644
--- a/include/fldeff_misc.h
+++ b/include/fldeff_misc.h
@@ -21,7 +21,7 @@ void ShatterSecretBaseBreakableDoor(s16 x, s16 y);
void PlaySecretBaseMusicNoteMatSound(s16 metatileId);
void DoSecretBaseGlitterMatSparkle(void);
bool8 FldEff_SandPillar(void);
-void GetShieldToyTVDecorationInfo(void);
+void InteractWithShieldOrTVDecoration(void);
bool8 sub_80FADE4(u16 arg0, u8 arg1);
void FldEffPoison_Start(void);
bool32 FldEffPoison_IsActive(void);
diff --git a/include/link.h b/include/link.h
index 4d6771a03..f41161d23 100644
--- a/include/link.h
+++ b/include/link.h
@@ -84,7 +84,7 @@
#define LINKTYPE_MULTI_BATTLE 0x2255
#define LINKTYPE_BATTLE_TOWER_50 0x2266
#define LINKTYPE_BATTLE_TOWER_OPEN 0x2277
-#define LINKTYPE_0x2288 0x2288 // battle?
+#define LINKTYPE_BATTLE_TOWER 0x2288
#define LINKTYPE_0x3311 0x3311
#define LINKTYPE_0x3322 0x3322
#define LINKTYPE_BERRY_BLENDER_SETUP 0x4411
diff --git a/include/secret_base.h b/include/secret_base.h
index 4e323b0c6..b7d36a8ee 100644
--- a/include/secret_base.h
+++ b/include/secret_base.h
@@ -12,13 +12,13 @@ void InitSecretBaseAppearance(bool8 hidePC);
bool8 CurMapIsSecretBase(void);
void SecretBasePerStepCallback(u8 taskId);
bool8 TrySetCurSecretBase(void);
-void SetSecretBaseSecretsTvFlags_Poster(void);
-void SetSecretBaseSecretsTvFlags_MiscFurnature(void);
-void SetSecretBaseSecretsTvFlags_LargeDecorationSpot(void);
-void SetSecretBaseSecretsTvFlags_SmallDecorationSpot(void);
+void CheckInteractedWithFriendsPosterDecor(void);
+void CheckInteractedWithFriendsFurnitureBottom(void);
+void CheckInteractedWithFriendsFurnitureMiddle(void);
+void CheckInteractedWithFriendsFurnitureTop(void);
void WarpIntoSecretBase(const struct MapPosition *position, const struct MapEvents *events);
bool8 SecretBaseMapPopupEnabled(void);
-void sub_80EB218(void);
+void CheckLeftFriendsSecretBase(void);
void ClearSecretBases(void);
void SetCurSecretBaseIdFromPosition(const struct MapPosition *position, const struct MapEvents *events);
void TrySetCurSecretBaseIndex(void);
diff --git a/include/tv.h b/include/tv.h
index dc4b22a99..8e9233c2b 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -18,7 +18,7 @@ void TryPutTrainerFanClubOnAir(void);
void IncrementDailyPlantedBerries(void);
void IncrementDailyPickedBerries(void);
void IncrementDailyBattlePoints(u16 delta);
-void sub_80F01B8(void);
+void HideBattleTowerReporter(void);
void ReceiveTvShowsData(void *src, u32 size, u8 masterIdx);
void TryPutSpotTheCutiesOnAir(struct Pokemon *pokemon, u8 ribbonMonDataIdx);
u32 GetPlayerIDAsU32(void);
@@ -29,7 +29,7 @@ u8 GetRibbonCount(struct Pokemon *pokemon);
void AlertTVThatPlayerPlayedSlotMachine(u16 nCoinsSpent);
void AlertTVThatPlayerPlayedRoulette(u16 nCoinsSpent);
void AlertTVOfNewCoinTotal(u16 nCoinsPaidOut);
-void sub_80EEA70(void);
+void TryPutSecretBaseSecretsOnAir(void);
void sub_80EDB44(void);
void sub_80EDC60(const u16 *words);
void sub_80EDA80(void);
diff --git a/src/battle_tower.c b/src/battle_tower.c
index 47dc49065..d84ddaa2a 100644
--- a/src/battle_tower.c
+++ b/src/battle_tower.c
@@ -2908,13 +2908,13 @@ static void CopyEReaderTrainerFarewellMessage(void)
FrontierSpeechToString(gSaveBlock2Ptr->frontier.ereaderTrainer.farewellPlayerLost);
}
-void sub_81653CC(void)
+void TryHideBattleTowerReporter(void)
{
if (gSaveBlock2Ptr->frontier.challengeStatus == CHALLENGE_STATUS_SAVING)
- sub_80F01B8();
+ HideBattleTowerReporter();
if (FlagGet(FLAG_CANCEL_BATTLE_ROOM_CHALLENGE) == TRUE)
{
- sub_80F01B8();
+ HideBattleTowerReporter();
FlagClear(FLAG_CANCEL_BATTLE_ROOM_CHALLENGE);
}
}
diff --git a/src/cable_club.c b/src/cable_club.c
index ab72ee3f2..87a0bcfca 100644
--- a/src/cable_club.c
+++ b/src/cable_club.c
@@ -784,7 +784,8 @@ static void sub_80B3220(u8 taskId)
}
}
-void sub_80B3254(void)
+// Unused
+void CableClubSaveGame(void)
{
SaveGame();
}
@@ -1298,10 +1299,10 @@ void sub_80B3AF8(u8 taskId)
}
}
-void sub_80B3BC4(void)
+void TrySetBattleTowerLinkType(void)
{
if (gWirelessCommType == 0)
{
- gLinkType = LINKTYPE_0x2288;
+ gLinkType = LINKTYPE_BATTLE_TOWER;
}
}
diff --git a/src/decoration.c b/src/decoration.c
index d09f238d7..2a8fe973d 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -2154,7 +2154,8 @@ void sub_8129708(void)
}
}
-void sub_81297AC(void)
+// Unused
+void GetEventObjectLocalIdByFlag(void)
{
u8 i;
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index 424b85d62..4af42ca2f 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -423,23 +423,23 @@ static const u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 me
return SecretBase_EventScript_ShieldOrToyTV;
if (MetatileBehavior_IsMB_C6(metatileBehavior) == TRUE)
{
- SetSecretBaseSecretsTvFlags_MiscFurnature();
+ CheckInteractedWithFriendsFurnitureBottom();
return NULL;
}
if (MetatileBehavior_HoldsLargeDecoration(metatileBehavior) == TRUE)
{
- SetSecretBaseSecretsTvFlags_LargeDecorationSpot();
+ CheckInteractedWithFriendsFurnitureMiddle();
return NULL;
}
if (MetatileBehavior_HoldsSmallDecoration(metatileBehavior) == TRUE)
{
- SetSecretBaseSecretsTvFlags_SmallDecorationSpot();
+ CheckInteractedWithFriendsFurnitureTop();
return NULL;
}
}
else if (MetatileBehavior_IsSecretBasePoster(metatileBehavior) == TRUE)
{
- SetSecretBaseSecretsTvFlags_Poster();
+ CheckInteractedWithFriendsPosterDecor();
return NULL;
}
diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c
index 591f61eb7..05fa43338 100644
--- a/src/fldeff_misc.c
+++ b/src/fldeff_misc.c
@@ -20,9 +20,11 @@
#include "string_util.h"
#include "constants/field_effects.h"
#include "constants/metatile_behaviors.h"
+#include "constants/metatile_labels.h"
#include "constants/songs.h"
+#include "constants/tv.h"
#include "constants/vars.h"
-#include "constants/metatile_labels.h"
+
EWRAM_DATA struct MapPosition gPlayerFacingPosition = {0};
@@ -801,16 +803,16 @@ static void Task_SecretBasePCTurnOn(u8 taskId)
{
case 4:
case 12:
- MapGridSetMetatileIdAt(data[0], data[1], 0x224);
+ MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC_On);
CurrentMapDrawMetatileAt(data[0], data[1]);
break;
case 8:
case 16:
- MapGridSetMetatileIdAt(data[0], data[1], 0x220);
+ MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC);
CurrentMapDrawMetatileAt(data[0], data[1]);
break;
case 20:
- MapGridSetMetatileIdAt(data[0], data[1], 0x224);
+ MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC_On);
CurrentMapDrawMetatileAt(data[0], data[1]);
FieldEffectActiveListRemove(FLDEFF_PCTURN_ON);
EnableBothScriptContexts();
@@ -829,9 +831,9 @@ void DoSecretBasePCTurnOffEffect(void)
PlaySE(SE_PC_OFF);
if (!VarGet(VAR_CURRENT_SECRET_BASE))
- MapGridSetMetatileIdAt(x, y, 0x220 | METATILE_COLLISION_MASK);
+ MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_PC | METATILE_COLLISION_MASK);
else
- MapGridSetMetatileIdAt(x, y, 0x221 | METATILE_COLLISION_MASK);
+ MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_RegisterPC | METATILE_COLLISION_MASK);
CurrentMapDrawMetatileAt(x, y);
}
@@ -875,16 +877,16 @@ static void DoBalloonSoundEffect(s16 metatileId)
{
switch (metatileId)
{
- case 824:
+ case METATILE_SecretBase_RedBalloon:
PlaySE(SE_FUUSEN1);
break;
- case 828:
+ case METATILE_SecretBase_BlueBalloon:
PlaySE(SE_FUUSEN2);
break;
- case 832:
+ case METATILE_SecretBase_YellowBalloon:
PlaySE(SE_FUUSEN3);
break;
- case 552:
+ case METATILE_SecretBase_MudBall:
PlaySE(SE_TOY_DANGO);
break;
}
@@ -903,8 +905,8 @@ bool8 FldEff_NopA700(void)
static void DoSecretBaseBreakableDoorEffect(s16 x, s16 y)
{
PlaySE(SE_TOY_KABE);
- MapGridSetMetatileIdAt(x, y, 0x276);
- MapGridSetMetatileIdAt(x, y - 1, 0x26E);
+ MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_BreakableDoor_BottomOpen);
+ MapGridSetMetatileIdAt(x, y - 1, METATILE_SecretBase_BreakableDoor_TopOpen);
CurrentMapDrawMetatileAt(x, y);
CurrentMapDrawMetatileAt(x, y - 1);
}
@@ -946,28 +948,28 @@ static void Task_SecretBaseMusicNoteMatSound(u8 taskId)
{
switch (gTasks[taskId].tMetatileID)
{
- case 632:
+ case METATILE_SecretBase_NoteMat_C:
PlaySE(SE_TOY_C);
break;
- case 633:
+ case METATILE_SecretBase_NoteMat_D:
PlaySE(SE_TOY_D);
break;
- case 634:
+ case METATILE_SecretBase_NoteMat_E:
PlaySE(SE_TOY_E);
break;
- case 635:
+ case METATILE_SecretBase_NoteMat_F:
PlaySE(SE_TOY_F);
break;
- case 636:
+ case METATILE_SecretBase_NoteMat_G:
PlaySE(SE_TOY_G);
break;
- case 637:
+ case METATILE_SecretBase_NoteMat_A:
PlaySE(SE_TOY_A);
break;
- case 638:
+ case METATILE_SecretBase_NoteMat_B:
PlaySE(SE_TOY_B);
break;
- case 691:
+ case METATILE_SecretBase_NoteMat_C_Sharp:
PlaySE(SE_TOY_C1);
break;
}
@@ -1071,12 +1073,12 @@ static void SpriteCB_SandPillar_0(struct Sprite *sprite)
{
PlaySE(SE_W088);
- if (MapGridGetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1) == 646)
- MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, 3586);
+ if (MapGridGetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1) == METATILE_SecretBase_SandOrnament_TopWall)
+ MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, METATILE_SecretBase_Wall_TopMid | METATILE_COLLISION_MASK);
else
- MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, 644);
+ MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, METATILE_SecretBase_SandOrnament_BrokenTop);
- MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], 522);
+ MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], METATILE_SecretBase_Ground);
CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1);
CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6]);
@@ -1092,7 +1094,7 @@ static void SpriteCB_SandPillar_1(struct Sprite *sprite)
}
else
{
- MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], 3724);
+ MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], METATILE_SecretBase_SandOrnament_BrokenBase | METATILE_COLLISION_MASK);
CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6]);
sprite->data[0] = 0;
sprite->callback = SpriteCB_SandPillar_2;
@@ -1105,7 +1107,7 @@ static void SpriteCB_SandPillar_2(struct Sprite *sprite)
EnableBothScriptContexts();
}
-void GetShieldToyTVDecorationInfo(void)
+void InteractWithShieldOrTVDecoration(void)
{
s16 x, y;
s32 metatileId;
@@ -1116,7 +1118,7 @@ void GetShieldToyTVDecorationInfo(void)
switch (metatileId)
{
- case 822:
+ case METATILE_SecretBase_GoldShield_Base1:
ConvertIntToDecimalStringN(gStringVar1, 100, STR_CONV_MODE_LEFT_ALIGN, 3);
StringCopy(gStringVar2, gText_Gold);
@@ -1125,9 +1127,9 @@ void GetShieldToyTVDecorationInfo(void)
if (!VarGet(VAR_CURRENT_SECRET_BASE))
return;
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x10);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_GOLD_SHIELD);
break;
- case 734:
+ case METATILE_SecretBase_SilverShield_Base1:
ConvertIntToDecimalStringN(gStringVar1, 50, STR_CONV_MODE_LEFT_ALIGN, 2);
StringCopy(gStringVar2, gText_Silver);
@@ -1136,31 +1138,31 @@ void GetShieldToyTVDecorationInfo(void)
if (!VarGet(VAR_CURRENT_SECRET_BASE))
return;
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x20);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_SILVER_SHIELD);
break;
- case 756:
+ case METATILE_SecretBase_TV:
gSpecialVar_Result = 1;
if (!VarGet(VAR_CURRENT_SECRET_BASE))
return;
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x80);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_TV);
break;
- case 757:
+ case METATILE_SecretBase_RoundTV:
gSpecialVar_Result = 2;
if (!VarGet(VAR_CURRENT_SECRET_BASE))
return;
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x80);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_TV);
break;
- case 758:
+ case METATILE_SecretBase_CuteTV:
gSpecialVar_Result = 3;
if (!VarGet(VAR_CURRENT_SECRET_BASE))
return;
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x80);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_TV);
break;
}
}
@@ -1172,16 +1174,16 @@ bool8 sub_80FADE4(u16 metatileId, u8 arg1)
if (!arg1)
{
- if (metatileId == 0x285 || metatileId == 0x286)
+ if (metatileId == METATILE_SecretBase_SandOrnament_Top || metatileId == METATILE_SecretBase_SandOrnament_TopWall)
return TRUE;
- if (metatileId == 0x237)
+ if (metatileId == METATILE_SecretBase_BreakableDoor_TopClosed)
return TRUE;
}
else
{
- if (metatileId == 0x28d)
+ if (metatileId == METATILE_SecretBase_SandOrnament_Base1)
return TRUE;
- if (metatileId == 0x23F)
+ if (metatileId == METATILE_SecretBase_BreakableDoor_BottomClosed)
return TRUE;
}
diff --git a/src/item.c b/src/item.c
index 7b8b37c06..61069ca73 100644
--- a/src/item.c
+++ b/src/item.c
@@ -14,6 +14,7 @@
#include "battle_pyramid_bag.h"
#include "constants/items.h"
#include "constants/hold_effects.h"
+#include "constants/tv.h"
extern u16 gUnknown_0203CF30[];
@@ -542,7 +543,7 @@ bool8 RemoveBagItem(u16 itemId, u16 count)
if (CurMapIsSecretBase() == TRUE)
{
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x200);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_BAG);
VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, itemId);
}
diff --git a/src/link.c b/src/link.c
index d6ed9f5f3..939a4afc8 100644
--- a/src/link.c
+++ b/src/link.c
@@ -1349,7 +1349,7 @@ bool8 sub_800AA60(void)
{
if (gLinkPlayers[i].trainerId == gSavedLinkPlayers[i].trainerId)
{
- if (gLinkType == LINKTYPE_0x2288)
+ if (gLinkType == LINKTYPE_BATTLE_TOWER)
{
if (gLinkType == gLinkPlayers[i].linkType)
{
@@ -1902,7 +1902,8 @@ bool32 sub_800B504(void)
return FALSE;
}
-u8 sub_800B518(void)
+// Unused
+u8 GetWirelessCommType(void)
{
return gWirelessCommType;
}
diff --git a/src/mevent_news.c b/src/mevent_news.c
index 192bb0fc7..9e78cf406 100644
--- a/src/mevent_news.c
+++ b/src/mevent_news.c
@@ -53,6 +53,7 @@ void sub_801DBDC(void)
}
}
+// Unused
u16 sub_801DC20(void)
{
u16 *r6 = &gSpecialVar_Result;
diff --git a/src/overworld.c b/src/overworld.c
index 76b201c3b..4736d8a50 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -863,7 +863,7 @@ static void mli0_load_map(u32 a1)
isOutdoors = IsMapTypeOutdoors(gMapHeader.mapType);
isIndoors = IsMapTypeIndoors(gMapHeader.mapType);
- sub_80EB218();
+ CheckLeftFriendsSecretBase();
TrySetMapSaveWarpStatus();
ClearTempFieldEventData();
ResetCyclingRoadChallengeData();
diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c
index 0e191d652..a5c6cfa91 100755
--- a/src/script_pokemon_util_80F87D8.c
+++ b/src/script_pokemon_util_80F87D8.c
@@ -52,6 +52,7 @@ void SetContestTrainerGfxIds(void)
gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_2 - VARS_START] = gContestMons[2].trainerGfxId;
}
+// Unused
void sub_80F8814(void)
{
u16 var1;
@@ -82,7 +83,8 @@ void BufferContestTrainerAndMonNames(void)
BufferContestantMonSpecies();
}
-void sub_80F8864(void)
+// Unused
+void DoesContestCategoryHaveWinner(void)
{
int contestWinner;
switch (gSpecialVar_ContestCategory)
@@ -105,10 +107,10 @@ void sub_80F8864(void)
break;
}
- if (!gSaveBlock1Ptr->contestWinners[contestWinner].species)
- gSpecialVar_0x8004 = 0;
+ if (gSaveBlock1Ptr->contestWinners[contestWinner].species == SPECIES_NONE)
+ gSpecialVar_0x8004 = FALSE;
else
- gSpecialVar_0x8004 = 1;
+ gSpecialVar_0x8004 = TRUE;
}
void SaveMuseumContestPainting(void)
@@ -144,9 +146,10 @@ u8 CountPlayerContestPaintings(void)
return count;
}
+// Unused
void sub_80F8970(void)
{
- s16 sp[4];
+ s16 conditions[CONTESTANT_COUNT];
int i, j;
s16 condition;
s8 var0;
@@ -154,28 +157,27 @@ void sub_80F8970(void)
u8 r8;
u8 r7;
- for (i = 0; i < 4; i++)
- sp[i] = gContestMonConditions[i];
+ for (i = 0; i < CONTESTANT_COUNT; i++)
+ conditions[i] = gContestMonConditions[i];
- for (i = 0; i < 3; i++)
+ for (i = 0; i < CONTESTANT_COUNT - 1; i++)
{
- for (j = 3; j > i; j--)
+ for (j = CONTESTANT_COUNT - 1; j > i; j--)
{
- if (sp[j - 1] < sp[j])
+ if (conditions[j - 1] < conditions[j])
{
- int temp = sp[j];
- sp[j] = sp[j - 1];
- sp[j - 1] = temp;
+ int temp;
+ SWAP(conditions[j], conditions[j - 1], temp)
}
}
}
- condition = sp[gSpecialVar_0x8006];
+ condition = conditions[gSpecialVar_0x8006];
var0 = 0;
r8 = 0;
- for (i = 0; i < 4; i++)
+ for (i = 0; i < CONTESTANT_COUNT; i++)
{
- if (sp[i] == condition)
+ if (conditions[i] == condition)
{
var0++;
if (i == gSpecialVar_0x8006)
@@ -183,15 +185,15 @@ void sub_80F8970(void)
}
}
- for (i = 0; i < 4; i++)
+ for (i = 0; i < CONTESTANT_COUNT; i++)
{
- if (sp[i] == condition)
+ if (conditions[i] == condition)
break;
}
r7 = i;
var2 = r8;
- for (i = 0; i < 4; i++)
+ for (i = 0; i < CONTESTANT_COUNT; i++)
{
if (condition == gContestMonConditions[i])
{
diff --git a/src/secret_base.c b/src/secret_base.c
index f2ac6cb72..e7f40a72b 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -41,11 +41,13 @@
#include "constants/maps.h"
#include "constants/map_types.h"
#include "constants/metatile_behaviors.h"
+#include "constants/metatile_labels.h"
#include "constants/moves.h"
#include "constants/secret_bases.h"
#include "constants/songs.h"
#include "constants/species.h"
#include "constants/trainers.h"
+#include "constants/tv.h"
struct SecretBaseRegistryMenu
{
@@ -88,13 +90,13 @@ static u8 GetSecretBaseOwnerType(u8 secretBaseId);
static const struct SecretBaseEntranceMetatiles sSecretBaseEntranceMetatiles[] =
{
- {.closedMetatileId = 0x0026, .openMetatileId = 0x0036},
- {.closedMetatileId = 0x0027, .openMetatileId = 0x0037},
- {.closedMetatileId = 0x01a0, .openMetatileId = 0x01a1},
- {.closedMetatileId = 0x01a8, .openMetatileId = 0x01a9},
- {.closedMetatileId = 0x01b0, .openMetatileId = 0x01b1},
- {.closedMetatileId = 0x0208, .openMetatileId = 0x0210},
- {.closedMetatileId = 0x0271, .openMetatileId = 0x0278},
+ {.closedMetatileId = METATILE_General_SecretBase_TreeLeft, .openMetatileId = METATILE_General_SecretBase_VineLeft},
+ {.closedMetatileId = METATILE_General_SecretBase_TreeRight, .openMetatileId = METATILE_General_SecretBase_VineRight},
+ {.closedMetatileId = METATILE_General_RedCaveIndent, .openMetatileId = METATILE_General_RedCaveOpen},
+ {.closedMetatileId = METATILE_General_YellowCaveIndent, .openMetatileId = METATILE_General_YellowCaveOpen},
+ {.closedMetatileId = METATILE_General_BlueCaveIndent, .openMetatileId = METATILE_General_BlueCaveOpen},
+ {.closedMetatileId = METATILE_Fallarbor_BrownCaveIndent, .openMetatileId = METATILE_Fallarbor_BrownCaveOpen},
+ {.closedMetatileId = METATILE_Fortree_SecretBase_Shrub, .openMetatileId = METATILE_Fortree_SecretBase_ShrubOpen},
};
// mapNum, warpId, x, y
@@ -452,10 +454,10 @@ static void EnterNewlyCreatedSecretBase_StartFadeIn(void)
ScriptContext2_Enable();
HideMapNamePopUpWindow();
- FindMetatileIdMapCoords(&x, &y, 0x220);
+ FindMetatileIdMapCoords(&x, &y, METATILE_SecretBase_PC);
x += 7;
y += 7;
- MapGridSetMetatileIdAt(x, y, 0x220 | METATILE_COLLISION_MASK);
+ MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_PC | METATILE_COLLISION_MASK);
CurrentMapDrawMetatileAt(x, y);
FadeInFromBlack();
CreateTask(EnterNewlyCreatedSecretBase_WaitFadeIn, 0);
@@ -506,7 +508,7 @@ void InitSecretBaseAppearance(bool8 hidePC)
secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE);
decorations = gSaveBlock1Ptr->secretBases[secretBaseId].decorations;
decorPos = gSaveBlock1Ptr->secretBases[secretBaseId].decorationPositions;
- for (x = 0; x < 16; x++)
+ for (x = 0; x < DECOR_MAX_SECRET_BASE; x++)
{
if (decorations[x] > 0 && decorations[x] <= NUM_DECORATIONS && gDecorations[decorations[x]].permission != DECORPERM_SPRITE)
ShowDecorationOnMap((decorPos[x] >> 4) + 7, (decorPos[x] & 0xF) + 7, decorations[x]);
@@ -515,14 +517,14 @@ void InitSecretBaseAppearance(bool8 hidePC)
if (secretBaseId != 0)
{
// Another player's secret base. Change PC type to the "Register" PC.
- FindMetatileIdMapCoords(&x, &y, 0x220);
- MapGridSetMetatileIdAt(x + 7, y + 7, 0x221 | METATILE_COLLISION_MASK);
+ FindMetatileIdMapCoords(&x, &y, METATILE_SecretBase_PC);
+ MapGridSetMetatileIdAt(x + 7, y + 7, METATILE_SecretBase_RegisterPC | METATILE_COLLISION_MASK);
}
else if (hidePC == TRUE && VarGet(VAR_SECRET_BASE_INITIALIZED) == 1)
{
// Change PC to regular ground tile.
- FindMetatileIdMapCoords(&x, &y, 0x220);
- MapGridSetMetatileIdAt(x + 7, y + 7, 0x20a | METATILE_COLLISION_MASK);
+ FindMetatileIdMapCoords(&x, &y, METATILE_SecretBase_PC);
+ MapGridSetMetatileIdAt(x + 7, y + 7, METATILE_SecretBase_Ground | METATILE_COLLISION_MASK);
}
}
}
@@ -1174,48 +1176,60 @@ void SecretBasePerStepCallback(u8 taskId)
VarSet(VAR_SECRET_BASE_STEP_COUNTER, VarGet(VAR_SECRET_BASE_STEP_COUNTER) + 1);
behavior = MapGridGetMetatileBehaviorAt(x, y);
tileId = MapGridGetMetatileIdAt(x, y);
- if (tileId == 0x234 || tileId == 0x23C)
+ if (tileId == METATILE_SecretBase_Board_Top || tileId == METATILE_SecretBase_Board_Bottom)
{
if (sInFriendSecretBase == TRUE)
{
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x20);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SOLID_BOARD);
}
}
- else if (tileId == 0x2b8 || tileId == 0x2b9 || tileId == 0x2ba || tileId == 0x2c0 || tileId == 0x2c1 || tileId == 0x2c2 || tileId == 0x2c8 || tileId == 0x2c9 || tileId == 0x2ca)
+ else if (tileId == METATILE_SecretBase_SmallChair
+ || tileId == METATILE_SecretBase_PokemonChair
+ || tileId == METATILE_SecretBase_HeavyChair
+ || tileId == METATILE_SecretBase_PrettyChair
+ || tileId == METATILE_SecretBase_ComfortChair
+ || tileId == METATILE_SecretBase_RaggedChair
+ || tileId == METATILE_SecretBase_BrickChair
+ || tileId == METATILE_SecretBase_CampChair
+ || tileId == METATILE_SecretBase_HardChair)
{
if (sInFriendSecretBase == TRUE)
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x01);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_CHAIR);
}
- else if (tileId == 0x239 || tileId == 0x241 || tileId == 0x251 || tileId == 0x259)
+ else if (tileId == METATILE_SecretBase_RedTent_DoorTop
+ || tileId == METATILE_SecretBase_RedTent_Door
+ || tileId == METATILE_SecretBase_BlueTent_DoorTop
+ || tileId == METATILE_SecretBase_BlueTent_Door)
{
if (sInFriendSecretBase == TRUE)
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x04);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_TENT);
}
- else if ((behavior == 0x34 && tileId == 0x26d) || (behavior == 0x35 && MapGridGetMetatileIdAt(x, y) == 0x26a))
+ else if ((behavior == MB_IMPASSABLE_NORTHEAST && tileId == METATILE_SecretBase_Stand_RightCorner)
+ || (behavior == MB_IMPASSABLE_NORTHWEST && MapGridGetMetatileIdAt(x, y) == METATILE_SecretBase_Stand_LeftCorner))
{
if (sInFriendSecretBase == TRUE)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x200);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_STAND);
}
- else if (behavior == 0xc1 && tileId == 0x23d)
+ else if (behavior == MB_IMPASSABLE_WEST_AND_EAST && tileId == METATILE_SecretBase_Slide_Stairs)
{
if (sInFriendSecretBase == TRUE)
{
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x1000);
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x2000);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ SECRET_BASE_USED_SLIDE);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_DECLINED_SLIDE);
}
}
- else if (behavior == 0x47 && tileId == 0x23e)
+ else if (behavior == MB_SLIDE_SOUTH && tileId == METATILE_SecretBase_Slide)
{
if (sInFriendSecretBase == TRUE)
{
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x1000);
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x2000);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SLIDE);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ SECRET_BASE_DECLINED_SLIDE);
}
}
else if (MetatileBehavior_IsSecretBaseGlitterMat(behavior) == TRUE)
{
if (sInFriendSecretBase == TRUE)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x80);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_GLITTER_MAT);
}
else if (MetatileBehavior_IsSecretBaseBalloon(behavior) == TRUE)
{
@@ -1224,13 +1238,13 @@ void SecretBasePerStepCallback(u8 taskId)
{
switch ((int)MapGridGetMetatileIdAt(x, y))
{
- case 0x338:
- case 0x33c:
- case 0x340:
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x02);
+ case METATILE_SecretBase_RedBalloon:
+ case METATILE_SecretBase_BlueBalloon:
+ case METATILE_SecretBase_YellowBalloon:
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_BALLOON);
break;
- case 0x228:
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x100);
+ case METATILE_SecretBase_MudBall:
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_MUD_BALL);
break;
}
}
@@ -1238,23 +1252,23 @@ void SecretBasePerStepCallback(u8 taskId)
else if (MetatileBehavior_IsSecretBaseBreakableDoor(behavior) == TRUE)
{
if (sInFriendSecretBase == TRUE)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x400);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_BREAKABLE_DOOR);
ShatterSecretBaseBreakableDoor(x, y);
}
else if (MetatileBehavior_IsSecretBaseSoundMat(behavior) == TRUE){
if (sInFriendSecretBase == TRUE)
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x8000);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_NOTE_MAT);
}
else if (MetatileBehavior_IsSecretBaseJumpMat(behavior) == TRUE)
{
if (sInFriendSecretBase == TRUE)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x4000);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_JUMP_MAT);
}
else if (MetatileBehavior_IsSecretBaseSpinMat(behavior) == TRUE)
{
if (sInFriendSecretBase == TRUE)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x02);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SPIN_MAT);
}
}
break;
@@ -1417,9 +1431,8 @@ static void SortSecretBasesByRegistryStatus(void)
{
if ((secretBases[i].registryStatus == 0 && secretBases[j].registryStatus == 1) || (secretBases[i].registryStatus == 2 && secretBases[j].registryStatus != 2))
{
- struct SecretBase temp = secretBases[i];
- secretBases[i] = secretBases[j];
- secretBases[j] = temp;
+ struct SecretBase temp;
+ SWAP(secretBases[i], secretBases[j], temp)
}
}
}
@@ -1461,48 +1474,57 @@ bool8 SecretBaseBelongsToPlayer(struct SecretBase *secretBase)
return TRUE;
}
+#define DELETED_BASE_A (1 << 0)
+#define DELETED_BASE_B (1 << 1)
+#define DELETED_BASE_C (1 << 2)
+
void DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(struct SecretBase *basesA, struct SecretBase *basesB, struct SecretBase *basesC)
{
u8 i;
- u8 sbFlags = 0x0;
+ u8 sbFlags = 0;
for (i = 0; i < SECRET_BASES_COUNT; i++)
{
- if (!(sbFlags & 0x1)) // 001
+ if (!(sbFlags & DELETED_BASE_A))
{
if (SecretBaseBelongsToPlayer(&basesA[i]) == TRUE)
{
ClearSecretBase(&basesA[i]);
- sbFlags |= 1;
+ sbFlags |= DELETED_BASE_A;
}
}
- if (!(sbFlags & 0x2)) // 010
+ if (!(sbFlags & DELETED_BASE_B))
{
if (SecretBaseBelongsToPlayer(&basesB[i]) == TRUE)
{
ClearSecretBase(&basesB[i]);
- sbFlags |= 2;
+ sbFlags |= DELETED_BASE_B;
}
}
- if (!(sbFlags & 0x4)) // 100
+ if (!(sbFlags & DELETED_BASE_C))
{
if (SecretBaseBelongsToPlayer(&basesC[i]) == TRUE)
{
ClearSecretBase(&basesC[i]);
- sbFlags |= 4;
+ sbFlags |= DELETED_BASE_C;
}
}
- if (sbFlags == 0x7) // 111
+ if (sbFlags == (DELETED_BASE_A | DELETED_BASE_B | DELETED_BASE_C))
{
break;
}
}
}
-bool8 sub_80EAD14(struct SecretBase *secretBase, struct SecretBase *secretBases, u8 c)
+#undef DELETED_BASE_A
+#undef DELETED_BASE_B
+#undef DELETED_BASE_C
+
+// returns TRUE if secretBase was deleted, FALSE otherwise
+static bool8 ClearDuplicateOwnedSecretBases(struct SecretBase *secretBase, struct SecretBase *secretBases, u8 c)
{
u8 i;
@@ -1546,11 +1568,11 @@ void sub_80EAD94(struct SecretBase *basesA, struct SecretBase *basesB, struct Se
{
basesA[i].sbr_field_1_0 = 1;
}
- if (!sub_80EAD14(&basesA[i], basesB, i))
+ if (!ClearDuplicateOwnedSecretBases(&basesA[i], basesB, i))
{
- if (!sub_80EAD14(&basesA[i], basesC, i))
+ if (!ClearDuplicateOwnedSecretBases(&basesA[i], basesC, i))
{
- sub_80EAD14(&basesA[i], basesD, i);
+ ClearDuplicateOwnedSecretBases(&basesA[i], basesD, i);
}
}
}
@@ -1560,9 +1582,9 @@ void sub_80EAD94(struct SecretBase *basesA, struct SecretBase *basesB, struct Se
if (basesB[i].secretBaseId)
{
basesB[i].battledOwnerToday = 0;
- if (!sub_80EAD14(&basesB[i], basesC, i))
+ if (!ClearDuplicateOwnedSecretBases(&basesB[i], basesC, i))
{
- sub_80EAD14(&basesB[i], basesD, i);
+ ClearDuplicateOwnedSecretBases(&basesB[i], basesD, i);
}
}
}
@@ -1571,7 +1593,7 @@ void sub_80EAD94(struct SecretBase *basesA, struct SecretBase *basesB, struct Se
if (basesC[i].secretBaseId)
{
basesC[i].battledOwnerToday = 0;
- sub_80EAD14(&basesC[i], basesD, i);
+ ClearDuplicateOwnedSecretBases(&basesC[i], basesD, i);
}
if (basesD[i].secretBaseId)
{
@@ -1617,6 +1639,17 @@ void sub_80EAEF4(struct SecretBaseRecordMixer *mixers)
sub_80EABA4(&mixers[2], 0);
}
+#define INIT_SECRET_BASE_RECORD_MIXER(linkId1, linkId2, linkId3) \
+ mixers[0].secretBases = secretBases + linkId1 * recordSize; \
+ mixers[0].version = gLinkPlayers[linkId1].version & 0xFF; \
+ mixers[0].language = gLinkPlayers[linkId1].language; \
+ mixers[1].secretBases = secretBases + linkId2 * recordSize; \
+ mixers[1].version = gLinkPlayers[linkId2].version & 0xFF; \
+ mixers[1].language = gLinkPlayers[linkId2].language; \
+ mixers[2].secretBases = secretBases + linkId3 * recordSize; \
+ mixers[2].version = gLinkPlayers[linkId3].version & 0xFF; \
+ mixers[2].language = gLinkPlayers[linkId3].language;
+
void ReceiveSecretBasesData(void *secretBases, size_t recordSize, u8 linkIdx)
{
struct SecretBaseRecordMixer mixers[3];
@@ -1638,48 +1671,16 @@ void ReceiveSecretBasesData(void *secretBases, size_t recordSize, u8 linkIdx)
switch (linkIdx)
{
case 0:
- mixers[0].secretBases = secretBases + 1 * recordSize;
- mixers[0].version = gLinkPlayers[1].version & 0xFF;
- mixers[0].language = gLinkPlayers[1].language;
- mixers[1].secretBases = secretBases + 2 * recordSize;
- mixers[1].version = gLinkPlayers[2].version & 0xFF;
- mixers[1].language = gLinkPlayers[2].language;
- mixers[2].secretBases = secretBases + 3 * recordSize;
- mixers[2].version = gLinkPlayers[3].version & 0xFF;
- mixers[2].language = gLinkPlayers[3].language;
+ INIT_SECRET_BASE_RECORD_MIXER(1, 2, 3)
break;
case 1:
- mixers[0].secretBases = secretBases + 2 * recordSize;
- mixers[0].version = gLinkPlayers[2].version & 0xFF;
- mixers[0].language = gLinkPlayers[2].language;
- mixers[1].secretBases = secretBases + 3 * recordSize;
- mixers[1].version = gLinkPlayers[3].version & 0xFF;
- mixers[1].language = gLinkPlayers[3].language;
- mixers[2].secretBases = secretBases + 0 * recordSize;
- mixers[2].version = gLinkPlayers[0].version & 0xFF;
- mixers[2].language = gLinkPlayers[0].language;
+ INIT_SECRET_BASE_RECORD_MIXER(2, 3, 0)
break;
case 2:
- mixers[0].secretBases = secretBases + 3 * recordSize;
- mixers[0].version = gLinkPlayers[3].version & 0xFF;
- mixers[0].language = gLinkPlayers[3].language;
- mixers[1].secretBases = secretBases + 0 * recordSize;
- mixers[1].version = gLinkPlayers[0].version & 0xFF;
- mixers[1].language = gLinkPlayers[0].language;
- mixers[2].secretBases = secretBases + 1 * recordSize;
- mixers[2].version = gLinkPlayers[1].version & 0xFF;
- mixers[2].language = gLinkPlayers[1].language;
+ INIT_SECRET_BASE_RECORD_MIXER(3, 0, 1)
break;
case 3:
- mixers[0].secretBases = secretBases + 0 * recordSize;
- mixers[0].version = gLinkPlayers[0].version & 0xFF;
- mixers[0].language = gLinkPlayers[0].language;
- mixers[1].secretBases = secretBases + 1 * recordSize;
- mixers[1].version = gLinkPlayers[1].version & 0xFF;
- mixers[1].language = gLinkPlayers[1].language;
- mixers[2].secretBases = secretBases + 2 * recordSize;
- mixers[2].version = gLinkPlayers[2].version & 0xFF;
- mixers[2].language = gLinkPlayers[2].language;
+ INIT_SECRET_BASE_RECORD_MIXER(0, 1, 2)
break;
}
@@ -1734,13 +1735,13 @@ void InitSecretBaseVars(void)
sInFriendSecretBase = FALSE;
}
-void sub_80EB218(void)
+void CheckLeftFriendsSecretBase(void)
{
if (VarGet(VAR_SECRET_BASE_IS_NOT_LOCAL) && sInFriendSecretBase == TRUE && !CurMapIsSecretBase())
{
VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, FALSE);
sInFriendSecretBase = FALSE;
- sub_80EEA70();
+ TryPutSecretBaseSecretsOnAir();
VarSet(VAR_SECRET_BASE_STEP_COUNTER, 0);
VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, 0);
VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, 0);
@@ -1749,252 +1750,245 @@ void sub_80EB218(void)
}
}
-void sub_80EB290(void)
+void CheckInteractedWithFriendsDollDecor(void)
{
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x800);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_DOLL);
}
-void sub_80EB2C8(void)
+void CheckInteractedWithFriendsCushionDecor(void)
{
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x400);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_CUSHION);
}
-void sub_80EB300(void)
+void DeclinedSecretBaseBattle(void)
{
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
{
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800);
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001);
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x2000);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~(SECRET_BASE_BATTLED_WON | SECRET_BASE_BATTLED_LOST | SECRET_BASE_DECLINED_BATTLE));
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~(SECRET_BASE_BATTLED_DRAW));
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_DECLINED_BATTLE);
}
}
-void sub_80EB368(void)
+void WonSecretBaseBattle(void)
{
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
{
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800);
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001);
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x800);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~(SECRET_BASE_BATTLED_WON | SECRET_BASE_BATTLED_LOST | SECRET_BASE_DECLINED_BATTLE));
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~(SECRET_BASE_BATTLED_DRAW));
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_BATTLED_WON);
}
}
-void sub_80EB3D0(void)
+void LostSecretBaseBattle(void)
{
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
{
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800);
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001);
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x1000);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~(SECRET_BASE_BATTLED_WON | SECRET_BASE_BATTLED_LOST | SECRET_BASE_DECLINED_BATTLE));
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~(SECRET_BASE_BATTLED_DRAW));
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_BATTLED_LOST);
}
}
-void sub_80EB438(void)
+void DrewSecretBaseBattle(void)
{
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
{
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800);
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001);
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x001);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~(SECRET_BASE_BATTLED_WON | SECRET_BASE_BATTLED_LOST | SECRET_BASE_DECLINED_BATTLE));
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~(SECRET_BASE_BATTLED_DRAW));
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_BATTLED_DRAW);
}
}
-void SetSecretBaseSecretsTvFlags_Poster(void)
+void CheckInteractedWithFriendsPosterDecor(void)
{
s16 x, y;
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
switch (MapGridGetMetatileIdAt(x, y))
{
- case 0x31C:
- case 0x31D:
- case 0x31E:
- case 0x31F:
- case 0x324:
- case 0x325:
- case 0x326:
- case 0x327:
- case 0x32C:
- case 0x32D:
- case 0x330:
- case 0x331:
- case 0x332:
- case 0x333:
- case 0x334:
+ case METATILE_SecretBase_PikaPoster_Left:
+ case METATILE_SecretBase_PikaPoster_Right:
+ case METATILE_SecretBase_LongPoster_Left:
+ case METATILE_SecretBase_LongPoster_Right:
+ case METATILE_SecretBase_SeaPoster_Left:
+ case METATILE_SecretBase_SeaPoster_Right:
+ case METATILE_SecretBase_SkyPoster_Left:
+ case METATILE_SecretBase_SkyPoster_Right:
+ case METATILE_SecretBase_KissPoster_Left:
+ case METATILE_SecretBase_KissPoster_Right:
+ case METATILE_SecretBase_BallPoster:
+ case METATILE_SecretBase_GreenPoster:
+ case METATILE_SecretBase_RedPoster:
+ case METATILE_SecretBase_BluePoster:
+ case METATILE_SecretBase_CutePoster:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x4000);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_POSTER);
break;
}
}
-void SetSecretBaseSecretsTvFlags_MiscFurnature(void)
+void CheckInteractedWithFriendsFurnitureBottom(void)
{
s16 x, y;
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
switch (MapGridGetMetatileIdAt(x, y))
{
- case 0x28a:
- case 0x28b:
- // Bird Statue
+ case METATILE_SecretBase_GlassOrnament_Base1:
+ case METATILE_SecretBase_GlassOrnament_Base2:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x40);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_GLASS_ORNAMENT);
break;
- case 0x2d8:
- case 0x2d9:
- case 0x2da:
- case 0x2db:
- case 0x2dc:
- case 0x2dd:
- case 0x2e8:
- case 0x2e9:
- case 0x2ea:
- case 0x2eb:
- case 0x2ec:
- case 0x2ed:
- case 0x2ee:
- case 0x2ef:
- case 0x2f8:
- case 0x2f9:
- case 0x2fa:
- case 0x2fb:
- // Plants
+ case METATILE_SecretBase_RedPlant_Base1:
+ case METATILE_SecretBase_RedPlant_Base2:
+ case METATILE_SecretBase_TropicalPlant_Base1:
+ case METATILE_SecretBase_TropicalPlant_Base2:
+ case METATILE_SecretBase_PrettyFlower_Base1:
+ case METATILE_SecretBase_PrettyFlower_Base2:
+ case METATILE_SecretBase_ColorfulFlowers_BaseLeft1:
+ case METATILE_SecretBase_ColorfulFlowers_BaseRight1:
+ case METATILE_SecretBase_ColorfulFlowers_BaseLeft2:
+ case METATILE_SecretBase_ColorfulFlowers_BaseRight2:
+ case METATILE_SecretBase_BigPlant_BaseLeft1:
+ case METATILE_SecretBase_BigPlant_BaseRight1:
+ case METATILE_SecretBase_BigPlant_BaseLeft2:
+ case METATILE_SecretBase_BigPlant_BaseRight2:
+ case METATILE_SecretBase_GorgeousPlant_BaseLeft1:
+ case METATILE_SecretBase_GorgeousPlant_BaseRight1:
+ case METATILE_SecretBase_GorgeousPlant_BaseLeft2:
+ case METATILE_SecretBase_GorgeousPlant_BaseRight2:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x8);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_PLANT);
break;
- case 0x22c:
- case 0x233:
- // Fence
+ case METATILE_SecretBase_Fence_Horizontal:
+ case METATILE_SecretBase_Fence_Vertical:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x40);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_FENCE);
break;
- case 0x288:
- case 0x289:
- // Tire
+ case METATILE_SecretBase_Tire_BottomLeft:
+ case METATILE_SecretBase_Tire_BottomRight:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x100);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_TIRE);
break;
- case 0x22d:
- case 0x22e:
- case 0x22f:
- // Bricks
+ case METATILE_SecretBase_RedBrick_Bottom:
+ case METATILE_SecretBase_YellowBrick_Bottom:
+ case METATILE_SecretBase_BlueBrick_Bottom:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x10);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_BRICK);
break;
- case 0x287:
- case 0x28f:
- case 0x298:
- case 0x299:
- case 0x29a:
- case 0x29b:
- case 0x29c:
- case 0x29d:
- case 0x29e:
- case 0x29f:
- case 0x2ab:
- case 0x2b0:
- case 0x2b1:
- case 0x2b2:
- case 0x2b4:
- case 0x2b5:
- case 0x2b6:
- case 0x2b7:
- case 0x2cb:
- case 0x2cc:
- case 0x2cd:
- case 0x2ce:
- case 0x2cf:
- // Tables
+ case METATILE_SecretBase_SmallDesk:
+ case METATILE_SecretBase_PokemonDesk:
+ case METATILE_SecretBase_HeavyDesk_BottomLeft:
+ case METATILE_SecretBase_HeavyDesk_BottomMid:
+ case METATILE_SecretBase_HeavyDesk_BottomRight:
+ case METATILE_SecretBase_RaggedDesk_BottomLeft:
+ case METATILE_SecretBase_RaggedDesk_BottomMid:
+ case METATILE_SecretBase_RaggedDesk_BottomRight:
+ case METATILE_SecretBase_ComfortDesk_BottomLeft:
+ case METATILE_SecretBase_ComfortDesk_BottomMid:
+ case METATILE_SecretBase_ComfortDesk_BottomRight:
+ case METATILE_SecretBase_BrickDesk_BottomLeft:
+ case METATILE_SecretBase_BrickDesk_BottomMid:
+ case METATILE_SecretBase_BrickDesk_BottomRight:
+ case METATILE_SecretBase_CampDesk_BottomLeft:
+ case METATILE_SecretBase_CampDesk_BottomMid:
+ case METATILE_SecretBase_CampDesk_BottomRight:
+ case METATILE_SecretBase_HardDesk_BottomLeft:
+ case METATILE_SecretBase_HardDesk_BottomMid:
+ case METATILE_SecretBase_HardDesk_BottomRight:
+ case METATILE_SecretBase_PrettyDesk_BottomLeft:
+ case METATILE_SecretBase_PrettyDesk_BottomMid:
+ case METATILE_SecretBase_PrettyDesk_BottomRight:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_DESK);
break;
}
}
-void SetSecretBaseSecretsTvFlags_LargeDecorationSpot(void)
+void CheckInteractedWithFriendsFurnitureMiddle(void)
{
s16 x, y;
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
switch (MapGridGetMetatileIdAt(x, y))
{
- case 0x291:
- case 0x294:
- case 0x297:
- case 0x2a1:
- case 0x2a5:
- case 0x2a9:
- case 0x2ad:
- case 0x2bb:
- case 0x2be:
- case 0x2c3:
- case 0x2c6:
+ case METATILE_SecretBase_HeavyDesk_TopMid:
+ case METATILE_SecretBase_RaggedDesk_TopMid:
+ case METATILE_SecretBase_ComfortDesk_TopMid:
+ case METATILE_SecretBase_BrickDesk_TopMid:
+ case METATILE_SecretBase_BrickDesk_Center:
+ case METATILE_SecretBase_CampDesk_TopMid:
+ case METATILE_SecretBase_CampDesk_Center:
+ case METATILE_SecretBase_HardDesk_TopMid:
+ case METATILE_SecretBase_HardDesk_Center:
+ case METATILE_SecretBase_PrettyDesk_TopMid:
+ case METATILE_SecretBase_PrettyDesk_Center:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_DESK);
break;
}
}
-void SetSecretBaseSecretsTvFlags_SmallDecorationSpot(void)
+void CheckInteractedWithFriendsFurnitureTop(void)
{
s16 x, y;
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
switch (MapGridGetMetatileIdAt(x, y))
{
- case 0x290:
- case 0x292:
- case 0x293:
- case 0x295:
- case 0x296:
- case 0x2a0:
- case 0x2a2:
- case 0x2a3:
- case 0x2a4:
- case 0x2a6:
- case 0x2a7:
- case 0x2a8:
- case 0x2aa:
- case 0x2ac:
- case 0x2ae:
- case 0x2af:
- case 0x2bc:
- case 0x2bd:
- case 0x2bf:
- case 0x2c4:
- case 0x2c5:
- case 0x2c7:
+ case METATILE_SecretBase_HeavyDesk_TopLeft:
+ case METATILE_SecretBase_HeavyDesk_TopRight:
+ case METATILE_SecretBase_RaggedDesk_TopLeft:
+ case METATILE_SecretBase_RaggedDesk_TopRight:
+ case METATILE_SecretBase_ComfortDesk_TopLeft:
+ case METATILE_SecretBase_ComfortDesk_TopRight:
+ case METATILE_SecretBase_BrickDesk_TopLeft:
+ case METATILE_SecretBase_BrickDesk_TopRight:
+ case METATILE_SecretBase_BrickDesk_MidLeft:
+ case METATILE_SecretBase_BrickDesk_MidRight:
+ case METATILE_SecretBase_CampDesk_TopLeft:
+ case METATILE_SecretBase_CampDesk_TopRight:
+ case METATILE_SecretBase_CampDesk_MidLeft:
+ case METATILE_SecretBase_CampDesk_MidRight:
+ case METATILE_SecretBase_HardDesk_TopLeft:
+ case METATILE_SecretBase_HardDesk_TopRight:
+ case METATILE_SecretBase_HardDesk_MidLeft:
+ case METATILE_SecretBase_HardDesk_MidRight:
+ case METATILE_SecretBase_PrettyDesk_TopLeft:
+ case METATILE_SecretBase_PrettyDesk_TopRight:
+ case METATILE_SecretBase_PrettyDesk_MidLeft:
+ case METATILE_SecretBase_PrettyDesk_MidRight:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_DESK);
break;
- case 0x280:
- case 0x281:
+ case METATILE_SecretBase_Tire_TopLeft:
+ case METATILE_SecretBase_Tire_TopRight:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x100);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_TIRE);
break;
- case 0x225:
- case 0x226:
- case 0x227:
+ case METATILE_SecretBase_RedBrick_Top:
+ case METATILE_SecretBase_YellowBrick_Top:
+ case METATILE_SecretBase_BlueBrick_Top:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x10);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_BRICK);
break;
}
}
-void SetSecretBaseSecretsTvFlags_SandOrnament(void)
+void CheckInteractedWithFriendsSandOrnament(void)
{
s16 x, y;
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
switch ((int)MapGridGetMetatileIdAt(x, y))
{
- case 0x28d:
- case 0x28e:
- // Sand Ornament
+ case METATILE_SecretBase_SandOrnament_Base1:
+ case METATILE_SecretBase_SandOrnament_Base2:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x4);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SAND_ORNAMENT);
break;
}
}
diff --git a/src/tv.c b/src/tv.c
index fc23e538d..2e9254253 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -637,50 +637,51 @@ static const u8 *const sTVWhatsNo1InHoennTodayTextGroup[] = {
gTVWhatsNo1InHoennTodayText08
};
-static const u8 *const sTVSecretBaseSecretsTextGroup[] = {
- gTVSecretBaseSecretsText00,
- gTVSecretBaseSecretsText01,
- gTVSecretBaseSecretsText02,
- gTVSecretBaseSecretsText03,
- gTVSecretBaseSecretsText04,
- gTVSecretBaseSecretsText05,
- gTVSecretBaseSecretsText06,
- gTVSecretBaseSecretsText07,
- gTVSecretBaseSecretsText08,
- gTVSecretBaseSecretsText09,
- gTVSecretBaseSecretsText10,
- gTVSecretBaseSecretsText11,
- gTVSecretBaseSecretsText12,
- gTVSecretBaseSecretsText13,
- gTVSecretBaseSecretsText14,
- gTVSecretBaseSecretsText15,
- gTVSecretBaseSecretsText16,
- gTVSecretBaseSecretsText17,
- gTVSecretBaseSecretsText18,
- gTVSecretBaseSecretsText19,
- gTVSecretBaseSecretsText20,
- gTVSecretBaseSecretsText21,
- gTVSecretBaseSecretsText22,
- gTVSecretBaseSecretsText23,
- gTVSecretBaseSecretsText24,
- gTVSecretBaseSecretsText25,
- gTVSecretBaseSecretsText26,
- gTVSecretBaseSecretsText27,
- gTVSecretBaseSecretsText28,
- gTVSecretBaseSecretsText29,
- gTVSecretBaseSecretsText30,
- gTVSecretBaseSecretsText31,
- gTVSecretBaseSecretsText32,
- gTVSecretBaseSecretsText33,
- gTVSecretBaseSecretsText34,
- gTVSecretBaseSecretsText35,
- gTVSecretBaseSecretsText36,
- gTVSecretBaseSecretsText37,
- gTVSecretBaseSecretsText38,
- gTVSecretBaseSecretsText39,
- gTVSecretBaseSecretsText40,
- gTVSecretBaseSecretsText41,
- gTVSecretBaseSecretsText42
+static const u8 *const sTVSecretBaseSecretsTextGroup[SBSECRETS_NUM_STATES] =
+{
+ [SBSECRETS_STATE_INTRO] = TVSecretBaseSecrets_Text_Intro,
+ [SBSECRETS_STATE_DO_NEXT1] = TVSecretBaseSecrets_Text_WhatWillPlayerDoNext1,
+ [SBSECRETS_STATE_DO_NEXT2] = TVSecretBaseSecrets_Text_WhatWillPlayerDoNext2,
+ [SBSECRETS_STATE_TOOK_X_STEPS] = TVSecretBaseSecrets_Text_TookXStepsBeforeLeaving,
+ [SBSECRETS_STATE_BASE_INTEREST_LOW] = TVSecretBaseSecrets_Text_BaseFailedToInterestPlayer,
+ [SBSECRETS_STATE_BASE_INTEREST_MED] = TVSecretBaseSecrets_Text_PlayerEnjoyedBase,
+ [SBSECRETS_STATE_BASE_INTEREST_HIGH] = TVSecretBaseSecrets_Text_PlayerHugeFanOfBase,
+ [SBSECRETS_STATE_OUTRO] = TVSecretBaseSecrets_Text_Outro,
+ [SBSECRETS_STATE_NOTHING_USED1] = TVSecretBaseSecrets_Text_StoppedMoving1,
+ [SBSECRETS_STATE_NOTHING_USED2] = TVSecretBaseSecrets_Text_StoppedMoving2,
+ [SBSECRETS_STATE_USED_CHAIR] = TVSecretBaseSecrets_Text_UsedChair,
+ [SBSECRETS_STATE_USED_BALLOON] = TVSecretBaseSecrets_Text_UsedBalloon,
+ [SBSECRETS_STATE_USED_TENT] = TVSecretBaseSecrets_Text_UsedTent,
+ [SBSECRETS_STATE_USED_PLANT] = TVSecretBaseSecrets_Text_UsedPlant,
+ [SBSECRETS_STATE_USED_GOLD_SHIELD] = TVSecretBaseSecrets_Text_UsedGoldShield,
+ [SBSECRETS_STATE_USED_SILVER_SHIELD] = TVSecretBaseSecrets_Text_UsedSilverShield,
+ [SBSECRETS_STATE_USED_GLASS_ORNAMENT] = TVSecretBaseSecrets_Text_UsedGlassOrnament,
+ [SBSECRETS_STATE_USED_TV] = TVSecretBaseSecrets_Text_UsedTV,
+ [SBSECRETS_STATE_USED_MUD_BALL] = TVSecretBaseSecrets_Text_UsedMudBall,
+ [SBSECRETS_STATE_USED_BAG] = TVSecretBaseSecrets_Text_UsedBag,
+ [SBSECRETS_STATE_USED_CUSHION] = TVSecretBaseSecrets_Text_UsedCushion,
+ [SBSECRETS_STATE_HIT_CUSHION] = TVSecretBaseSecrets_Text_HitCushion,
+ [SBSECRETS_STATE_HUGGED_CUSHION] = TVSecretBaseSecrets_Text_HuggedCushion,
+ [SBSECRETS_STATE_BATTLED_WON] = TVSecretBaseSecrets_Text_BattledWon,
+ [SBSECRETS_STATE_BATTLED_LOST] = TVSecretBaseSecrets_Text_BattledLost,
+ [SBSECRETS_STATE_DECLINED_BATTLE] = TVSecretBaseSecrets_Text_DeclinedBattle,
+ [SBSECRETS_STATE_USED_POSTER] = TVSecretBaseSecrets_Text_UsedPoster,
+ [SBSECRETS_STATE_USED_NOTE_MAT] = TVSecretBaseSecrets_Text_UsedNoteMat,
+ [SBSECRETS_STATE_BATTLED_DRAW] = TVSecretBaseSecrets_Text_BattledDraw,
+ [SBSECRETS_STATE_USED_SPIN_MAT] = TVSecretBaseSecrets_Text_UsedSpinMat,
+ [SBSECRETS_STATE_USED_SAND_ORNAMENT] = TVSecretBaseSecrets_Text_UsedSandOrnament,
+ [SBSECRETS_STATE_USED_DESK] = TVSecretBaseSecrets_Text_UsedDesk,
+ [SBSECRETS_STATE_USED_BRICK] = TVSecretBaseSecrets_Text_UsedBrick,
+ [SBSECRETS_STATE_USED_SOLID_BOARD] = TVSecretBaseSecrets_Text_UsedSolidBoard,
+ [SBSECRETS_STATE_USED_FENCE] = TVSecretBaseSecrets_Text_UsedFence,
+ [SBSECRETS_STATE_USED_GLITTER_MAT] = TVSecretBaseSecrets_Text_UsedGlitterMat,
+ [SBSECRETS_STATE_USED_TIRE] = TVSecretBaseSecrets_Text_UsedTire,
+ [SBSECRETS_STATE_USED_STAND] = TVSecretBaseSecrets_Text_UsedStand,
+ [SBSECRETS_STATE_USED_BREAKABLE_DOOR] = TVSecretBaseSecrets_Text_BrokeDoor,
+ [SBSECRETS_STATE_USED_DOLL] = TVSecretBaseSecrets_Text_UsedDoll,
+ [SBSECRETS_STATE_USED_SLIDE] = TVSecretBaseSecrets_Text_UsedSlide,
+ [SBSECRETS_STATE_DECLINED_SLIDE] = TVSecretBaseSecrets_Text_UsedSlideButDidntGoDown,
+ [SBSECRETS_STATE_USED_JUMP_MAT] = TVSecretBaseSecrets_Text_UsedJumpMat
};
static const u8 *const sTVSafariFanClubTextGroup[] = {
@@ -709,39 +710,42 @@ static const u8 *const sTVInSearchOfTrainersTextGroup[] = {
gTVInSearchOfTrainersText08
};
-const u8 sTVSecretBaseSecretsStateLookup[] = {
- 0x0a,
- 0x0b,
- 0x0c,
- 0x0d,
- 0x0e,
- 0x0f,
- 0x10,
- 0x11,
- 0x12,
- 0x13,
- 0x14,
- 0x17,
- 0x18,
- 0x19,
- 0x1a,
- 0x1b,
- 0x1c,
- 0x1d,
- 0x1e,
- 0x1f,
- 0x20,
- 0x21,
- 0x22,
- 0x23,
- 0x24,
- 0x25,
- 0x26,
- 0x27,
- 0x28,
- 0x29,
- 0x2a,
- 0x2b
+// Secret Base Secrets TV Show states for actions that can be taken in a secret base
+// The flags that determine whether or not the action was taken are commented
+const u8 sTVSecretBaseSecretsActions[NUM_SECRET_BASE_FLAGS] =
+{
+ SBSECRETS_STATE_USED_CHAIR, // SECRET_BASE_USED_CHAIR
+ SBSECRETS_STATE_USED_BALLOON, // SECRET_BASE_USED_BALLOON
+ SBSECRETS_STATE_USED_TENT, // SECRET_BASE_USED_TENT
+ SBSECRETS_STATE_USED_PLANT, // SECRET_BASE_USED_PLANT
+ SBSECRETS_STATE_USED_GOLD_SHIELD, // SECRET_BASE_USED_GOLD_SHIELD
+ SBSECRETS_STATE_USED_SILVER_SHIELD, // SECRET_BASE_USED_SILVER_SHIELD
+ SBSECRETS_STATE_USED_GLASS_ORNAMENT, // SECRET_BASE_USED_GLASS_ORNAMENT
+ SBSECRETS_STATE_USED_TV, // SECRET_BASE_USED_TV
+ SBSECRETS_STATE_USED_MUD_BALL, // SECRET_BASE_USED_MUD_BALL
+ SBSECRETS_STATE_USED_BAG, // SECRET_BASE_USED_BAG
+ SBSECRETS_STATE_USED_CUSHION, // SECRET_BASE_USED_CUSHION
+ SBSECRETS_STATE_BATTLED_WON, // SECRET_BASE_BATTLED_WON
+ SBSECRETS_STATE_BATTLED_LOST, // SECRET_BASE_BATTLED_LOST
+ SBSECRETS_STATE_DECLINED_BATTLE, // SECRET_BASE_DECLINED_BATTLE
+ SBSECRETS_STATE_USED_POSTER, // SECRET_BASE_USED_POSTER
+ SBSECRETS_STATE_USED_NOTE_MAT, // SECRET_BASE_USED_NOTE_MAT
+ SBSECRETS_STATE_BATTLED_DRAW, // SECRET_BASE_BATTLED_DRAW
+ SBSECRETS_STATE_USED_SPIN_MAT, // SECRET_BASE_USED_SPIN_MAT
+ SBSECRETS_STATE_USED_SAND_ORNAMENT, // SECRET_BASE_USED_SAND_ORNAMENT
+ SBSECRETS_STATE_USED_DESK, // SECRET_BASE_USED_DESK
+ SBSECRETS_STATE_USED_BRICK, // SECRET_BASE_USED_BRICK
+ SBSECRETS_STATE_USED_SOLID_BOARD, // SECRET_BASE_USED_SOLID_BOARD
+ SBSECRETS_STATE_USED_FENCE, // SECRET_BASE_USED_FENCE
+ SBSECRETS_STATE_USED_GLITTER_MAT, // SECRET_BASE_USED_GLITTER_MAT
+ SBSECRETS_STATE_USED_TIRE, // SECRET_BASE_USED_TIRE
+ SBSECRETS_STATE_USED_STAND, // SECRET_BASE_USED_STAND
+ SBSECRETS_STATE_USED_BREAKABLE_DOOR, // SECRET_BASE_USED_BREAKABLE_DOOR
+ SBSECRETS_STATE_USED_DOLL, // SECRET_BASE_USED_DOLL
+ SBSECRETS_STATE_USED_SLIDE, // SECRET_BASE_USED_SLIDE
+ SBSECRETS_STATE_DECLINED_SLIDE, // SECRET_BASE_DECLINED_SLIDE
+ SBSECRETS_STATE_USED_JUMP_MAT, // SECRET_BASE_USED_JUMP_MAT
+ SBSECRETS_NUM_STATES // SECRET_BASE_UNUSED_FLAG. Odd that this is included, if it were used it would overflow sTVSecretBaseSecretsTextGroup
};
// .text
@@ -2544,7 +2548,7 @@ void TryPutFrontierTVShowOnAir(u16 winStreak, u8 facilityAndMode)
}
}
-void sub_80EEA70(void)
+void TryPutSecretBaseSecretsOnAir(void)
{
TVShow *show;
u8 strbuf[32];
@@ -3591,7 +3595,7 @@ void GetMomOrDadStringForTVMessage(void)
}
}
-void sub_80F01B8(void)
+void HideBattleTowerReporter(void)
{
VarSet(VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, 0);
RemoveEventObjectByLocalIdAndMap(5, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
@@ -7340,35 +7344,32 @@ static void DoTVShowWhatsNo1InHoennToday(void)
ShowFieldMessage(sTVWhatsNo1InHoennTodayTextGroup[state]);
}
-u8 TVShowGetFlagCount(TVShow *show)
+u8 SecretBaseSecrets_GetNumActionsTaken(TVShow *show)
{
u8 i;
- u8 tot;
+ u8 flagsSet;
- for (i = 0, tot = 0; i < 32; i ++)
+ for (i = 0, flagsSet = 0; i < NUM_SECRET_BASE_FLAGS; i ++)
{
if ((show->secretBaseSecrets.flags >> i) & 1)
- {
- tot ++;
- }
+ flagsSet++;
}
- return tot;
+ return flagsSet;
}
-static u8 SecretBaseSecrets_GetStateForFlagNumber(TVShow *show, u8 a1)
+static u8 SecretBaseSecrets_GetStateByFlagNumber(TVShow *show, u8 flagId)
{
u8 i;
- u8 tot;
+ u8 flagsSet;
- for (i = 0, tot = 0; i < 32; i ++)
+ for (i = 0, flagsSet = 0; i < NUM_SECRET_BASE_FLAGS; i ++)
{
if ((show->secretBaseSecrets.flags >> i) & 1)
{
- if (tot == a1)
- {
- return sTVSecretBaseSecretsStateLookup[i];
- }
- tot ++;
+ if (flagsSet == flagId)
+ return sTVSecretBaseSecretsActions[i];
+
+ flagsSet++;
}
}
return 0;
@@ -7378,7 +7379,7 @@ static void DoTVShowSecretBaseSecrets(void)
{
TVShow *show;
u8 state;
- u8 bitCount;
+ u8 numActions;
u16 i;
show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004];
@@ -7386,226 +7387,128 @@ static void DoTVShowSecretBaseSecrets(void)
state = sTVShowState;
switch (state)
{
- case 0:
+ case SBSECRETS_STATE_INTRO:
TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
- bitCount = TVShowGetFlagCount(show);
- if (bitCount == 0)
+ numActions = SecretBaseSecrets_GetNumActionsTaken(show);
+ if (numActions == 0)
{
- sTVShowState = 8;
+ sTVShowState = SBSECRETS_STATE_NOTHING_USED1;
}
else
{
- show->secretBaseSecrets.savedState = 1;
- sTVSecretBaseSecretsRandomValues[0] = Random() % bitCount;
- sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[0]);
+ show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT1;
+ sTVSecretBaseSecretsRandomValues[0] = Random() % numActions;
+ sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[0]);
}
break;
- case 1:
+ case SBSECRETS_STATE_DO_NEXT1:
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
- bitCount = TVShowGetFlagCount(show);
- switch (bitCount)
+ numActions = SecretBaseSecrets_GetNumActionsTaken(show);
+ switch (numActions)
{
case 1:
- sTVShowState = 9;
+ sTVShowState = SBSECRETS_STATE_NOTHING_USED2;
break;
case 2:
- show->secretBaseSecrets.savedState = 2;
+ show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT2;
if (sTVSecretBaseSecretsRandomValues[0] == 0)
{
- sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, 1);
+ sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, 1);
}
else
{
- sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, 0);
+ sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, 0);
}
break;
default:
for (i = 0; i < 0xFFFF; i ++)
{
- sTVSecretBaseSecretsRandomValues[1] = Random() % bitCount;
+ sTVSecretBaseSecretsRandomValues[1] = Random() % numActions;
if (sTVSecretBaseSecretsRandomValues[1] != sTVSecretBaseSecretsRandomValues[0])
{
break;
}
}
- show->secretBaseSecrets.savedState = 2;
- sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[1]);
+ show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT2;
+ sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[1]);
break;
}
break;
- case 2:
+ case SBSECRETS_STATE_DO_NEXT2:
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
- bitCount = TVShowGetFlagCount(show);
- if (bitCount == 2)
+ numActions = SecretBaseSecrets_GetNumActionsTaken(show);
+ if (numActions == 2)
{
- sTVShowState = 9;
+ sTVShowState = SBSECRETS_STATE_NOTHING_USED2;
}
else
{
for (i = 0; i < 0xFFFF; i ++)
{
- sTVSecretBaseSecretsRandomValues[2] = Random() % bitCount;
+ sTVSecretBaseSecretsRandomValues[2] = Random() % numActions;
if (sTVSecretBaseSecretsRandomValues[2] != sTVSecretBaseSecretsRandomValues[0] && sTVSecretBaseSecretsRandomValues[2] != sTVSecretBaseSecretsRandomValues[1])
{
break;
}
}
- show->secretBaseSecrets.savedState = 3;
- sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[2]);
+ show->secretBaseSecrets.savedState = SBSECRETS_STATE_TOOK_X_STEPS;
+ sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[2]);
}
break;
- case 3:
+ case SBSECRETS_STATE_TOOK_X_STEPS:
TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
TV_PrintIntToStringVar(2, show->secretBaseSecrets.stepsInBase);
if (show->secretBaseSecrets.stepsInBase <= 30)
{
- sTVShowState = 4;
+ sTVShowState = SBSECRETS_STATE_BASE_INTEREST_LOW;
}
else if (show->secretBaseSecrets.stepsInBase <= 100)
{
- sTVShowState = 5;
+ sTVShowState = SBSECRETS_STATE_BASE_INTEREST_MED;
}
else
{
- sTVShowState = 6;
+ sTVShowState = SBSECRETS_STATE_BASE_INTEREST_HIGH;
}
break;
- case 4:
- TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
- TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
- sTVShowState = 7;
- break;
- case 5:
- TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
- TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
- sTVShowState = 7;
- break;
- case 6:
+ case SBSECRETS_STATE_BASE_INTEREST_LOW ... SBSECRETS_STATE_BASE_INTEREST_HIGH:
TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
- sTVShowState = 7;
+ sTVShowState = SBSECRETS_STATE_OUTRO;
break;
- case 7:
+ case SBSECRETS_STATE_OUTRO:
TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
TVShowDone();
break;
- case 8:
- sTVShowState = 3;
- break;
- case 9:
- sTVShowState = 3;
+ // All below states are descriptions of what the player interacted with while in the secret base
+ case SBSECRETS_STATE_NOTHING_USED1:
+ sTVShowState = SBSECRETS_STATE_TOOK_X_STEPS;
break;
- case 10:
- sTVShowState = show->secretBaseSecrets.savedState;
+ case SBSECRETS_STATE_NOTHING_USED2:
+ sTVShowState = SBSECRETS_STATE_TOOK_X_STEPS;
break;
- case 11:
+ case SBSECRETS_STATE_USED_CHAIR ... SBSECRETS_STATE_USED_MUD_BALL:
sTVShowState = show->secretBaseSecrets.savedState;
break;
- case 12:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 13:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 14:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 15:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 16:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 17:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 18:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 19:
+ case SBSECRETS_STATE_USED_BAG:
StringCopy(gStringVar2, ItemId_GetName(show->secretBaseSecrets.item));
sTVShowState = show->secretBaseSecrets.savedState;
break;
- case 20:
+ case SBSECRETS_STATE_USED_CUSHION:
+ // Randomly decide based on trainer ID if the player hugged or hit the cushion
if (show->common.trainerIdLo & 1)
{
- sTVShowState = 22;
+ sTVShowState = SBSECRETS_STATE_HUGGED_CUSHION;
}
else
{
- sTVShowState = 21;
+ sTVShowState = SBSECRETS_STATE_HIT_CUSHION;
}
break;
- case 21:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 22:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 23:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 24:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 25:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 26:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 27:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 28:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 29:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 30:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 31:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 32:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 33:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 34:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 35:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 36:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 37:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 38:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 39:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 40:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 41:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 42:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 43:
+ case SBSECRETS_STATE_HIT_CUSHION ... SBSECRETS_NUM_STATES:
sTVShowState = show->secretBaseSecrets.savedState;
break;
}