Some script clean up, document secret base secrets show

This commit is contained in:
GriffinR
2020-01-08 04:26:26 -05:00
committed by huderlem
parent 0284014e0e
commit 6a470ddfda
36 changed files with 920 additions and 1287 deletions
@@ -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.$"
@@ -6,7 +6,7 @@ BattleFrontier_BattleTowerLobby_MapScripts:: @ 823E67B
.byte 0 .byte 0
BattleFrontier_BattleTowerLobby_OnResume: @ 823E690 BattleFrontier_BattleTowerLobby_OnResume: @ 823E690
special sub_81653CC special TryHideBattleTowerReporter
end end
BattleFrontier_BattleTowerLobby_OnTransition: @ 823E694 BattleFrontier_BattleTowerLobby_OnTransition: @ 823E694
@@ -857,7 +857,7 @@ BattleFrontier_BattleTowerLobby_EventScript_CableLinkSuccessful:: @ 823F3AF
waitstate waitstate
playse SE_SAVE playse SE_SAVE
waitse waitse
special sub_80B3BC4 special TrySetBattleTowerLinkType
goto BattleFrontier_BattleTowerLobby_EventScript_EnterElevator goto BattleFrontier_BattleTowerLobby_EventScript_EnterElevator
end end
+1 -2
View File
@@ -457,8 +457,7 @@ LilycoveCity_Harbor_Movement_PlayerBoardFerryNorth: @ 821E633
walk_up walk_up
step_end step_end
@ Unused LilycoveCity_Harbor_Movement_UnusedBoardFerry: @ 821E635
LilycoveCity_Harbor_Movement_21E635: @ 821E635
walk_up walk_up
step_end step_end
+15 -30
View File
@@ -184,8 +184,7 @@ MtChimney_Movement_ArchieExitNorth: @ 822EF9C
walk_down walk_down
step_end step_end
@ Unused MtChimney_Movement_Unused1: @ 822EFA6
MtChimney_Movement_22EFA6: @ 822EFA6
walk_down walk_down
walk_down walk_down
walk_down walk_down
@@ -205,8 +204,7 @@ MtChimney_Movement_22EFA6: @ 822EFA6
walk_down walk_down
step_end step_end
@ Unused MtChimney_Movement_Unused2: @ 822EFB8
MtChimney_Movement_22EFB8: @ 822EFB8
walk_down walk_down
walk_down walk_down
walk_down walk_down
@@ -217,8 +215,7 @@ MtChimney_Movement_22EFB8: @ 822EFB8
walk_down walk_down
step_end step_end
@ Unused MtChimney_Movement_Unused3: @ 822EFC1
MtChimney_Movement_22EFC1: @ 822EFC1
walk_right walk_right
walk_down walk_down
walk_down walk_down
@@ -235,8 +232,7 @@ MtChimney_Movement_22EFC1: @ 822EFC1
walk_down walk_down
step_end step_end
@ Unused MtChimney_Movement_Unused4: @ 822EFD0
MtChimney_Movement_22EFD0: @ 822EFD0
walk_fast_down walk_fast_down
walk_fast_down walk_fast_down
walk_fast_down walk_fast_down
@@ -263,8 +259,7 @@ MtChimney_Movement_22EFD0: @ 822EFD0
walk_down walk_down
step_end step_end
@ Unused MtChimney_Movement_Unused5: @ 822EFE9
MtChimney_Movement_22EFE9: @ 822EFE9
delay_16 delay_16
delay_16 delay_16
delay_16 delay_16
@@ -277,8 +272,7 @@ MtChimney_Movement_22EFE9: @ 822EFE9
walk_down walk_down
step_end step_end
@ Unused MtChimney_Movement_Unused6: @ 822EFF4
MtChimney_Movement_22EFF4: @ 822EFF4
delay_16 delay_16
walk_left walk_left
walk_down walk_down
@@ -296,8 +290,7 @@ MtChimney_Movement_22EFF4: @ 822EFF4
walk_down walk_down
step_end step_end
@ Unused MtChimney_Movement_Unused7: @ 822F004
MtChimney_Movement_22F004: @ 822F004
delay_16 delay_16
walk_left walk_left
walk_left walk_left
@@ -316,8 +309,7 @@ MtChimney_Movement_22F004: @ 822F004
walk_down walk_down
step_end step_end
@ Unused MtChimney_Movement_Unused8: @ 822F015
MtChimney_Movement_22F015: @ 822F015
delay_16 delay_16
walk_down walk_down
walk_left walk_left
@@ -327,8 +319,7 @@ MtChimney_Movement_22F015: @ 822F015
walk_in_place_fastest_down walk_in_place_fastest_down
step_end step_end
@ Unused MtChimney_Movement_Unused9: @ 822F01D
MtChimney_Movement_22F01D: @ 822F01D
walk_down walk_down
walk_down walk_down
walk_down walk_down
@@ -344,13 +335,11 @@ MtChimney_Movement_22F01D: @ 822F01D
walk_down walk_down
step_end step_end
@ Unused MtChimney_Movement_Unused10: @ 822F02B
MtChimney_Movement_22F02B: @ 822F02B
walk_down walk_down
step_end step_end
@ Unused MtChimney_Movement_Unused11: @ 822F02D
MtChimney_Movement_22F02D: @ 822F02D
walk_down walk_down
walk_down walk_down
walk_down walk_down
@@ -360,8 +349,7 @@ MtChimney_Movement_22F02D: @ 822F02D
walk_down walk_down
step_end step_end
@ Unused MtChimney_Movement_Unused12: @ 822F035
MtChimney_Movement_22F035: @ 822F035
delay_16 delay_16
delay_16 delay_16
walk_in_place_fastest_left walk_in_place_fastest_left
@@ -373,8 +361,7 @@ MtChimney_Movement_22F035: @ 822F035
walk_down walk_down
step_end step_end
@ Unused MtChimney_Movement_Unused13: @ 822F03F
MtChimney_Movement_22F03F: @ 822F03F
delay_16 delay_16
delay_16 delay_16
delay_16 delay_16
@@ -387,16 +374,14 @@ MtChimney_Movement_22F03F: @ 822F03F
walk_down walk_down
step_end step_end
@ Unused MtChimney_Movement_Unused14: @ 822F04A
MtChimney_Movement_22F04A: @ 822F04A
lock_facing_direction lock_facing_direction
walk_fast_left walk_fast_left
unlock_facing_direction unlock_facing_direction
face_right face_right
step_end step_end
@ Unused MtChimney_Movement_Unused15: @ 822F04F
MtChimney_Movement_22F04F: @ 822F04F
walk_left walk_left
walk_in_place_fastest_right walk_in_place_fastest_right
delay_16 delay_16
+2 -1
View File
@@ -351,7 +351,8 @@ PetalburgCity_EventScript_LeadPlayerToGym3:: @ 81DC5FF
waitmovement 0 waitmovement 0
return return
PetalburgCity_Movement_1DC611:: @ 81DC611 @ Unused
PetalburgCity_Movement_Delay48:: @ 81DC611
delay_16 delay_16
delay_16 delay_16
delay_16 delay_16
+1 -2
View File
@@ -673,8 +673,7 @@ PetalburgCity_Gym_Movement_WallysUncleApproachPlayerWest: @ 82050D0
walk_up walk_up
step_end step_end
@ Unused PetalburgCity_Gym_Movement_Unused: @ 82050D8
PetalburgCity_Gym_Movement_2050D8: @ 82050D8
walk_in_place_fastest_up walk_in_place_fastest_up
delay_16 delay_16
delay_16 delay_16
+2 -4
View File
@@ -78,13 +78,11 @@ Route128_EventScript_KyogreAwakenedScene:: @ 81F6B57
releaseall releaseall
end end
@ Unused Route128_Movement_Unused1: @ 81F6C76
Route128_Movement_1F6C76: @ 81F6C76
walk_fast_left walk_fast_left
step_end step_end
@ Unused Route128_Movement_Unused2: @ 81F6C78
Route128_Movement_1F6C78: @ 81F6C78
walk_left walk_left
walk_left walk_left
walk_left walk_left
@@ -72,8 +72,7 @@ RustboroCity_DevonCorp_3F_EventScript_MeetPresident:: @ 821246E
releaseall releaseall
end end
@ Unused RustboroCity_DevonCorp_3F_Movement_Unused: @ 821252F
RustboroCity_DevonCorp_3F_Movement_21252F: @ 821252F
walk_up walk_up
walk_up walk_up
walk_up walk_up
+3 -6
View File
@@ -184,22 +184,19 @@ RusturfTunnel_Movement_PlayerWatchWandaExit: @ 822D02F
walk_in_place_fastest_right walk_in_place_fastest_right
step_end step_end
@ Unused RusturfTunnel_Movement_Unused1: @ 822D035
RusturfTunnel_Movement_22D035: @ 822D035
walk_left walk_left
walk_in_place_fastest_right walk_in_place_fastest_right
step_end step_end
@ Unused RusturfTunnel_Movement_Unused2: @ 822D038
RusturfTunnel_Movement_22D038: @ 822D038
walk_down walk_down
walk_in_place_fastest_up walk_in_place_fastest_up
delay_8 delay_8
walk_in_place_fastest_right walk_in_place_fastest_right
step_end step_end
@ Unused RusturfTunnel_Movement_Unused3: @ 822D03D
RusturfTunnel_Movement_22D03D: @ 822D03D
walk_up walk_up
walk_in_place_fastest_down walk_in_place_fastest_down
delay_8 delay_8
+2 -4
View File
@@ -153,8 +153,7 @@ SeafloorCavern_Room9_Movement_ArchieApproachPlayer: @ 823502A
walk_right walk_right
step_end step_end
@ Unused SeafloorCavern_Room9_Movement_Unused1: @ 8235032
SeafloorCavern_Room9_Movement_235032: @ 8235032
walk_left walk_left
walk_left walk_left
step_end step_end
@@ -164,8 +163,7 @@ SeafloorCavern_Room9_Movement_ArchieListenMessage: @ 8235035
delay_16 delay_16
step_end step_end
@ Unused SeafloorCavern_Room9_Movement_Unused2: @ 8235038
SeafloorCavern_Room9_Movement_235038: @ 8235038
walk_right walk_right
step_end step_end
+1 -2
View File
@@ -668,8 +668,7 @@ SlateportCity_Movement_TyExit: @ 81DD326
walk_left walk_left
step_end step_end
@ Unused SlateportCity_Movement_Unused: @ 81DD334
SlateportCity_Movement_1DD334: @ 81DD334
walk_down walk_down
walk_in_place_fastest_up walk_in_place_fastest_up
step_end step_end
@@ -129,8 +129,7 @@ SlateportCity_OceanicMuseum_2F_Movement_PlayerApproachGruntWest: @ 820BCC2
walk_in_place_fastest_left walk_in_place_fastest_left
step_end step_end
@ Unused SlateportCity_OceanicMuseum_2F_Movement_Unused: @ 820BCC8
SlateportCity_OceanicMuseum_2F_Movement_20BCC8: @ 820BCC8
walk_up walk_up
walk_left walk_left
walk_left walk_left
+21 -21
View File
@@ -364,7 +364,7 @@ SecretBase_EventScript_Trainer0PreChampion:: @ 8275E25
end end
SecretBase_EventScript_Trainer0DeclineBattle:: @ 8275E2F SecretBase_EventScript_Trainer0DeclineBattle:: @ 8275E2F
special sub_80EB300 special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0 setvar VAR_RESULT, 0
special SetBattledOwnerFromResult special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer0DeclineBattle, MSGBOX_DEFAULT msgbox SecretBase_Text_Trainer0DeclineBattle, MSGBOX_DEFAULT
@@ -401,7 +401,7 @@ SecretBase_EventScript_Trainer1PreChampion:: @ 8275E9D
end end
SecretBase_EventScript_Trainer1DeclineBattle:: @ 8275EA7 SecretBase_EventScript_Trainer1DeclineBattle:: @ 8275EA7
special sub_80EB300 special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0 setvar VAR_RESULT, 0
special SetBattledOwnerFromResult special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer1DeclineBattle, MSGBOX_DEFAULT msgbox SecretBase_Text_Trainer1DeclineBattle, MSGBOX_DEFAULT
@@ -438,7 +438,7 @@ SecretBase_EventScript_Trainer2PreChampion:: @ 8275F15
end end
SecretBase_EventScript_Trainer2DeclineBattle:: @ 8275F1F SecretBase_EventScript_Trainer2DeclineBattle:: @ 8275F1F
special sub_80EB300 special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0 setvar VAR_RESULT, 0
special SetBattledOwnerFromResult special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer2DeclineBattle, MSGBOX_DEFAULT msgbox SecretBase_Text_Trainer2DeclineBattle, MSGBOX_DEFAULT
@@ -475,7 +475,7 @@ SecretBase_EventScript_Trainer3PreChampion:: @ 8275F8D
end end
SecretBase_EventScript_Trainer3DeclineBattle:: @ 8275F97 SecretBase_EventScript_Trainer3DeclineBattle:: @ 8275F97
special sub_80EB300 special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0 setvar VAR_RESULT, 0
special SetBattledOwnerFromResult special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer3DeclineBattle, MSGBOX_DEFAULT msgbox SecretBase_Text_Trainer3DeclineBattle, MSGBOX_DEFAULT
@@ -512,7 +512,7 @@ SecretBase_EventScript_Trainer4PreChampion:: @ 8276005
end end
SecretBase_EventScript_Trainer4DeclineBattle:: @ 827600F SecretBase_EventScript_Trainer4DeclineBattle:: @ 827600F
special sub_80EB300 special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0 setvar VAR_RESULT, 0
special SetBattledOwnerFromResult special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer4DeclineBattle, MSGBOX_DEFAULT msgbox SecretBase_Text_Trainer4DeclineBattle, MSGBOX_DEFAULT
@@ -549,7 +549,7 @@ SecretBase_EventScript_Trainer5PreChampion:: @ 827607D
end end
SecretBase_EventScript_Trainer5DeclineBattle:: @ 8276087 SecretBase_EventScript_Trainer5DeclineBattle:: @ 8276087
special sub_80EB300 special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0 setvar VAR_RESULT, 0
special SetBattledOwnerFromResult special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer5DeclineBattle, MSGBOX_DEFAULT msgbox SecretBase_Text_Trainer5DeclineBattle, MSGBOX_DEFAULT
@@ -586,7 +586,7 @@ SecretBase_EventScript_Trainer6PreChampion:: @ 82760F5
end end
SecretBase_EventScript_Trainer6DeclineBattle:: @ 82760FF SecretBase_EventScript_Trainer6DeclineBattle:: @ 82760FF
special sub_80EB300 special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0 setvar VAR_RESULT, 0
special SetBattledOwnerFromResult special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer6DeclineBattle, MSGBOX_DEFAULT msgbox SecretBase_Text_Trainer6DeclineBattle, MSGBOX_DEFAULT
@@ -623,7 +623,7 @@ SecretBase_EventScript_Trainer7PreChampion:: @ 827616D
end end
SecretBase_EventScript_Trainer7DeclineBattle:: @ 8276177 SecretBase_EventScript_Trainer7DeclineBattle:: @ 8276177
special sub_80EB300 special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0 setvar VAR_RESULT, 0
special SetBattledOwnerFromResult special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer7DeclineBattle, MSGBOX_DEFAULT msgbox SecretBase_Text_Trainer7DeclineBattle, MSGBOX_DEFAULT
@@ -660,7 +660,7 @@ SecretBase_EventScript_Trainer8PreChampion:: @ 82761E5
end end
SecretBase_EventScript_Trainer8DeclineBattle:: @ 82761EF SecretBase_EventScript_Trainer8DeclineBattle:: @ 82761EF
special sub_80EB300 special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0 setvar VAR_RESULT, 0
special SetBattledOwnerFromResult special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer8DeclineBattle, MSGBOX_DEFAULT msgbox SecretBase_Text_Trainer8DeclineBattle, MSGBOX_DEFAULT
@@ -697,7 +697,7 @@ SecretBase_EventScript_Trainer9PreChampion:: @ 827625D
end end
SecretBase_EventScript_Trainer9DeclineBattle:: @ 8276267 SecretBase_EventScript_Trainer9DeclineBattle:: @ 8276267
special sub_80EB300 special DeclinedSecretBaseBattle
setvar VAR_RESULT, 0 setvar VAR_RESULT, 0
special SetBattledOwnerFromResult special SetBattledOwnerFromResult
msgbox SecretBase_Text_Trainer9DeclineBattle, MSGBOX_DEFAULT msgbox SecretBase_Text_Trainer9DeclineBattle, MSGBOX_DEFAULT
@@ -716,35 +716,35 @@ SecretBase_EventScript_BattleTrainer:: @ 8276286
special DoSpecialTrainerBattle special DoSpecialTrainerBattle
waitstate waitstate
compare VAR_RESULT, B_OUTCOME_DREW compare VAR_RESULT, B_OUTCOME_DREW
call_if_eq SecretBase_EventScript_2762BD call_if_eq SecretBase_EventScript_DrewSecretBaseBattle
compare VAR_RESULT, B_OUTCOME_WON compare VAR_RESULT, B_OUTCOME_WON
call_if_eq SecretBase_EventScript_2762C1 call_if_eq SecretBase_EventScript_WonSecretBaseBattle
compare VAR_RESULT, B_OUTCOME_LOST compare VAR_RESULT, B_OUTCOME_LOST
call_if_eq SecretBase_EventScript_2762C5 call_if_eq SecretBase_EventScript_LostSecretBaseBattle
special HealPlayerParty special HealPlayerParty
release release
end end
SecretBase_EventScript_2762BD:: @ 82762BD SecretBase_EventScript_DrewSecretBaseBattle:: @ 82762BD
special sub_80EB438 special DrewSecretBaseBattle
return return
SecretBase_EventScript_2762C1:: @ 82762C1 SecretBase_EventScript_WonSecretBaseBattle:: @ 82762C1
special sub_80EB368 special WonSecretBaseBattle
return return
SecretBase_EventScript_2762C5:: @ 82762C5 SecretBase_EventScript_LostSecretBaseBattle:: @ 82762C5
special sub_80EB3D0 special LostSecretBaseBattle
return return
.include "data/scripts/secret_power_tm.inc" .include "data/scripts/secret_power_tm.inc"
SecretBase_EventScript_DollInteract:: @ 82766A2 SecretBase_EventScript_DollInteract:: @ 82766A2
special sub_80EB290 special CheckInteractedWithFriendsDollDecor
end end
SecretBase_EventScript_CushionInteract:: @ 82766A6 SecretBase_EventScript_CushionInteract:: @ 82766A6
special sub_80EB2C8 special CheckInteractedWithFriendsCushionDecor
end end
SecretBase_Text_AllDecorationsWillBeReturned: @ 82766AA SecretBase_Text_AllDecorationsWillBeReturned: @ 82766AA
+10 -10
View File
@@ -157,33 +157,33 @@ SecretBase_EventScript_PCTurnOff:: @ 823B66E
end end
@ Unused @ Unused
SecretBase_EventScript_23B674:: @ 823B674 SecretBase_EventScript_Poster:: @ 823B674
special SetSecretBaseSecretsTvFlags_Poster special CheckInteractedWithFriendsPosterDecor
end end
@ Unused @ Unused
SecretBase_EventScript_23B678:: @ 823B678 SecretBase_EventScript_FurnitureBottom:: @ 823B678
special SetSecretBaseSecretsTvFlags_MiscFurnature special CheckInteractedWithFriendsFurnitureBottom
end end
@ Unused @ Unused
SecretBase_EventScript_23B67C:: @ 823B67C SecretBase_EventScript_FurnitureMiddle:: @ 823B67C
special SetSecretBaseSecretsTvFlags_LargeDecorationSpot special CheckInteractedWithFriendsFurnitureMiddle
end end
@ Unused @ Unused
SecretBase_EventScript_23B680:: @ 823B680 SecretBase_EventScript_FurnitureTop:: @ 823B680
special SetSecretBaseSecretsTvFlags_SmallDecorationSpot special CheckInteractedWithFriendsFurnitureTop
end end
SecretBase_EventScript_SandOrnament:: @ 823B684 SecretBase_EventScript_SandOrnament:: @ 823B684
special SetSecretBaseSecretsTvFlags_SandOrnament special CheckInteractedWithFriendsSandOrnament
dofieldeffect FLDEFF_SAND_PILLAR dofieldeffect FLDEFF_SAND_PILLAR
waitstate waitstate
end end
SecretBase_EventScript_ShieldOrToyTV:: @ 823B68C SecretBase_EventScript_ShieldOrToyTV:: @ 823B68C
special GetShieldToyTVDecorationInfo special InteractWithShieldOrTVDecoration
compare VAR_RESULT, 0 compare VAR_RESULT, 0
goto_if_eq SecretBase_EventScript_BattleTowerShield goto_if_eq SecretBase_EventScript_BattleTowerShield
compare VAR_RESULT, 1 compare VAR_RESULT, 1
+18 -18
View File
@@ -28,7 +28,7 @@ gSpecials:: @ 81DBA64
def_special GetSecretBaseOwnerAndState def_special GetSecretBaseOwnerAndState
def_special InitSecretBaseDecorationSprites def_special InitSecretBaseDecorationSprites
def_special SetDecoration def_special SetDecoration
def_special sub_81297AC def_special GetEventObjectLocalIdByFlag
def_special GetSecretBaseTypeInFrontOfPlayer def_special GetSecretBaseTypeInFrontOfPlayer
def_special SetSecretBaseOwnerGfxId def_special SetSecretBaseOwnerGfxId
def_special sub_8129708 def_special sub_8129708
@@ -44,7 +44,7 @@ gSpecials:: @ 81DBA64
def_special ColosseumPlayerSpotTriggered def_special ColosseumPlayerSpotTriggered
def_special PlayerEnteredTradeSeat def_special PlayerEnteredTradeSeat
def_special nullsub_37 def_special nullsub_37
def_special sub_80B3254 def_special CableClubSaveGame
def_special TryBerryBlenderLinkup def_special TryBerryBlenderLinkup
def_special GetLinkPartnerNames def_special GetLinkPartnerNames
def_special SpawnLinkPartnerEventObject def_special SpawnLinkPartnerEventObject
@@ -147,7 +147,7 @@ gSpecials:: @ 81DBA64
def_special CountPartyAliveNonEggMons_IgnoreVar0x8004Slot def_special CountPartyAliveNonEggMons_IgnoreVar0x8004Slot
def_special ShouldReadyContestArtist def_special ShouldReadyContestArtist
def_special SaveMuseumContestPainting def_special SaveMuseumContestPainting
def_special sub_80F8864 def_special DoesContestCategoryHaveWinner
def_special CountPlayerContestPaintings def_special CountPlayerContestPaintings
def_special ShowContestWinner def_special ShowContestWinner
def_special MauvilleGymSetDefaultBarriers def_special MauvilleGymSetDefaultBarriers
@@ -317,7 +317,7 @@ gSpecials:: @ 81DBA64
def_special ScriptCheckFreePokemonStorageSpace def_special ScriptCheckFreePokemonStorageSpace
def_special DoSealedChamberShakingEffect1 def_special DoSealedChamberShakingEffect1
def_special ShowDeptStoreElevatorFloorSelect def_special ShowDeptStoreElevatorFloorSelect
def_special GetShieldToyTVDecorationInfo def_special InteractWithShieldOrTVDecoration
def_special IsPokerusInParty def_special IsPokerusInParty
def_special SetSootopolisGymCrackedIceMetatiles def_special SetSootopolisGymCrackedIceMetatiles
def_special ShakeCamera def_special ShakeCamera
@@ -348,7 +348,7 @@ gSpecials:: @ 81DBA64
def_special HasAllHoennMons def_special HasAllHoennMons
def_special MonOTNameNotPlayer def_special MonOTNameNotPlayer
def_special BufferLottoTicketNumber def_special BufferLottoTicketNumber
def_special sub_81653CC def_special TryHideBattleTowerReporter
def_special DoesPartyHaveEnigmaBerry def_special DoesPartyHaveEnigmaBerry
def_special ScriptRandom def_special ScriptRandom
def_special SetChampionSaveWarp def_special SetChampionSaveWarp
@@ -361,17 +361,17 @@ gSpecials:: @ 81DBA64
def_special IncrementDailyPlantedBerries def_special IncrementDailyPlantedBerries
def_special IncrementDailyPickedBerries def_special IncrementDailyPickedBerries
def_special InitSecretBaseVars def_special InitSecretBaseVars
def_special SetSecretBaseSecretsTvFlags_SandOrnament def_special CheckInteractedWithFriendsSandOrnament
def_special sub_80EB300 def_special DeclinedSecretBaseBattle
def_special sub_80EB438 def_special DrewSecretBaseBattle
def_special sub_80EB368 def_special WonSecretBaseBattle
def_special sub_80EB3D0 def_special LostSecretBaseBattle
def_special sub_80EB290 def_special CheckInteractedWithFriendsDollDecor
def_special sub_80EB2C8 def_special CheckInteractedWithFriendsCushionDecor
def_special SetSecretBaseSecretsTvFlags_MiscFurnature def_special CheckInteractedWithFriendsFurnitureBottom
def_special SetSecretBaseSecretsTvFlags_LargeDecorationSpot def_special CheckInteractedWithFriendsFurnitureMiddle
def_special SetSecretBaseSecretsTvFlags_SmallDecorationSpot def_special CheckInteractedWithFriendsFurnitureTop
def_special SetSecretBaseSecretsTvFlags_Poster def_special CheckInteractedWithFriendsPosterDecor
def_special SetLilycoveLadyGfx def_special SetLilycoveLadyGfx
def_special Script_GetLilycoveLadyId def_special Script_GetLilycoveLadyId
def_special GetFavorLadyState def_special GetFavorLadyState
@@ -444,7 +444,7 @@ gSpecials:: @ 81DBA64
def_special GetDeptStoreDefaultFloorChoice def_special GetDeptStoreDefaultFloorChoice
def_special BufferVarsForIVRater def_special BufferVarsForIVRater
def_special LinkContestWaitForConnection def_special LinkContestWaitForConnection
def_special sub_800B518 def_special GetWirelessCommType
def_special LinkContestTryShowWirelessIndicator def_special LinkContestTryShowWirelessIndicator
def_special LinkContestTryHideWirelessIndicator def_special LinkContestTryHideWirelessIndicator
def_special IsWirelessContest def_special IsWirelessContest
@@ -534,4 +534,4 @@ gSpecials:: @ 81DBA64
def_special TryPrepareSecondApproachingTrainer def_special TryPrepareSecondApproachingTrainer
def_special RemoveRecordsWindow def_special RemoveRecordsWindow
def_special CloseDeptStoreElevatorWindow def_special CloseDeptStoreElevatorWindow
def_special sub_80B3BC4 def_special TrySetBattleTowerLinkType
+43 -43
View File
@@ -2079,7 +2079,7 @@ gTVWhatsNo1InHoennTodayText08:: @ 0828858B
.string "Viewers, take heart from {STR_VAR_1}!\n" .string "Viewers, take heart from {STR_VAR_1}!\n"
.string "You, too, can be no. 1 every day!$" .string "You, too, can be no. 1 every day!$"
gTVSecretBaseSecretsText00:: @ 08288608 TVSecretBaseSecrets_Text_Intro:: @ 08288608
.string "SECRET BASE SECRETS!\p" .string "SECRET BASE SECRETS!\p"
.string "What do TRAINERS do in the secrecy\n" .string "What do TRAINERS do in the secrecy\n"
.string "of SECRET BASES?\p" .string "of SECRET BASES?\p"
@@ -2090,88 +2090,88 @@ gTVSecretBaseSecretsText00:: @ 08288608
.string "Let's have a peek!\p" .string "Let's have a peek!\p"
.string "What will {STR_VAR_2} do?$" .string "What will {STR_VAR_2} do?$"
gTVSecretBaseSecretsText01:: @ 082886C8 TVSecretBaseSecrets_Text_WhatWillPlayerDoNext1:: @ 082886C8
.string "What will {STR_VAR_2} do next?$" .string "What will {STR_VAR_2} do next?$"
gTVSecretBaseSecretsText02:: @ 082886DE TVSecretBaseSecrets_Text_WhatWillPlayerDoNext2:: @ 082886DE
.string "And now, what will {STR_VAR_2} do?$" .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 the end, {STR_VAR_2} took {STR_VAR_3} steps\n"
.string "in {STR_VAR_1}'s SECRET BASE before\l" .string "in {STR_VAR_1}'s SECRET BASE before\l"
.string "leaving.$" .string "leaving.$"
gTVSecretBaseSecretsText04:: @ 08288739 TVSecretBaseSecrets_Text_BaseFailedToInterestPlayer:: @ 08288739
.string "Hmm…\p" .string "Hmm…\p"
.string "It appears as if {STR_VAR_1}'s SECRET\n" .string "It appears as if {STR_VAR_1}'s SECRET\n"
.string "BASE failed to interest {STR_VAR_2}…$" .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_2} appears to have enjoyed\n"
.string "{STR_VAR_1}'s SECRET BASE thoroughly.$" .string "{STR_VAR_1}'s SECRET BASE thoroughly.$"
gTVSecretBaseSecretsText06:: @ 082887AF TVSecretBaseSecrets_Text_PlayerHugeFanOfBase:: @ 082887AF
.string "{STR_VAR_2} appears to have become\n" .string "{STR_VAR_2} appears to have become\n"
.string "a huge fan of {STR_VAR_1}'s\l" .string "a huge fan of {STR_VAR_1}'s\l"
.string "SECRET BASE.$" .string "SECRET BASE.$"
gTVSecretBaseSecretsText07:: @ 082887E9 TVSecretBaseSecrets_Text_Outro:: @ 082887E9
.string "Viewers may want to check out\n" .string "Viewers may want to check out\n"
.string "{STR_VAR_1}'s SECRET BASE, too.\p" .string "{STR_VAR_1}'s SECRET BASE, too.\p"
.string "Tune in next time as we visit another\n" .string "Tune in next time as we visit another\n"
.string "SECRET BASE! Thanks for joining us!$" .string "SECRET BASE! Thanks for joining us!$"
gTVSecretBaseSecretsText08:: @ 08288868 TVSecretBaseSecrets_Text_StoppedMoving1:: @ 08288868
.string "The visitor has stopped!\p" .string "The visitor has stopped!\p"
.string "The visitor isn't moving at all!\p" .string "The visitor isn't moving at all!\p"
.string "Was {STR_VAR_1}'s SECRET BASE\n" .string "Was {STR_VAR_1}'s SECRET BASE\n"
.string "that unimpressive?$" .string "that unimpressive?$"
gTVSecretBaseSecretsText09:: @ 082888CA TVSecretBaseSecrets_Text_StoppedMoving2:: @ 082888CA
.string "The visitor has stopped!\p" .string "The visitor has stopped!\p"
.string "The visitor isn't moving at all!\p" .string "The visitor isn't moving at all!\p"
.string "Is it fatigue?\n" .string "Is it fatigue?\n"
.string "Has the visitor grown weary?$" .string "Has the visitor grown weary?$"
gTVSecretBaseSecretsText10:: @ 08288930 TVSecretBaseSecrets_Text_UsedChair:: @ 08288930
.string "The visitor sat down on a chair!\n" .string "The visitor sat down on a chair!\n"
.string "The visitor is seated!\p" .string "The visitor is seated!\p"
.string "Look at that look of delight!\p" .string "Look at that look of delight!\p"
.string "That chair must be very comfortable\n" .string "That chair must be very comfortable\n"
.string "to get that response!$" .string "to get that response!$"
gTVSecretBaseSecretsText11:: @ 082889C0 TVSecretBaseSecrets_Text_UsedBalloon:: @ 082889C0
.string "The visitor charged at a balloon!\p" .string "The visitor charged at a balloon!\p"
.string "It burst!\n" .string "It burst!\n"
.string "Oh, my goodness, it popped!\p" .string "Oh, my goodness, it popped!\p"
.string "The visitor appears startled by\n" .string "The visitor appears startled by\n"
.string "the sudden noise!$" .string "the sudden noise!$"
gTVSecretBaseSecretsText12:: @ 08288A3A TVSecretBaseSecrets_Text_UsedTent:: @ 08288A3A
.string "The visitor entered a TENT!\p" .string "The visitor entered a TENT!\p"
.string "The visitor is running around!\p" .string "The visitor is running around!\p"
.string "Oh, my, the visitor is frolicking!\p" .string "Oh, my, the visitor is frolicking!\p"
.string "The visitor appears surprised by\n" .string "The visitor appears surprised by\n"
.string "the TENT's size!$" .string "the TENT's size!$"
gTVSecretBaseSecretsText13:: @ 08288ACA TVSecretBaseSecrets_Text_UsedPlant:: @ 08288ACA
.string "The visitor is examining\n" .string "The visitor is examining\n"
.string "a potted plant!\p" .string "a potted plant!\p"
.string "The visitor has surprisingly\n" .string "The visitor has surprisingly\n"
.string "mature taste!$" .string "mature taste!$"
gTVSecretBaseSecretsText14:: @ 08288B1E TVSecretBaseSecrets_Text_UsedGoldShield:: @ 08288B1E
.string "The visitor is examining\n" .string "The visitor is examining\n"
.string "a GOLD SHIELD!\p" .string "a GOLD SHIELD!\p"
.string "The visitor's eyes appear to be\n" .string "The visitor's eyes appear to be\n"
.string "lit up with wonder!$" .string "lit up with wonder!$"
gTVSecretBaseSecretsText15:: @ 08288B7A TVSecretBaseSecrets_Text_UsedSilverShield:: @ 08288B7A
.string "The visitor is examining\n" .string "The visitor is examining\n"
.string "a SILVER SHIELD!\p" .string "a SILVER SHIELD!\p"
.string "The visitor appears to be wide-eyed!$" .string "The visitor appears to be wide-eyed!$"
gTVSecretBaseSecretsText16:: @ 08288BC9 TVSecretBaseSecrets_Text_UsedGlassOrnament:: @ 08288BC9
.string "The visitor is examining\n" .string "The visitor is examining\n"
.string "a GLASS ORNAMENT!\p" .string "a GLASS ORNAMENT!\p"
.string "Oh, no!\p" .string "Oh, no!\p"
@@ -2179,15 +2179,15 @@ gTVSecretBaseSecretsText16:: @ 08288BC9
.string "It's getting covered with\n" .string "It's getting covered with\n"
.string "fingerprints…$" .string "fingerprints…$"
gTVSecretBaseSecretsText17:: @ 08288C40 TVSecretBaseSecrets_Text_UsedTV:: @ 08288C40
.string "The visitor is watching television!\p" .string "The visitor is watching television!\p"
.string "Looks like we have a big fan of TV!$" .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 stomped on a MUD BALL!\p"
.string "The visitor looks delighted!$" .string "The visitor looks delighted!$"
gTVSecretBaseSecretsText19:: @ 08288CC8 TVSecretBaseSecrets_Text_UsedBag:: @ 08288CC8
.string "…Oh?\p" .string "…Oh?\p"
.string "The visitor is reaching for their own\n" .string "The visitor is reaching for their own\n"
.string "BAG and rummaging about in it!\p" .string "BAG and rummaging about in it!\p"
@@ -2197,19 +2197,19 @@ gTVSecretBaseSecretsText19:: @ 08288CC8
.string "holding up the {STR_VAR_2}!\p" .string "holding up the {STR_VAR_2}!\p"
.string "It's like a TV commercial!$" .string "It's like a TV commercial!$"
gTVSecretBaseSecretsText20:: @ 08288D7F TVSecretBaseSecrets_Text_UsedCushion:: @ 08288D7F
.string "The visitor grabs a cushion and…$" .string "The visitor grabs a cushion and…$"
gTVSecretBaseSecretsText21:: @ 08288DA0 TVSecretBaseSecrets_Text_HitCushion:: @ 08288DA0
.string "…begins hitting it!\p" .string "…begins hitting it!\p"
.string "Is the visitor under a lot of stress?$" .string "Is the visitor under a lot of stress?$"
gTVSecretBaseSecretsText22:: @ 08288DDA TVSecretBaseSecrets_Text_HuggedCushion:: @ 08288DDA
.string "…hugs it tight!\p" .string "…hugs it tight!\p"
.string "Could the visitor be feeling happy\n" .string "Could the visitor be feeling happy\n"
.string "about something?$" .string "about something?$"
gTVSecretBaseSecretsText23:: @ 08288E1E TVSecretBaseSecrets_Text_BattledWon:: @ 08288E1E
.string "The visitor is chatting with\n" .string "The visitor is chatting with\n"
.string "{STR_VAR_1}!\p" .string "{STR_VAR_1}!\p"
.string "It looks like they're going to\n" .string "It looks like they're going to\n"
@@ -2220,7 +2220,7 @@ gTVSecretBaseSecretsText23:: @ 08288E1E
.string "The visitor is doing\n" .string "The visitor is doing\n"
.string "a victory dance!$" .string "a victory dance!$"
gTVSecretBaseSecretsText24:: @ 08288EC9 TVSecretBaseSecrets_Text_BattledLost:: @ 08288EC9
.string "The visitor is chatting with\n" .string "The visitor is chatting with\n"
.string "{STR_VAR_1}!\p" .string "{STR_VAR_1}!\p"
.string "It looks like they're going to\n" .string "It looks like they're going to\n"
@@ -2230,7 +2230,7 @@ gTVSecretBaseSecretsText24:: @ 08288EC9
.string "The visitor has lost!\p" .string "The visitor has lost!\p"
.string "The visitor looks dejected!$" .string "The visitor looks dejected!$"
gTVSecretBaseSecretsText25:: @ 08288F58 TVSecretBaseSecrets_Text_DeclinedBattle:: @ 08288F58
.string "The visitor is chatting with\n" .string "The visitor is chatting with\n"
.string "{STR_VAR_1}!\p" .string "{STR_VAR_1}!\p"
.string "It looks like they're going to\n" .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 "Did the visitor find {STR_VAR_1}\n"
.string "unappealing?$" .string "unappealing?$"
gTVSecretBaseSecretsText26:: @ 08289011 TVSecretBaseSecrets_Text_UsedPoster:: @ 08289011
.string "The visitor is staring intently\n" .string "The visitor is staring intently\n"
.string "at a poster!\p" .string "at a poster!\p"
.string "Is the poster to the visitor's\n" .string "Is the poster to the visitor's\n"
@@ -2249,12 +2249,12 @@ gTVSecretBaseSecretsText26:: @ 08289011
.string "…But… There's something disturbing\n" .string "…But… There's something disturbing\n"
.string "about the visitor's stares.$" .string "about the visitor's stares.$"
gTVSecretBaseSecretsText27:: @ 082890A4 TVSecretBaseSecrets_Text_UsedNoteMat:: @ 082890A4
.string "The visitor stepped on a NOTE MAT!\p" .string "The visitor stepped on a NOTE MAT!\p"
.string "…Hmm…\n" .string "…Hmm…\n"
.string "The visitor composed a funny tune!$" .string "The visitor composed a funny tune!$"
gTVSecretBaseSecretsText28:: @ 082890F0 TVSecretBaseSecrets_Text_BattledDraw:: @ 082890F0
.string "The visitor is chatting with\n" .string "The visitor is chatting with\n"
.string "{STR_VAR_1}!\p" .string "{STR_VAR_1}!\p"
.string "It looks like they're going to\n" .string "It looks like they're going to\n"
@@ -2265,14 +2265,14 @@ gTVSecretBaseSecretsText28:: @ 082890F0
.string "Both TRAINERS appear to be very\n" .string "Both TRAINERS appear to be very\n"
.string "disappointed!$" .string "disappointed!$"
gTVSecretBaseSecretsText29:: @ 08289193 TVSecretBaseSecrets_Text_UsedSpinMat:: @ 08289193
.string "The visitor stepped on\n" .string "The visitor stepped on\n"
.string "a SPIN MAT!\p" .string "a SPIN MAT!\p"
.string "It looks like the visitor is dizzy!\p" .string "It looks like the visitor is dizzy!\p"
.string "The visitor is tottering about!\n" .string "The visitor is tottering about!\n"
.string "Look out!$" .string "Look out!$"
gTVSecretBaseSecretsText30:: @ 08289204 TVSecretBaseSecrets_Text_UsedSandOrnament:: @ 08289204
.string "The visitor is reaching for\n" .string "The visitor is reaching for\n"
.string "a SAND ORNAMENT!\p" .string "a SAND ORNAMENT!\p"
.string "Oh!\p" .string "Oh!\p"
@@ -2281,7 +2281,7 @@ gTVSecretBaseSecretsText30:: @ 08289204
.string "The visitor looks sheepish\n" .string "The visitor looks sheepish\n"
.string "and guilty!$" .string "and guilty!$"
gTVSecretBaseSecretsText31:: @ 0828927C TVSecretBaseSecrets_Text_UsedDesk:: @ 0828927C
.string "The visitor is rubbing a desktop\n" .string "The visitor is rubbing a desktop\n"
.string "with their finger!\p" .string "with their finger!\p"
.string "Apparently, the visitor disapproves\n" .string "Apparently, the visitor disapproves\n"
@@ -2289,25 +2289,25 @@ gTVSecretBaseSecretsText31:: @ 0828927C
.string "The visitor is surprisingly concerned\n" .string "The visitor is surprisingly concerned\n"
.string "about neatness!$" .string "about neatness!$"
gTVSecretBaseSecretsText32:: @ 08289313 TVSecretBaseSecrets_Text_UsedBrick:: @ 08289313
.string "The visitor is staring at a BRICK!\p" .string "The visitor is staring at a BRICK!\p"
.string "Perhaps the visitor is thinking about\n" .string "Perhaps the visitor is thinking about\n"
.string "the object on the BRICK.$" .string "the object on the BRICK.$"
gTVSecretBaseSecretsText33:: @ 08289375 TVSecretBaseSecrets_Text_UsedSolidBoard:: @ 08289375
.string "The visitor is walking across\n" .string "The visitor is walking across\n"
.string "the SOLID BOARD.\p" .string "the SOLID BOARD.\p"
.string "The visitor keeps looking down.\p" .string "The visitor keeps looking down.\p"
.string "The visitor appears to be surprisingly\n" .string "The visitor appears to be surprisingly\n"
.string "timid and cautious!$" .string "timid and cautious!$"
gTVSecretBaseSecretsText34:: @ 082893FF TVSecretBaseSecrets_Text_UsedFence:: @ 082893FF
.string "The visitor is looking intently\n" .string "The visitor is looking intently\n"
.string "at a FENCE!\p" .string "at a FENCE!\p"
.string "Has a new idea for a trap popped\n" .string "Has a new idea for a trap popped\n"
.string "into the visitor's head?$" .string "into the visitor's head?$"
gTVSecretBaseSecretsText35:: @ 08289465 TVSecretBaseSecrets_Text_UsedGlitterMat:: @ 08289465
.string "The visitor stepped on\n" .string "The visitor stepped on\n"
.string "a GLITTER MAT!\p" .string "a GLITTER MAT!\p"
.string "The visitor is striking a variety\n" .string "The visitor is striking a variety\n"
@@ -2315,13 +2315,13 @@ gTVSecretBaseSecretsText35:: @ 08289465
.string "The visitor appears to be fantasizing\n" .string "The visitor appears to be fantasizing\n"
.string "about being an idol!$" .string "about being an idol!$"
gTVSecretBaseSecretsText36:: @ 082894F2 TVSecretBaseSecrets_Text_UsedTire:: @ 082894F2
.string "The visitor is staring intently\n" .string "The visitor is staring intently\n"
.string "at a TIRE!\p" .string "at a TIRE!\p"
.string "Could the visitor be thinking about\n" .string "Could the visitor be thinking about\n"
.string "the kind of car that would use it?$" .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 climbed a STAND!\p"
.string "The visitor is looking out across\n" .string "The visitor is looking out across\n"
.string "{STR_VAR_1}'s BASE from high up!\p" .string "{STR_VAR_1}'s BASE from high up!\p"
@@ -2329,16 +2329,16 @@ gTVSecretBaseSecretsText37:: @ 08289564
.string "Lets loose a roar!\n" .string "Lets loose a roar!\n"
.string "The visitor is roaring!$" .string "The visitor is roaring!$"
gTVSecretBaseSecretsText38:: @ 082895EB TVSecretBaseSecrets_Text_BrokeDoor:: @ 082895EB
.string "The visitor charged headlong into\n" .string "The visitor charged headlong into\n"
.string "a BREAKABLE DOOR!\p" .string "a BREAKABLE DOOR!\p"
.string "The visitor is laughing uproariously!$" .string "The visitor is laughing uproariously!$"
gTVSecretBaseSecretsText39:: @ 08289645 TVSecretBaseSecrets_Text_UsedDoll:: @ 08289645
.string "The visitor is talking to a DOLL!\p" .string "The visitor is talking to a DOLL!\p"
.string "…It's a little creepy…$" .string "…It's a little creepy…$"
gTVSecretBaseSecretsText40:: @ 0828967E TVSecretBaseSecrets_Text_UsedSlide:: @ 0828967E
.string "The visitor is climbing the ladder\n" .string "The visitor is climbing the ladder\n"
.string "on a SLIDE!\p" .string "on a SLIDE!\p"
.string "And…\p" .string "And…\p"
@@ -2346,7 +2346,7 @@ gTVSecretBaseSecretsText40:: @ 0828967E
.string "Looks like the visitor is having\n" .string "Looks like the visitor is having\n"
.string "a grand old time!$" .string "a grand old time!$"
gTVSecretBaseSecretsText41:: @ 082896FC TVSecretBaseSecrets_Text_UsedSlideButDidntGoDown:: @ 082896FC
.string "The visitor is climbing the ladder\n" .string "The visitor is climbing the ladder\n"
.string "on a SLIDE!\p" .string "on a SLIDE!\p"
.string "And…\p" .string "And…\p"
@@ -2354,7 +2354,7 @@ gTVSecretBaseSecretsText41:: @ 082896FC
.string "the ladder!\p" .string "the ladder!\p"
.string "Did the visitor suddenly chicken out?$" .string "Did the visitor suddenly chicken out?$"
gTVSecretBaseSecretsText42:: @ 0828977D TVSecretBaseSecrets_Text_UsedJumpMat:: @ 0828977D
.string "The visitor stepped on\n" .string "The visitor stepped on\n"
.string "a JUMP MAT!\p" .string "a JUMP MAT!\p"
.string "The visitor jumped once!\p" .string "The visitor jumped once!\p"
+1 -1
View File
@@ -71,7 +71,7 @@ void GetEreaderTrainerName(u8 *dst);
void ValidateEReaderTrainer(void); void ValidateEReaderTrainer(void);
void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *ereaderTrainer); void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *ereaderTrainer);
void CopyEReaderTrainerGreeting(void); void CopyEReaderTrainerGreeting(void);
void sub_81653CC(void); void TryHideBattleTowerReporter(void);
bool32 RubyBattleTowerRecordToEmerald(struct RSBattleTowerRecord *src, struct EmeraldBattleTowerRecord *dst); bool32 RubyBattleTowerRecordToEmerald(struct RSBattleTowerRecord *src, struct EmeraldBattleTowerRecord *dst);
bool32 EmeraldBattleTowerRecordToRuby(struct EmeraldBattleTowerRecord *src, struct RSBattleTowerRecord *dst); bool32 EmeraldBattleTowerRecordToRuby(struct EmeraldBattleTowerRecord *src, struct RSBattleTowerRecord *dst);
void CalcApprenticeChecksum(struct Apprentice *apprentice); void CalcApprenticeChecksum(struct Apprentice *apprentice);
+195 -23
View File
@@ -2,29 +2,39 @@
#define GUARD_METATILE_LABELS_H #define GUARD_METATILE_LABELS_H
// gTileset_General // gTileset_General
#define METATILE_General_Grass 0x001 #define METATILE_General_Grass 0x001
#define METATILE_General_TallGrass 0x00D #define METATILE_General_TallGrass 0x00D
#define METATILE_General_LongGrass 0x015 #define METATILE_General_LongGrass 0x015
#define METATILE_General_TallGrass_TreeUp 0x025 #define METATILE_General_TallGrass_TreeUp 0x025
#define METATILE_General_Grass_TreeUp 0x00E #define METATILE_General_Grass_TreeUp 0x00E
#define METATILE_General_TallGrass_TreeLeft 0x1C6 #define METATILE_General_TallGrass_TreeLeft 0x1C6
#define METATILE_General_TallGrass_TreeRight 0x1C7 #define METATILE_General_TallGrass_TreeRight 0x1C7
#define METATILE_General_Grass_TreeLeft 0x1CE #define METATILE_General_Grass_TreeLeft 0x1CE
#define METATILE_General_Grass_TreeRight 0x1CF #define METATILE_General_Grass_TreeRight 0x1CF
#define METATILE_General_MuddySlope_Frame0 0x0E8 #define METATILE_General_MuddySlope_Frame0 0x0E8
#define METATILE_General_MuddySlope_Frame1 0x0E9 #define METATILE_General_MuddySlope_Frame1 0x0E9
#define METATILE_General_MuddySlope_Frame2 0x0EA #define METATILE_General_MuddySlope_Frame2 0x0EA
#define METATILE_General_MuddySlope_Frame3 0x0EB #define METATILE_General_MuddySlope_Frame3 0x0EB
#define METATILE_General_SandPit_Center 0x121 #define METATILE_General_SandPit_Center 0x121
#define METATILE_General_CaveEntrance_Top 0x09F #define METATILE_General_CaveEntrance_Top 0x09F
#define METATILE_General_CaveEntrance_Bottom 0x0A7 #define METATILE_General_CaveEntrance_Bottom 0x0A7
#define METATILE_General_RockWall_GrassBase 0x079 #define METATILE_General_RockWall_GrassBase 0x079
#define METATILE_General_RockWall_RockBase 0x07C #define METATILE_General_RockWall_RockBase 0x07C
#define METATILE_General_RockWall_SandBase 0x091 #define METATILE_General_RockWall_SandBase 0x091
#define METATILE_General_CalmWater 0x170 #define METATILE_General_CalmWater 0x170
#define METATILE_General_RoughWater 0x14E #define METATILE_General_RoughWater 0x14E
#define METATILE_General_RoughDeepWater 0x14F #define METATILE_General_RoughDeepWater 0x14F
#define METATILE_General_ReflectiveWater 0x0A1 #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 // gTileset_Building
#define METATILE_Building_PC_Off 0x004 #define METATILE_Building_PC_Off 0x004
@@ -143,6 +153,8 @@
#define METATILE_Fortree_BridgeOverGrass_Lowered 0x24F #define METATILE_Fortree_BridgeOverGrass_Lowered 0x24F
#define METATILE_Fortree_BridgeOverTrees_Raised 0x256 #define METATILE_Fortree_BridgeOverTrees_Raised 0x256
#define METATILE_Fortree_BridgeOverTrees_Lowered 0x257 #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_TopLeft 0x279
#define METATILE_Fortree_SecretBase_LongGrass_TopMid 0x27A #define METATILE_Fortree_SecretBase_LongGrass_TopMid 0x27A
#define METATILE_Fortree_SecretBase_LongGrass_TopRight 0x27B #define METATILE_Fortree_SecretBase_LongGrass_TopRight 0x27B
@@ -164,6 +176,8 @@
// gTileset_Fallarbor // gTileset_Fallarbor
#define METATILE_Fallarbor_AshGrass 0x20A #define METATILE_Fallarbor_AshGrass 0x20A
#define METATILE_Fallarbor_BrownCaveIndent 0x208
#define METATILE_Fallarbor_BrownCaveOpen 0x210
#define METATILE_Fallarbor_NormalGrass 0x212 #define METATILE_Fallarbor_NormalGrass 0x212
#define METATILE_Fallarbor_AshField 0x218 #define METATILE_Fallarbor_AshField 0x218
#define METATILE_Fallarbor_BrownCaveEntrance_Top 0x259 #define METATILE_Fallarbor_BrownCaveEntrance_Top 0x259
@@ -414,4 +428,162 @@
#define METATILE_Underwater_RockWall 0x21E #define METATILE_Underwater_RockWall 0x21E
#define METATILE_Underwater_FloorShadow 0x228 #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 #endif // GUARD_METATILE_LABELS_H
+88
View File
@@ -46,4 +46,92 @@
// Number of ribbons to put Spot the Cuties on air // Number of ribbons to put Spot the Cuties on air
#define NUM_CUTIES_RIBBONS 4 #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 #endif //GUARD_CONSTANTS_TV_H
+43 -43
View File
@@ -240,49 +240,49 @@ extern const u8 gTVWhatsNo1InHoennTodayText05[];
extern const u8 gTVWhatsNo1InHoennTodayText06[]; extern const u8 gTVWhatsNo1InHoennTodayText06[];
extern const u8 gTVWhatsNo1InHoennTodayText07[]; extern const u8 gTVWhatsNo1InHoennTodayText07[];
extern const u8 gTVWhatsNo1InHoennTodayText08[]; extern const u8 gTVWhatsNo1InHoennTodayText08[];
extern const u8 gTVSecretBaseSecretsText00[]; extern const u8 TVSecretBaseSecrets_Text_Intro[];
extern const u8 gTVSecretBaseSecretsText01[]; extern const u8 TVSecretBaseSecrets_Text_WhatWillPlayerDoNext1[];
extern const u8 gTVSecretBaseSecretsText02[]; extern const u8 TVSecretBaseSecrets_Text_WhatWillPlayerDoNext2[];
extern const u8 gTVSecretBaseSecretsText03[]; extern const u8 TVSecretBaseSecrets_Text_TookXStepsBeforeLeaving[];
extern const u8 gTVSecretBaseSecretsText04[]; extern const u8 TVSecretBaseSecrets_Text_BaseFailedToInterestPlayer[];
extern const u8 gTVSecretBaseSecretsText05[]; extern const u8 TVSecretBaseSecrets_Text_PlayerEnjoyedBase[];
extern const u8 gTVSecretBaseSecretsText06[]; extern const u8 TVSecretBaseSecrets_Text_PlayerHugeFanOfBase[];
extern const u8 gTVSecretBaseSecretsText07[]; extern const u8 TVSecretBaseSecrets_Text_Outro[];
extern const u8 gTVSecretBaseSecretsText08[]; extern const u8 TVSecretBaseSecrets_Text_StoppedMoving1[];
extern const u8 gTVSecretBaseSecretsText09[]; extern const u8 TVSecretBaseSecrets_Text_StoppedMoving2[];
extern const u8 gTVSecretBaseSecretsText10[]; extern const u8 TVSecretBaseSecrets_Text_UsedChair[];
extern const u8 gTVSecretBaseSecretsText11[]; extern const u8 TVSecretBaseSecrets_Text_UsedBalloon[];
extern const u8 gTVSecretBaseSecretsText12[]; extern const u8 TVSecretBaseSecrets_Text_UsedTent[];
extern const u8 gTVSecretBaseSecretsText13[]; extern const u8 TVSecretBaseSecrets_Text_UsedPlant[];
extern const u8 gTVSecretBaseSecretsText14[]; extern const u8 TVSecretBaseSecrets_Text_UsedGoldShield[];
extern const u8 gTVSecretBaseSecretsText15[]; extern const u8 TVSecretBaseSecrets_Text_UsedSilverShield[];
extern const u8 gTVSecretBaseSecretsText16[]; extern const u8 TVSecretBaseSecrets_Text_UsedGlassOrnament[];
extern const u8 gTVSecretBaseSecretsText17[]; extern const u8 TVSecretBaseSecrets_Text_UsedTV[];
extern const u8 gTVSecretBaseSecretsText18[]; extern const u8 TVSecretBaseSecrets_Text_UsedMudBall[];
extern const u8 gTVSecretBaseSecretsText19[]; extern const u8 TVSecretBaseSecrets_Text_UsedBag[];
extern const u8 gTVSecretBaseSecretsText20[]; extern const u8 TVSecretBaseSecrets_Text_UsedCushion[];
extern const u8 gTVSecretBaseSecretsText21[]; extern const u8 TVSecretBaseSecrets_Text_HitCushion[];
extern const u8 gTVSecretBaseSecretsText22[]; extern const u8 TVSecretBaseSecrets_Text_HuggedCushion[];
extern const u8 gTVSecretBaseSecretsText23[]; extern const u8 TVSecretBaseSecrets_Text_BattledWon[];
extern const u8 gTVSecretBaseSecretsText24[]; extern const u8 TVSecretBaseSecrets_Text_BattledLost[];
extern const u8 gTVSecretBaseSecretsText25[]; extern const u8 TVSecretBaseSecrets_Text_DeclinedBattle[];
extern const u8 gTVSecretBaseSecretsText26[]; extern const u8 TVSecretBaseSecrets_Text_UsedPoster[];
extern const u8 gTVSecretBaseSecretsText27[]; extern const u8 TVSecretBaseSecrets_Text_UsedNoteMat[];
extern const u8 gTVSecretBaseSecretsText28[]; extern const u8 TVSecretBaseSecrets_Text_BattledDraw[];
extern const u8 gTVSecretBaseSecretsText29[]; extern const u8 TVSecretBaseSecrets_Text_UsedSpinMat[];
extern const u8 gTVSecretBaseSecretsText30[]; extern const u8 TVSecretBaseSecrets_Text_UsedSandOrnament[];
extern const u8 gTVSecretBaseSecretsText31[]; extern const u8 TVSecretBaseSecrets_Text_UsedDesk[];
extern const u8 gTVSecretBaseSecretsText32[]; extern const u8 TVSecretBaseSecrets_Text_UsedBrick[];
extern const u8 gTVSecretBaseSecretsText33[]; extern const u8 TVSecretBaseSecrets_Text_UsedSolidBoard[];
extern const u8 gTVSecretBaseSecretsText34[]; extern const u8 TVSecretBaseSecrets_Text_UsedFence[];
extern const u8 gTVSecretBaseSecretsText35[]; extern const u8 TVSecretBaseSecrets_Text_UsedGlitterMat[];
extern const u8 gTVSecretBaseSecretsText36[]; extern const u8 TVSecretBaseSecrets_Text_UsedTire[];
extern const u8 gTVSecretBaseSecretsText37[]; extern const u8 TVSecretBaseSecrets_Text_UsedStand[];
extern const u8 gTVSecretBaseSecretsText38[]; extern const u8 TVSecretBaseSecrets_Text_BrokeDoor[];
extern const u8 gTVSecretBaseSecretsText39[]; extern const u8 TVSecretBaseSecrets_Text_UsedDoll[];
extern const u8 gTVSecretBaseSecretsText40[]; extern const u8 TVSecretBaseSecrets_Text_UsedSlide[];
extern const u8 gTVSecretBaseSecretsText41[]; extern const u8 TVSecretBaseSecrets_Text_UsedSlideButDidntGoDown[];
extern const u8 gTVSecretBaseSecretsText42[]; extern const u8 TVSecretBaseSecrets_Text_UsedJumpMat[];
extern const u8 gTVSafariFanClubText00[]; extern const u8 gTVSafariFanClubText00[];
extern const u8 gTVSafariFanClubText01[]; extern const u8 gTVSafariFanClubText01[];
extern const u8 gTVSafariFanClubText02[]; extern const u8 gTVSafariFanClubText02[];
+1 -1
View File
@@ -21,7 +21,7 @@ void ShatterSecretBaseBreakableDoor(s16 x, s16 y);
void PlaySecretBaseMusicNoteMatSound(s16 metatileId); void PlaySecretBaseMusicNoteMatSound(s16 metatileId);
void DoSecretBaseGlitterMatSparkle(void); void DoSecretBaseGlitterMatSparkle(void);
bool8 FldEff_SandPillar(void); bool8 FldEff_SandPillar(void);
void GetShieldToyTVDecorationInfo(void); void InteractWithShieldOrTVDecoration(void);
bool8 sub_80FADE4(u16 arg0, u8 arg1); bool8 sub_80FADE4(u16 arg0, u8 arg1);
void FldEffPoison_Start(void); void FldEffPoison_Start(void);
bool32 FldEffPoison_IsActive(void); bool32 FldEffPoison_IsActive(void);
+1 -1
View File
@@ -84,7 +84,7 @@
#define LINKTYPE_MULTI_BATTLE 0x2255 #define LINKTYPE_MULTI_BATTLE 0x2255
#define LINKTYPE_BATTLE_TOWER_50 0x2266 #define LINKTYPE_BATTLE_TOWER_50 0x2266
#define LINKTYPE_BATTLE_TOWER_OPEN 0x2277 #define LINKTYPE_BATTLE_TOWER_OPEN 0x2277
#define LINKTYPE_0x2288 0x2288 // battle? #define LINKTYPE_BATTLE_TOWER 0x2288
#define LINKTYPE_0x3311 0x3311 #define LINKTYPE_0x3311 0x3311
#define LINKTYPE_0x3322 0x3322 #define LINKTYPE_0x3322 0x3322
#define LINKTYPE_BERRY_BLENDER_SETUP 0x4411 #define LINKTYPE_BERRY_BLENDER_SETUP 0x4411
+5 -5
View File
@@ -12,13 +12,13 @@ void InitSecretBaseAppearance(bool8 hidePC);
bool8 CurMapIsSecretBase(void); bool8 CurMapIsSecretBase(void);
void SecretBasePerStepCallback(u8 taskId); void SecretBasePerStepCallback(u8 taskId);
bool8 TrySetCurSecretBase(void); bool8 TrySetCurSecretBase(void);
void SetSecretBaseSecretsTvFlags_Poster(void); void CheckInteractedWithFriendsPosterDecor(void);
void SetSecretBaseSecretsTvFlags_MiscFurnature(void); void CheckInteractedWithFriendsFurnitureBottom(void);
void SetSecretBaseSecretsTvFlags_LargeDecorationSpot(void); void CheckInteractedWithFriendsFurnitureMiddle(void);
void SetSecretBaseSecretsTvFlags_SmallDecorationSpot(void); void CheckInteractedWithFriendsFurnitureTop(void);
void WarpIntoSecretBase(const struct MapPosition *position, const struct MapEvents *events); void WarpIntoSecretBase(const struct MapPosition *position, const struct MapEvents *events);
bool8 SecretBaseMapPopupEnabled(void); bool8 SecretBaseMapPopupEnabled(void);
void sub_80EB218(void); void CheckLeftFriendsSecretBase(void);
void ClearSecretBases(void); void ClearSecretBases(void);
void SetCurSecretBaseIdFromPosition(const struct MapPosition *position, const struct MapEvents *events); void SetCurSecretBaseIdFromPosition(const struct MapPosition *position, const struct MapEvents *events);
void TrySetCurSecretBaseIndex(void); void TrySetCurSecretBaseIndex(void);
+2 -2
View File
@@ -18,7 +18,7 @@ void TryPutTrainerFanClubOnAir(void);
void IncrementDailyPlantedBerries(void); void IncrementDailyPlantedBerries(void);
void IncrementDailyPickedBerries(void); void IncrementDailyPickedBerries(void);
void IncrementDailyBattlePoints(u16 delta); void IncrementDailyBattlePoints(u16 delta);
void sub_80F01B8(void); void HideBattleTowerReporter(void);
void ReceiveTvShowsData(void *src, u32 size, u8 masterIdx); void ReceiveTvShowsData(void *src, u32 size, u8 masterIdx);
void TryPutSpotTheCutiesOnAir(struct Pokemon *pokemon, u8 ribbonMonDataIdx); void TryPutSpotTheCutiesOnAir(struct Pokemon *pokemon, u8 ribbonMonDataIdx);
u32 GetPlayerIDAsU32(void); u32 GetPlayerIDAsU32(void);
@@ -29,7 +29,7 @@ u8 GetRibbonCount(struct Pokemon *pokemon);
void AlertTVThatPlayerPlayedSlotMachine(u16 nCoinsSpent); void AlertTVThatPlayerPlayedSlotMachine(u16 nCoinsSpent);
void AlertTVThatPlayerPlayedRoulette(u16 nCoinsSpent); void AlertTVThatPlayerPlayedRoulette(u16 nCoinsSpent);
void AlertTVOfNewCoinTotal(u16 nCoinsPaidOut); void AlertTVOfNewCoinTotal(u16 nCoinsPaidOut);
void sub_80EEA70(void); void TryPutSecretBaseSecretsOnAir(void);
void sub_80EDB44(void); void sub_80EDB44(void);
void sub_80EDC60(const u16 *words); void sub_80EDC60(const u16 *words);
void sub_80EDA80(void); void sub_80EDA80(void);
+3 -3
View File
@@ -2908,13 +2908,13 @@ static void CopyEReaderTrainerFarewellMessage(void)
FrontierSpeechToString(gSaveBlock2Ptr->frontier.ereaderTrainer.farewellPlayerLost); FrontierSpeechToString(gSaveBlock2Ptr->frontier.ereaderTrainer.farewellPlayerLost);
} }
void sub_81653CC(void) void TryHideBattleTowerReporter(void)
{ {
if (gSaveBlock2Ptr->frontier.challengeStatus == CHALLENGE_STATUS_SAVING) if (gSaveBlock2Ptr->frontier.challengeStatus == CHALLENGE_STATUS_SAVING)
sub_80F01B8(); HideBattleTowerReporter();
if (FlagGet(FLAG_CANCEL_BATTLE_ROOM_CHALLENGE) == TRUE) if (FlagGet(FLAG_CANCEL_BATTLE_ROOM_CHALLENGE) == TRUE)
{ {
sub_80F01B8(); HideBattleTowerReporter();
FlagClear(FLAG_CANCEL_BATTLE_ROOM_CHALLENGE); FlagClear(FLAG_CANCEL_BATTLE_ROOM_CHALLENGE);
} }
} }
+4 -3
View File
@@ -784,7 +784,8 @@ static void sub_80B3220(u8 taskId)
} }
} }
void sub_80B3254(void) // Unused
void CableClubSaveGame(void)
{ {
SaveGame(); SaveGame();
} }
@@ -1298,10 +1299,10 @@ void sub_80B3AF8(u8 taskId)
} }
} }
void sub_80B3BC4(void) void TrySetBattleTowerLinkType(void)
{ {
if (gWirelessCommType == 0) if (gWirelessCommType == 0)
{ {
gLinkType = LINKTYPE_0x2288; gLinkType = LINKTYPE_BATTLE_TOWER;
} }
} }
+2 -1
View File
@@ -2154,7 +2154,8 @@ void sub_8129708(void)
} }
} }
void sub_81297AC(void) // Unused
void GetEventObjectLocalIdByFlag(void)
{ {
u8 i; u8 i;
+4 -4
View File
@@ -423,23 +423,23 @@ static const u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 me
return SecretBase_EventScript_ShieldOrToyTV; return SecretBase_EventScript_ShieldOrToyTV;
if (MetatileBehavior_IsMB_C6(metatileBehavior) == TRUE) if (MetatileBehavior_IsMB_C6(metatileBehavior) == TRUE)
{ {
SetSecretBaseSecretsTvFlags_MiscFurnature(); CheckInteractedWithFriendsFurnitureBottom();
return NULL; return NULL;
} }
if (MetatileBehavior_HoldsLargeDecoration(metatileBehavior) == TRUE) if (MetatileBehavior_HoldsLargeDecoration(metatileBehavior) == TRUE)
{ {
SetSecretBaseSecretsTvFlags_LargeDecorationSpot(); CheckInteractedWithFriendsFurnitureMiddle();
return NULL; return NULL;
} }
if (MetatileBehavior_HoldsSmallDecoration(metatileBehavior) == TRUE) if (MetatileBehavior_HoldsSmallDecoration(metatileBehavior) == TRUE)
{ {
SetSecretBaseSecretsTvFlags_SmallDecorationSpot(); CheckInteractedWithFriendsFurnitureTop();
return NULL; return NULL;
} }
} }
else if (MetatileBehavior_IsSecretBasePoster(metatileBehavior) == TRUE) else if (MetatileBehavior_IsSecretBasePoster(metatileBehavior) == TRUE)
{ {
SetSecretBaseSecretsTvFlags_Poster(); CheckInteractedWithFriendsPosterDecor();
return NULL; return NULL;
} }
+43 -41
View File
@@ -20,9 +20,11 @@
#include "string_util.h" #include "string_util.h"
#include "constants/field_effects.h" #include "constants/field_effects.h"
#include "constants/metatile_behaviors.h" #include "constants/metatile_behaviors.h"
#include "constants/songs.h"
#include "constants/vars.h"
#include "constants/metatile_labels.h" #include "constants/metatile_labels.h"
#include "constants/songs.h"
#include "constants/tv.h"
#include "constants/vars.h"
EWRAM_DATA struct MapPosition gPlayerFacingPosition = {0}; EWRAM_DATA struct MapPosition gPlayerFacingPosition = {0};
@@ -801,16 +803,16 @@ static void Task_SecretBasePCTurnOn(u8 taskId)
{ {
case 4: case 4:
case 12: case 12:
MapGridSetMetatileIdAt(data[0], data[1], 0x224); MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC_On);
CurrentMapDrawMetatileAt(data[0], data[1]); CurrentMapDrawMetatileAt(data[0], data[1]);
break; break;
case 8: case 8:
case 16: case 16:
MapGridSetMetatileIdAt(data[0], data[1], 0x220); MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC);
CurrentMapDrawMetatileAt(data[0], data[1]); CurrentMapDrawMetatileAt(data[0], data[1]);
break; break;
case 20: case 20:
MapGridSetMetatileIdAt(data[0], data[1], 0x224); MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC_On);
CurrentMapDrawMetatileAt(data[0], data[1]); CurrentMapDrawMetatileAt(data[0], data[1]);
FieldEffectActiveListRemove(FLDEFF_PCTURN_ON); FieldEffectActiveListRemove(FLDEFF_PCTURN_ON);
EnableBothScriptContexts(); EnableBothScriptContexts();
@@ -829,9 +831,9 @@ void DoSecretBasePCTurnOffEffect(void)
PlaySE(SE_PC_OFF); PlaySE(SE_PC_OFF);
if (!VarGet(VAR_CURRENT_SECRET_BASE)) if (!VarGet(VAR_CURRENT_SECRET_BASE))
MapGridSetMetatileIdAt(x, y, 0x220 | METATILE_COLLISION_MASK); MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_PC | METATILE_COLLISION_MASK);
else else
MapGridSetMetatileIdAt(x, y, 0x221 | METATILE_COLLISION_MASK); MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_RegisterPC | METATILE_COLLISION_MASK);
CurrentMapDrawMetatileAt(x, y); CurrentMapDrawMetatileAt(x, y);
} }
@@ -875,16 +877,16 @@ static void DoBalloonSoundEffect(s16 metatileId)
{ {
switch (metatileId) switch (metatileId)
{ {
case 824: case METATILE_SecretBase_RedBalloon:
PlaySE(SE_FUUSEN1); PlaySE(SE_FUUSEN1);
break; break;
case 828: case METATILE_SecretBase_BlueBalloon:
PlaySE(SE_FUUSEN2); PlaySE(SE_FUUSEN2);
break; break;
case 832: case METATILE_SecretBase_YellowBalloon:
PlaySE(SE_FUUSEN3); PlaySE(SE_FUUSEN3);
break; break;
case 552: case METATILE_SecretBase_MudBall:
PlaySE(SE_TOY_DANGO); PlaySE(SE_TOY_DANGO);
break; break;
} }
@@ -903,8 +905,8 @@ bool8 FldEff_NopA700(void)
static void DoSecretBaseBreakableDoorEffect(s16 x, s16 y) static void DoSecretBaseBreakableDoorEffect(s16 x, s16 y)
{ {
PlaySE(SE_TOY_KABE); PlaySE(SE_TOY_KABE);
MapGridSetMetatileIdAt(x, y, 0x276); MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_BreakableDoor_BottomOpen);
MapGridSetMetatileIdAt(x, y - 1, 0x26E); MapGridSetMetatileIdAt(x, y - 1, METATILE_SecretBase_BreakableDoor_TopOpen);
CurrentMapDrawMetatileAt(x, y); CurrentMapDrawMetatileAt(x, y);
CurrentMapDrawMetatileAt(x, y - 1); CurrentMapDrawMetatileAt(x, y - 1);
} }
@@ -946,28 +948,28 @@ static void Task_SecretBaseMusicNoteMatSound(u8 taskId)
{ {
switch (gTasks[taskId].tMetatileID) switch (gTasks[taskId].tMetatileID)
{ {
case 632: case METATILE_SecretBase_NoteMat_C:
PlaySE(SE_TOY_C); PlaySE(SE_TOY_C);
break; break;
case 633: case METATILE_SecretBase_NoteMat_D:
PlaySE(SE_TOY_D); PlaySE(SE_TOY_D);
break; break;
case 634: case METATILE_SecretBase_NoteMat_E:
PlaySE(SE_TOY_E); PlaySE(SE_TOY_E);
break; break;
case 635: case METATILE_SecretBase_NoteMat_F:
PlaySE(SE_TOY_F); PlaySE(SE_TOY_F);
break; break;
case 636: case METATILE_SecretBase_NoteMat_G:
PlaySE(SE_TOY_G); PlaySE(SE_TOY_G);
break; break;
case 637: case METATILE_SecretBase_NoteMat_A:
PlaySE(SE_TOY_A); PlaySE(SE_TOY_A);
break; break;
case 638: case METATILE_SecretBase_NoteMat_B:
PlaySE(SE_TOY_B); PlaySE(SE_TOY_B);
break; break;
case 691: case METATILE_SecretBase_NoteMat_C_Sharp:
PlaySE(SE_TOY_C1); PlaySE(SE_TOY_C1);
break; break;
} }
@@ -1071,12 +1073,12 @@ static void SpriteCB_SandPillar_0(struct Sprite *sprite)
{ {
PlaySE(SE_W088); PlaySE(SE_W088);
if (MapGridGetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1) == 646) if (MapGridGetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1) == METATILE_SecretBase_SandOrnament_TopWall)
MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, 3586); MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, METATILE_SecretBase_Wall_TopMid | METATILE_COLLISION_MASK);
else 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] - 1);
CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6]); CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6]);
@@ -1092,7 +1094,7 @@ static void SpriteCB_SandPillar_1(struct Sprite *sprite)
} }
else else
{ {
MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], 3724); MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], METATILE_SecretBase_SandOrnament_BrokenBase | METATILE_COLLISION_MASK);
CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6]); CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6]);
sprite->data[0] = 0; sprite->data[0] = 0;
sprite->callback = SpriteCB_SandPillar_2; sprite->callback = SpriteCB_SandPillar_2;
@@ -1105,7 +1107,7 @@ static void SpriteCB_SandPillar_2(struct Sprite *sprite)
EnableBothScriptContexts(); EnableBothScriptContexts();
} }
void GetShieldToyTVDecorationInfo(void) void InteractWithShieldOrTVDecoration(void)
{ {
s16 x, y; s16 x, y;
s32 metatileId; s32 metatileId;
@@ -1116,7 +1118,7 @@ void GetShieldToyTVDecorationInfo(void)
switch (metatileId) switch (metatileId)
{ {
case 822: case METATILE_SecretBase_GoldShield_Base1:
ConvertIntToDecimalStringN(gStringVar1, 100, STR_CONV_MODE_LEFT_ALIGN, 3); ConvertIntToDecimalStringN(gStringVar1, 100, STR_CONV_MODE_LEFT_ALIGN, 3);
StringCopy(gStringVar2, gText_Gold); StringCopy(gStringVar2, gText_Gold);
@@ -1125,9 +1127,9 @@ void GetShieldToyTVDecorationInfo(void)
if (!VarGet(VAR_CURRENT_SECRET_BASE)) if (!VarGet(VAR_CURRENT_SECRET_BASE))
return; 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; break;
case 734: case METATILE_SecretBase_SilverShield_Base1:
ConvertIntToDecimalStringN(gStringVar1, 50, STR_CONV_MODE_LEFT_ALIGN, 2); ConvertIntToDecimalStringN(gStringVar1, 50, STR_CONV_MODE_LEFT_ALIGN, 2);
StringCopy(gStringVar2, gText_Silver); StringCopy(gStringVar2, gText_Silver);
@@ -1136,31 +1138,31 @@ void GetShieldToyTVDecorationInfo(void)
if (!VarGet(VAR_CURRENT_SECRET_BASE)) if (!VarGet(VAR_CURRENT_SECRET_BASE))
return; 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; break;
case 756: case METATILE_SecretBase_TV:
gSpecialVar_Result = 1; gSpecialVar_Result = 1;
if (!VarGet(VAR_CURRENT_SECRET_BASE)) if (!VarGet(VAR_CURRENT_SECRET_BASE))
return; 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; break;
case 757: case METATILE_SecretBase_RoundTV:
gSpecialVar_Result = 2; gSpecialVar_Result = 2;
if (!VarGet(VAR_CURRENT_SECRET_BASE)) if (!VarGet(VAR_CURRENT_SECRET_BASE))
return; 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; break;
case 758: case METATILE_SecretBase_CuteTV:
gSpecialVar_Result = 3; gSpecialVar_Result = 3;
if (!VarGet(VAR_CURRENT_SECRET_BASE)) if (!VarGet(VAR_CURRENT_SECRET_BASE))
return; 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; break;
} }
} }
@@ -1172,16 +1174,16 @@ bool8 sub_80FADE4(u16 metatileId, u8 arg1)
if (!arg1) if (!arg1)
{ {
if (metatileId == 0x285 || metatileId == 0x286) if (metatileId == METATILE_SecretBase_SandOrnament_Top || metatileId == METATILE_SecretBase_SandOrnament_TopWall)
return TRUE; return TRUE;
if (metatileId == 0x237) if (metatileId == METATILE_SecretBase_BreakableDoor_TopClosed)
return TRUE; return TRUE;
} }
else else
{ {
if (metatileId == 0x28d) if (metatileId == METATILE_SecretBase_SandOrnament_Base1)
return TRUE; return TRUE;
if (metatileId == 0x23F) if (metatileId == METATILE_SecretBase_BreakableDoor_BottomClosed)
return TRUE; return TRUE;
} }
+2 -1
View File
@@ -14,6 +14,7 @@
#include "battle_pyramid_bag.h" #include "battle_pyramid_bag.h"
#include "constants/items.h" #include "constants/items.h"
#include "constants/hold_effects.h" #include "constants/hold_effects.h"
#include "constants/tv.h"
extern u16 gUnknown_0203CF30[]; extern u16 gUnknown_0203CF30[];
@@ -542,7 +543,7 @@ bool8 RemoveBagItem(u16 itemId, u16 count)
if (CurMapIsSecretBase() == TRUE) 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); VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, itemId);
} }
+3 -2
View File
@@ -1349,7 +1349,7 @@ bool8 sub_800AA60(void)
{ {
if (gLinkPlayers[i].trainerId == gSavedLinkPlayers[i].trainerId) if (gLinkPlayers[i].trainerId == gSavedLinkPlayers[i].trainerId)
{ {
if (gLinkType == LINKTYPE_0x2288) if (gLinkType == LINKTYPE_BATTLE_TOWER)
{ {
if (gLinkType == gLinkPlayers[i].linkType) if (gLinkType == gLinkPlayers[i].linkType)
{ {
@@ -1902,7 +1902,8 @@ bool32 sub_800B504(void)
return FALSE; return FALSE;
} }
u8 sub_800B518(void) // Unused
u8 GetWirelessCommType(void)
{ {
return gWirelessCommType; return gWirelessCommType;
} }
+1
View File
@@ -53,6 +53,7 @@ void sub_801DBDC(void)
} }
} }
// Unused
u16 sub_801DC20(void) u16 sub_801DC20(void)
{ {
u16 *r6 = &gSpecialVar_Result; u16 *r6 = &gSpecialVar_Result;
+1 -1
View File
@@ -863,7 +863,7 @@ static void mli0_load_map(u32 a1)
isOutdoors = IsMapTypeOutdoors(gMapHeader.mapType); isOutdoors = IsMapTypeOutdoors(gMapHeader.mapType);
isIndoors = IsMapTypeIndoors(gMapHeader.mapType); isIndoors = IsMapTypeIndoors(gMapHeader.mapType);
sub_80EB218(); CheckLeftFriendsSecretBase();
TrySetMapSaveWarpStatus(); TrySetMapSaveWarpStatus();
ClearTempFieldEventData(); ClearTempFieldEventData();
ResetCyclingRoadChallengeData(); ResetCyclingRoadChallengeData();
+21 -19
View File
@@ -52,6 +52,7 @@ void SetContestTrainerGfxIds(void)
gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_2 - VARS_START] = gContestMons[2].trainerGfxId; gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_2 - VARS_START] = gContestMons[2].trainerGfxId;
} }
// Unused
void sub_80F8814(void) void sub_80F8814(void)
{ {
u16 var1; u16 var1;
@@ -82,7 +83,8 @@ void BufferContestTrainerAndMonNames(void)
BufferContestantMonSpecies(); BufferContestantMonSpecies();
} }
void sub_80F8864(void) // Unused
void DoesContestCategoryHaveWinner(void)
{ {
int contestWinner; int contestWinner;
switch (gSpecialVar_ContestCategory) switch (gSpecialVar_ContestCategory)
@@ -105,10 +107,10 @@ void sub_80F8864(void)
break; break;
} }
if (!gSaveBlock1Ptr->contestWinners[contestWinner].species) if (gSaveBlock1Ptr->contestWinners[contestWinner].species == SPECIES_NONE)
gSpecialVar_0x8004 = 0; gSpecialVar_0x8004 = FALSE;
else else
gSpecialVar_0x8004 = 1; gSpecialVar_0x8004 = TRUE;
} }
void SaveMuseumContestPainting(void) void SaveMuseumContestPainting(void)
@@ -144,9 +146,10 @@ u8 CountPlayerContestPaintings(void)
return count; return count;
} }
// Unused
void sub_80F8970(void) void sub_80F8970(void)
{ {
s16 sp[4]; s16 conditions[CONTESTANT_COUNT];
int i, j; int i, j;
s16 condition; s16 condition;
s8 var0; s8 var0;
@@ -154,28 +157,27 @@ void sub_80F8970(void)
u8 r8; u8 r8;
u8 r7; u8 r7;
for (i = 0; i < 4; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
sp[i] = gContestMonConditions[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]; int temp;
sp[j] = sp[j - 1]; SWAP(conditions[j], conditions[j - 1], temp)
sp[j - 1] = temp;
} }
} }
} }
condition = sp[gSpecialVar_0x8006]; condition = conditions[gSpecialVar_0x8006];
var0 = 0; var0 = 0;
r8 = 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++; var0++;
if (i == gSpecialVar_0x8006) 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; break;
} }
r7 = i; r7 = i;
var2 = r8; var2 = r8;
for (i = 0; i < 4; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
if (condition == gContestMonConditions[i]) if (condition == gContestMonConditions[i])
{ {
+238 -244
View File
@@ -41,11 +41,13 @@
#include "constants/maps.h" #include "constants/maps.h"
#include "constants/map_types.h" #include "constants/map_types.h"
#include "constants/metatile_behaviors.h" #include "constants/metatile_behaviors.h"
#include "constants/metatile_labels.h"
#include "constants/moves.h" #include "constants/moves.h"
#include "constants/secret_bases.h" #include "constants/secret_bases.h"
#include "constants/songs.h" #include "constants/songs.h"
#include "constants/species.h" #include "constants/species.h"
#include "constants/trainers.h" #include "constants/trainers.h"
#include "constants/tv.h"
struct SecretBaseRegistryMenu struct SecretBaseRegistryMenu
{ {
@@ -88,13 +90,13 @@ static u8 GetSecretBaseOwnerType(u8 secretBaseId);
static const struct SecretBaseEntranceMetatiles sSecretBaseEntranceMetatiles[] = static const struct SecretBaseEntranceMetatiles sSecretBaseEntranceMetatiles[] =
{ {
{.closedMetatileId = 0x0026, .openMetatileId = 0x0036}, {.closedMetatileId = METATILE_General_SecretBase_TreeLeft, .openMetatileId = METATILE_General_SecretBase_VineLeft},
{.closedMetatileId = 0x0027, .openMetatileId = 0x0037}, {.closedMetatileId = METATILE_General_SecretBase_TreeRight, .openMetatileId = METATILE_General_SecretBase_VineRight},
{.closedMetatileId = 0x01a0, .openMetatileId = 0x01a1}, {.closedMetatileId = METATILE_General_RedCaveIndent, .openMetatileId = METATILE_General_RedCaveOpen},
{.closedMetatileId = 0x01a8, .openMetatileId = 0x01a9}, {.closedMetatileId = METATILE_General_YellowCaveIndent, .openMetatileId = METATILE_General_YellowCaveOpen},
{.closedMetatileId = 0x01b0, .openMetatileId = 0x01b1}, {.closedMetatileId = METATILE_General_BlueCaveIndent, .openMetatileId = METATILE_General_BlueCaveOpen},
{.closedMetatileId = 0x0208, .openMetatileId = 0x0210}, {.closedMetatileId = METATILE_Fallarbor_BrownCaveIndent, .openMetatileId = METATILE_Fallarbor_BrownCaveOpen},
{.closedMetatileId = 0x0271, .openMetatileId = 0x0278}, {.closedMetatileId = METATILE_Fortree_SecretBase_Shrub, .openMetatileId = METATILE_Fortree_SecretBase_ShrubOpen},
}; };
// mapNum, warpId, x, y // mapNum, warpId, x, y
@@ -452,10 +454,10 @@ static void EnterNewlyCreatedSecretBase_StartFadeIn(void)
ScriptContext2_Enable(); ScriptContext2_Enable();
HideMapNamePopUpWindow(); HideMapNamePopUpWindow();
FindMetatileIdMapCoords(&x, &y, 0x220); FindMetatileIdMapCoords(&x, &y, METATILE_SecretBase_PC);
x += 7; x += 7;
y += 7; y += 7;
MapGridSetMetatileIdAt(x, y, 0x220 | METATILE_COLLISION_MASK); MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_PC | METATILE_COLLISION_MASK);
CurrentMapDrawMetatileAt(x, y); CurrentMapDrawMetatileAt(x, y);
FadeInFromBlack(); FadeInFromBlack();
CreateTask(EnterNewlyCreatedSecretBase_WaitFadeIn, 0); CreateTask(EnterNewlyCreatedSecretBase_WaitFadeIn, 0);
@@ -506,7 +508,7 @@ void InitSecretBaseAppearance(bool8 hidePC)
secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE); secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE);
decorations = gSaveBlock1Ptr->secretBases[secretBaseId].decorations; decorations = gSaveBlock1Ptr->secretBases[secretBaseId].decorations;
decorPos = gSaveBlock1Ptr->secretBases[secretBaseId].decorationPositions; 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) 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]); ShowDecorationOnMap((decorPos[x] >> 4) + 7, (decorPos[x] & 0xF) + 7, decorations[x]);
@@ -515,14 +517,14 @@ void InitSecretBaseAppearance(bool8 hidePC)
if (secretBaseId != 0) if (secretBaseId != 0)
{ {
// Another player's secret base. Change PC type to the "Register" PC. // Another player's secret base. Change PC type to the "Register" PC.
FindMetatileIdMapCoords(&x, &y, 0x220); FindMetatileIdMapCoords(&x, &y, METATILE_SecretBase_PC);
MapGridSetMetatileIdAt(x + 7, y + 7, 0x221 | METATILE_COLLISION_MASK); MapGridSetMetatileIdAt(x + 7, y + 7, METATILE_SecretBase_RegisterPC | METATILE_COLLISION_MASK);
} }
else if (hidePC == TRUE && VarGet(VAR_SECRET_BASE_INITIALIZED) == 1) else if (hidePC == TRUE && VarGet(VAR_SECRET_BASE_INITIALIZED) == 1)
{ {
// Change PC to regular ground tile. // Change PC to regular ground tile.
FindMetatileIdMapCoords(&x, &y, 0x220); FindMetatileIdMapCoords(&x, &y, METATILE_SecretBase_PC);
MapGridSetMetatileIdAt(x + 7, y + 7, 0x20a | METATILE_COLLISION_MASK); 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); VarSet(VAR_SECRET_BASE_STEP_COUNTER, VarGet(VAR_SECRET_BASE_STEP_COUNTER) + 1);
behavior = MapGridGetMetatileBehaviorAt(x, y); behavior = MapGridGetMetatileBehaviorAt(x, y);
tileId = MapGridGetMetatileIdAt(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) 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) 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) 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) 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) 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) ^ SECRET_BASE_USED_SLIDE);
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_DECLINED_SLIDE);
} }
} }
else if (behavior == 0x47 && tileId == 0x23e) else if (behavior == MB_SLIDE_SOUTH && tileId == METATILE_SecretBase_Slide)
{ {
if (sInFriendSecretBase == TRUE) 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) | SECRET_BASE_USED_SLIDE);
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_DECLINED_SLIDE);
} }
} }
else if (MetatileBehavior_IsSecretBaseGlitterMat(behavior) == TRUE) else if (MetatileBehavior_IsSecretBaseGlitterMat(behavior) == TRUE)
{ {
if (sInFriendSecretBase == 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) else if (MetatileBehavior_IsSecretBaseBalloon(behavior) == TRUE)
{ {
@@ -1224,13 +1238,13 @@ void SecretBasePerStepCallback(u8 taskId)
{ {
switch ((int)MapGridGetMetatileIdAt(x, y)) switch ((int)MapGridGetMetatileIdAt(x, y))
{ {
case 0x338: case METATILE_SecretBase_RedBalloon:
case 0x33c: case METATILE_SecretBase_BlueBalloon:
case 0x340: case METATILE_SecretBase_YellowBalloon:
VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x02); VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_BALLOON);
break; break;
case 0x228: case METATILE_SecretBase_MudBall:
VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x100); VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_MUD_BALL);
break; break;
} }
} }
@@ -1238,23 +1252,23 @@ void SecretBasePerStepCallback(u8 taskId)
else if (MetatileBehavior_IsSecretBaseBreakableDoor(behavior) == TRUE) else if (MetatileBehavior_IsSecretBaseBreakableDoor(behavior) == TRUE)
{ {
if (sInFriendSecretBase == 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); ShatterSecretBaseBreakableDoor(x, y);
} }
else if (MetatileBehavior_IsSecretBaseSoundMat(behavior) == TRUE){ else if (MetatileBehavior_IsSecretBaseSoundMat(behavior) == TRUE){
if (sInFriendSecretBase == 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) else if (MetatileBehavior_IsSecretBaseJumpMat(behavior) == TRUE)
{ {
if (sInFriendSecretBase == 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) else if (MetatileBehavior_IsSecretBaseSpinMat(behavior) == TRUE)
{ {
if (sInFriendSecretBase == 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; 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)) if ((secretBases[i].registryStatus == 0 && secretBases[j].registryStatus == 1) || (secretBases[i].registryStatus == 2 && secretBases[j].registryStatus != 2))
{ {
struct SecretBase temp = secretBases[i]; struct SecretBase temp;
secretBases[i] = secretBases[j]; SWAP(secretBases[i], secretBases[j], temp)
secretBases[j] = temp;
} }
} }
} }
@@ -1461,48 +1474,57 @@ bool8 SecretBaseBelongsToPlayer(struct SecretBase *secretBase)
return TRUE; 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) void DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(struct SecretBase *basesA, struct SecretBase *basesB, struct SecretBase *basesC)
{ {
u8 i; u8 i;
u8 sbFlags = 0x0; u8 sbFlags = 0;
for (i = 0; i < SECRET_BASES_COUNT; i++) for (i = 0; i < SECRET_BASES_COUNT; i++)
{ {
if (!(sbFlags & 0x1)) // 001 if (!(sbFlags & DELETED_BASE_A))
{ {
if (SecretBaseBelongsToPlayer(&basesA[i]) == TRUE) if (SecretBaseBelongsToPlayer(&basesA[i]) == TRUE)
{ {
ClearSecretBase(&basesA[i]); ClearSecretBase(&basesA[i]);
sbFlags |= 1; sbFlags |= DELETED_BASE_A;
} }
} }
if (!(sbFlags & 0x2)) // 010 if (!(sbFlags & DELETED_BASE_B))
{ {
if (SecretBaseBelongsToPlayer(&basesB[i]) == TRUE) if (SecretBaseBelongsToPlayer(&basesB[i]) == TRUE)
{ {
ClearSecretBase(&basesB[i]); ClearSecretBase(&basesB[i]);
sbFlags |= 2; sbFlags |= DELETED_BASE_B;
} }
} }
if (!(sbFlags & 0x4)) // 100 if (!(sbFlags & DELETED_BASE_C))
{ {
if (SecretBaseBelongsToPlayer(&basesC[i]) == TRUE) if (SecretBaseBelongsToPlayer(&basesC[i]) == TRUE)
{ {
ClearSecretBase(&basesC[i]); 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; 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; u8 i;
@@ -1546,11 +1568,11 @@ void sub_80EAD94(struct SecretBase *basesA, struct SecretBase *basesB, struct Se
{ {
basesA[i].sbr_field_1_0 = 1; 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) if (basesB[i].secretBaseId)
{ {
basesB[i].battledOwnerToday = 0; 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) if (basesC[i].secretBaseId)
{ {
basesC[i].battledOwnerToday = 0; basesC[i].battledOwnerToday = 0;
sub_80EAD14(&basesC[i], basesD, i); ClearDuplicateOwnedSecretBases(&basesC[i], basesD, i);
} }
if (basesD[i].secretBaseId) if (basesD[i].secretBaseId)
{ {
@@ -1617,6 +1639,17 @@ void sub_80EAEF4(struct SecretBaseRecordMixer *mixers)
sub_80EABA4(&mixers[2], 0); 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) void ReceiveSecretBasesData(void *secretBases, size_t recordSize, u8 linkIdx)
{ {
struct SecretBaseRecordMixer mixers[3]; struct SecretBaseRecordMixer mixers[3];
@@ -1638,48 +1671,16 @@ void ReceiveSecretBasesData(void *secretBases, size_t recordSize, u8 linkIdx)
switch (linkIdx) switch (linkIdx)
{ {
case 0: case 0:
mixers[0].secretBases = secretBases + 1 * recordSize; INIT_SECRET_BASE_RECORD_MIXER(1, 2, 3)
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;
break; break;
case 1: case 1:
mixers[0].secretBases = secretBases + 2 * recordSize; INIT_SECRET_BASE_RECORD_MIXER(2, 3, 0)
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;
break; break;
case 2: case 2:
mixers[0].secretBases = secretBases + 3 * recordSize; INIT_SECRET_BASE_RECORD_MIXER(3, 0, 1)
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;
break; break;
case 3: case 3:
mixers[0].secretBases = secretBases + 0 * recordSize; INIT_SECRET_BASE_RECORD_MIXER(0, 1, 2)
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;
break; break;
} }
@@ -1734,13 +1735,13 @@ void InitSecretBaseVars(void)
sInFriendSecretBase = FALSE; sInFriendSecretBase = FALSE;
} }
void sub_80EB218(void) void CheckLeftFriendsSecretBase(void)
{ {
if (VarGet(VAR_SECRET_BASE_IS_NOT_LOCAL) && sInFriendSecretBase == TRUE && !CurMapIsSecretBase()) if (VarGet(VAR_SECRET_BASE_IS_NOT_LOCAL) && sInFriendSecretBase == TRUE && !CurMapIsSecretBase())
{ {
VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, FALSE); VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, FALSE);
sInFriendSecretBase = FALSE; sInFriendSecretBase = FALSE;
sub_80EEA70(); TryPutSecretBaseSecretsOnAir();
VarSet(VAR_SECRET_BASE_STEP_COUNTER, 0); VarSet(VAR_SECRET_BASE_STEP_COUNTER, 0);
VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, 0); VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, 0);
VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, 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) 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) 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) 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_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) & ~0x001); 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) | 0x2000); 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) 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_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) & ~0x001); 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) | 0x800); 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) 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_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) & ~0x001); 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) | 0x1000); 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) 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_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) & ~0x001); 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) | 0x001); 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; s16 x, y;
GetXYCoordsOneStepInFrontOfPlayer(&x, &y); GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
switch (MapGridGetMetatileIdAt(x, y)) switch (MapGridGetMetatileIdAt(x, y))
{ {
case 0x31C: case METATILE_SecretBase_PikaPoster_Left:
case 0x31D: case METATILE_SecretBase_PikaPoster_Right:
case 0x31E: case METATILE_SecretBase_LongPoster_Left:
case 0x31F: case METATILE_SecretBase_LongPoster_Right:
case 0x324: case METATILE_SecretBase_SeaPoster_Left:
case 0x325: case METATILE_SecretBase_SeaPoster_Right:
case 0x326: case METATILE_SecretBase_SkyPoster_Left:
case 0x327: case METATILE_SecretBase_SkyPoster_Right:
case 0x32C: case METATILE_SecretBase_KissPoster_Left:
case 0x32D: case METATILE_SecretBase_KissPoster_Right:
case 0x330: case METATILE_SecretBase_BallPoster:
case 0x331: case METATILE_SecretBase_GreenPoster:
case 0x332: case METATILE_SecretBase_RedPoster:
case 0x333: case METATILE_SecretBase_BluePoster:
case 0x334: case METATILE_SecretBase_CutePoster:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) 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; break;
} }
} }
void SetSecretBaseSecretsTvFlags_MiscFurnature(void) void CheckInteractedWithFriendsFurnitureBottom(void)
{ {
s16 x, y; s16 x, y;
GetXYCoordsOneStepInFrontOfPlayer(&x, &y); GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
switch (MapGridGetMetatileIdAt(x, y)) switch (MapGridGetMetatileIdAt(x, y))
{ {
case 0x28a: case METATILE_SecretBase_GlassOrnament_Base1:
case 0x28b: case METATILE_SecretBase_GlassOrnament_Base2:
// Bird Statue
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) 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; break;
case 0x2d8: case METATILE_SecretBase_RedPlant_Base1:
case 0x2d9: case METATILE_SecretBase_RedPlant_Base2:
case 0x2da: case METATILE_SecretBase_TropicalPlant_Base1:
case 0x2db: case METATILE_SecretBase_TropicalPlant_Base2:
case 0x2dc: case METATILE_SecretBase_PrettyFlower_Base1:
case 0x2dd: case METATILE_SecretBase_PrettyFlower_Base2:
case 0x2e8: case METATILE_SecretBase_ColorfulFlowers_BaseLeft1:
case 0x2e9: case METATILE_SecretBase_ColorfulFlowers_BaseRight1:
case 0x2ea: case METATILE_SecretBase_ColorfulFlowers_BaseLeft2:
case 0x2eb: case METATILE_SecretBase_ColorfulFlowers_BaseRight2:
case 0x2ec: case METATILE_SecretBase_BigPlant_BaseLeft1:
case 0x2ed: case METATILE_SecretBase_BigPlant_BaseRight1:
case 0x2ee: case METATILE_SecretBase_BigPlant_BaseLeft2:
case 0x2ef: case METATILE_SecretBase_BigPlant_BaseRight2:
case 0x2f8: case METATILE_SecretBase_GorgeousPlant_BaseLeft1:
case 0x2f9: case METATILE_SecretBase_GorgeousPlant_BaseRight1:
case 0x2fa: case METATILE_SecretBase_GorgeousPlant_BaseLeft2:
case 0x2fb: case METATILE_SecretBase_GorgeousPlant_BaseRight2:
// Plants
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) 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; break;
case 0x22c: case METATILE_SecretBase_Fence_Horizontal:
case 0x233: case METATILE_SecretBase_Fence_Vertical:
// Fence
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) 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; break;
case 0x288: case METATILE_SecretBase_Tire_BottomLeft:
case 0x289: case METATILE_SecretBase_Tire_BottomRight:
// Tire
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) 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; break;
case 0x22d: case METATILE_SecretBase_RedBrick_Bottom:
case 0x22e: case METATILE_SecretBase_YellowBrick_Bottom:
case 0x22f: case METATILE_SecretBase_BlueBrick_Bottom:
// Bricks
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) 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; break;
case 0x287: case METATILE_SecretBase_SmallDesk:
case 0x28f: case METATILE_SecretBase_PokemonDesk:
case 0x298: case METATILE_SecretBase_HeavyDesk_BottomLeft:
case 0x299: case METATILE_SecretBase_HeavyDesk_BottomMid:
case 0x29a: case METATILE_SecretBase_HeavyDesk_BottomRight:
case 0x29b: case METATILE_SecretBase_RaggedDesk_BottomLeft:
case 0x29c: case METATILE_SecretBase_RaggedDesk_BottomMid:
case 0x29d: case METATILE_SecretBase_RaggedDesk_BottomRight:
case 0x29e: case METATILE_SecretBase_ComfortDesk_BottomLeft:
case 0x29f: case METATILE_SecretBase_ComfortDesk_BottomMid:
case 0x2ab: case METATILE_SecretBase_ComfortDesk_BottomRight:
case 0x2b0: case METATILE_SecretBase_BrickDesk_BottomLeft:
case 0x2b1: case METATILE_SecretBase_BrickDesk_BottomMid:
case 0x2b2: case METATILE_SecretBase_BrickDesk_BottomRight:
case 0x2b4: case METATILE_SecretBase_CampDesk_BottomLeft:
case 0x2b5: case METATILE_SecretBase_CampDesk_BottomMid:
case 0x2b6: case METATILE_SecretBase_CampDesk_BottomRight:
case 0x2b7: case METATILE_SecretBase_HardDesk_BottomLeft:
case 0x2cb: case METATILE_SecretBase_HardDesk_BottomMid:
case 0x2cc: case METATILE_SecretBase_HardDesk_BottomRight:
case 0x2cd: case METATILE_SecretBase_PrettyDesk_BottomLeft:
case 0x2ce: case METATILE_SecretBase_PrettyDesk_BottomMid:
case 0x2cf: case METATILE_SecretBase_PrettyDesk_BottomRight:
// Tables
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) 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; break;
} }
} }
void SetSecretBaseSecretsTvFlags_LargeDecorationSpot(void) void CheckInteractedWithFriendsFurnitureMiddle(void)
{ {
s16 x, y; s16 x, y;
GetXYCoordsOneStepInFrontOfPlayer(&x, &y); GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
switch (MapGridGetMetatileIdAt(x, y)) switch (MapGridGetMetatileIdAt(x, y))
{ {
case 0x291: case METATILE_SecretBase_HeavyDesk_TopMid:
case 0x294: case METATILE_SecretBase_RaggedDesk_TopMid:
case 0x297: case METATILE_SecretBase_ComfortDesk_TopMid:
case 0x2a1: case METATILE_SecretBase_BrickDesk_TopMid:
case 0x2a5: case METATILE_SecretBase_BrickDesk_Center:
case 0x2a9: case METATILE_SecretBase_CampDesk_TopMid:
case 0x2ad: case METATILE_SecretBase_CampDesk_Center:
case 0x2bb: case METATILE_SecretBase_HardDesk_TopMid:
case 0x2be: case METATILE_SecretBase_HardDesk_Center:
case 0x2c3: case METATILE_SecretBase_PrettyDesk_TopMid:
case 0x2c6: case METATILE_SecretBase_PrettyDesk_Center:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) 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; break;
} }
} }
void SetSecretBaseSecretsTvFlags_SmallDecorationSpot(void) void CheckInteractedWithFriendsFurnitureTop(void)
{ {
s16 x, y; s16 x, y;
GetXYCoordsOneStepInFrontOfPlayer(&x, &y); GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
switch (MapGridGetMetatileIdAt(x, y)) switch (MapGridGetMetatileIdAt(x, y))
{ {
case 0x290: case METATILE_SecretBase_HeavyDesk_TopLeft:
case 0x292: case METATILE_SecretBase_HeavyDesk_TopRight:
case 0x293: case METATILE_SecretBase_RaggedDesk_TopLeft:
case 0x295: case METATILE_SecretBase_RaggedDesk_TopRight:
case 0x296: case METATILE_SecretBase_ComfortDesk_TopLeft:
case 0x2a0: case METATILE_SecretBase_ComfortDesk_TopRight:
case 0x2a2: case METATILE_SecretBase_BrickDesk_TopLeft:
case 0x2a3: case METATILE_SecretBase_BrickDesk_TopRight:
case 0x2a4: case METATILE_SecretBase_BrickDesk_MidLeft:
case 0x2a6: case METATILE_SecretBase_BrickDesk_MidRight:
case 0x2a7: case METATILE_SecretBase_CampDesk_TopLeft:
case 0x2a8: case METATILE_SecretBase_CampDesk_TopRight:
case 0x2aa: case METATILE_SecretBase_CampDesk_MidLeft:
case 0x2ac: case METATILE_SecretBase_CampDesk_MidRight:
case 0x2ae: case METATILE_SecretBase_HardDesk_TopLeft:
case 0x2af: case METATILE_SecretBase_HardDesk_TopRight:
case 0x2bc: case METATILE_SecretBase_HardDesk_MidLeft:
case 0x2bd: case METATILE_SecretBase_HardDesk_MidRight:
case 0x2bf: case METATILE_SecretBase_PrettyDesk_TopLeft:
case 0x2c4: case METATILE_SecretBase_PrettyDesk_TopRight:
case 0x2c5: case METATILE_SecretBase_PrettyDesk_MidLeft:
case 0x2c7: case METATILE_SecretBase_PrettyDesk_MidRight:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) 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; break;
case 0x280: case METATILE_SecretBase_Tire_TopLeft:
case 0x281: case METATILE_SecretBase_Tire_TopRight:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) 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; break;
case 0x225: case METATILE_SecretBase_RedBrick_Top:
case 0x226: case METATILE_SecretBase_YellowBrick_Top:
case 0x227: case METATILE_SecretBase_BlueBrick_Top:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) 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; break;
} }
} }
void SetSecretBaseSecretsTvFlags_SandOrnament(void) void CheckInteractedWithFriendsSandOrnament(void)
{ {
s16 x, y; s16 x, y;
GetXYCoordsOneStepInFrontOfPlayer(&x, &y); GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
switch ((int)MapGridGetMetatileIdAt(x, y)) switch ((int)MapGridGetMetatileIdAt(x, y))
{ {
case 0x28d: case METATILE_SecretBase_SandOrnament_Base1:
case 0x28e: case METATILE_SecretBase_SandOrnament_Base2:
// Sand Ornament
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) 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; break;
} }
} }
+139 -236
View File
@@ -637,50 +637,51 @@ static const u8 *const sTVWhatsNo1InHoennTodayTextGroup[] = {
gTVWhatsNo1InHoennTodayText08 gTVWhatsNo1InHoennTodayText08
}; };
static const u8 *const sTVSecretBaseSecretsTextGroup[] = { static const u8 *const sTVSecretBaseSecretsTextGroup[SBSECRETS_NUM_STATES] =
gTVSecretBaseSecretsText00, {
gTVSecretBaseSecretsText01, [SBSECRETS_STATE_INTRO] = TVSecretBaseSecrets_Text_Intro,
gTVSecretBaseSecretsText02, [SBSECRETS_STATE_DO_NEXT1] = TVSecretBaseSecrets_Text_WhatWillPlayerDoNext1,
gTVSecretBaseSecretsText03, [SBSECRETS_STATE_DO_NEXT2] = TVSecretBaseSecrets_Text_WhatWillPlayerDoNext2,
gTVSecretBaseSecretsText04, [SBSECRETS_STATE_TOOK_X_STEPS] = TVSecretBaseSecrets_Text_TookXStepsBeforeLeaving,
gTVSecretBaseSecretsText05, [SBSECRETS_STATE_BASE_INTEREST_LOW] = TVSecretBaseSecrets_Text_BaseFailedToInterestPlayer,
gTVSecretBaseSecretsText06, [SBSECRETS_STATE_BASE_INTEREST_MED] = TVSecretBaseSecrets_Text_PlayerEnjoyedBase,
gTVSecretBaseSecretsText07, [SBSECRETS_STATE_BASE_INTEREST_HIGH] = TVSecretBaseSecrets_Text_PlayerHugeFanOfBase,
gTVSecretBaseSecretsText08, [SBSECRETS_STATE_OUTRO] = TVSecretBaseSecrets_Text_Outro,
gTVSecretBaseSecretsText09, [SBSECRETS_STATE_NOTHING_USED1] = TVSecretBaseSecrets_Text_StoppedMoving1,
gTVSecretBaseSecretsText10, [SBSECRETS_STATE_NOTHING_USED2] = TVSecretBaseSecrets_Text_StoppedMoving2,
gTVSecretBaseSecretsText11, [SBSECRETS_STATE_USED_CHAIR] = TVSecretBaseSecrets_Text_UsedChair,
gTVSecretBaseSecretsText12, [SBSECRETS_STATE_USED_BALLOON] = TVSecretBaseSecrets_Text_UsedBalloon,
gTVSecretBaseSecretsText13, [SBSECRETS_STATE_USED_TENT] = TVSecretBaseSecrets_Text_UsedTent,
gTVSecretBaseSecretsText14, [SBSECRETS_STATE_USED_PLANT] = TVSecretBaseSecrets_Text_UsedPlant,
gTVSecretBaseSecretsText15, [SBSECRETS_STATE_USED_GOLD_SHIELD] = TVSecretBaseSecrets_Text_UsedGoldShield,
gTVSecretBaseSecretsText16, [SBSECRETS_STATE_USED_SILVER_SHIELD] = TVSecretBaseSecrets_Text_UsedSilverShield,
gTVSecretBaseSecretsText17, [SBSECRETS_STATE_USED_GLASS_ORNAMENT] = TVSecretBaseSecrets_Text_UsedGlassOrnament,
gTVSecretBaseSecretsText18, [SBSECRETS_STATE_USED_TV] = TVSecretBaseSecrets_Text_UsedTV,
gTVSecretBaseSecretsText19, [SBSECRETS_STATE_USED_MUD_BALL] = TVSecretBaseSecrets_Text_UsedMudBall,
gTVSecretBaseSecretsText20, [SBSECRETS_STATE_USED_BAG] = TVSecretBaseSecrets_Text_UsedBag,
gTVSecretBaseSecretsText21, [SBSECRETS_STATE_USED_CUSHION] = TVSecretBaseSecrets_Text_UsedCushion,
gTVSecretBaseSecretsText22, [SBSECRETS_STATE_HIT_CUSHION] = TVSecretBaseSecrets_Text_HitCushion,
gTVSecretBaseSecretsText23, [SBSECRETS_STATE_HUGGED_CUSHION] = TVSecretBaseSecrets_Text_HuggedCushion,
gTVSecretBaseSecretsText24, [SBSECRETS_STATE_BATTLED_WON] = TVSecretBaseSecrets_Text_BattledWon,
gTVSecretBaseSecretsText25, [SBSECRETS_STATE_BATTLED_LOST] = TVSecretBaseSecrets_Text_BattledLost,
gTVSecretBaseSecretsText26, [SBSECRETS_STATE_DECLINED_BATTLE] = TVSecretBaseSecrets_Text_DeclinedBattle,
gTVSecretBaseSecretsText27, [SBSECRETS_STATE_USED_POSTER] = TVSecretBaseSecrets_Text_UsedPoster,
gTVSecretBaseSecretsText28, [SBSECRETS_STATE_USED_NOTE_MAT] = TVSecretBaseSecrets_Text_UsedNoteMat,
gTVSecretBaseSecretsText29, [SBSECRETS_STATE_BATTLED_DRAW] = TVSecretBaseSecrets_Text_BattledDraw,
gTVSecretBaseSecretsText30, [SBSECRETS_STATE_USED_SPIN_MAT] = TVSecretBaseSecrets_Text_UsedSpinMat,
gTVSecretBaseSecretsText31, [SBSECRETS_STATE_USED_SAND_ORNAMENT] = TVSecretBaseSecrets_Text_UsedSandOrnament,
gTVSecretBaseSecretsText32, [SBSECRETS_STATE_USED_DESK] = TVSecretBaseSecrets_Text_UsedDesk,
gTVSecretBaseSecretsText33, [SBSECRETS_STATE_USED_BRICK] = TVSecretBaseSecrets_Text_UsedBrick,
gTVSecretBaseSecretsText34, [SBSECRETS_STATE_USED_SOLID_BOARD] = TVSecretBaseSecrets_Text_UsedSolidBoard,
gTVSecretBaseSecretsText35, [SBSECRETS_STATE_USED_FENCE] = TVSecretBaseSecrets_Text_UsedFence,
gTVSecretBaseSecretsText36, [SBSECRETS_STATE_USED_GLITTER_MAT] = TVSecretBaseSecrets_Text_UsedGlitterMat,
gTVSecretBaseSecretsText37, [SBSECRETS_STATE_USED_TIRE] = TVSecretBaseSecrets_Text_UsedTire,
gTVSecretBaseSecretsText38, [SBSECRETS_STATE_USED_STAND] = TVSecretBaseSecrets_Text_UsedStand,
gTVSecretBaseSecretsText39, [SBSECRETS_STATE_USED_BREAKABLE_DOOR] = TVSecretBaseSecrets_Text_BrokeDoor,
gTVSecretBaseSecretsText40, [SBSECRETS_STATE_USED_DOLL] = TVSecretBaseSecrets_Text_UsedDoll,
gTVSecretBaseSecretsText41, [SBSECRETS_STATE_USED_SLIDE] = TVSecretBaseSecrets_Text_UsedSlide,
gTVSecretBaseSecretsText42 [SBSECRETS_STATE_DECLINED_SLIDE] = TVSecretBaseSecrets_Text_UsedSlideButDidntGoDown,
[SBSECRETS_STATE_USED_JUMP_MAT] = TVSecretBaseSecrets_Text_UsedJumpMat
}; };
static const u8 *const sTVSafariFanClubTextGroup[] = { static const u8 *const sTVSafariFanClubTextGroup[] = {
@@ -709,39 +710,42 @@ static const u8 *const sTVInSearchOfTrainersTextGroup[] = {
gTVInSearchOfTrainersText08 gTVInSearchOfTrainersText08
}; };
const u8 sTVSecretBaseSecretsStateLookup[] = { // Secret Base Secrets TV Show states for actions that can be taken in a secret base
0x0a, // The flags that determine whether or not the action was taken are commented
0x0b, const u8 sTVSecretBaseSecretsActions[NUM_SECRET_BASE_FLAGS] =
0x0c, {
0x0d, SBSECRETS_STATE_USED_CHAIR, // SECRET_BASE_USED_CHAIR
0x0e, SBSECRETS_STATE_USED_BALLOON, // SECRET_BASE_USED_BALLOON
0x0f, SBSECRETS_STATE_USED_TENT, // SECRET_BASE_USED_TENT
0x10, SBSECRETS_STATE_USED_PLANT, // SECRET_BASE_USED_PLANT
0x11, SBSECRETS_STATE_USED_GOLD_SHIELD, // SECRET_BASE_USED_GOLD_SHIELD
0x12, SBSECRETS_STATE_USED_SILVER_SHIELD, // SECRET_BASE_USED_SILVER_SHIELD
0x13, SBSECRETS_STATE_USED_GLASS_ORNAMENT, // SECRET_BASE_USED_GLASS_ORNAMENT
0x14, SBSECRETS_STATE_USED_TV, // SECRET_BASE_USED_TV
0x17, SBSECRETS_STATE_USED_MUD_BALL, // SECRET_BASE_USED_MUD_BALL
0x18, SBSECRETS_STATE_USED_BAG, // SECRET_BASE_USED_BAG
0x19, SBSECRETS_STATE_USED_CUSHION, // SECRET_BASE_USED_CUSHION
0x1a, SBSECRETS_STATE_BATTLED_WON, // SECRET_BASE_BATTLED_WON
0x1b, SBSECRETS_STATE_BATTLED_LOST, // SECRET_BASE_BATTLED_LOST
0x1c, SBSECRETS_STATE_DECLINED_BATTLE, // SECRET_BASE_DECLINED_BATTLE
0x1d, SBSECRETS_STATE_USED_POSTER, // SECRET_BASE_USED_POSTER
0x1e, SBSECRETS_STATE_USED_NOTE_MAT, // SECRET_BASE_USED_NOTE_MAT
0x1f, SBSECRETS_STATE_BATTLED_DRAW, // SECRET_BASE_BATTLED_DRAW
0x20, SBSECRETS_STATE_USED_SPIN_MAT, // SECRET_BASE_USED_SPIN_MAT
0x21, SBSECRETS_STATE_USED_SAND_ORNAMENT, // SECRET_BASE_USED_SAND_ORNAMENT
0x22, SBSECRETS_STATE_USED_DESK, // SECRET_BASE_USED_DESK
0x23, SBSECRETS_STATE_USED_BRICK, // SECRET_BASE_USED_BRICK
0x24, SBSECRETS_STATE_USED_SOLID_BOARD, // SECRET_BASE_USED_SOLID_BOARD
0x25, SBSECRETS_STATE_USED_FENCE, // SECRET_BASE_USED_FENCE
0x26, SBSECRETS_STATE_USED_GLITTER_MAT, // SECRET_BASE_USED_GLITTER_MAT
0x27, SBSECRETS_STATE_USED_TIRE, // SECRET_BASE_USED_TIRE
0x28, SBSECRETS_STATE_USED_STAND, // SECRET_BASE_USED_STAND
0x29, SBSECRETS_STATE_USED_BREAKABLE_DOOR, // SECRET_BASE_USED_BREAKABLE_DOOR
0x2a, SBSECRETS_STATE_USED_DOLL, // SECRET_BASE_USED_DOLL
0x2b 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 // .text
@@ -2544,7 +2548,7 @@ void TryPutFrontierTVShowOnAir(u16 winStreak, u8 facilityAndMode)
} }
} }
void sub_80EEA70(void) void TryPutSecretBaseSecretsOnAir(void)
{ {
TVShow *show; TVShow *show;
u8 strbuf[32]; 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); VarSet(VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, 0);
RemoveEventObjectByLocalIdAndMap(5, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); RemoveEventObjectByLocalIdAndMap(5, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
@@ -7340,35 +7344,32 @@ static void DoTVShowWhatsNo1InHoennToday(void)
ShowFieldMessage(sTVWhatsNo1InHoennTodayTextGroup[state]); ShowFieldMessage(sTVWhatsNo1InHoennTodayTextGroup[state]);
} }
u8 TVShowGetFlagCount(TVShow *show) u8 SecretBaseSecrets_GetNumActionsTaken(TVShow *show)
{ {
u8 i; 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 ((show->secretBaseSecrets.flags >> i) & 1)
{ flagsSet++;
tot ++;
}
} }
return tot; return flagsSet;
} }
static u8 SecretBaseSecrets_GetStateForFlagNumber(TVShow *show, u8 a1) static u8 SecretBaseSecrets_GetStateByFlagNumber(TVShow *show, u8 flagId)
{ {
u8 i; 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 ((show->secretBaseSecrets.flags >> i) & 1)
{ {
if (tot == a1) if (flagsSet == flagId)
{ return sTVSecretBaseSecretsActions[i];
return sTVSecretBaseSecretsStateLookup[i];
} flagsSet++;
tot ++;
} }
} }
return 0; return 0;
@@ -7378,7 +7379,7 @@ static void DoTVShowSecretBaseSecrets(void)
{ {
TVShow *show; TVShow *show;
u8 state; u8 state;
u8 bitCount; u8 numActions;
u16 i; u16 i;
show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004];
@@ -7386,226 +7387,128 @@ static void DoTVShowSecretBaseSecrets(void)
state = sTVShowState; state = sTVShowState;
switch (state) switch (state)
{ {
case 0: case SBSECRETS_STATE_INTRO:
TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
bitCount = TVShowGetFlagCount(show); numActions = SecretBaseSecrets_GetNumActionsTaken(show);
if (bitCount == 0) if (numActions == 0)
{ {
sTVShowState = 8; sTVShowState = SBSECRETS_STATE_NOTHING_USED1;
} }
else else
{ {
show->secretBaseSecrets.savedState = 1; show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT1;
sTVSecretBaseSecretsRandomValues[0] = Random() % bitCount; sTVSecretBaseSecretsRandomValues[0] = Random() % numActions;
sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[0]); sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[0]);
} }
break; break;
case 1: case SBSECRETS_STATE_DO_NEXT1:
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
bitCount = TVShowGetFlagCount(show); numActions = SecretBaseSecrets_GetNumActionsTaken(show);
switch (bitCount) switch (numActions)
{ {
case 1: case 1:
sTVShowState = 9; sTVShowState = SBSECRETS_STATE_NOTHING_USED2;
break; break;
case 2: case 2:
show->secretBaseSecrets.savedState = 2; show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT2;
if (sTVSecretBaseSecretsRandomValues[0] == 0) if (sTVSecretBaseSecretsRandomValues[0] == 0)
{ {
sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, 1); sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, 1);
} }
else else
{ {
sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, 0); sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, 0);
} }
break; break;
default: default:
for (i = 0; i < 0xFFFF; i ++) for (i = 0; i < 0xFFFF; i ++)
{ {
sTVSecretBaseSecretsRandomValues[1] = Random() % bitCount; sTVSecretBaseSecretsRandomValues[1] = Random() % numActions;
if (sTVSecretBaseSecretsRandomValues[1] != sTVSecretBaseSecretsRandomValues[0]) if (sTVSecretBaseSecretsRandomValues[1] != sTVSecretBaseSecretsRandomValues[0])
{ {
break; break;
} }
} }
show->secretBaseSecrets.savedState = 2; show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT2;
sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[1]); sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[1]);
break; break;
} }
break; break;
case 2: case SBSECRETS_STATE_DO_NEXT2:
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
bitCount = TVShowGetFlagCount(show); numActions = SecretBaseSecrets_GetNumActionsTaken(show);
if (bitCount == 2) if (numActions == 2)
{ {
sTVShowState = 9; sTVShowState = SBSECRETS_STATE_NOTHING_USED2;
} }
else else
{ {
for (i = 0; i < 0xFFFF; i ++) for (i = 0; i < 0xFFFF; i ++)
{ {
sTVSecretBaseSecretsRandomValues[2] = Random() % bitCount; sTVSecretBaseSecretsRandomValues[2] = Random() % numActions;
if (sTVSecretBaseSecretsRandomValues[2] != sTVSecretBaseSecretsRandomValues[0] && sTVSecretBaseSecretsRandomValues[2] != sTVSecretBaseSecretsRandomValues[1]) if (sTVSecretBaseSecretsRandomValues[2] != sTVSecretBaseSecretsRandomValues[0] && sTVSecretBaseSecretsRandomValues[2] != sTVSecretBaseSecretsRandomValues[1])
{ {
break; break;
} }
} }
show->secretBaseSecrets.savedState = 3; show->secretBaseSecrets.savedState = SBSECRETS_STATE_TOOK_X_STEPS;
sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[2]); sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[2]);
} }
break; break;
case 3: case SBSECRETS_STATE_TOOK_X_STEPS:
TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
TV_PrintIntToStringVar(2, show->secretBaseSecrets.stepsInBase); TV_PrintIntToStringVar(2, show->secretBaseSecrets.stepsInBase);
if (show->secretBaseSecrets.stepsInBase <= 30) if (show->secretBaseSecrets.stepsInBase <= 30)
{ {
sTVShowState = 4; sTVShowState = SBSECRETS_STATE_BASE_INTEREST_LOW;
} }
else if (show->secretBaseSecrets.stepsInBase <= 100) else if (show->secretBaseSecrets.stepsInBase <= 100)
{ {
sTVShowState = 5; sTVShowState = SBSECRETS_STATE_BASE_INTEREST_MED;
} }
else else
{ {
sTVShowState = 6; sTVShowState = SBSECRETS_STATE_BASE_INTEREST_HIGH;
} }
break; break;
case 4: case SBSECRETS_STATE_BASE_INTEREST_LOW ... SBSECRETS_STATE_BASE_INTEREST_HIGH:
TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
sTVShowState = 7; sTVShowState = SBSECRETS_STATE_OUTRO;
break; break;
case 5: case SBSECRETS_STATE_OUTRO:
TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
sTVShowState = 7;
break;
case 6:
TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
sTVShowState = 7;
break;
case 7:
TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
TVShowDone(); TVShowDone();
break; break;
case 8: // All below states are descriptions of what the player interacted with while in the secret base
sTVShowState = 3; case SBSECRETS_STATE_NOTHING_USED1:
sTVShowState = SBSECRETS_STATE_TOOK_X_STEPS;
break; break;
case 9: case SBSECRETS_STATE_NOTHING_USED2:
sTVShowState = 3; sTVShowState = SBSECRETS_STATE_TOOK_X_STEPS;
break; break;
case 10: case SBSECRETS_STATE_USED_CHAIR ... SBSECRETS_STATE_USED_MUD_BALL:
sTVShowState = show->secretBaseSecrets.savedState; sTVShowState = show->secretBaseSecrets.savedState;
break; break;
case 11: case SBSECRETS_STATE_USED_BAG:
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:
StringCopy(gStringVar2, ItemId_GetName(show->secretBaseSecrets.item)); StringCopy(gStringVar2, ItemId_GetName(show->secretBaseSecrets.item));
sTVShowState = show->secretBaseSecrets.savedState; sTVShowState = show->secretBaseSecrets.savedState;
break; 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) if (show->common.trainerIdLo & 1)
{ {
sTVShowState = 22; sTVShowState = SBSECRETS_STATE_HUGGED_CUSHION;
} }
else else
{ {
sTVShowState = 21; sTVShowState = SBSECRETS_STATE_HIT_CUSHION;
} }
break; break;
case 21: case SBSECRETS_STATE_HIT_CUSHION ... SBSECRETS_NUM_STATES:
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:
sTVShowState = show->secretBaseSecrets.savedState; sTVShowState = show->secretBaseSecrets.savedState;
break; break;
} }