From 97b5560bdb5a0c13d673cce8d9c75120c93e8645 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 15 Dec 2019 00:55:21 -0500 Subject: [PATCH 1/8] Document Battle Tent scripts --- .../scripts.inc | 5 +- .../scripts.inc | 5 +- .../scripts.inc | 143 +++++----- .../scripts.inc | 36 +-- .../FallarborTown_BattleTentLobby/map.json | 12 +- .../FallarborTown_BattleTentLobby/scripts.inc | 247 ++++++++--------- .../scripts.inc | 54 ++-- .../scripts.inc | 145 +++++----- .../SlateportCity_BattleTentLobby/map.json | 12 +- .../SlateportCity_BattleTentLobby/scripts.inc | 228 +++++++-------- .../scripts.inc | 104 +++---- .../scripts.inc | 37 +-- .../VerdanturfTown_BattleTentLobby/map.json | 14 +- .../scripts.inc | 260 +++++++++--------- data/text/battle_tent.inc | 149 +++++----- 15 files changed, 748 insertions(+), 703 deletions(-) diff --git a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc index a96063caae..561753d0fc 100644 --- a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc @@ -540,11 +540,12 @@ BattleFrontier_BattleDomeLobby_Text_24A51D: @ 824A51D .string "Here is your prize for your Battle\n" .string "Tournament victory.$" -VerdanturfTown_BattleTentLobby_Text_24A554: @ 824A554 +BattleFrontier_BattleDomeLobby_Text_ReceivedPrize: @ 824A554 .string "{PLAYER} received the prize\n" .string "{STR_VAR_1}.$" -VerdanturfTown_BattleTentLobby_Text_24A56E: @ 824A56E +@ Unused +BattleFrontier_BattleDomeLobby_Text_BagFullMakeRoom: @ 824A56E .string "Oh, your BAG appears to be full.\p" .string "Please make room in your BAG, then come\n" .string "see me.$" diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index 275ac4041c..7694efaae3 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -1003,11 +1003,12 @@ BattleFrontier_BattleTowerLobby_Text_23F641: @ 823F641 .string "you have earned this fabulous prize!\p" .string "$" -SlateportCity_BattleTentLobby_Text_23F68C: @ 823F68C +BattleFrontier_BattleTowerLobby_Text_ReceivedPrize: @ 823F68C .string "{PLAYER} received the prize\n" .string "{STR_VAR_1}.$" -SlateportCity_BattleTentLobby_Text_23F6A6: @ 823F6A6 +@ Unused +BattleFrontier_BattleTowerLobby_Text_BagFullMakeRoom: @ 823F6A6 .string "Oh, your BAG appears to be full.\p" .string "Please make room in your BAG, then come\n" .string "see me.$" diff --git a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc index ba8b3536f3..5bad66f011 100644 --- a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc @@ -1,50 +1,53 @@ FallarborTown_BattleTentBattleRoom_MapScripts:: @ 8200899 map_script MAP_SCRIPT_ON_TRANSITION, FallarborTown_BattleTentBattleRoom_OnTransition - map_script MAP_SCRIPT_ON_FRAME_TABLE, FallarborTown_BattleTentBattleRoom_MapScript2_2008DD - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, FallarborTown_BattleTentBattleRoom_MapScript2_200BB0 + map_script MAP_SCRIPT_ON_FRAME_TABLE, FallarborTown_BattleTentBattleRoom_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, FallarborTown_BattleTentBattleRoom_OnWarp .byte 0 + @ On this map the player (OBJ_EVENT_ID_PLAYER) is hidden + @ The player is represented instead by object event 1, which has the gfx id VAR_OBJ_GFX_ID_1 + @ The opponent is represented by object event 3, which has the gfx id VAR_OBJ_GFX_ID_0 + FallarborTown_BattleTentBattleRoom_OnTransition: @ 82008A9 - call FallarborTown_BattleTentBattleRoom_EventScript_2008AF + call FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfx end -FallarborTown_BattleTentBattleRoom_EventScript_2008AF:: @ 82008AF +FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfx:: @ 82008AF checkplayergender compare VAR_RESULT, MALE - goto_if_eq FallarborTown_BattleTentBattleRoom_EventScript_2008C7 + goto_if_eq FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfxMale compare VAR_RESULT, FEMALE - goto_if_eq FallarborTown_BattleTentBattleRoom_EventScript_2008D2 + goto_if_eq FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale return -FallarborTown_BattleTentBattleRoom_EventScript_2008C7:: @ 82008C7 +FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfxMale:: @ 82008C7 setvar VAR_OBJ_GFX_ID_1, EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL setvar VAR_OBJ_GFX_ID_0, EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL return -FallarborTown_BattleTentBattleRoom_EventScript_2008D2:: @ 82008D2 +FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale:: @ 82008D2 setvar VAR_OBJ_GFX_ID_1, EVENT_OBJ_GFX_RIVAL_MAY_NORMAL setvar VAR_OBJ_GFX_ID_0, EVENT_OBJ_GFX_RIVAL_MAY_NORMAL return -FallarborTown_BattleTentBattleRoom_MapScript2_2008DD: @ 82008DD - map_script_2 VAR_TEMP_0, 0, FallarborTown_BattleTentBattleRoom_EventScript_2008E7 +FallarborTown_BattleTentBattleRoom_OnFrame: @ 82008DD + map_script_2 VAR_TEMP_0, 0, FallarborTown_BattleTentBattleRoom_EventScript_EnterRoom .2byte 0 -FallarborTown_BattleTentBattleRoom_EventScript_2008E7:: @ 82008E7 +FallarborTown_BattleTentBattleRoom_EventScript_EnterRoom:: @ 82008E7 lockall showobjectat 1, MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM - applymovement 1, FallarborTown_BattleTentBattleRoom_Movement_200B8D + applymovement 1, FallarborTown_BattleTentBattleRoom_Movement_PlayerEnter waitmovement 0 frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 0 - goto_if_ne FallarborTown_BattleTentBattleRoom_EventScript_200B73 - -FallarborTown_BattleTentBattleRoom_EventScript_20090F:: @ 820090F + goto_if_ne FallarborTown_BattleTentBattleRoom_EventScript_ResumeChallenge +FallarborTown_BattleTentBattleRoom_EventScript_NextOpponentEnter:: @ 820090F tower_setopponent addobject 3 - applymovement 3, FallarborTown_BattleTentBattleRoom_Movement_200B96 + applymovement 3, FallarborTown_BattleTentBattleRoom_Movement_OpponentEnter waitmovement 0 - applymovement 2, FallarborTown_BattleTentBattleRoom_Movement_200BA3 + applymovement 2, FallarborTown_BattleTentBattleRoom_Movement_AttendantJump playse SE_W187 waitse waitmovement 0 @@ -54,40 +57,38 @@ FallarborTown_BattleTentBattleRoom_EventScript_20090F:: @ 820090F waitmessage call BattleFrontier_BattleArenaBattleRoom_EventScript_DoArenaBattle switch VAR_RESULT - case 1, FallarborTown_BattleTentBattleRoom_EventScript_20099C - applymovement 2, FallarborTown_BattleTentBattleRoom_Movement_200BA3 + case 1, FallarborTown_BattleTentBattleRoom_EventScript_DefeatedOpponent + applymovement 2, FallarborTown_BattleTentBattleRoom_Movement_AttendantJump playse SE_W173 waitse waitmovement 0 fallarbortent_getopponentname msgbox BattleFrontier_BattleArenaBattleRoom_Text_WinnerIsOpponent, MSGBOX_DEFAULT - -FallarborTown_BattleTentBattleRoom_EventScript_20097E:: @ 820097E +FallarborTown_BattleTentBattleRoom_EventScript_WarpToLobbyLost:: @ 820097E frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST special LoadPlayerParty warp MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate -FallarborTown_BattleTentBattleRoom_EventScript_20099C:: @ 820099C - applymovement 2, FallarborTown_BattleTentBattleRoom_Movement_200BA3 +FallarborTown_BattleTentBattleRoom_EventScript_DefeatedOpponent:: @ 820099C + applymovement 2, FallarborTown_BattleTentBattleRoom_Movement_AttendantJump playse SE_BAN waitse waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_WinnerIsPlayer, MSGBOX_DEFAULT closemessage - -FallarborTown_BattleTentBattleRoom_EventScript_2009B3:: @ 82009B3 +FallarborTown_BattleTentBattleRoom_EventScript_IncrementBattleNum:: @ 82009B3 frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT - case 3, FallarborTown_BattleTentBattleRoom_EventScript_200AF3 - applymovement 3, FallarborTown_BattleTentBattleRoom_Movement_200B9E + case 3, FallarborTown_BattleTentBattleRoom_EventScript_WarpToLobbyWon + applymovement 3, FallarborTown_BattleTentBattleRoom_Movement_OpponentExit waitmovement 0 removeobject 3 - applymovement 2, FallarborTown_BattleTentBattleRoom_Movement_200BA6 + applymovement 2, FallarborTown_BattleTentBattleRoom_Movement_AttendantApproachPlayer waitmovement 0 - applymovement 1, FallarborTown_BattleTentBattleRoom_Movement_200B94 + applymovement 1, FallarborTown_BattleTentBattleRoom_Movement_PlayerFaceAttendant waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_MonsWillBeRestored, MSGBOX_DEFAULT special LoadPlayerParty @@ -96,66 +97,69 @@ FallarborTown_BattleTentBattleRoom_EventScript_2009B3:: @ 82009B3 playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty - -FallarborTown_BattleTentBattleRoom_EventScript_200A2A:: @ 8200A2A +FallarborTown_BattleTentBattleRoom_EventScript_AskContinueChallenge:: @ 8200A2A frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 - call_if_eq FallarborTown_BattleTentBattleRoom_EventScript_200B43 + call_if_eq FallarborTown_BattleTentBattleRoom_EventScript_ReadyFor2ndOpponent compare VAR_RESULT, 2 - call_if_eq FallarborTown_BattleTentBattleRoom_EventScript_200B4A + call_if_eq FallarborTown_BattleTentBattleRoom_EventScript_ReadyFor3rdOpponent multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 switch VAR_RESULT - case 0, FallarborTown_BattleTentBattleRoom_EventScript_200AD8 - case 1, FallarborTown_BattleTentBattleRoom_EventScript_200A78 - case 2, FallarborTown_BattleTentBattleRoom_EventScript_200AA6 + case 0, FallarborTown_BattleTentBattleRoom_EventScript_ContinueChallenge + case 1, FallarborTown_BattleTentBattleRoom_EventScript_AskPauseChallenge + case 2, FallarborTown_BattleTentBattleRoom_EventScript_AskRetireChallenge -FallarborTown_BattleTentBattleRoom_EventScript_200A78:: @ 8200A78 +FallarborTown_BattleTentBattleRoom_EventScript_AskPauseChallenge:: @ 8200A78 msgbox BattleFrontier_BattleArenaBattleRoom_Text_SaveAndShutDown, MSGBOX_YESNO switch VAR_RESULT - case NO, FallarborTown_BattleTentBattleRoom_EventScript_200A2A - case YES, FallarborTown_BattleTentBattleRoom_EventScript_200B51 - case MULTI_B_PRESSED, FallarborTown_BattleTentBattleRoom_EventScript_200A2A + case NO, FallarborTown_BattleTentBattleRoom_EventScript_AskContinueChallenge + case YES, FallarborTown_BattleTentBattleRoom_EventScript_PauseChallenge + case MULTI_B_PRESSED, FallarborTown_BattleTentBattleRoom_EventScript_AskContinueChallenge -FallarborTown_BattleTentBattleRoom_EventScript_200AA6:: @ 8200AA6 +FallarborTown_BattleTentBattleRoom_EventScript_AskRetireChallenge:: @ 8200AA6 message BattleFrontier_BattleArenaBattleRoom_Text_RetireFromChallenge waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, 0 switch VAR_RESULT - case 1, FallarborTown_BattleTentBattleRoom_EventScript_200A2A - case 0, FallarborTown_BattleTentBattleRoom_EventScript_20097E - case MULTI_B_PRESSED, FallarborTown_BattleTentBattleRoom_EventScript_200A2A + case 1, FallarborTown_BattleTentBattleRoom_EventScript_AskContinueChallenge + case 0, FallarborTown_BattleTentBattleRoom_EventScript_WarpToLobbyLost + case MULTI_B_PRESSED, FallarborTown_BattleTentBattleRoom_EventScript_AskContinueChallenge -FallarborTown_BattleTentBattleRoom_EventScript_200AD8:: @ 8200AD8 +FallarborTown_BattleTentBattleRoom_EventScript_ContinueChallenge:: @ 8200AD8 closemessage - applymovement 2, FallarborTown_BattleTentBattleRoom_Movement_200BAB + applymovement 2, FallarborTown_BattleTentBattleRoom_Movement_AttendantReturnToPos waitmovement 0 - applymovement 1, FallarborTown_BattleTentBattleRoom_Movement_200B92 + applymovement 1, FallarborTown_BattleTentBattleRoom_Movement_PlayerFaceBattle waitmovement 0 - goto FallarborTown_BattleTentBattleRoom_EventScript_20090F + goto FallarborTown_BattleTentBattleRoom_EventScript_NextOpponentEnter waitstate -FallarborTown_BattleTentBattleRoom_EventScript_200AF3:: @ 8200AF3 +FallarborTown_BattleTentBattleRoom_EventScript_WarpToLobbyWon:: @ 8200AF3 delay 60 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON special LoadPlayerParty warp MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate + +@ Unreachable code block? The flow into the next block also doesnt make sense arena_get ARENA_DATA_WIN_STREAK compare VAR_RESULT, MAX_STREAK - goto_if_eq FallarborTown_BattleTentBattleRoom_EventScript_2009B3 + goto_if_eq FallarborTown_BattleTentBattleRoom_EventScript_IncrementBattleNum addvar VAR_RESULT, 1 arena_set ARENA_DATA_WIN_STREAK, VAR_RESULT -FallarborTown_BattleTentBattleRoom_EventScript_200B43:: @ 8200B43 +@ See above + +FallarborTown_BattleTentBattleRoom_EventScript_ReadyFor2ndOpponent:: @ 8200B43 message BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor2ndOpponent waitmessage return -FallarborTown_BattleTentBattleRoom_EventScript_200B4A:: @ 8200B4A +FallarborTown_BattleTentBattleRoom_EventScript_ReadyFor3rdOpponent:: @ 8200B4A message BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor3rdOpponent waitmessage return -FallarborTown_BattleTentBattleRoom_EventScript_200B51:: @ 8200B51 +FallarborTown_BattleTentBattleRoom_EventScript_PauseChallenge:: @ 8200B51 message BattleFrontier_BattleArenaBattleRoom_Text_SavingPleaseWait waitmessage fallarbortent_save CHALLENGE_STATUS_PAUSED @@ -165,30 +169,30 @@ FallarborTown_BattleTentBattleRoom_EventScript_200B51:: @ 8200B51 frontier_reset end -FallarborTown_BattleTentBattleRoom_EventScript_200B73:: @ 8200B73 - applymovement 2, FallarborTown_BattleTentBattleRoom_Movement_200BA6 +FallarborTown_BattleTentBattleRoom_EventScript_ResumeChallenge:: @ 8200B73 + applymovement 2, FallarborTown_BattleTentBattleRoom_Movement_AttendantApproachPlayer waitmovement 0 - applymovement 1, FallarborTown_BattleTentBattleRoom_Movement_200B94 + applymovement 1, FallarborTown_BattleTentBattleRoom_Movement_PlayerFaceAttendant waitmovement 0 - goto FallarborTown_BattleTentBattleRoom_EventScript_200A2A + goto FallarborTown_BattleTentBattleRoom_EventScript_AskContinueChallenge end -FallarborTown_BattleTentBattleRoom_Movement_200B8D: @ 8200B8D +FallarborTown_BattleTentBattleRoom_Movement_PlayerEnter: @ 8200B8D walk_up walk_up walk_up walk_in_place_fastest_right step_end -FallarborTown_BattleTentBattleRoom_Movement_200B92: @ 8200B92 +FallarborTown_BattleTentBattleRoom_Movement_PlayerFaceBattle: @ 8200B92 walk_in_place_fastest_right step_end -FallarborTown_BattleTentBattleRoom_Movement_200B94: @ 8200B94 +FallarborTown_BattleTentBattleRoom_Movement_PlayerFaceAttendant: @ 8200B94 walk_in_place_fastest_left step_end -FallarborTown_BattleTentBattleRoom_Movement_200B96: @ 8200B96 +FallarborTown_BattleTentBattleRoom_Movement_OpponentEnter: @ 8200B96 walk_down walk_down walk_down @@ -196,41 +200,42 @@ FallarborTown_BattleTentBattleRoom_Movement_200B96: @ 8200B96 walk_in_place_fastest_left step_end -FallarborTown_BattleTentBattleRoom_Movement_200B9C: @ 8200B9C +@ Unused +FallarborTown_BattleTentBattleRoom_Movement_OpponentStepForward: @ 8200B9C walk_left step_end -FallarborTown_BattleTentBattleRoom_Movement_200B9E: @ 8200B9E +FallarborTown_BattleTentBattleRoom_Movement_OpponentExit: @ 8200B9E walk_up walk_up walk_up walk_up step_end -FallarborTown_BattleTentBattleRoom_Movement_200BA3: @ 8200BA3 +FallarborTown_BattleTentBattleRoom_Movement_AttendantJump: @ 8200BA3 disable_jump_landing_ground_effect jump_in_place_down step_end -FallarborTown_BattleTentBattleRoom_Movement_200BA6: @ 8200BA6 +FallarborTown_BattleTentBattleRoom_Movement_AttendantApproachPlayer: @ 8200BA6 walk_down walk_down walk_down walk_in_place_fastest_right step_end -FallarborTown_BattleTentBattleRoom_Movement_200BAB: @ 8200BAB +FallarborTown_BattleTentBattleRoom_Movement_AttendantReturnToPos: @ 8200BAB walk_up walk_up walk_up walk_in_place_fastest_down step_end -FallarborTown_BattleTentBattleRoom_MapScript2_200BB0: @ 8200BB0 - map_script_2 VAR_TEMP_1, 0, FallarborTown_BattleTentBattleRoom_EventScript_200BBA +FallarborTown_BattleTentBattleRoom_OnWarp: @ 8200BB0 + map_script_2 VAR_TEMP_1, 0, FallarborTown_BattleTentBattleRoom_EventScript_SetUpObjects .2byte 0 -FallarborTown_BattleTentBattleRoom_EventScript_200BBA:: @ 8200BBA +FallarborTown_BattleTentBattleRoom_EventScript_SetUpObjects:: @ 8200BBA hideobjectat EVENT_OBJ_ID_PLAYER, MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM hideobjectat 1, MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM removeobject 3 diff --git a/data/maps/FallarborTown_BattleTentCorridor/scripts.inc b/data/maps/FallarborTown_BattleTentCorridor/scripts.inc index 3270338295..bc8bdb5127 100644 --- a/data/maps/FallarborTown_BattleTentCorridor/scripts.inc +++ b/data/maps/FallarborTown_BattleTentCorridor/scripts.inc @@ -1,21 +1,21 @@ FallarborTown_BattleTentCorridor_MapScripts:: @ 82006A7 - map_script MAP_SCRIPT_ON_FRAME_TABLE, FallarborTown_BattleTentCorridor_MapScript2_2006AD + map_script MAP_SCRIPT_ON_FRAME_TABLE, FallarborTown_BattleTentCorridor_OnFrame .byte 0 -FallarborTown_BattleTentCorridor_MapScript2_2006AD: @ 82006AD - map_script_2 VAR_TEMP_0, 0, FallarborTown_BattleTentCorridor_EventScript_2006B7 +FallarborTown_BattleTentCorridor_OnFrame: @ 82006AD + map_script_2 VAR_TEMP_0, 0, FallarborTown_BattleTentCorridor_EventScript_EnterCorridor .2byte 0 -FallarborTown_BattleTentCorridor_EventScript_2006B7:: @ 82006B7 +FallarborTown_BattleTentCorridor_EventScript_EnterCorridor:: @ 82006B7 lockall setvar VAR_TEMP_0, 1 - applymovement 1, FallarborTown_BattleTentCorridor_Movement_2006FB - applymovement EVENT_OBJ_ID_PLAYER, FallarborTown_BattleTentCorridor_Movement_2006FB + applymovement 1, FallarborTown_BattleTentCorridor_Movement_WalkToDoor + applymovement EVENT_OBJ_ID_PLAYER, FallarborTown_BattleTentCorridor_Movement_WalkToDoor waitmovement 0 opendoor 2, 1 waitdooranim - applymovement 1, FallarborTown_BattleTentCorridor_Movement_200701 - applymovement EVENT_OBJ_ID_PLAYER, FallarborTown_BattleTentCorridor_Movement_200700 + applymovement 1, FallarborTown_BattleTentCorridor_Movement_AttendantEnterDoor + applymovement EVENT_OBJ_ID_PLAYER, FallarborTown_BattleTentCorridor_Movement_PlayerEnterDoor waitmovement 0 closedoor 2, 1 waitdooranim @@ -25,40 +25,44 @@ FallarborTown_BattleTentCorridor_EventScript_2006B7:: @ 82006B7 releaseall end -FallarborTown_BattleTentCorridor_Movement_2006FB: @ 82006FB +FallarborTown_BattleTentCorridor_Movement_WalkToDoor: @ 82006FB walk_up walk_up walk_up walk_up step_end -FallarborTown_BattleTentCorridor_Movement_200700: @ 8200700 +FallarborTown_BattleTentCorridor_Movement_PlayerEnterDoor: @ 8200700 walk_up - -FallarborTown_BattleTentCorridor_Movement_200701: @ 8200701 +FallarborTown_BattleTentCorridor_Movement_AttendantEnterDoor: @ 8200701 walk_up set_invisible step_end -FallarborTown_BattleTentCorridor_Text_200704: @ 8200704 +@ Leftover text from when this was a Contest Hall in R/S +@ Unused +FallarborTown_ContestHall_Text_DoAllRightInPreliminary: @ 8200704 .string "We do all right in the preliminary round,\n" .string "but we can never win the appeals…\p" .string "Maybe it means I have to watch what\n" .string "other contestants are doing…$" -FallarborTown_BattleTentCorridor_Text_200791: @ 8200791 +@ Unused +FallarborTown_ContestHall_Text_MonAllTheseRibbons: @ 8200791 .string "See!\n" .string "My POKéMON won all these RIBBONS!\p" .string "Have your POKéMON earned any RIBBONS?\n" .string "You can check them on your POKéNAV.$" -FallarborTown_BattleTentCorridor_Text_200802: @ 8200802 +@ Unused +FallarborTown_ContestHall_Text_CantWinEverywhere: @ 8200802 .string "I can't beat GYM LEADERS…\p" .string "I can't win any CONTESTS…\p" .string "I've been here, there, and everywhere,\n" .string "and it's all for naught…$" -FallarborTown_BattleTentCorridor_Text_200876: @ 8200876 +@ Unused +FallarborTown_ContestHall_Text_SuperRankStage: @ 8200876 .string "POKéMON CONTESTS\n" .string "SUPER RANK STAGE!$" diff --git a/data/maps/FallarborTown_BattleTentLobby/map.json b/data/maps/FallarborTown_BattleTentLobby/map.json index 4c565ff8ca..b48119689e 100644 --- a/data/maps/FallarborTown_BattleTentLobby/map.json +++ b/data/maps/FallarborTown_BattleTentLobby/map.json @@ -24,7 +24,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "FallarborTown_BattleTentLobby_EventScript_200001", + "script": "FallarborTown_BattleTentLobby_EventScript_Attendant", "flag": "0" }, { @@ -37,7 +37,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "FallarborTown_BattleTentLobby_EventScript_20020D", + "script": "FallarborTown_BattleTentLobby_EventScript_Hiker", "flag": "0" }, { @@ -50,7 +50,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "FallarborTown_BattleTentLobby_EventScript_200216", + "script": "FallarborTown_BattleTentLobby_EventScript_LittleBoy", "flag": "0" }, { @@ -63,7 +63,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "FallarborTown_BattleTentLobby_EventScript_20021F", + "script": "FallarborTown_BattleTentLobby_EventScript_Lass", "flag": "0" }, { @@ -76,7 +76,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "FallarborTown_BattleTentLobby_EventScript_200228", + "script": "FallarborTown_BattleTentLobby_EventScript_Scott", "flag": "FLAG_HIDE_FALLARBOR_TOWN_BATTLE_TENT_SCOTT" } ], @@ -104,7 +104,7 @@ "y": 5, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", - "script": "FallarborTown_BattleTentLobby_EventScript_20024F" + "script": "FallarborTown_BattleTentLobby_EventScript_RulesBoard" } ] } \ No newline at end of file diff --git a/data/maps/FallarborTown_BattleTentLobby/scripts.inc b/data/maps/FallarborTown_BattleTentLobby/scripts.inc index fddadae15f..ef5c4299c5 100644 --- a/data/maps/FallarborTown_BattleTentLobby/scripts.inc +++ b/data/maps/FallarborTown_BattleTentLobby/scripts.inc @@ -1,32 +1,32 @@ FallarborTown_BattleTentLobby_MapScripts:: @ 81FFE66 - map_script MAP_SCRIPT_ON_FRAME_TABLE, FallarborTown_BattleTentLobby_MapScript2_1FFE85 - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, FallarborTown_BattleTentLobby_MapScript2_1FFE71 + map_script MAP_SCRIPT_ON_FRAME_TABLE, FallarborTown_BattleTentLobby_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, FallarborTown_BattleTentLobby_OnWarp .byte 0 -FallarborTown_BattleTentLobby_MapScript2_1FFE71: @ 81FFE71 - map_script_2 VAR_TEMP_1, 0, FallarborTown_BattleTentLobby_EventScript_1FFE7B +FallarborTown_BattleTentLobby_OnWarp: @ 81FFE71 + map_script_2 VAR_TEMP_1, 0, FallarborTown_BattleTentLobby_EventScript_TurnPlayerNorth .2byte 0 -FallarborTown_BattleTentLobby_EventScript_1FFE7B:: @ 81FFE7B +FallarborTown_BattleTentLobby_EventScript_TurnPlayerNorth:: @ 81FFE7B setvar VAR_TEMP_1, 1 turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH end -FallarborTown_BattleTentLobby_MapScript2_1FFE85: @ 81FFE85 - map_script_2 VAR_TEMP_0, 0, FallarborTown_BattleTentLobby_EventScript_1FFEAF - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, FallarborTown_BattleTentLobby_EventScript_1FFEB8 - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, FallarborTown_BattleTentLobby_EventScript_1FFFCD - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, FallarborTown_BattleTentLobby_EventScript_1FFEED - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, FallarborTown_BattleTentLobby_EventScript_1FFF93 +FallarborTown_BattleTentLobby_OnFrame: @ 81FFE85 + map_script_2 VAR_TEMP_0, 0, FallarborTown_BattleTentLobby_EventScript_GetChallengeStatus + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, FallarborTown_BattleTentLobby_EventScript_QuitWithoutSaving + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, FallarborTown_BattleTentLobby_EventScript_ResumeChallenge + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, FallarborTown_BattleTentLobby_EventScript_WonChallenge + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, FallarborTown_BattleTentLobby_EventScript_LostChallenge .2byte 0 -FallarborTown_BattleTentLobby_EventScript_1FFEAF:: @ 81FFEAF +FallarborTown_BattleTentLobby_EventScript_GetChallengeStatus:: @ 81FFEAF frontier_getstatus end -FallarborTown_BattleTentLobby_EventScript_1FFEB8:: @ 81FFEB8 +FallarborTown_BattleTentLobby_EventScript_QuitWithoutSaving:: @ 81FFEB8 lockall - msgbox FallarborTown_BattleTentLobby_Text_2C4DED, MSGBOX_DEFAULT + msgbox FallarborTown_BattleTentLobby_Text_DidntSaveBeforeQuitting, MSGBOX_DEFAULT closemessage frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 @@ -34,10 +34,10 @@ FallarborTown_BattleTentLobby_EventScript_1FFEB8:: @ 81FFEB8 releaseall end -FallarborTown_BattleTentLobby_EventScript_1FFEED:: @ 81FFEED +FallarborTown_BattleTentLobby_EventScript_WonChallenge:: @ 81FFEED lockall - msgbox FallarborTown_BattleTentLobby_Text_2C4EC3, MSGBOX_DEFAULT - message FallarborTown_BattleTentLobby_Text_2C4EFF + msgbox FallarborTown_BattleTentLobby_Text_BeatThreeTrainers, MSGBOX_DEFAULT + message FallarborTown_BattleTentLobby_Text_WaitWhileSaveGame waitmessage fallarbortent_setrandomprize frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 @@ -45,103 +45,102 @@ FallarborTown_BattleTentLobby_EventScript_1FFEED:: @ 81FFEED playse SE_SAVE waitse -FallarborTown_BattleTentLobby_EventScript_1FFF27:: @ 81FFF27 - msgbox FallarborTown_BattleTentLobby_Text_2C4F22, MSGBOX_DEFAULT +FallarborTown_BattleTentLobby_EventScript_GivePrize:: @ 81FFF27 + msgbox FallarborTown_BattleTentLobby_Text_PresentYouWithPrize, MSGBOX_DEFAULT fallarbortent_giveprize switch VAR_RESULT - case 0, FallarborTown_BattleTentLobby_EventScript_1FFF73 + case FALSE, FallarborTown_BattleTentLobby_EventScript_NoRoomForPrize frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 - message FallarborTown_BattleTentLobby_Text_2C4F69 + message FallarborTown_BattleTentLobby_Text_ReceivedPrize waitmessage playfanfare MUS_FANFA4 waitfanfare - msgbox FallarborTown_BattleTentLobby_Text_2C501F, MSGBOX_DEFAULT + msgbox FallarborTown_BattleTentLobby_Text_AwaitAnotherChallenge2, MSGBOX_DEFAULT closemessage setvar VAR_TEMP_0, 255 releaseall end -FallarborTown_BattleTentLobby_EventScript_1FFF73:: @ 81FFF73 - msgbox FallarborTown_BattleTentLobby_Text_2C4F83, MSGBOX_DEFAULT +FallarborTown_BattleTentLobby_EventScript_NoRoomForPrize:: @ 81FFF73 + msgbox FallarborTown_BattleTentLobby_Text_BagFullReturnForPrize, MSGBOX_DEFAULT waitmessage closemessage setvar VAR_TEMP_0, 255 releaseall end -FallarborTown_BattleTentLobby_EventScript_1FFF84:: @ 81FFF84 +FallarborTown_BattleTentLobby_EventScript_PrizeWaiting:: @ 81FFF84 lockall - msgbox FallarborTown_BattleTentLobby_Text_2C4EC3, MSGBOX_DEFAULT - goto FallarborTown_BattleTentLobby_EventScript_1FFF27 + msgbox FallarborTown_BattleTentLobby_Text_BeatThreeTrainers, MSGBOX_DEFAULT + goto FallarborTown_BattleTentLobby_EventScript_GivePrize end -FallarborTown_BattleTentLobby_EventScript_1FFF93:: @ 81FFF93 +FallarborTown_BattleTentLobby_EventScript_LostChallenge:: @ 81FFF93 lockall - message FallarborTown_BattleTentLobby_Text_2C4FD7 + message FallarborTown_BattleTentLobby_Text_ThankYouWaitWhileSaving waitmessage frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 fallarbortent_save 0 playse SE_SAVE waitse - msgbox FallarborTown_BattleTentLobby_Text_2C501F, MSGBOX_DEFAULT + msgbox FallarborTown_BattleTentLobby_Text_AwaitAnotherChallenge2, MSGBOX_DEFAULT closemessage setvar VAR_TEMP_0, 255 releaseall end -FallarborTown_BattleTentLobby_EventScript_1FFFCD:: @ 81FFFCD +FallarborTown_BattleTentLobby_EventScript_ResumeChallenge:: @ 81FFFCD lockall - message FallarborTown_BattleTentLobby_Text_2C504C + message FallarborTown_BattleTentLobby_Text_LookingForwardToArrival waitmessage fallarbortent_save CHALLENGE_STATUS_SAVING playse SE_SAVE waitse frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 - goto FallarborTown_BattleTentLobby_EventScript_20013C + goto FallarborTown_BattleTentLobby_EventScript_EnterChallenge -FallarborTown_BattleTentLobby_EventScript_200001:: @ 8200001 +FallarborTown_BattleTentLobby_EventScript_Attendant:: @ 8200001 lock faceplayer fallarbortent_getprize - compare VAR_RESULT, 0 - goto_if_ne FallarborTown_BattleTentLobby_EventScript_1FFF84 + compare VAR_RESULT, ITEM_NONE + goto_if_ne FallarborTown_BattleTentLobby_EventScript_PrizeWaiting special SavePlayerParty - msgbox FallarborTown_BattleTentLobby_Text_2C47EB, MSGBOX_DEFAULT - -FallarborTown_BattleTentLobby_EventScript_200021:: @ 8200021 - message FallarborTown_BattleTentLobby_Text_2C4843 + msgbox FallarborTown_BattleTentLobby_Text_WelcomeToBattleTent, MSGBOX_DEFAULT +FallarborTown_BattleTentLobby_EventScript_AskEnterChallenge:: @ 8200021 + message FallarborTown_BattleTentLobby_Text_TakeChallenge waitmessage multichoice 17, 6, MULTI_CHALLENGEINFO, 0 switch VAR_RESULT - case 0, FallarborTown_BattleTentLobby_EventScript_20005D - case 1, FallarborTown_BattleTentLobby_EventScript_200169 - case 2, FallarborTown_BattleTentLobby_EventScript_2001C5 - case MULTI_B_PRESSED, FallarborTown_BattleTentLobby_EventScript_2001C5 + case 0, FallarborTown_BattleTentLobby_EventScript_TryEnterChallenge + case 1, FallarborTown_BattleTentLobby_EventScript_ExplainChallenge + case 2, FallarborTown_BattleTentLobby_EventScript_CancelChallenge + case MULTI_B_PRESSED, FallarborTown_BattleTentLobby_EventScript_CancelChallenge -FallarborTown_BattleTentLobby_EventScript_20005D:: @ 820005D +FallarborTown_BattleTentLobby_EventScript_TryEnterChallenge:: @ 820005D setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_ARENA setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES setvar VAR_RESULT, 2 frontier_checkineligible compare VAR_0x8004, TRUE - goto_if_eq FallarborTown_BattleTentLobby_EventScript_200176 + goto_if_eq FallarborTown_BattleTentLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_TENT - msgbox FallarborTown_BattleTentLobby_Text_2C4BC8, MSGBOX_DEFAULT + msgbox FallarborTown_BattleTentLobby_Text_SelectThreeMons, MSGBOX_DEFAULT fadescreen 1 setvar VAR_0x8004, 2 setvar VAR_0x8005, FRONTIER_PARTY_SIZE special ChoosePartyForBattleFrontier waitstate compare VAR_RESULT, 0 - goto_if_eq FallarborTown_BattleTentLobby_EventScript_2001C2 - msgbox FallarborTown_BattleTentLobby_Text_2C4B35, MSGBOX_YESNO + goto_if_eq FallarborTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge + msgbox FallarborTown_BattleTentLobby_Text_SaveBeforeChallenge, MSGBOX_YESNO switch VAR_RESULT - case NO, FallarborTown_BattleTentLobby_EventScript_2001C2 - case YES, FallarborTown_BattleTentLobby_EventScript_2000E2 - case MULTI_B_PRESSED, FallarborTown_BattleTentLobby_EventScript_2001C2 + case NO, FallarborTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge + case YES, FallarborTown_BattleTentLobby_EventScript_SaveBeforeChallenge + case MULTI_B_PRESSED, FallarborTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge -FallarborTown_BattleTentLobby_EventScript_2000E2:: @ 82000E2 +FallarborTown_BattleTentLobby_EventScript_SaveBeforeChallenge:: @ 82000E2 setvar VAR_TEMP_0, 0 frontier_set FRONTIER_DATA_SELECTED_MON_ORDER fallarbortent_init @@ -153,170 +152,166 @@ FallarborTown_BattleTentLobby_EventScript_2000E2:: @ 82000E2 call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 compare VAR_RESULT, 0 - goto_if_eq FallarborTown_BattleTentLobby_EventScript_2001AB - -FallarborTown_BattleTentLobby_EventScript_20013C:: @ 820013C + goto_if_eq FallarborTown_BattleTentLobby_EventScript_CancelChallengeSaveFailed +FallarborTown_BattleTentLobby_EventScript_EnterChallenge:: @ 820013C special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE - msgbox FallarborTown_BattleTentLobby_Text_2C4DC3, MSGBOX_DEFAULT + msgbox FallarborTown_BattleTentLobby_Text_GuideYouToBattleTent, MSGBOX_DEFAULT closemessage - call FallarborTown_BattleTentLobby_EventScript_2001CF + call FallarborTown_BattleTentLobby_EventScript_WalkToDoor warp MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR, 255, 2, 7 setvar VAR_TEMP_0, 0 waitstate end -FallarborTown_BattleTentLobby_EventScript_200169:: @ 8200169 - msgbox FallarborTown_BattleTentLobby_Text_2C48AC, MSGBOX_DEFAULT - goto FallarborTown_BattleTentLobby_EventScript_200021 +FallarborTown_BattleTentLobby_EventScript_ExplainChallenge:: @ 8200169 + msgbox FallarborTown_BattleTentLobby_Text_ExplainFallarborTent, MSGBOX_DEFAULT + goto FallarborTown_BattleTentLobby_EventScript_AskEnterChallenge -FallarborTown_BattleTentLobby_EventScript_200176:: @ 8200176 +FallarborTown_BattleTentLobby_EventScript_NotEnoughValidMons:: @ 8200176 switch VAR_RESULT - case FRONTIER_LVL_50, FallarborTown_BattleTentLobby_EventScript_200191 - case FRONTIER_LVL_OPEN, FallarborTown_BattleTentLobby_EventScript_20019E + case FRONTIER_LVL_50, FallarborTown_BattleTentLobby_EventScript_NotEnoughValidMonsLv50 + case FRONTIER_LVL_OPEN, FallarborTown_BattleTentLobby_EventScript_NotEnoughValidMonsLvOpen +FallarborTown_BattleTentLobby_EventScript_NotEnoughValidMonsLv50:: @ 8200191 + msgbox FallarborTown_BattleTentLobby_Text_NotEnoughValidMonsLv50, MSGBOX_DEFAULT + goto FallarborTown_BattleTentLobby_EventScript_EndCancelChallenge -FallarborTown_BattleTentLobby_EventScript_200191:: @ 8200191 - msgbox FallarborTown_BattleTentLobby_Text_2C4BFA, MSGBOX_DEFAULT - goto FallarborTown_BattleTentLobby_EventScript_2001CD +FallarborTown_BattleTentLobby_EventScript_NotEnoughValidMonsLvOpen:: @ 820019E + msgbox FallarborTown_BattleTentLobby_Text_NotEnoughValidMonsLvOpen, MSGBOX_DEFAULT + goto FallarborTown_BattleTentLobby_EventScript_EndCancelChallenge -FallarborTown_BattleTentLobby_EventScript_20019E:: @ 820019E - msgbox FallarborTown_BattleTentLobby_Text_2C4CC0, MSGBOX_DEFAULT - goto FallarborTown_BattleTentLobby_EventScript_2001CD - -FallarborTown_BattleTentLobby_EventScript_2001AB:: @ 82001AB +FallarborTown_BattleTentLobby_EventScript_CancelChallengeSaveFailed:: @ 82001AB frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 - goto FallarborTown_BattleTentLobby_EventScript_2001C5 + goto FallarborTown_BattleTentLobby_EventScript_CancelChallenge -FallarborTown_BattleTentLobby_EventScript_2001C2:: @ 82001C2 +FallarborTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge:: @ 82001C2 special LoadPlayerParty - -FallarborTown_BattleTentLobby_EventScript_2001C5:: @ 82001C5 - msgbox FallarborTown_BattleTentLobby_Text_2C487F, MSGBOX_DEFAULT - -FallarborTown_BattleTentLobby_EventScript_2001CD:: @ 82001CD +FallarborTown_BattleTentLobby_EventScript_CancelChallenge:: @ 82001C5 + msgbox FallarborTown_BattleTentLobby_Text_AwaitAnotherChallenge, MSGBOX_DEFAULT +FallarborTown_BattleTentLobby_EventScript_EndCancelChallenge:: @ 82001CD release end -FallarborTown_BattleTentLobby_EventScript_2001CF:: @ 82001CF - applymovement 1, FallarborTown_BattleTentLobby_Movement_2001FE - applymovement EVENT_OBJ_ID_PLAYER, FallarborTown_BattleTentLobby_Movement_200205 +FallarborTown_BattleTentLobby_EventScript_WalkToDoor:: @ 82001CF + applymovement 1, FallarborTown_BattleTentLobby_Movement_AttendantWalkToDoor + applymovement EVENT_OBJ_ID_PLAYER, FallarborTown_BattleTentLobby_Movement_PlayerWalkToDoor waitmovement 0 opendoor 6, 1 waitdooranim - applymovement 1, FallarborTown_BattleTentLobby_Movement_200202 - applymovement EVENT_OBJ_ID_PLAYER, FallarborTown_BattleTentLobby_Movement_200209 + applymovement 1, FallarborTown_BattleTentLobby_Movement_AttendantEnterDoor + applymovement EVENT_OBJ_ID_PLAYER, FallarborTown_BattleTentLobby_Movement_PlayerEnterDoor waitmovement 0 closedoor 6, 1 waitdooranim return -FallarborTown_BattleTentLobby_Movement_2001FE: @ 82001FE +FallarborTown_BattleTentLobby_Movement_AttendantWalkToDoor: @ 82001FE walk_up walk_up walk_up step_end -FallarborTown_BattleTentLobby_Movement_200202: @ 8200202 +FallarborTown_BattleTentLobby_Movement_AttendantEnterDoor: @ 8200202 walk_up set_invisible step_end -FallarborTown_BattleTentLobby_Movement_200205: @ 8200205 +FallarborTown_BattleTentLobby_Movement_PlayerWalkToDoor: @ 8200205 walk_up walk_up walk_up step_end -FallarborTown_BattleTentLobby_Movement_200209: @ 8200209 +FallarborTown_BattleTentLobby_Movement_PlayerEnterDoor: @ 8200209 walk_up walk_up set_invisible step_end -FallarborTown_BattleTentLobby_EventScript_20020D:: @ 820020D - msgbox FallarborTown_BattleTentLobby_Text_20045A, MSGBOX_NPC +FallarborTown_BattleTentLobby_EventScript_Hiker:: @ 820020D + msgbox FallarborTown_BattleTentLobby_Text_CameToCampOut, MSGBOX_NPC end -FallarborTown_BattleTentLobby_EventScript_200216:: @ 8200216 - msgbox FallarborTown_BattleTentLobby_Text_200304, MSGBOX_NPC +FallarborTown_BattleTentLobby_EventScript_LittleBoy:: @ 8200216 + msgbox FallarborTown_BattleTentLobby_Text_MakeThinkImJustKid, MSGBOX_NPC end -FallarborTown_BattleTentLobby_EventScript_20021F:: @ 820021F - msgbox FallarborTown_BattleTentLobby_Text_200382, MSGBOX_NPC +FallarborTown_BattleTentLobby_EventScript_Lass:: @ 820021F + msgbox FallarborTown_BattleTentLobby_Text_FallarborTentMyFavorite, MSGBOX_NPC end -FallarborTown_BattleTentLobby_EventScript_200228:: @ 8200228 +FallarborTown_BattleTentLobby_EventScript_Scott:: @ 8200228 lock faceplayer - goto_if_set FLAG_MET_SCOTT_IN_FALLARBOR, FallarborTown_BattleTentLobby_EventScript_200245 - msgbox FallarborTown_BattleTentLobby_Text_200501, MSGBOX_DEFAULT + goto_if_set FLAG_MET_SCOTT_IN_FALLARBOR, FallarborTown_BattleTentLobby_EventScript_ScottAlreadySpokenTo + msgbox FallarborTown_BattleTentLobby_Text_ScottLookingForSomeone, MSGBOX_DEFAULT addvar VAR_SCOTT_STATE, 1 setflag FLAG_MET_SCOTT_IN_FALLARBOR release end -FallarborTown_BattleTentLobby_EventScript_200245:: @ 8200245 - msgbox FallarborTown_BattleTentLobby_Text_200653, MSGBOX_DEFAULT +FallarborTown_BattleTentLobby_EventScript_ScottAlreadySpokenTo:: @ 8200245 + msgbox FallarborTown_BattleTentLobby_Text_ScottMakeChallenge, MSGBOX_DEFAULT release end -FallarborTown_BattleTentLobby_EventScript_20024F:: @ 820024F +FallarborTown_BattleTentLobby_EventScript_RulesBoard:: @ 820024F lockall msgbox BattleFrontier_BattleArenaLobby_Text_RulesAreListed, MSGBOX_DEFAULT - goto FallarborTown_BattleTentLobby_EventScript_20025E + goto FallarborTown_BattleTentLobby_EventScript_ReadRulesBoard end -FallarborTown_BattleTentLobby_EventScript_20025E:: @ 820025E +FallarborTown_BattleTentLobby_EventScript_ReadRulesBoard:: @ 820025E message BattleFrontier_BattleArenaLobby_Text_ReadWhichHeading waitmessage multichoice 17, 0, MULTI_FALLARBOR_TENT_RULES, 0 switch VAR_RESULT - case 0, FallarborTown_BattleTentLobby_EventScript_2002BC - case 1, FallarborTown_BattleTentLobby_EventScript_2002CA - case 2, FallarborTown_BattleTentLobby_EventScript_2002D8 - case 3, FallarborTown_BattleTentLobby_EventScript_2002E6 - case 4, FallarborTown_BattleTentLobby_EventScript_2002F4 - case 5, FallarborTown_BattleTentLobby_EventScript_200302 - case MULTI_B_PRESSED, FallarborTown_BattleTentLobby_EventScript_200302 + case 0, FallarborTown_BattleTentLobby_EventScript_RulesLevel + case 1, FallarborTown_BattleTentLobby_EventScript_RulesBattle + case 2, FallarborTown_BattleTentLobby_EventScript_RulesMind + case 3, FallarborTown_BattleTentLobby_EventScript_RulesSkill + case 4, FallarborTown_BattleTentLobby_EventScript_RulesBody + case 5, FallarborTown_BattleTentLobby_EventScript_ExitRules + case MULTI_B_PRESSED, FallarborTown_BattleTentLobby_EventScript_ExitRules end -FallarborTown_BattleTentLobby_EventScript_2002BC:: @ 82002BC - msgbox FallarborTown_BattleTentLobby_Text_2C67CD, MSGBOX_DEFAULT - goto FallarborTown_BattleTentLobby_EventScript_20025E +FallarborTown_BattleTentLobby_EventScript_RulesLevel:: @ 82002BC + msgbox BattleTentLobby_Text_ExplainLevelRules, MSGBOX_DEFAULT + goto FallarborTown_BattleTentLobby_EventScript_ReadRulesBoard end -FallarborTown_BattleTentLobby_EventScript_2002CA:: @ 82002CA +FallarborTown_BattleTentLobby_EventScript_RulesBattle:: @ 82002CA msgbox BattleFrontier_BattleArenaLobby_Text_ExplainBattleRules, MSGBOX_DEFAULT - goto FallarborTown_BattleTentLobby_EventScript_20025E + goto FallarborTown_BattleTentLobby_EventScript_ReadRulesBoard end -FallarborTown_BattleTentLobby_EventScript_2002D8:: @ 82002D8 +FallarborTown_BattleTentLobby_EventScript_RulesMind:: @ 82002D8 msgbox BattleFrontier_BattleArenaLobby_Text_ExplainMindRules, MSGBOX_DEFAULT - goto FallarborTown_BattleTentLobby_EventScript_20025E + goto FallarborTown_BattleTentLobby_EventScript_ReadRulesBoard end -FallarborTown_BattleTentLobby_EventScript_2002E6:: @ 82002E6 +FallarborTown_BattleTentLobby_EventScript_RulesSkill:: @ 82002E6 msgbox BattleFrontier_BattleArenaLobby_Text_ExplainSkillRules, MSGBOX_DEFAULT - goto FallarborTown_BattleTentLobby_EventScript_20025E + goto FallarborTown_BattleTentLobby_EventScript_ReadRulesBoard end -FallarborTown_BattleTentLobby_EventScript_2002F4:: @ 82002F4 +FallarborTown_BattleTentLobby_EventScript_RulesBody:: @ 82002F4 msgbox BattleFrontier_BattleArenaLobby_Text_ExplainBodyRules, MSGBOX_DEFAULT - goto FallarborTown_BattleTentLobby_EventScript_20025E + goto FallarborTown_BattleTentLobby_EventScript_ReadRulesBoard end -FallarborTown_BattleTentLobby_EventScript_200302:: @ 8200302 +FallarborTown_BattleTentLobby_EventScript_ExitRules:: @ 8200302 releaseall end -FallarborTown_BattleTentLobby_Text_200304: @ 8200304 +FallarborTown_BattleTentLobby_Text_MakeThinkImJustKid: @ 8200304 .string "Fufufufufu.\p" .string "I'm going to make everyone think\n" .string "I'm just a kid and let them play down.\p" .string "Then, I'll shock them and grab\n" .string "the title!$" -FallarborTown_BattleTentLobby_Text_200382: @ 8200382 +FallarborTown_BattleTentLobby_Text_FallarborTentMyFavorite: @ 8200382 .string "You know how BATTLE TENTS offer\n" .string "different events in different towns?\p" .string "My favorite is definitely the BATTLE\n" @@ -325,7 +320,7 @@ FallarborTown_BattleTentLobby_Text_200382: @ 8200382 .string "try to win with all their faith in\l" .string "their POKéMON.$" -FallarborTown_BattleTentLobby_Text_20045A: @ 820045A +FallarborTown_BattleTentLobby_Text_CameToCampOut: @ 820045A .string "I heard something about some tent,\n" .string "so I came to camp out.\p" .string "I didn't know that tents these days\n" @@ -333,7 +328,7 @@ FallarborTown_BattleTentLobby_Text_20045A: @ 820045A .string "Since I'm here, I may as well try\n" .string "my hand at battling!$" -FallarborTown_BattleTentLobby_Text_200501: @ 8200501 +FallarborTown_BattleTentLobby_Text_ScottLookingForSomeone: @ 8200501 .string "SCOTT: Hi, {PLAYER}{KUN}!\n" .string "So you came out to this BATTLE TENT!\p" .string "The people in these parts tend to be\n" @@ -348,7 +343,7 @@ FallarborTown_BattleTentLobby_Text_200501: @ 8200501 .string "Whoops! Never mind!\n" .string "Keep working at it!$" -FallarborTown_BattleTentLobby_Text_200653: @ 8200653 +FallarborTown_BattleTentLobby_Text_ScottMakeChallenge: @ 8200653 .string "SCOTT: Instead of wasting your\n" .string "time with the likes of me, why not\l" .string "make a challenge?$" diff --git a/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc b/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc index 541dc3aaed..00c093c49a 100644 --- a/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc +++ b/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc @@ -1,51 +1,54 @@ SlateportCity_BattleTentBattleRoom_MapScripts:: @ 8209960 map_script MAP_SCRIPT_ON_TRANSITION, SlateportCity_BattleTentBattleRoom_OnTransition - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, SlateportCity_BattleTentBattleRoom_MapScript2_20999A - map_script MAP_SCRIPT_ON_FRAME_TABLE, SlateportCity_BattleTentBattleRoom_MapScript2_2099B4 + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, SlateportCity_BattleTentBattleRoom_OnWarp + map_script MAP_SCRIPT_ON_FRAME_TABLE, SlateportCity_BattleTentBattleRoom_OnFrame .byte 0 + @ On this map the player (OBJ_EVENT_ID_PLAYER) is hidden + @ The player is represented instead by object event 3, which has the gfx id VAR_OBJ_GFX_ID_1 + SlateportCity_BattleTentBattleRoom_OnTransition: @ 8209970 - call SlateportCity_BattleTentBattleRoom_EventScript_209976 + call SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfx end -SlateportCity_BattleTentBattleRoom_EventScript_209976:: @ 8209976 +SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfx:: @ 8209976 checkplayergender compare VAR_RESULT, MALE - goto_if_eq SlateportCity_BattleTentBattleRoom_EventScript_20998E + goto_if_eq SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfxMale compare VAR_RESULT, FEMALE - goto_if_eq SlateportCity_BattleTentBattleRoom_EventScript_209994 + goto_if_eq SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale return -SlateportCity_BattleTentBattleRoom_EventScript_20998E:: @ 820998E +SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfxMale:: @ 820998E setvar VAR_OBJ_GFX_ID_1, EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL return -SlateportCity_BattleTentBattleRoom_EventScript_209994:: @ 8209994 +SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale:: @ 8209994 setvar VAR_OBJ_GFX_ID_1, EVENT_OBJ_GFX_RIVAL_MAY_NORMAL return -SlateportCity_BattleTentBattleRoom_MapScript2_20999A: @ 820999A - map_script_2 VAR_TEMP_1, 0, SlateportCity_BattleTentBattleRoom_EventScript_2099A4 +SlateportCity_BattleTentBattleRoom_OnWarp: @ 820999A + map_script_2 VAR_TEMP_1, 0, SlateportCity_BattleTentBattleRoom_EventScript_SetUpObjects .2byte 0 -SlateportCity_BattleTentBattleRoom_EventScript_2099A4:: @ 82099A4 +SlateportCity_BattleTentBattleRoom_EventScript_SetUpObjects:: @ 82099A4 setvar VAR_TEMP_1, 1 hideobjectat EVENT_OBJ_ID_PLAYER, MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM hideobjectat 2, MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM end -SlateportCity_BattleTentBattleRoom_MapScript2_2099B4: @ 82099B4 - map_script_2 VAR_TEMP_0, 0, SlateportCity_BattleTentBattleRoom_EventScript_2099BE +SlateportCity_BattleTentBattleRoom_OnFrame: @ 82099B4 + map_script_2 VAR_TEMP_0, 0, SlateportCity_BattleTentBattleRoom_EventScript_EnterRoom .2byte 0 -SlateportCity_BattleTentBattleRoom_EventScript_2099BE:: @ 82099BE - applymovement 3, SlateportCity_BattleTentBattleRoom_Movement_209A99 +SlateportCity_BattleTentBattleRoom_EventScript_EnterRoom:: @ 82099BE + applymovement 3, SlateportCity_BattleTentBattleRoom_Movement_PlayerEnter waitmovement 0 factory_setopponentgfx setobjectxyperm 2, 5, 1 removeobject 2 addobject 2 - applymovement 2, SlateportCity_BattleTentBattleRoom_Movement_209A9E + applymovement 2, SlateportCity_BattleTentBattleRoom_Movement_OpponentEnter waitmovement 0 battletent_getopponentintro lockall @@ -58,41 +61,40 @@ SlateportCity_BattleTentBattleRoom_EventScript_2099BE:: @ 82099BE special DoSpecialTrainerBattle waitstate switch VAR_RESULT - case 1, SlateportCity_BattleTentBattleRoom_EventScript_209A39 - -SlateportCity_BattleTentCorridor_EventScript_209A1B:: @ 8209A1B + case 1, SlateportCity_BattleTentBattleRoom_EventScript_DefeatedOpponent +SlateportCity_BattleTent_EventScript_WarpToLobbyLost:: @ 8209A1B frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST special LoadPlayerParty warp MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate +@ forced stop -SlateportCity_BattleTentBattleRoom_EventScript_209A39:: @ 8209A39 +SlateportCity_BattleTentBattleRoom_EventScript_DefeatedOpponent:: @ 8209A39 frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT - case 3, SlateportCity_BattleTentBattleRoom_EventScript_209A7B -@ case 3, SlateportCity_BattleTentCorridor_EventScript_209A7B + case 3, SlateportCity_BattleTentBattleRoom_EventScript_WarpToLobbyWon setvar VAR_0x8006, 1 warp MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR, 255, 2, 3 waitstate +@ forced stop -SlateportCity_BattleTentBattleRoom_EventScript_209A7B:: @ 8209A7B -SlateportCity_BattleTentCorridor_EventScript_209A7B:: @ 8209A7B +SlateportCity_BattleTentBattleRoom_EventScript_WarpToLobbyWon:: @ 8209A7B frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON special LoadPlayerParty warp MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate @ forced stop -SlateportCity_BattleTentBattleRoom_Movement_209A99: @ 8209A99 +SlateportCity_BattleTentBattleRoom_Movement_PlayerEnter: @ 8209A99 walk_up walk_up walk_up walk_in_place_fastest_right step_end -SlateportCity_BattleTentBattleRoom_Movement_209A9E: @ 8209A9E +SlateportCity_BattleTentBattleRoom_Movement_OpponentEnter: @ 8209A9E walk_down walk_down walk_down diff --git a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc index 8e9b5f1b45..c786bce011 100644 --- a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc +++ b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc @@ -1,51 +1,52 @@ SlateportCity_BattleTentCorridor_MapScripts:: @ 8208E26 - map_script MAP_SCRIPT_ON_FRAME_TABLE, SlateportCity_BattleTentCorridor_MapScript2_208E5B - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, SlateportCity_BattleTentCorridor_MapScript2_208E31 + map_script MAP_SCRIPT_ON_FRAME_TABLE, SlateportCity_BattleTentCorridor_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, SlateportCity_BattleTentCorridor_OnWarp .byte 0 -SlateportCity_BattleTentCorridor_MapScript2_208E31: @ 8208E31 - map_script_2 VAR_TEMP_1, 0, SlateportCity_BattleTentCorridor_EventScript_208E3B + @ This is Slateport Tent's version of the Battle Factory Pre-Battle Room + +SlateportCity_BattleTentCorridor_OnWarp: @ 8208E31 + map_script_2 VAR_TEMP_1, 0, SlateportCity_BattleTentCorridor_EventScript_SetUpObjects .2byte 0 -SlateportCity_BattleTentCorridor_EventScript_208E3B:: @ 8208E3B +SlateportCity_BattleTentCorridor_EventScript_SetUpObjects:: @ 8208E3B setvar VAR_TEMP_1, 1 compare VAR_0x8006, 1 - goto_if_ne SlateportCity_BattleTentCorridor_EventScript_208E56 + goto_if_ne SlateportCity_BattleTentCorridor_EventScript_TurnPlayerNorth setobjectxy 1, 2, 2 turnobject 1, DIR_SOUTH - -SlateportCity_BattleTentCorridor_EventScript_208E56:: @ 8208E56 +SlateportCity_BattleTentCorridor_EventScript_TurnPlayerNorth:: @ 8208E56 turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH end -SlateportCity_BattleTentCorridor_MapScript2_208E5B: @ 8208E5B - map_script_2 VAR_TEMP_0, 0, SlateportCity_BattleTentCorridor_EventScript_208E65 +SlateportCity_BattleTentCorridor_OnFrame: @ 8208E5B + map_script_2 VAR_TEMP_0, 0, SlateportCity_BattleTentCorridor_EventScript_EnterCorridor .2byte 0 -SlateportCity_BattleTentCorridor_EventScript_208E65:: @ 8208E65 +SlateportCity_BattleTentCorridor_EventScript_EnterCorridor:: @ 8208E65 compare VAR_0x8006, 1 - goto_if_eq SlateportCity_BattleTentCorridor_EventScript_208EEE + goto_if_eq SlateportCity_BattleTentCorridor_EventScript_ReturnToRoomFromBattle setvar VAR_TEMP_0, 1 - applymovement 1, SlateportCity_BattleTentCorridor_Movement_209062 - applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_BattleTentCorridor_Movement_209059 + applymovement 1, SlateportCity_BattleTentCorridor_Movement_AttendantEnter + applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_BattleTentCorridor_Movement_PlayerEnter waitmovement 0 compare VAR_0x8006, 2 - goto_if_eq SlateportCity_BattleTentCorridor_EventScript_209044 + goto_if_eq SlateportCity_BattleTentCorridor_EventScript_ResumeChallenge slateporttent_generaterentalmons slateporttent_generateopponentmons msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_HoldMonsChooseFromSelection, MSGBOX_DEFAULT fadescreen 1 slateporttent_rentmons waitstate -SlateportCity_BattleTentCorridor_EventScript_208EB4:: @ 8208EB4 +SlateportCity_BattleTentCorridor_EventScript_EnterBattleRoom:: @ 8208EB4 msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_RightThisWay, MSGBOX_DEFAULT closemessage applymovement 1, Common_Movement_WalkInPlaceFastestUp waitmovement 0 opendoor 2, 1 waitdooranim - applymovement 1, SlateportCity_BattleTentCorridor_Movement_209068 - applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_BattleTentCorridor_Movement_20905E + applymovement 1, SlateportCity_BattleTentCorridor_Movement_AttendantExit + applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_BattleTentCorridor_Movement_PlayerExit waitmovement 0 closedoor 2, 1 waitdooranim @@ -53,69 +54,69 @@ SlateportCity_BattleTentCorridor_EventScript_208EB4:: @ 8208EB4 waitstate end -SlateportCity_BattleTentCorridor_EventScript_208EEE:: @ 8208EEE +SlateportCity_BattleTentCorridor_EventScript_ReturnToRoomFromBattle:: @ 8208EEE factory_setopponentmons factory_resethelditems msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_LetUsRestoreMons, MSGBOX_DEFAULT playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty -SlateportCity_BattleTentCorridor_EventScript_208F0D:: @ 8208F0D +SlateportCity_BattleTentCorridor_EventScript_AskReadyForOpponent:: @ 8208F0D frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 - call_if_eq SlateportCity_BattleTentCorridor_EventScript_209014 + call_if_eq SlateportCity_BattleTentCorridor_EventScript_ReadyFor2ndOpponent compare VAR_RESULT, 2 - call_if_eq SlateportCity_BattleTentCorridor_EventScript_20901B + call_if_eq SlateportCity_BattleTentCorridor_EventScript_ReadyFor3rdOpponent multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 switch VAR_RESULT - case 0, SlateportCity_BattleTentCorridor_EventScript_208FBB - case 1, SlateportCity_BattleTentCorridor_EventScript_208F5B - case 2, SlateportCity_BattleTentCorridor_EventScript_208F89 + case 0, SlateportCity_BattleTentCorridor_EventScript_AskSwapMon + case 1, SlateportCity_BattleTentCorridor_EventScript_AskPauseChallenge + case 2, SlateportCity_BattleTentCorridor_EventScript_AskRetireChallenge -SlateportCity_BattleTentCorridor_EventScript_208F5B:: @ 8208F5B +SlateportCity_BattleTentCorridor_EventScript_AskPauseChallenge:: @ 8208F5B msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_SaveAndQuitGame, MSGBOX_YESNO switch VAR_RESULT - case NO, SlateportCity_BattleTentCorridor_EventScript_208F0D - case YES, SlateportCity_BattleTentCorridor_EventScript_209022 - case MULTI_B_PRESSED, SlateportCity_BattleTentCorridor_EventScript_208F0D + case NO, SlateportCity_BattleTentCorridor_EventScript_AskReadyForOpponent + case YES, SlateportCity_BattleTentCorridor_EventScript_PauseChallenge + case MULTI_B_PRESSED, SlateportCity_BattleTentCorridor_EventScript_AskReadyForOpponent -SlateportCity_BattleTentCorridor_EventScript_208F89:: @ 8208F89 +SlateportCity_BattleTentCorridor_EventScript_AskRetireChallenge:: @ 8208F89 message BattleFrontier_BattleFactoryPreBattleRoom_Text_RetireFromChallenge waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, 0 switch VAR_RESULT - case 1, SlateportCity_BattleTentCorridor_EventScript_208F0D - case 0, SlateportCity_BattleTentCorridor_EventScript_209A1B - case MULTI_B_PRESSED, SlateportCity_BattleTentCorridor_EventScript_208F0D + case 1, SlateportCity_BattleTentCorridor_EventScript_AskReadyForOpponent + case 0, SlateportCity_BattleTent_EventScript_WarpToLobbyLost + case MULTI_B_PRESSED, SlateportCity_BattleTentCorridor_EventScript_AskReadyForOpponent -SlateportCity_BattleTentCorridor_EventScript_208FBB:: @ 8208FBB +SlateportCity_BattleTentCorridor_EventScript_AskSwapMon:: @ 8208FBB slateporttent_generateopponentmons msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_LikeToSwapMon, MSGBOX_YESNO switch VAR_RESULT - case NO, SlateportCity_BattleTentCorridor_EventScript_208EB4 - case YES, SlateportCity_BattleTentCorridor_EventScript_208FF1 - case MULTI_B_PRESSED, SlateportCity_BattleTentCorridor_EventScript_208EB4 + case NO, SlateportCity_BattleTentCorridor_EventScript_EnterBattleRoom + case YES, SlateportCity_BattleTentCorridor_EventScript_SwapMons + case MULTI_B_PRESSED, SlateportCity_BattleTentCorridor_EventScript_EnterBattleRoom -SlateportCity_BattleTentCorridor_EventScript_208FF1:: @ 8208FF1 +SlateportCity_BattleTentCorridor_EventScript_SwapMons:: @ 8208FF1 fadescreen 1 slateporttent_swapmons waitstate compare VAR_RESULT, 1 - goto_if_eq SlateportCity_BattleTentCorridor_EventScript_208EB4 + goto_if_eq SlateportCity_BattleTentCorridor_EventScript_EnterBattleRoom msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_YourSwapIsComplete, MSGBOX_DEFAULT - goto SlateportCity_BattleTentCorridor_EventScript_208EB4 + goto SlateportCity_BattleTentCorridor_EventScript_EnterBattleRoom -SlateportCity_BattleTentCorridor_EventScript_209014:: @ 8209014 +SlateportCity_BattleTentCorridor_EventScript_ReadyFor2ndOpponent:: @ 8209014 message BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor2ndOpponent waitmessage return -SlateportCity_BattleTentCorridor_EventScript_20901B:: @ 820901B +SlateportCity_BattleTentCorridor_EventScript_ReadyFor3rdOpponent:: @ 820901B message BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor3rdOpponent waitmessage return -SlateportCity_BattleTentCorridor_EventScript_209022:: @ 8209022 +SlateportCity_BattleTentCorridor_EventScript_PauseChallenge:: @ 8209022 message BattleFrontier_BattleFactoryPreBattleRoom_Text_SavingDataPleaseWait waitmessage slateporttent_save CHALLENGE_STATUS_PAUSED @@ -125,25 +126,25 @@ SlateportCity_BattleTentCorridor_EventScript_209022:: @ 8209022 frontier_reset end -SlateportCity_BattleTentCorridor_EventScript_209044:: @ 8209044 +SlateportCity_BattleTentCorridor_EventScript_ResumeChallenge:: @ 8209044 special SavePlayerParty factory_setparties 0 - goto SlateportCity_BattleTentCorridor_EventScript_208F0D + goto SlateportCity_BattleTentCorridor_EventScript_AskReadyForOpponent -SlateportCity_BattleTentCorridor_Movement_209059: @ 8209059 +SlateportCity_BattleTentCorridor_Movement_PlayerEnter: @ 8209059 walk_up walk_up walk_up walk_up step_end -SlateportCity_BattleTentCorridor_Movement_20905E: @ 820905E +SlateportCity_BattleTentCorridor_Movement_PlayerExit: @ 820905E walk_up walk_up set_invisible step_end -SlateportCity_BattleTentCorridor_Movement_209062: @ 8209062 +SlateportCity_BattleTentCorridor_Movement_AttendantEnter: @ 8209062 walk_up walk_up walk_up @@ -151,12 +152,14 @@ SlateportCity_BattleTentCorridor_Movement_209062: @ 8209062 walk_in_place_fastest_down step_end -SlateportCity_BattleTentCorridor_Movement_209068: @ 8209068 +SlateportCity_BattleTentCorridor_Movement_AttendantExit: @ 8209068 walk_up set_invisible step_end -SlateportCity_BattleTentCorridor_Text_20906B: @ 820906B +@ Leftover text from when this was a Contest Hall in R/S +@ Unused +SlateportCity_ContestHall_Text_AdviceForContests: @ 820906B .string "Want a tasty little bit of advice\n" .string "for CONTESTS?\p" .string "Using a certain move after another\n" @@ -167,12 +170,14 @@ SlateportCity_BattleTentCorridor_Text_20906B: @ 820906B .string "Of course, your opponents might try\n" .string "disrupting your POKéMON's showing.$" -SlateportCity_BattleTentCorridor_Text_20917A: @ 820917A +@ Unused +SlateportCity_ContestHall_Text_MyPapaIsContestJudge: @ 820917A .string "My papa, he's a CONTEST JUDGE.\p" .string "I wonder what I should be when I\n" .string "grow up, a JUDGE or a GYM LEADER?$" -SlateportCity_BattleTentCorridor_Text_2091DC: @ 82091DC +@ Unused +SlateportCity_ContestHall_Text_ImLikeMajorlyCheesed: @ 82091DC .string "Hey, man, I'm like majorly cheesed,\n" .string "you know. Like, you know, I just\l" .string "wanted to know why my POKéMON\l" @@ -184,7 +189,8 @@ SlateportCity_BattleTentCorridor_Text_2091DC: @ 82091DC .string "Hey, like, you! Zip it, you know?\n" .string "Just, you know, take this!$" -SlateportCity_BattleTentCorridor_Text_209322: @ 8209322 +@ Unused +SlateportCity_ContestHall_Text_ExplainTorment: @ 8209322 .string "That's, like, TM41, you know?\n" .string "Hey, it's TORMENT, you hearing me?\p" .string "Like, it won't let the other guy\n" @@ -192,7 +198,8 @@ SlateportCity_BattleTentCorridor_Text_209322: @ 8209322 .string "Hey, now, you listen here, like,\n" .string "I'm not laying a torment on you!$" -SlateportCity_BattleTentCorridor_Text_2093ED: @ 82093ED +@ Unused +SlateportCity_ContestHall_Text_MCStepUpTakePartInContest: @ 82093ED .string "MC: Oh, my, my!\n" .string "Now isn't that a dandy of a POKéMON?\p" .string "Please! Do step right up and take\n" @@ -200,7 +207,8 @@ SlateportCity_BattleTentCorridor_Text_2093ED: @ 82093ED .string "You'll do well! I'm sure of it!\n" .string "My eyes have never failed me!$" -SlateportCity_BattleTentCorridor_Text_2094A1: @ 82094A1 +@ Unused +SlateportCity_ContestHall_Text_JudgeWouldntDoToMissContest: @ 82094A1 .string "JUDGE: Well, hello there!\n" .string "I see that you're a TRAINER!\p" .string "Then, it just wouldn't do for you\n" @@ -208,17 +216,20 @@ SlateportCity_BattleTentCorridor_Text_2094A1: @ 82094A1 .string "Get a CONTEST PASS in VERDANTURF\n" .string "CITY and enter anytime!$" -SlateportCity_BattleTentCorridor_Text_20954E: @ 820954E +@ Unused +SlateportCity_ContestHall_Text_ItsAppealTime: @ 820954E .string "It's appeal time!\n" .string "What should I lead with?$" -SlateportCity_BattleTentCorridor_Text_209579: @ 8209579 +@ Unused +SlateportCity_ContestHall_Text_DidntPayAttentionToAppeal: @ 8209579 .string "They didn't pay much attention to\n" .string "my POKéMON's appeal…\p" .string "Humph, that JUDGE, he doesn't know\n" .string "a good thing when he sees it.$" -SlateportCity_BattleTentCorridor_Text_2095F1: @ 82095F1 +@ Unused +SlateportCity_ContestHall_Text_RewardWithSageAdvice: @ 82095F1 .string "Oh, hi! You must be a serious fan to get\n" .string "this close to the action.\p" .string "I'll reward your enthusiasm with\n" @@ -230,35 +241,41 @@ SlateportCity_BattleTentCorridor_Text_2095F1: @ 82095F1 .string "Well, you'd think something good has\n" .string "to happen!$" -SlateportCity_BattleTentCorridor_Text_209718: @ 8209718 +@ Unused +SlateportCity_ContestHall_Text_MoreFreakedOutThanMon: @ 8209718 .string "I can't do this! I'm more freaked out\n" .string "than my POKéMON.\p" .string "I'm shivering and my heart is racing!$" -SlateportCity_BattleTentCorridor_Text_209775: @ 8209775 +@ Unused +SlateportCity_ContestHall_Text_BattleAndContestAlike: @ 8209775 .string "A battle and a CONTEST aren't the\n" .string "same, but they are alike, too.\p" .string "You need to work hard and believe\n" .string "in the POKéMON you've raised.$" -SlateportCity_BattleTentCorridor_Text_2097F6: @ 82097F6 +@ Unused +SlateportCity_ContestHall_Text_MonLooksOnTopOfGame: @ 82097F6 .string "That POKéMON looks like it's on top\n" .string "of its game, huh?\p" .string "A POKéMON that does good in the\n" .string "secondary judging seems to be more\l" .string "relaxed when it's doing appeals.$" -SlateportCity_BattleTentCorridor_Text_209890: @ 8209890 +@ Unused +SlateportCity_ContestHall_Text_MyMonBetterThanThatLot: @ 8209890 .string "Will you look at that sorry sight?\p" .string "Heh, my POKéMON's absolutely better\n" .string "than that lot!$" -SlateportCity_BattleTentCorridor_Text_2098E6: @ 82098E6 +@ Unused +SlateportCity_ContestHall_Text_GetUrgeToMoveWithMon: @ 82098E6 .string "Don't you get the urge to move with\n" .string "POKéMON if they're putting on an\l" .string "energetic appeal?$" -SlateportCity_BattleTentCorridor_Text_20993D: @ 820993D +@ Unused +SlateportCity_ContestHall_Text_HyperRankStage: @ 820993D .string "POKéMON CONTESTS\n" .string "HYPER RANK STAGE!$" diff --git a/data/maps/SlateportCity_BattleTentLobby/map.json b/data/maps/SlateportCity_BattleTentLobby/map.json index 45783e2c96..b1d06a1440 100644 --- a/data/maps/SlateportCity_BattleTentLobby/map.json +++ b/data/maps/SlateportCity_BattleTentLobby/map.json @@ -24,7 +24,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "SlateportCity_BattleTentLobby_EventScript_2088AA", + "script": "SlateportCity_BattleTentLobby_EventScript_Attendant", "flag": "0" }, { @@ -37,7 +37,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "SlateportCity_BattleTentLobby_EventScript_208A3D", + "script": "SlateportCity_BattleTentLobby_EventScript_TormentGiver", "flag": "0" }, { @@ -50,7 +50,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "SlateportCity_BattleTentLobby_EventScript_208A7E", + "script": "SlateportCity_BattleTentLobby_EventScript_Man", "flag": "0" }, { @@ -63,7 +63,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "SlateportCity_BattleTentLobby_EventScript_208A87", + "script": "SlateportCity_BattleTentLobby_EventScript_Girl", "flag": "0" }, { @@ -76,7 +76,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "SlateportCity_BattleTentLobby_EventScript_208A90", + "script": "SlateportCity_BattleTentLobby_EventScript_Woman", "flag": "0" } ], @@ -104,7 +104,7 @@ "y": 5, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", - "script": "SlateportCity_BattleTentLobby_EventScript_208A99" + "script": "SlateportCity_BattleTentLobby_EventScript_RulesBoard" } ] } \ No newline at end of file diff --git a/data/maps/SlateportCity_BattleTentLobby/scripts.inc b/data/maps/SlateportCity_BattleTentLobby/scripts.inc index 793e96c108..6a74d6a6f3 100644 --- a/data/maps/SlateportCity_BattleTentLobby/scripts.inc +++ b/data/maps/SlateportCity_BattleTentLobby/scripts.inc @@ -1,32 +1,32 @@ SlateportCity_BattleTentLobby_MapScripts:: @ 8208730 - map_script MAP_SCRIPT_ON_FRAME_TABLE, SlateportCity_BattleTentLobby_MapScript2_20874F - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, SlateportCity_BattleTentLobby_MapScript2_20873B + map_script MAP_SCRIPT_ON_FRAME_TABLE, SlateportCity_BattleTentLobby_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, SlateportCity_BattleTentLobby_OnWarp .byte 0 -SlateportCity_BattleTentLobby_MapScript2_20873B: @ 820873B - map_script_2 VAR_TEMP_1, 0, SlateportCity_BattleTentLobby_EventScript_208745 +SlateportCity_BattleTentLobby_OnWarp: @ 820873B + map_script_2 VAR_TEMP_1, 0, SlateportCity_BattleTentLobby_EventScript_TurnPlayerNorth .2byte 0 -SlateportCity_BattleTentLobby_EventScript_208745:: @ 8208745 +SlateportCity_BattleTentLobby_EventScript_TurnPlayerNorth:: @ 8208745 setvar VAR_TEMP_1, 1 turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH end -SlateportCity_BattleTentLobby_MapScript2_20874F: @ 820874F - map_script_2 VAR_TEMP_0, 0, SlateportCity_BattleTentLobby_EventScript_208779 - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, SlateportCity_BattleTentLobby_EventScript_208782 - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, SlateportCity_BattleTentLobby_EventScript_208871 - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, SlateportCity_BattleTentLobby_EventScript_2087B7 - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, SlateportCity_BattleTentLobby_EventScript_208837 +SlateportCity_BattleTentLobby_OnFrame: @ 820874F + map_script_2 VAR_TEMP_0, 0, SlateportCity_BattleTentLobby_EventScript_GetChallengeStatus + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, SlateportCity_BattleTentLobby_EventScript_QuitWithoutSaving + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, SlateportCity_BattleTentLobby_EventScript_ResumeChallenge + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, SlateportCity_BattleTentLobby_EventScript_WonChallenge + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, SlateportCity_BattleTentLobby_EventScript_LostChallenge .2byte 0 -SlateportCity_BattleTentLobby_EventScript_208779:: @ 8208779 +SlateportCity_BattleTentLobby_EventScript_GetChallengeStatus:: @ 8208779 frontier_getstatus end -SlateportCity_BattleTentLobby_EventScript_208782:: @ 8208782 +SlateportCity_BattleTentLobby_EventScript_QuitWithoutSaving:: @ 8208782 lockall - msgbox SlateportCity_BattleTentLobby_Text_2C5DFA, MSGBOX_DEFAULT + msgbox SlateportCity_BattleTentLobby_Text_DidntSaveBeforeQuitting, MSGBOX_DEFAULT closemessage frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 @@ -34,50 +34,50 @@ SlateportCity_BattleTentLobby_EventScript_208782:: @ 8208782 releaseall end -SlateportCity_BattleTentLobby_EventScript_2087B7:: @ 82087B7 +SlateportCity_BattleTentLobby_EventScript_WonChallenge:: @ 82087B7 lockall - message SlateportCity_BattleTentLobby_Text_2C5C6F + message SlateportCity_BattleTentLobby_Text_WonThreeMatchesReturnMons waitmessage slateporttent_setrandomprize frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 slateporttent_save 0 playse SE_SAVE waitse -SlateportCity_BattleTentLobby_EventScript_2087E9:: @ 82087E9 - msgbox SlateportCity_BattleTentLobby_Text_2C5D14, MSGBOX_DEFAULT +SlateportCity_BattleTentLobby_EventScript_GivePrize:: @ 82087E9 + msgbox SlateportCity_BattleTentLobby_Text_AwardYouThisPrize, MSGBOX_DEFAULT slateporttent_giveprize switch VAR_RESULT - case 0, SlateportCity_BattleTentLobby_EventScript_20882A + case FALSE, SlateportCity_BattleTentLobby_EventScript_NoRoomForPrize frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 - message SlateportCity_BattleTentLobby_Text_23F68C + message BattleFrontier_BattleTowerLobby_Text_ReceivedPrize @ Odd that it uses Tower's instead of Factory's or its own waitmessage playfanfare MUS_FANFA4 waitfanfare - goto SlateportCity_BattleTentLobby_EventScript_208861 + goto SlateportCity_BattleTentLobby_EventScript_EndGivePrize -SlateportCity_BattleTentLobby_EventScript_20882A:: @ 820882A - msgbox SlateportCity_BattleTentLobby_Text_2C5D52, MSGBOX_DEFAULT - goto SlateportCity_BattleTentLobby_EventScript_208861 +SlateportCity_BattleTentLobby_EventScript_NoRoomForPrize:: @ 820882A + msgbox SlateportCity_BattleTentLobby_Text_NoRoomInBagMakeRoom, MSGBOX_DEFAULT + goto SlateportCity_BattleTentLobby_EventScript_EndGivePrize -SlateportCity_BattleTentLobby_EventScript_208837:: @ 8208837 +SlateportCity_BattleTentLobby_EventScript_LostChallenge:: @ 8208837 lockall - message SlateportCity_BattleTentLobby_Text_2C5BA2 + message SlateportCity_BattleTentLobby_Text_ReturnRentalMonsSaveResults waitmessage frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 slateporttent_save 0 playse SE_SAVE waitse -SlateportCity_BattleTentLobby_EventScript_208861:: @ 8208861 - msgbox SlateportCity_BattleTentLobby_Text_2C5AA5, MSGBOX_DEFAULT +SlateportCity_BattleTentLobby_EventScript_EndGivePrize:: @ 8208861 + msgbox SlateportCity_BattleTentLobby_Text_LookForwardToNextVisit, MSGBOX_DEFAULT closemessage setvar VAR_TEMP_0, 255 releaseall end -SlateportCity_BattleTentLobby_EventScript_208871:: @ 8208871 +SlateportCity_BattleTentLobby_EventScript_ResumeChallenge:: @ 8208871 lockall - message SlateportCity_BattleTentLobby_Text_2C5DA7 + message SlateportCity_BattleTentLobby_Text_BeenWaitingForYou waitmessage slateporttent_save CHALLENGE_STATUS_SAVING playse SE_SAVE @@ -85,37 +85,37 @@ SlateportCity_BattleTentLobby_EventScript_208871:: @ 8208871 frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 setvar VAR_0x8006, 2 - goto SlateportCity_BattleTentLobby_EventScript_2089AC + goto SlateportCity_BattleTentLobby_EventScript_EnterChallenge -SlateportCity_BattleTentLobby_EventScript_2088AA:: @ 82088AA +SlateportCity_BattleTentLobby_EventScript_Attendant:: @ 82088AA lock faceplayer slateporttent_getprize - compare VAR_RESULT, 0 - goto_if_ne SlateportCity_BattleTentLobby_EventScript_2087E9 + compare VAR_RESULT, ITEM_NONE + goto_if_ne SlateportCity_BattleTentLobby_EventScript_GivePrize special SavePlayerParty - msgbox SlateportCity_BattleTentLobby_Text_2C5810, MSGBOX_DEFAULT -SlateportCity_BattleTentLobby_EventScript_2088CA:: @ 82088CA - message SlateportCity_BattleTentLobby_Text_2C586A + msgbox SlateportCity_BattleTentLobby_Text_WelcomeToBattleTent, MSGBOX_DEFAULT +SlateportCity_BattleTentLobby_EventScript_AskEnterChallenge:: @ 82088CA + message SlateportCity_BattleTentLobby_Text_TakeChallenge waitmessage multichoice 17, 6, MULTI_CHALLENGEINFO, 0 switch VAR_RESULT - case 0, SlateportCity_BattleTentLobby_EventScript_208906 - case 1, SlateportCity_BattleTentLobby_EventScript_208A07 - case 2, SlateportCity_BattleTentLobby_EventScript_208A2E - case MULTI_B_PRESSED, SlateportCity_BattleTentLobby_EventScript_208A2E + case 0, SlateportCity_BattleTentLobby_EventScript_TryEnterChallenge + case 1, SlateportCity_BattleTentLobby_EventScript_ExplainChallenge + case 2, SlateportCity_BattleTentLobby_EventScript_CancelChallenge + case MULTI_B_PRESSED, SlateportCity_BattleTentLobby_EventScript_CancelChallenge -SlateportCity_BattleTentLobby_EventScript_208906:: @ 8208906 +SlateportCity_BattleTentLobby_EventScript_TryEnterChallenge:: @ 8208906 setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_FACTORY setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_TENT - msgbox SlateportCity_BattleTentLobby_Text_2C5B06, MSGBOX_YESNO + msgbox SlateportCity_BattleTentLobby_Text_SaveBeforeChallenge, MSGBOX_YESNO switch VAR_RESULT - case NO, SlateportCity_BattleTentLobby_EventScript_208A2B - case YES, SlateportCity_BattleTentLobby_EventScript_208950 - case MULTI_B_PRESSED, SlateportCity_BattleTentLobby_EventScript_208A2B + case NO, SlateportCity_BattleTentLobby_EventScript_LoadPartyCancelChallenge + case YES, SlateportCity_BattleTentLobby_EventScript_SaveBeforeChallenge + case MULTI_B_PRESSED, SlateportCity_BattleTentLobby_EventScript_LoadPartyCancelChallenge -SlateportCity_BattleTentLobby_EventScript_208950:: @ 8208950 +SlateportCity_BattleTentLobby_EventScript_SaveBeforeChallenge:: @ 8208950 setvar VAR_TEMP_0, 0 frontier_set FRONTIER_DATA_SELECTED_MON_ORDER slateporttent_init @@ -126,156 +126,156 @@ SlateportCity_BattleTentLobby_EventScript_208950:: @ 8208950 call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 compare VAR_RESULT, 0 - goto_if_eq SlateportCity_BattleTentLobby_EventScript_208A14 + goto_if_eq SlateportCity_BattleTentLobby_EventScript_CancelChallengeSaveFailed setvar VAR_0x8006, 0 -SlateportCity_BattleTentLobby_EventScript_2089AC:: @ 82089AC - msgbox SlateportCity_BattleTentLobby_Text_2C5B8C, MSGBOX_DEFAULT +SlateportCity_BattleTentLobby_EventScript_EnterChallenge:: @ 82089AC + msgbox SlateportCity_BattleTentLobby_Text_StepThisWay, MSGBOX_DEFAULT closemessage - call SlateportCity_BattleTentLobby_EventScript_2089C9 + call SlateportCity_BattleTentLobby_EventScript_WalkToDoor warp MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR, 255, 2, 7 setvar VAR_TEMP_0, 0 waitstate end -SlateportCity_BattleTentLobby_EventScript_2089C9:: @ 82089C9 - applymovement 1, SlateportCity_BattleTentLobby_Movement_2089F8 - applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_BattleTentLobby_Movement_2089FF +SlateportCity_BattleTentLobby_EventScript_WalkToDoor:: @ 82089C9 + applymovement 1, SlateportCity_BattleTentLobby_Movement_AttendantWalkToDoor + applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_BattleTentLobby_Movement_PlayerWalkToDoor waitmovement 0 opendoor 6, 1 waitdooranim - applymovement 1, SlateportCity_BattleTentLobby_Movement_2089FC - applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_BattleTentLobby_Movement_208A03 + applymovement 1, SlateportCity_BattleTentLobby_Movement_AttendantEnterDoor + applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_BattleTentLobby_Movement_PlayerEnterDoor waitmovement 0 closedoor 6, 1 waitdooranim return -SlateportCity_BattleTentLobby_Movement_2089F8: @ 82089F8 +SlateportCity_BattleTentLobby_Movement_AttendantWalkToDoor: @ 82089F8 walk_up walk_up walk_up step_end -SlateportCity_BattleTentLobby_Movement_2089FC: @ 82089FC +SlateportCity_BattleTentLobby_Movement_AttendantEnterDoor: @ 82089FC walk_up set_invisible step_end -SlateportCity_BattleTentLobby_Movement_2089FF: @ 82089FF +SlateportCity_BattleTentLobby_Movement_PlayerWalkToDoor: @ 82089FF walk_up walk_up walk_up step_end -SlateportCity_BattleTentLobby_Movement_208A03: @ 8208A03 +SlateportCity_BattleTentLobby_Movement_PlayerEnterDoor: @ 8208A03 walk_up walk_up set_invisible step_end -SlateportCity_BattleTentLobby_EventScript_208A07:: @ 8208A07 - msgbox SlateportCity_BattleTentLobby_Text_2C589C, MSGBOX_DEFAULT - goto SlateportCity_BattleTentLobby_EventScript_2088CA +SlateportCity_BattleTentLobby_EventScript_ExplainChallenge:: @ 8208A07 + msgbox SlateportCity_BattleTentLobby_Text_ExplainSlateportTent, MSGBOX_DEFAULT + goto SlateportCity_BattleTentLobby_EventScript_AskEnterChallenge -SlateportCity_BattleTentLobby_EventScript_208A14:: @ 8208A14 +SlateportCity_BattleTentLobby_EventScript_CancelChallengeSaveFailed:: @ 8208A14 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 - goto SlateportCity_BattleTentLobby_EventScript_208A2E + goto SlateportCity_BattleTentLobby_EventScript_CancelChallenge -SlateportCity_BattleTentLobby_EventScript_208A2B:: @ 8208A2B +SlateportCity_BattleTentLobby_EventScript_LoadPartyCancelChallenge:: @ 8208A2B special LoadPlayerParty - -SlateportCity_BattleTentLobby_EventScript_208A2E:: @ 8208A2E - msgbox SlateportCity_BattleTentLobby_Text_2C5AA5, MSGBOX_DEFAULT +SlateportCity_BattleTentLobby_EventScript_CancelChallenge:: @ 8208A2E + msgbox SlateportCity_BattleTentLobby_Text_LookForwardToNextVisit, MSGBOX_DEFAULT release end -SlateportCity_BattleTentLobby_Movement_208A38:: @ 8208A38 +@ Unused +SlateportCity_BattleTentLobby_Movement_UnusedEnterDoor:: @ 8208A38 walk_up walk_up walk_up set_invisible step_end -SlateportCity_BattleTentLobby_EventScript_208A3D:: @ 8208A3D +SlateportCity_BattleTentLobby_EventScript_TormentGiver:: @ 8208A3D lock faceplayer - goto_if_set FLAG_RECEIVED_TM41, SlateportCity_BattleTentLobby_EventScript_208A74 - msgbox SlateportCity_BattleTentLobby_Text_208B4E, MSGBOX_DEFAULT + goto_if_set FLAG_RECEIVED_TM41, SlateportCity_BattleTentLobby_EventScript_ReceivedTorment + msgbox SlateportCity_BattleTentLobby_Text_CouldntFindMonForMe, MSGBOX_DEFAULT giveitem_std ITEM_TM41 - compare VAR_RESULT, 0 + compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM41 - msgbox SlateportCity_BattleTentLobby_Text_208C5C, MSGBOX_DEFAULT + msgbox SlateportCity_BattleTentLobby_Text_ExplainTorment, MSGBOX_DEFAULT release end -SlateportCity_BattleTentLobby_EventScript_208A74:: @ 8208A74 - msgbox SlateportCity_BattleTentLobby_Text_208C5C, MSGBOX_DEFAULT +SlateportCity_BattleTentLobby_EventScript_ReceivedTorment:: @ 8208A74 + msgbox SlateportCity_BattleTentLobby_Text_ExplainTorment, MSGBOX_DEFAULT release end -SlateportCity_BattleTentLobby_EventScript_208A7E:: @ 8208A7E - msgbox SlateportCity_BattleTentLobby_Text_208D27, MSGBOX_NPC +SlateportCity_BattleTentLobby_EventScript_Man:: @ 8208A7E + msgbox SlateportCity_BattleTentLobby_Text_IllTryUsingBugMons, MSGBOX_NPC end -SlateportCity_BattleTentLobby_EventScript_208A87:: @ 8208A87 - msgbox SlateportCity_BattleTentLobby_Text_208DA6, MSGBOX_NPC +SlateportCity_BattleTentLobby_EventScript_Girl:: @ 8208A87 + msgbox SlateportCity_BattleTentLobby_Text_BattleEvenWithoutToughMons, MSGBOX_NPC end -SlateportCity_BattleTentLobby_EventScript_208A90:: @ 8208A90 - msgbox SlateportCity_BattleTentLobby_Text_208DF1, MSGBOX_NPC +SlateportCity_BattleTentLobby_EventScript_Woman:: @ 8208A90 + msgbox SlateportCity_BattleTentLobby_Text_NiceIfMoreSelection, MSGBOX_NPC end -SlateportCity_BattleTentLobby_EventScript_208A99:: @ 8208A99 +SlateportCity_BattleTentLobby_EventScript_RulesBoard:: @ 8208A99 lockall msgbox BattleFrontier_BattleFactoryLobby_Text_RulesAreListed, MSGBOX_DEFAULT - goto SlateportCity_BattleTentLobby_EventScript_208AA8 + goto SlateportCity_BattleTentLobby_EventScript_ReadRulesBoard end -SlateportCity_BattleTentLobby_EventScript_208AA8:: @ 8208AA8 +SlateportCity_BattleTentLobby_EventScript_ReadRulesBoard:: @ 8208AA8 message BattleFrontier_BattleFactoryLobby_Text_ReadWhichHeading waitmessage multichoice 17, 0, MULTI_SLATEPORT_TENT_RULES, 0 switch VAR_RESULT - case 0, SlateportCity_BattleTentLobby_EventScript_208B06 - case 1, SlateportCity_BattleTentLobby_EventScript_208B14 - case 2, SlateportCity_BattleTentLobby_EventScript_208B22 - case 3, SlateportCity_BattleTentLobby_EventScript_208B30 - case 4, SlateportCity_BattleTentLobby_EventScript_208B3E - case 5, SlateportCity_BattleTentLobby_EventScript_208B4C - case MULTI_B_PRESSED, SlateportCity_BattleTentLobby_EventScript_208B4C + case 0, SlateportCity_BattleTentLobby_EventScript_RulesBasics + case 1, SlateportCity_BattleTentLobby_EventScript_RulesSwapPartner + case 2, SlateportCity_BattleTentLobby_EventScript_RulesSwapNumber + case 3, SlateportCity_BattleTentLobby_EventScript_RulesSwapNotes + case 4, SlateportCity_BattleTentLobby_EventScript_RulesMons + case 5, SlateportCity_BattleTentLobby_EventScript_ExitRules + case MULTI_B_PRESSED, SlateportCity_BattleTentLobby_EventScript_ExitRules end -SlateportCity_BattleTentLobby_EventScript_208B06:: @ 8208B06 - msgbox SlateportCity_BattleTentLobby_Text_2C5F08, MSGBOX_DEFAULT - goto SlateportCity_BattleTentLobby_EventScript_208AA8 +SlateportCity_BattleTentLobby_EventScript_RulesBasics:: @ 8208B06 + msgbox SlateportCity_BattleTentLobby_Text_ExplainBasicRules, MSGBOX_DEFAULT + goto SlateportCity_BattleTentLobby_EventScript_ReadRulesBoard end -SlateportCity_BattleTentLobby_EventScript_208B14:: @ 8208B14 - msgbox SlateportCity_BattleTentLobby_Text_2C5F9D, MSGBOX_DEFAULT - goto SlateportCity_BattleTentLobby_EventScript_208AA8 +SlateportCity_BattleTentLobby_EventScript_RulesSwapPartner:: @ 8208B14 + msgbox SlateportCity_BattleTentLobby_Text_ExplainSwapPartnerRules, MSGBOX_DEFAULT + goto SlateportCity_BattleTentLobby_EventScript_ReadRulesBoard end -SlateportCity_BattleTentLobby_EventScript_208B22:: @ 8208B22 - msgbox SlateportCity_BattleTentLobby_Text_2C6020, MSGBOX_DEFAULT - goto SlateportCity_BattleTentLobby_EventScript_208AA8 +SlateportCity_BattleTentLobby_EventScript_RulesSwapNumber:: @ 8208B22 + msgbox SlateportCity_BattleTentLobby_Text_ExplainSwapNumberRules, MSGBOX_DEFAULT + goto SlateportCity_BattleTentLobby_EventScript_ReadRulesBoard end -SlateportCity_BattleTentLobby_EventScript_208B30:: @ 8208B30 - msgbox SlateportCity_BattleTentLobby_Text_2C60C0, MSGBOX_DEFAULT - goto SlateportCity_BattleTentLobby_EventScript_208AA8 +SlateportCity_BattleTentLobby_EventScript_RulesSwapNotes:: @ 8208B30 + msgbox SlateportCity_BattleTentLobby_Text_ExplainSwapNotes, MSGBOX_DEFAULT + goto SlateportCity_BattleTentLobby_EventScript_ReadRulesBoard end -SlateportCity_BattleTentLobby_EventScript_208B3E:: @ 8208B3E - msgbox SlateportCity_BattleTentLobby_Text_2C61FE, MSGBOX_DEFAULT - goto SlateportCity_BattleTentLobby_EventScript_208AA8 +SlateportCity_BattleTentLobby_EventScript_RulesMons:: @ 8208B3E + msgbox SlateportCity_BattleTentLobby_Text_ExplainMonRules, MSGBOX_DEFAULT + goto SlateportCity_BattleTentLobby_EventScript_ReadRulesBoard end -SlateportCity_BattleTentLobby_EventScript_208B4C:: @ 8208B4C +SlateportCity_BattleTentLobby_EventScript_ExitRules:: @ 8208B4C releaseall end -SlateportCity_BattleTentLobby_Text_208B4E: @ 8208B4E +SlateportCity_BattleTentLobby_Text_CouldntFindMonForMe: @ 8208B4E .string "So, like, I couldn't find myself any\n" .string "POKéMON that were, like, for me.\p" .string "So, I figured, like, hey, I should file\n" @@ -285,7 +285,7 @@ SlateportCity_BattleTentLobby_Text_208B4E: @ 8208B4E .string "Hey, like, you! Zip it, you know?\n" .string "Just, you know, take this!$" -SlateportCity_BattleTentLobby_Text_208C5C: @ 8208C5C +SlateportCity_BattleTentLobby_Text_ExplainTorment: @ 8208C5C .string "That's, like, TM41, you know?\n" .string "Hey, it's TORMENT, you hearing me?\p" .string "Like, it won't let the other guy\n" @@ -293,18 +293,18 @@ SlateportCity_BattleTentLobby_Text_208C5C: @ 8208C5C .string "Hey, now, you listen here, like,\n" .string "I'm not laying a torment on you!$" -SlateportCity_BattleTentLobby_Text_208D27: @ 8208D27 +SlateportCity_BattleTentLobby_Text_IllTryUsingBugMons: @ 8208D27 .string "I don't really like BUG POKéMON,\n" .string "but maybe I'll try using some for\l" .string "a change of pace.\p" .string "Who knows, I might even get to like\n" .string "them!$" -SlateportCity_BattleTentLobby_Text_208DA6: @ 8208DA6 +SlateportCity_BattleTentLobby_Text_BattleEvenWithoutToughMons: @ 8208DA6 .string "You can battle all you want here even\n" .string "if you don't have any tough POKéMON.$" -SlateportCity_BattleTentLobby_Text_208DF1: @ 8208DF1 +SlateportCity_BattleTentLobby_Text_NiceIfMoreSelection: @ 8208DF1 .string "Wouldn't it be nice if they had more of\n" .string "a selection?$" diff --git a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc index 4760880e24..31004fa3d9 100644 --- a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc @@ -1,68 +1,70 @@ VerdanturfTown_BattleTentBattleRoom_MapScripts:: @ 82022FA map_script MAP_SCRIPT_ON_TRANSITION, VerdanturfTown_BattleTentBattleRoom_OnTransition - map_script MAP_SCRIPT_ON_FRAME_TABLE, VerdanturfTown_BattleTentBattleRoom_MapScript2_20233E - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, VerdanturfTown_BattleTentBattleRoom_MapScript2_202541 + map_script MAP_SCRIPT_ON_FRAME_TABLE, VerdanturfTown_BattleTentBattleRoom_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, VerdanturfTown_BattleTentBattleRoom_OnWarp .byte 0 + @ On this map the player (OBJ_EVENT_ID_PLAYER) is hidden + @ The player is represented instead by object event 1, which has the gfx id VAR_OBJ_GFX_ID_1 + @ The opponent is represented by object event 2, which has the gfx id VAR_OBJ_GFX_ID_0 + VerdanturfTown_BattleTentBattleRoom_OnTransition: @ 820230A - call VerdanturfTown_BattleTentBattleRoom_EventScript_202310 + call VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfx end -VerdanturfTown_BattleTentBattleRoom_EventScript_202310:: @ 8202310 +VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfx:: @ 8202310 checkplayergender compare VAR_RESULT, MALE - goto_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_202328 + goto_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfxMale compare VAR_RESULT, FEMALE - goto_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_202333 + goto_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale return -VerdanturfTown_BattleTentBattleRoom_EventScript_202328:: @ 8202328 +VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfxMale:: @ 8202328 setvar VAR_OBJ_GFX_ID_1, EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL setvar VAR_OBJ_GFX_ID_0, EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL return -VerdanturfTown_BattleTentBattleRoom_EventScript_202333:: @ 8202333 +VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale:: @ 8202333 setvar VAR_OBJ_GFX_ID_1, EVENT_OBJ_GFX_RIVAL_MAY_NORMAL setvar VAR_OBJ_GFX_ID_0, EVENT_OBJ_GFX_RIVAL_MAY_NORMAL return -VerdanturfTown_BattleTentBattleRoom_MapScript2_20233E: @ 820233E - map_script_2 VAR_TEMP_0, 0, VerdanturfTown_BattleTentBattleRoom_EventScript_202348 +VerdanturfTown_BattleTentBattleRoom_OnFrame: @ 820233E + map_script_2 VAR_TEMP_0, 0, VerdanturfTown_BattleTentBattleRoom_EventScript_EnterRoom .2byte 0 -VerdanturfTown_BattleTentBattleRoom_EventScript_202348:: @ 8202348 +VerdanturfTown_BattleTentBattleRoom_EventScript_EnterRoom:: @ 8202348 showobjectat 1, MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM - applymovement 1, VerdanturfTown_BattleTentBattleRoom_Movement_202575 + applymovement 1, VerdanturfTown_BattleTentBattleRoom_Movement_PlayerEnter waitmovement 0 frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 0 - goto_if_ne VerdanturfTown_BattleTentBattleRoom_EventScript_20243C - -VerdanturfTown_BattleTentBattleRoom_EventScript_20236F:: @ 820236F + goto_if_ne VerdanturfTown_BattleTentBattleRoom_EventScript_AskContinueChallenge +VerdanturfTown_BattleTentBattleRoom_EventScript_NextOpponentEnter:: @ 820236F tower_setopponent addobject 2 - applymovement 2, VerdanturfTown_BattleTentBattleRoom_Movement_20257B + applymovement 2, VerdanturfTown_BattleTentBattleRoom_Movement_OpponentEnter waitmovement 0 battletent_getopponentintro msgbox gStringVar4, MSGBOX_DEFAULT waitmessage call BattleFrontier_BattlePalaceBattleRoom_EventScript_DoPalaceBattle switch VAR_RESULT - case 1, VerdanturfTown_BattleTentBattleRoom_EventScript_2023C8 - -VerdanturfTown_BattleTentBattleRoom_EventScript_2023AA:: @ 82023AA + case 1, VerdanturfTown_BattleTentBattleRoom_EventScript_DefeatedOpponent +VerdanturfTown_BattleTentBattleRoom_EventScript_WarpToLobbyLost:: @ 82023AA frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST special LoadPlayerParty warp MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate -VerdanturfTown_BattleTentBattleRoom_EventScript_2023C8:: @ 82023C8 +VerdanturfTown_BattleTentBattleRoom_EventScript_DefeatedOpponent:: @ 82023C8 frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT - case 3, VerdanturfTown_BattleTentBattleRoom_EventScript_202501 - applymovement 2, VerdanturfTown_BattleTentBattleRoom_Movement_202581 + case 3, VerdanturfTown_BattleTentBattleRoom_EventScript_WarpToLobbyWon + applymovement 2, VerdanturfTown_BattleTentBattleRoom_Movement_OpponentExit waitmovement 0 removeobject 2 applymovement 3, Common_Movement_WalkInPlaceFastestDown @@ -76,48 +78,48 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_2023C8:: @ 82023C8 waitfanfare special HealPlayerParty -VerdanturfTown_BattleTentBattleRoom_EventScript_20243C:: @ 820243C +VerdanturfTown_BattleTentBattleRoom_EventScript_AskContinueChallenge:: @ 820243C frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 - call_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_202565 + call_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_ReadyFor2ndOpponent compare VAR_RESULT, 2 - call_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_20256C + call_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_ReadyFor3rdOpponent multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 switch VAR_RESULT - case 0, VerdanturfTown_BattleTentBattleRoom_EventScript_2024EA - case 1, VerdanturfTown_BattleTentBattleRoom_EventScript_20248A - case 2, VerdanturfTown_BattleTentBattleRoom_EventScript_2024B8 + case 0, VerdanturfTown_BattleTentBattleRoom_EventScript_ContinueChallenge + case 1, VerdanturfTown_BattleTentBattleRoom_EventScript_AskPauseChallenge + case 2, VerdanturfTown_BattleTentBattleRoom_EventScript_AskRetireChallenge -VerdanturfTown_BattleTentBattleRoom_EventScript_20248A:: @ 820248A +VerdanturfTown_BattleTentBattleRoom_EventScript_AskPauseChallenge:: @ 820248A msgbox BattleFrontier_BattlePalaceBattleRoom_Text_SaveAndQuitGame, MSGBOX_YESNO switch VAR_RESULT - case NO, VerdanturfTown_BattleTentBattleRoom_EventScript_20243C - case YES, VerdanturfTown_BattleTentBattleRoom_EventScript_20251F - case MULTI_B_PRESSED, VerdanturfTown_BattleTentBattleRoom_EventScript_20243C + case NO, VerdanturfTown_BattleTentBattleRoom_EventScript_AskContinueChallenge + case YES, VerdanturfTown_BattleTentBattleRoom_EventScript_PauseChallenge + case MULTI_B_PRESSED, VerdanturfTown_BattleTentBattleRoom_EventScript_AskContinueChallenge -VerdanturfTown_BattleTentBattleRoom_EventScript_2024B8:: @ 82024B8 +VerdanturfTown_BattleTentBattleRoom_EventScript_AskRetireChallenge:: @ 82024B8 message BattleFrontier_BattlePalaceBattleRoom_Text_WishToQuitChallenge waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, 0 switch VAR_RESULT - case 1, VerdanturfTown_BattleTentBattleRoom_EventScript_20243C - case 0, VerdanturfTown_BattleTentBattleRoom_EventScript_2023AA - case MULTI_B_PRESSED, VerdanturfTown_BattleTentBattleRoom_EventScript_20243C + case 1, VerdanturfTown_BattleTentBattleRoom_EventScript_AskContinueChallenge + case 0, VerdanturfTown_BattleTentBattleRoom_EventScript_WarpToLobbyLost + case MULTI_B_PRESSED, VerdanturfTown_BattleTentBattleRoom_EventScript_AskContinueChallenge -VerdanturfTown_BattleTentBattleRoom_EventScript_2024EA:: @ 82024EA +VerdanturfTown_BattleTentBattleRoom_EventScript_ContinueChallenge:: @ 82024EA applymovement 3, Common_Movement_WalkInPlaceFastestRight applymovement 1, Common_Movement_WalkInPlaceFastestRight waitmovement 0 closemessage - goto VerdanturfTown_BattleTentBattleRoom_EventScript_20236F + goto VerdanturfTown_BattleTentBattleRoom_EventScript_NextOpponentEnter -VerdanturfTown_BattleTentBattleRoom_EventScript_202501:: @ 8202501 +VerdanturfTown_BattleTentBattleRoom_EventScript_WarpToLobbyWon:: @ 8202501 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON special LoadPlayerParty warp MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate -VerdanturfTown_BattleTentBattleRoom_EventScript_20251F:: @ 820251F +VerdanturfTown_BattleTentBattleRoom_EventScript_PauseChallenge:: @ 820251F message BattleFrontier_BattlePalaceBattleRoom_Text_SavingData waitmessage verdanturftent_save CHALLENGE_STATUS_PAUSED @@ -127,33 +129,33 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_20251F:: @ 820251F frontier_reset end -VerdanturfTown_BattleTentBattleRoom_MapScript2_202541: @ 8202541 - map_script_2 VAR_TEMP_1, 0, VerdanturfTown_BattleTentBattleRoom_EventScript_20254B +VerdanturfTown_BattleTentBattleRoom_OnWarp: @ 8202541 + map_script_2 VAR_TEMP_1, 0, VerdanturfTown_BattleTentBattleRoom_EventScript_SetUpObjects .2byte 0 -VerdanturfTown_BattleTentBattleRoom_EventScript_20254B:: @ 820254B +VerdanturfTown_BattleTentBattleRoom_EventScript_SetUpObjects:: @ 820254B hideobjectat 1, MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM - call VerdanturfTown_BattleTentBattleRoom_EventScript_202310 + call VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfx setvar VAR_TEMP_1, 1 - applymovement EVENT_OBJ_ID_PLAYER, VerdanturfTown_BattleTentBattleRoom_Movement_202573 + applymovement EVENT_OBJ_ID_PLAYER, VerdanturfTown_BattleTentBattleRoom_Movement_SetInvisible removeobject 2 end -VerdanturfTown_BattleTentBattleRoom_EventScript_202565:: @ 8202565 +VerdanturfTown_BattleTentBattleRoom_EventScript_ReadyFor2ndOpponent:: @ 8202565 message BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor2ndOpponent waitmessage return -VerdanturfTown_BattleTentBattleRoom_EventScript_20256C:: @ 820256C +VerdanturfTown_BattleTentBattleRoom_EventScript_ReadyFor3rdOpponent:: @ 820256C message BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor3rdOpponent waitmessage return -VerdanturfTown_BattleTentBattleRoom_Movement_202573: @ 8202573 +VerdanturfTown_BattleTentBattleRoom_Movement_SetInvisible: @ 8202573 set_invisible step_end -VerdanturfTown_BattleTentBattleRoom_Movement_202575: @ 8202575 +VerdanturfTown_BattleTentBattleRoom_Movement_PlayerEnter: @ 8202575 set_visible walk_up walk_up @@ -161,7 +163,7 @@ VerdanturfTown_BattleTentBattleRoom_Movement_202575: @ 8202575 face_right step_end -VerdanturfTown_BattleTentBattleRoom_Movement_20257B: @ 820257B +VerdanturfTown_BattleTentBattleRoom_Movement_OpponentEnter: @ 820257B walk_down walk_down walk_down @@ -169,7 +171,7 @@ VerdanturfTown_BattleTentBattleRoom_Movement_20257B: @ 820257B face_left step_end -VerdanturfTown_BattleTentBattleRoom_Movement_202581: @ 8202581 +VerdanturfTown_BattleTentBattleRoom_Movement_OpponentExit: @ 8202581 walk_up walk_up walk_up diff --git a/data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc b/data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc index 907ef3fd62..05991bef03 100644 --- a/data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc @@ -1,21 +1,21 @@ VerdanturfTown_BattleTentCorridor_MapScripts:: @ 820208A - map_script MAP_SCRIPT_ON_FRAME_TABLE, VerdanturfTown_BattleTentCorridor_MapScript2_202090 + map_script MAP_SCRIPT_ON_FRAME_TABLE, VerdanturfTown_BattleTentCorridor_OnFrame .byte 0 -VerdanturfTown_BattleTentCorridor_MapScript2_202090: @ 8202090 - map_script_2 VAR_TEMP_0, 0, VerdanturfTown_BattleTentCorridor_EventScript_20209A +VerdanturfTown_BattleTentCorridor_OnFrame: @ 8202090 + map_script_2 VAR_TEMP_0, 0, VerdanturfTown_BattleTentCorridor_EventScript_EnterCorridor .2byte 0 -VerdanturfTown_BattleTentCorridor_EventScript_20209A:: @ 820209A +VerdanturfTown_BattleTentCorridor_EventScript_EnterCorridor:: @ 820209A lockall setvar VAR_TEMP_0, 1 - applymovement 1, VerdanturfTown_BattleTentCorridor_Movement_2020DE - applymovement EVENT_OBJ_ID_PLAYER, VerdanturfTown_BattleTentCorridor_Movement_2020DE + applymovement 1, VerdanturfTown_BattleTentCorridor_Movement_WalkToDoor + applymovement EVENT_OBJ_ID_PLAYER, VerdanturfTown_BattleTentCorridor_Movement_WalkToDoor waitmovement 0 opendoor 2, 1 waitdooranim - applymovement 1, VerdanturfTown_BattleTentCorridor_Movement_2020E4 - applymovement EVENT_OBJ_ID_PLAYER, VerdanturfTown_BattleTentCorridor_Movement_2020E3 + applymovement 1, VerdanturfTown_BattleTentCorridor_Movement_AttendantEnterDoor + applymovement EVENT_OBJ_ID_PLAYER, VerdanturfTown_BattleTentCorridor_Movement_PlayerEnterDoor waitmovement 0 closedoor 2, 1 waitdooranim @@ -25,22 +25,24 @@ VerdanturfTown_BattleTentCorridor_EventScript_20209A:: @ 820209A releaseall end -VerdanturfTown_BattleTentCorridor_Movement_2020DE: @ 82020DE +VerdanturfTown_BattleTentCorridor_Movement_WalkToDoor: @ 82020DE walk_up walk_up walk_up walk_up step_end -VerdanturfTown_BattleTentCorridor_Movement_2020E3: @ 82020E3 +VerdanturfTown_BattleTentCorridor_Movement_PlayerEnterDoor: @ 82020E3 walk_up - -VerdanturfTown_BattleTentCorridor_Movement_2020E4: @ 82020E4 +VerdanturfTown_BattleTentCorridor_Movement_AttendantEnterDoor: @ 82020E4 walk_up set_invisible step_end -VerdanturfTown_BattleTentCorridor_Text_2020E7: @ 82020E7 + +@ Leftover text from when this was a Contest Hall in R/S +@ Unused +VerdanturfTown_ContestHall_Text_WhichContestYouEntering: @ 82020E7 .string "Which CONTEST are you entering?\n" .string "Want a piece of advice?\p" .string "In any CONTEST, for example, a CUTE\n" @@ -49,21 +51,24 @@ VerdanturfTown_BattleTentCorridor_Text_2020E7: @ 82020E7 .string "You need to work out ways for raising\n" .string "POKéMON better.$" -VerdanturfTown_BattleTentCorridor_Text_2021C4: @ 82021C4 +@ Unused +VerdanturfTown_ContestHall_Text_RaisedMonToBeCute: @ 82021C4 .string "I raised my POKéMON to be cute.\p" .string "I found out you can put POKéMON in\n" .string "a CONTEST for cuteness!\p" .string "I'm so glad I raised my POKéMON with\n" .string "loving care…$" -VerdanturfTown_BattleTentCorridor_Text_202251: @ 8202251 +@ Unused +VerdanturfTown_ContestHall_Text_MyMonRules: @ 8202251 .string "My POKéMON rules!\p" .string "It's cool, tough yet beautiful, cute,\n" .string "and smart. It's complete!\p" .string "I may as well go for wins in every\n" .string "single CONTEST.$" -VerdanturfTown_BattleTentCorridor_Text_2022D6: @ 82022D6 +@ Unused +VerdanturfTown_ContestHall_Text_NormalRankStage: @ 82022D6 .string "POKéMON CONTESTS\n" .string "NORMAL RANK STAGE!$" diff --git a/data/maps/VerdanturfTown_BattleTentLobby/map.json b/data/maps/VerdanturfTown_BattleTentLobby/map.json index 2a56602716..adc0be316e 100644 --- a/data/maps/VerdanturfTown_BattleTentLobby/map.json +++ b/data/maps/VerdanturfTown_BattleTentLobby/map.json @@ -24,7 +24,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "VerdanturfTown_BattleTentLobby_EventScript_201873", + "script": "VerdanturfTown_BattleTentLobby_EventScript_Attendant", "flag": "0" }, { @@ -37,7 +37,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "VerdanturfTown_BattleTentLobby_EventScript_201A7B", + "script": "VerdanturfTown_BattleTentLobby_EventScript_AttractGiver", "flag": "0" }, { @@ -50,7 +50,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "VerdanturfTown_BattleTentLobby_EventScript_201ABC", + "script": "VerdanturfTown_BattleTentLobby_EventScript_Boy1", "flag": "0" }, { @@ -63,7 +63,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "VerdanturfTown_BattleTentLobby_EventScript_201AC5", + "script": "VerdanturfTown_BattleTentLobby_EventScript_Boy2", "flag": "0" }, { @@ -76,7 +76,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "VerdanturfTown_BattleTentLobby_EventScript_201AD0", + "script": "VerdanturfTown_BattleTentLobby_EventScript_Scott", "flag": "FLAG_HIDE_VERDANTURF_TOWN_SCOTT" }, { @@ -89,7 +89,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "VerdanturfTown_BattleTentLobby_EventScript_201AF7", + "script": "VerdanturfTown_BattleTentLobby_EventScript_LittleBoy", "flag": "0" } ], @@ -117,7 +117,7 @@ "y": 5, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", - "script": "VerdanturfTown_BattleTentLobby_EventScript_201B02" + "script": "VerdanturfTown_BattleTentLobby_EventScript_RulesBoard" } ] } \ No newline at end of file diff --git a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc index f15bbd4f87..7e450dac4c 100644 --- a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc @@ -1,30 +1,30 @@ VerdanturfTown_BattleTentLobby_MapScripts:: @ 82016D0 - map_script MAP_SCRIPT_ON_FRAME_TABLE, VerdanturfTown_BattleTentLobby_MapScript2_2016EF - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, VerdanturfTown_BattleTentLobby_MapScript2_2016DB + map_script MAP_SCRIPT_ON_FRAME_TABLE, VerdanturfTown_BattleTentLobby_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, VerdanturfTown_BattleTentLobby_OnWarp .byte 0 -VerdanturfTown_BattleTentLobby_MapScript2_2016DB: @ 82016DB - map_script_2 VAR_TEMP_1, 0, VerdanturfTown_BattleTentLobby_EventScript_2016E5 +VerdanturfTown_BattleTentLobby_OnWarp: @ 82016DB + map_script_2 VAR_TEMP_1, 0, VerdanturfTown_BattleTentLobby_EventScript_TurnPlayerNorth .2byte 0 -VerdanturfTown_BattleTentLobby_EventScript_2016E5:: @ 82016E5 +VerdanturfTown_BattleTentLobby_EventScript_TurnPlayerNorth:: @ 82016E5 setvar VAR_TEMP_1, 1 turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH end -VerdanturfTown_BattleTentLobby_MapScript2_2016EF: @ 82016EF - map_script_2 VAR_TEMP_0, 0, VerdanturfTown_BattleTentLobby_EventScript_201719 - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, VerdanturfTown_BattleTentLobby_EventScript_201722 - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, VerdanturfTown_BattleTentLobby_EventScript_201837 - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, VerdanturfTown_BattleTentLobby_EventScript_201757 - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, VerdanturfTown_BattleTentLobby_EventScript_2017FD +VerdanturfTown_BattleTentLobby_OnFrame: @ 82016EF + map_script_2 VAR_TEMP_0, 0, VerdanturfTown_BattleTentLobby_EventScript_GetChallengeStatus + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, VerdanturfTown_BattleTentLobby_EventScript_QuitWithoutSaving + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, VerdanturfTown_BattleTentLobby_EventScript_ResumeChallenge + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, VerdanturfTown_BattleTentLobby_EventScript_WonChallenge + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, VerdanturfTown_BattleTentLobby_EventScript_LostChallenge .2byte 0 -VerdanturfTown_BattleTentLobby_EventScript_201719:: @ 8201719 +VerdanturfTown_BattleTentLobby_EventScript_GetChallengeStatus:: @ 8201719 frontier_getstatus end -VerdanturfTown_BattleTentLobby_EventScript_201722:: @ 8201722 +VerdanturfTown_BattleTentLobby_EventScript_QuitWithoutSaving:: @ 8201722 lockall msgbox BattleFrontier_BattlePalaceLobby_Text_FailedToSaveBeforeEndingChallenge, MSGBOX_DEFAULT closemessage @@ -34,10 +34,10 @@ VerdanturfTown_BattleTentLobby_EventScript_201722:: @ 8201722 releaseall end -VerdanturfTown_BattleTentLobby_EventScript_201757:: @ 8201757 +VerdanturfTown_BattleTentLobby_EventScript_WonChallenge:: @ 8201757 lockall - msgbox VerdanturfTown_BattleTentLobby_Text_2C5731, MSGBOX_DEFAULT - message VerdanturfTown_BattleTentLobby_Text_2C5791 + msgbox VerdanturfTown_BattleTentLobby_Text_AchievedThreeWinStreak, MSGBOX_DEFAULT + message VerdanturfTown_BattleTentLobby_Text_FeatWillBeRecorded waitmessage verdanturftent_setrandomprize frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 @@ -45,23 +45,23 @@ VerdanturfTown_BattleTentLobby_EventScript_201757:: @ 8201757 playse SE_SAVE waitse -VerdanturfTown_BattleTentLobby_EventScript_201791:: @ 8201791 - msgbox VerdanturfTown_BattleTentLobby_Text_2C57CD, MSGBOX_DEFAULT +VerdanturfTown_BattleTentLobby_EventScript_GivePrize:: @ 8201791 + msgbox VerdanturfTown_BattleTentLobby_Text_PresentYouWithPrize, MSGBOX_DEFAULT verdanturftent_giveprize switch VAR_RESULT - case 0, VerdanturfTown_BattleTentLobby_EventScript_2017DD + case FALSE, VerdanturfTown_BattleTentLobby_EventScript_NoRoomForPrize frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 - message VerdanturfTown_BattleTentLobby_Text_24A554 + message BattleFrontier_BattleDomeLobby_Text_ReceivedPrize @ Odd that it used Dome's copy instead of Palace's waitmessage playfanfare MUS_FANFA4 waitfanfare - msgbox VerdanturfTown_BattleTentLobby_Text_2C539A, MSGBOX_DEFAULT + msgbox VerdanturfTown_BattleTentLobby_Text_ReturnFortified, MSGBOX_DEFAULT closemessage setvar VAR_TEMP_0, 255 releaseall end -VerdanturfTown_BattleTentLobby_EventScript_2017DD:: @ 82017DD +VerdanturfTown_BattleTentLobby_EventScript_NoRoomForPrize:: @ 82017DD msgbox BattleFrontier_BattlePalaceLobby_Text_NoSpaceForPrize, MSGBOX_DEFAULT waitmessage closemessage @@ -69,27 +69,27 @@ VerdanturfTown_BattleTentLobby_EventScript_2017DD:: @ 82017DD releaseall end -VerdanturfTown_BattleTentLobby_EventScript_2017EE:: @ 82017EE +VerdanturfTown_BattleTentLobby_EventScript_PrizeWaiting:: @ 82017EE lockall - msgbox VerdanturfTown_BattleTentLobby_Text_2C5731, MSGBOX_DEFAULT - goto VerdanturfTown_BattleTentLobby_EventScript_201791 + msgbox VerdanturfTown_BattleTentLobby_Text_AchievedThreeWinStreak, MSGBOX_DEFAULT + goto VerdanturfTown_BattleTentLobby_EventScript_GivePrize end -VerdanturfTown_BattleTentLobby_EventScript_2017FD:: @ 82017FD +VerdanturfTown_BattleTentLobby_EventScript_LostChallenge:: @ 82017FD lockall - message VerdanturfTown_BattleTentLobby_Text_2C56B8 + message VerdanturfTown_BattleTentLobby_Text_ResultsWillBeRecorded waitmessage frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 verdanturftent_save 0 playse SE_SAVE waitse - msgbox VerdanturfTown_BattleTentLobby_Text_2C539A, MSGBOX_DEFAULT + msgbox VerdanturfTown_BattleTentLobby_Text_ReturnFortified, MSGBOX_DEFAULT closemessage setvar VAR_TEMP_0, 255 releaseall end -VerdanturfTown_BattleTentLobby_EventScript_201837:: @ 8201837 +VerdanturfTown_BattleTentLobby_EventScript_ResumeChallenge:: @ 8201837 lockall msgbox BattleFrontier_BattlePalaceLobby_Text_WeHaveBeenWaiting, MSGBOX_DEFAULT message BattleFrontier_BattlePalaceLobby_Text_MustSaveBeforeChallenge @@ -99,50 +99,49 @@ VerdanturfTown_BattleTentLobby_EventScript_201837:: @ 8201837 waitse frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 - goto VerdanturfTown_BattleTentLobby_EventScript_2019AE + goto VerdanturfTown_BattleTentLobby_EventScript_EnterChallenge -VerdanturfTown_BattleTentLobby_EventScript_201873:: @ 8201873 +VerdanturfTown_BattleTentLobby_EventScript_Attendant:: @ 8201873 lock faceplayer verdanturftent_getprize - compare VAR_RESULT, 0 - goto_if_ne VerdanturfTown_BattleTentLobby_EventScript_2017EE + compare VAR_RESULT, ITEM_NONE + goto_if_ne VerdanturfTown_BattleTentLobby_EventScript_PrizeWaiting special SavePlayerParty - msgbox VerdanturfTown_BattleTentLobby_Text_2C50C3, MSGBOX_DEFAULT - -VerdanturfTown_BattleTentLobby_EventScript_201893:: @ 8201893 - message VerdanturfTown_BattleTentLobby_Text_2C5129 + msgbox VerdanturfTown_BattleTentLobby_Text_WelcomeToBattleTent, MSGBOX_DEFAULT +VerdanturfTown_BattleTentLobby_EventScript_AskEnterChallenge:: @ 8201893 + message VerdanturfTown_BattleTentLobby_Text_TakeChallenge waitmessage multichoice 17, 6, MULTI_CHALLENGEINFO, 0 switch VAR_RESULT - case 0, VerdanturfTown_BattleTentLobby_EventScript_2018CF - case 1, VerdanturfTown_BattleTentLobby_EventScript_2019DB - case 2, VerdanturfTown_BattleTentLobby_EventScript_201A37 - case MULTI_B_PRESSED, VerdanturfTown_BattleTentLobby_EventScript_201A37 + case 0, VerdanturfTown_BattleTentLobby_EventScript_TryEnterChallenge + case 1, VerdanturfTown_BattleTentLobby_EventScript_ExplainChallenge + case 2, VerdanturfTown_BattleTentLobby_EventScript_CancelChallenge + case MULTI_B_PRESSED, VerdanturfTown_BattleTentLobby_EventScript_CancelChallenge -VerdanturfTown_BattleTentLobby_EventScript_2018CF:: @ 82018CF +VerdanturfTown_BattleTentLobby_EventScript_TryEnterChallenge:: @ 82018CF setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_PALACE setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES setvar VAR_RESULT, 2 frontier_checkineligible compare VAR_0x8004, TRUE - goto_if_eq VerdanturfTown_BattleTentLobby_EventScript_2019E8 + goto_if_eq VerdanturfTown_BattleTentLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_TENT - msgbox VerdanturfTown_BattleTentLobby_Text_2C5633, MSGBOX_DEFAULT + msgbox VerdanturfTown_BattleTentLobby_Text_SelectThreeMons, MSGBOX_DEFAULT fadescreen 1 setvar VAR_0x8004, 1 setvar VAR_0x8005, FRONTIER_PARTY_SIZE special ChoosePartyForBattleFrontier waitstate compare VAR_RESULT, 0 - goto_if_eq VerdanturfTown_BattleTentLobby_EventScript_201A34 - msgbox VerdanturfTown_BattleTentLobby_Text_2C5662, MSGBOX_YESNO + goto_if_eq VerdanturfTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge + msgbox VerdanturfTown_BattleTentLobby_Text_SaveBeforeChallenge, MSGBOX_YESNO switch VAR_RESULT - case NO, VerdanturfTown_BattleTentLobby_EventScript_201A34 - case YES, VerdanturfTown_BattleTentLobby_EventScript_201954 - case MULTI_B_PRESSED, VerdanturfTown_BattleTentLobby_EventScript_201A34 + case NO, VerdanturfTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge + case YES, VerdanturfTown_BattleTentLobby_EventScript_SaveBeforeChallenge + case MULTI_B_PRESSED, VerdanturfTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge -VerdanturfTown_BattleTentLobby_EventScript_201954:: @ 8201954 +VerdanturfTown_BattleTentLobby_EventScript_SaveBeforeChallenge:: @ 8201954 setvar VAR_TEMP_0, 0 frontier_set FRONTIER_DATA_SELECTED_MON_ORDER verdanturftent_init @@ -154,185 +153,184 @@ VerdanturfTown_BattleTentLobby_EventScript_201954:: @ 8201954 call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 compare VAR_RESULT, 0 - goto_if_eq VerdanturfTown_BattleTentLobby_EventScript_201A1D - -VerdanturfTown_BattleTentLobby_EventScript_2019AE:: @ 82019AE + goto_if_eq VerdanturfTown_BattleTentLobby_EventScript_CancelChallengeSaveFailed +VerdanturfTown_BattleTentLobby_EventScript_EnterChallenge:: @ 82019AE special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE - msgbox VerdanturfTown_BattleTentLobby_Text_2C56A2, MSGBOX_DEFAULT + msgbox VerdanturfTown_BattleTentLobby_Text_NowFollowMe, MSGBOX_DEFAULT closemessage - call VerdanturfTown_BattleTentLobby_EventScript_201A41 + call VerdanturfTown_BattleTentLobby_EventScript_WalkToDoor warp MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR, 255, 2, 7 setvar VAR_TEMP_0, 0 waitstate end -VerdanturfTown_BattleTentLobby_EventScript_2019DB:: @ 82019DB - msgbox VerdanturfTown_BattleTentLobby_Text_2C5163, MSGBOX_DEFAULT - goto VerdanturfTown_BattleTentLobby_EventScript_201893 +VerdanturfTown_BattleTentLobby_EventScript_ExplainChallenge:: @ 82019DB + msgbox VerdanturfTown_BattleTentLobby_Text_ExplainVerdanturfTent, MSGBOX_DEFAULT + goto VerdanturfTown_BattleTentLobby_EventScript_AskEnterChallenge -VerdanturfTown_BattleTentLobby_EventScript_2019E8:: @ 82019E8 +VerdanturfTown_BattleTentLobby_EventScript_NotEnoughValidMons:: @ 82019E8 switch VAR_RESULT - case FRONTIER_LVL_50, VerdanturfTown_BattleTentLobby_EventScript_201A03 - case FRONTIER_LVL_OPEN, VerdanturfTown_BattleTentLobby_EventScript_201A10 + case FRONTIER_LVL_50, VerdanturfTown_BattleTentLobby_EventScript_NotEnoughValidMonsLv50 + case FRONTIER_LVL_OPEN, VerdanturfTown_BattleTentLobby_EventScript_NotEnoughValidMonsLvOpen -VerdanturfTown_BattleTentLobby_EventScript_201A03:: @ 8201A03 - msgbox VerdanturfTown_BattleTentLobby_Text_2C543D, MSGBOX_DEFAULT - goto VerdanturfTown_BattleTentLobby_EventScript_201A3F +VerdanturfTown_BattleTentLobby_EventScript_NotEnoughValidMonsLv50:: @ 8201A03 + msgbox VerdanturfTown_BattleTentLobby_Text_NotEnoughValidMonsLv50, MSGBOX_DEFAULT + goto VerdanturfTown_BattleTentLobby_EventScript_EndCancelChallenge -VerdanturfTown_BattleTentLobby_EventScript_201A10:: @ 8201A10 - msgbox VerdanturfTown_BattleTentLobby_Text_2C5538, MSGBOX_DEFAULT - goto VerdanturfTown_BattleTentLobby_EventScript_201A3F +VerdanturfTown_BattleTentLobby_EventScript_NotEnoughValidMonsLvOpen:: @ 8201A10 + msgbox VerdanturfTown_BattleTentLobby_Text_NotEnoughValidMonsLvOpen, MSGBOX_DEFAULT + goto VerdanturfTown_BattleTentLobby_EventScript_EndCancelChallenge -VerdanturfTown_BattleTentLobby_EventScript_201A1D:: @ 8201A1D +VerdanturfTown_BattleTentLobby_EventScript_CancelChallengeSaveFailed:: @ 8201A1D frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 - goto VerdanturfTown_BattleTentLobby_EventScript_201A37 + goto VerdanturfTown_BattleTentLobby_EventScript_CancelChallenge -VerdanturfTown_BattleTentLobby_EventScript_201A34:: @ 8201A34 +VerdanturfTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge:: @ 8201A34 special LoadPlayerParty -VerdanturfTown_BattleTentLobby_EventScript_201A37:: @ 8201A37 - msgbox VerdanturfTown_BattleTentLobby_Text_2C539A, MSGBOX_DEFAULT -VerdanturfTown_BattleTentLobby_EventScript_201A3F:: @ 8201A3F +VerdanturfTown_BattleTentLobby_EventScript_CancelChallenge:: @ 8201A37 + msgbox VerdanturfTown_BattleTentLobby_Text_ReturnFortified, MSGBOX_DEFAULT +VerdanturfTown_BattleTentLobby_EventScript_EndCancelChallenge:: @ 8201A3F release end -VerdanturfTown_BattleTentLobby_EventScript_201A41:: @ 8201A41 - applymovement 1, VerdanturfTown_BattleTentLobby_Movement_201A70 - applymovement EVENT_OBJ_ID_PLAYER, VerdanturfTown_BattleTentLobby_Movement_201A70 +VerdanturfTown_BattleTentLobby_EventScript_WalkToDoor:: @ 8201A41 + applymovement 1, VerdanturfTown_BattleTentLobby_Movement_WalkToDoor + applymovement EVENT_OBJ_ID_PLAYER, VerdanturfTown_BattleTentLobby_Movement_WalkToDoor waitmovement 0 opendoor 6, 1 waitdooranim - applymovement 1, VerdanturfTown_BattleTentLobby_Movement_201A74 - applymovement EVENT_OBJ_ID_PLAYER, VerdanturfTown_BattleTentLobby_Movement_201A77 + applymovement 1, VerdanturfTown_BattleTentLobby_Movement_AttendantEnterDoor + applymovement EVENT_OBJ_ID_PLAYER, VerdanturfTown_BattleTentLobby_Movement_PlayerEnterDoor waitmovement 0 closedoor 6, 1 waitdooranim return -VerdanturfTown_BattleTentLobby_Movement_201A70: @ 8201A70 +VerdanturfTown_BattleTentLobby_Movement_WalkToDoor: @ 8201A70 walk_up walk_up walk_up step_end -VerdanturfTown_BattleTentLobby_Movement_201A74: @ 8201A74 +VerdanturfTown_BattleTentLobby_Movement_AttendantEnterDoor: @ 8201A74 walk_up set_invisible step_end -VerdanturfTown_BattleTentLobby_Movement_201A77: @ 8201A77 +VerdanturfTown_BattleTentLobby_Movement_PlayerEnterDoor: @ 8201A77 walk_up walk_up set_invisible step_end -VerdanturfTown_BattleTentLobby_EventScript_201A7B:: @ 8201A7B +VerdanturfTown_BattleTentLobby_EventScript_AttractGiver:: @ 8201A7B lock faceplayer - goto_if_set FLAG_RECEIVED_TM45, VerdanturfTown_BattleTentLobby_EventScript_201AB2 - msgbox VerdanturfTown_BattleTentLobby_Text_201D9E, MSGBOX_DEFAULT + goto_if_set FLAG_RECEIVED_TM45, VerdanturfTown_BattleTentLobby_EventScript_ReceivedAttract + msgbox VerdanturfTown_BattleTentLobby_Text_AttractionRunsDeep, MSGBOX_DEFAULT giveitem_std ITEM_TM45 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM45 - msgbox VerdanturfTown_BattleTentLobby_Text_201E43, MSGBOX_DEFAULT + msgbox VerdanturfTown_BattleTentLobby_Text_AttractionMutual, MSGBOX_DEFAULT release end -VerdanturfTown_BattleTentLobby_EventScript_201AB2:: @ 8201AB2 - msgbox VerdanturfTown_BattleTentLobby_Text_201E43, MSGBOX_DEFAULT +VerdanturfTown_BattleTentLobby_EventScript_ReceivedAttract:: @ 8201AB2 + msgbox VerdanturfTown_BattleTentLobby_Text_AttractionMutual, MSGBOX_DEFAULT release end -VerdanturfTown_BattleTentLobby_EventScript_201ABC:: @ 8201ABC - msgbox VerdanturfTown_BattleTentLobby_Text_201EB1, MSGBOX_NPC +VerdanturfTown_BattleTentLobby_EventScript_Boy1:: @ 8201ABC + msgbox VerdanturfTown_BattleTentLobby_Text_TaughtWhatKindsOfMoves, MSGBOX_NPC end -VerdanturfTown_BattleTentLobby_EventScript_201AC5:: @ 8201AC5 +VerdanturfTown_BattleTentLobby_EventScript_Boy2:: @ 8201AC5 lock - msgbox VerdanturfTown_BattleTentLobby_Text_201BD4, MSGBOX_DEFAULT + msgbox VerdanturfTown_BattleTentLobby_Text_MonsReluctantToUseDislikedMoves, MSGBOX_DEFAULT release end -VerdanturfTown_BattleTentLobby_EventScript_201AD0:: @ 8201AD0 +VerdanturfTown_BattleTentLobby_EventScript_Scott:: @ 8201AD0 lock faceplayer - goto_if_set FLAG_MET_SCOTT_IN_VERDANTURF, VerdanturfTown_BattleTentLobby_EventScript_201AED - msgbox VerdanturfTown_BattleTentLobby_Text_201F3F, MSGBOX_DEFAULT + goto_if_set FLAG_MET_SCOTT_IN_VERDANTURF, VerdanturfTown_BattleTentLobby_EventScript_ScottAlreadySpokenTo + msgbox VerdanturfTown_BattleTentLobby_Text_ScottCanMeetToughTrainers, MSGBOX_DEFAULT addvar VAR_SCOTT_STATE, 1 setflag FLAG_MET_SCOTT_IN_VERDANTURF release end -VerdanturfTown_BattleTentLobby_EventScript_201AED:: @ 8201AED - msgbox VerdanturfTown_BattleTentLobby_Text_202025, MSGBOX_DEFAULT +VerdanturfTown_BattleTentLobby_EventScript_ScottAlreadySpokenTo:: @ 8201AED + msgbox VerdanturfTown_BattleTentLobby_Text_ScottVisitRegularly, MSGBOX_DEFAULT release end -VerdanturfTown_BattleTentLobby_EventScript_201AF7:: @ 8201AF7 +VerdanturfTown_BattleTentLobby_EventScript_LittleBoy:: @ 8201AF7 lock - msgbox VerdanturfTown_BattleTentLobby_Text_201D11, MSGBOX_DEFAULT + msgbox VerdanturfTown_BattleTentLobby_Text_GentleMonsScaryIfAngry, MSGBOX_DEFAULT release end -VerdanturfTown_BattleTentLobby_EventScript_201B02:: @ 8201B02 +VerdanturfTown_BattleTentLobby_EventScript_RulesBoard:: @ 8201B02 lockall - msgbox VerdanturfTown_BattleTentLobby_Text_2C6878, MSGBOX_DEFAULT - goto VerdanturfTown_BattleTentLobby_EventScript_201B11 + msgbox VerdanturfTown_BattleTentLobby_Text_RulesAreListed, MSGBOX_DEFAULT + goto VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard end -VerdanturfTown_BattleTentLobby_EventScript_201B11:: @ 8201B11 +VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard:: @ 8201B11 message BattleFrontier_BattlePalaceLobby_Text_ReadWhichHeading waitmessage setvar VAR_0x8004, SCROLL_MULTI_BATTLE_TENT_RULES special ShowScrollableMultichoice waitstate switch VAR_RESULT - case 0, VerdanturfTown_BattleTentLobby_EventScript_201B7E - case 1, VerdanturfTown_BattleTentLobby_EventScript_201B8C - case 2, VerdanturfTown_BattleTentLobby_EventScript_201B9A - case 3, VerdanturfTown_BattleTentLobby_EventScript_201BA8 - case 4, VerdanturfTown_BattleTentLobby_EventScript_201BB6 - case 5, VerdanturfTown_BattleTentLobby_EventScript_201BC4 - case 6, VerdanturfTown_BattleTentLobby_EventScript_201BD2 - case MULTI_B_PRESSED, VerdanturfTown_BattleTentLobby_EventScript_201BD2 + case 0, VerdanturfTown_BattleTentLobby_EventScript_RulesLevel + case 1, VerdanturfTown_BattleTentLobby_EventScript_RulesBasics + case 2, VerdanturfTown_BattleTentLobby_EventScript_RulesNature + case 3, VerdanturfTown_BattleTentLobby_EventScript_RulesMoves + case 4, VerdanturfTown_BattleTentLobby_EventScript_RulesUnderpowered + case 5, VerdanturfTown_BattleTentLobby_EventScript_RulesWhenInDanger + case 6, VerdanturfTown_BattleTentLobby_EventScript_ExitRules + case MULTI_B_PRESSED, VerdanturfTown_BattleTentLobby_EventScript_ExitRules end -VerdanturfTown_BattleTentLobby_EventScript_201B7E:: @ 8201B7E - msgbox VerdanturfTown_BattleTentLobby_Text_2C67CD, MSGBOX_DEFAULT - goto VerdanturfTown_BattleTentLobby_EventScript_201B11 +VerdanturfTown_BattleTentLobby_EventScript_RulesLevel:: @ 8201B7E + msgbox BattleTentLobby_Text_ExplainLevelRules, MSGBOX_DEFAULT + goto VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard end -VerdanturfTown_BattleTentLobby_EventScript_201B8C:: @ 8201B8C +VerdanturfTown_BattleTentLobby_EventScript_RulesBasics:: @ 8201B8C msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainRulesBasics, MSGBOX_DEFAULT - goto VerdanturfTown_BattleTentLobby_EventScript_201B11 + goto VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard end -VerdanturfTown_BattleTentLobby_EventScript_201B9A:: @ 8201B9A +VerdanturfTown_BattleTentLobby_EventScript_RulesNature:: @ 8201B9A msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainRulesNature, MSGBOX_DEFAULT - goto VerdanturfTown_BattleTentLobby_EventScript_201B11 + goto VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard end -VerdanturfTown_BattleTentLobby_EventScript_201BA8:: @ 8201BA8 +VerdanturfTown_BattleTentLobby_EventScript_RulesMoves:: @ 8201BA8 msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainRulesMoves, MSGBOX_DEFAULT - goto VerdanturfTown_BattleTentLobby_EventScript_201B11 + goto VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard end -VerdanturfTown_BattleTentLobby_EventScript_201BB6:: @ 8201BB6 +VerdanturfTown_BattleTentLobby_EventScript_RulesUnderpowered:: @ 8201BB6 msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainRulesUnderpowered, MSGBOX_DEFAULT - goto VerdanturfTown_BattleTentLobby_EventScript_201B11 + goto VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard end -VerdanturfTown_BattleTentLobby_EventScript_201BC4:: @ 8201BC4 +VerdanturfTown_BattleTentLobby_EventScript_RulesWhenInDanger:: @ 8201BC4 msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainRulesWhenInDanger, MSGBOX_DEFAULT - goto VerdanturfTown_BattleTentLobby_EventScript_201B11 + goto VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard end -VerdanturfTown_BattleTentLobby_EventScript_201BD2:: @ 8201BD2 +VerdanturfTown_BattleTentLobby_EventScript_ExitRules:: @ 8201BD2 releaseall end -VerdanturfTown_BattleTentLobby_Text_201BD4: @ 8201BD4 +VerdanturfTown_BattleTentLobby_Text_MonsReluctantToUseDislikedMoves: @ 8201BD4 .string "If it doesn't like a certain move,\n" .string "a POKéMON will be reluctant to use it.\p" .string "It doesn't matter how strong it is,\n" @@ -344,14 +342,14 @@ VerdanturfTown_BattleTentLobby_Text_201BD4: @ 8201BD4 .string "potential, it's probably failing at\l" .string "using a disliked move against its will.$" -VerdanturfTown_BattleTentLobby_Text_201D11: @ 8201D11 +VerdanturfTown_BattleTentLobby_Text_GentleMonsScaryIfAngry: @ 8201D11 .string "My big sister is gentle usually.\n" .string "But when she gets angry,\l" .string "she's really, really scary!\p" .string "I bet a gentle POKéMON will be scary\n" .string "if it gets angry!$" -VerdanturfTown_BattleTentLobby_Text_201D9E: @ 8201D9E +VerdanturfTown_BattleTentLobby_Text_AttractionRunsDeep: @ 8201D9E .string "My feelings toward my POKéMON…\n" .string "The attraction runs deep…\p" .string "Oh, hi, you didn't see that, did you?\n" @@ -359,20 +357,20 @@ VerdanturfTown_BattleTentLobby_Text_201D9E: @ 8201D9E .string "How would you like this TM for\n" .string "your POKéMON?$" -VerdanturfTown_BattleTentLobby_Text_201E43: @ 8201E43 +VerdanturfTown_BattleTentLobby_Text_AttractionMutual: @ 8201E43 .string "My feelings toward my POKéMON…\n" .string "I'm sure the attraction is mutual!\p" .string "They battle exactly the way I want\n" .string "them to!$" -VerdanturfTown_BattleTentLobby_Text_201EB1: @ 8201EB1 +VerdanturfTown_BattleTentLobby_Text_TaughtWhatKindsOfMoves: @ 8201EB1 .string "What kind of moves have you taught\n" .string "your POKéMON?\p" .string "I think you would give yourself\n" .string "an advantage if they knew how to\l" .string "heal or protect themselves.$" -VerdanturfTown_BattleTentLobby_Text_201F3F: @ 8201F3F +VerdanturfTown_BattleTentLobby_Text_ScottCanMeetToughTrainers: @ 8201F3F .string "SCOTT: Hey there, {PLAYER}{KUN}!\n" .string "I thought I might see you here.\p" .string "A BATTLE TENT's a place where\n" @@ -382,7 +380,7 @@ VerdanturfTown_BattleTentLobby_Text_201F3F: @ 8201F3F .string "{PLAYER}{KUN}, I expect you to do\n" .string "the best you can!$" -VerdanturfTown_BattleTentLobby_Text_202025: @ 8202025 +VerdanturfTown_BattleTentLobby_Text_ScottVisitRegularly: @ 8202025 .string "SCOTT: I visit here regularly in hopes\n" .string "of seeing tough TRAINERS in action\l" .string "in whatever the situation.$" diff --git a/data/text/battle_tent.inc b/data/text/battle_tent.inc index 48ea8f4d52..98aa689ce9 100644 --- a/data/text/battle_tent.inc +++ b/data/text/battle_tent.inc @@ -1,17 +1,17 @@ -FallarborTown_BattleTentLobby_Text_2C47EB: @ 82C47EB +FallarborTown_BattleTentLobby_Text_WelcomeToBattleTent: @ 82C47EB .string "I welcome you to the BATTLE TENT\n" .string "FALLARBOR SITE!\p" .string "I am your guide to the Set KO Tourney!$" -FallarborTown_BattleTentLobby_Text_2C4843: @ 82C4843 +FallarborTown_BattleTentLobby_Text_TakeChallenge: @ 82C4843 .string "Now, do you wish to take the challenge\n" .string "of a Set KO Tourney?$" -FallarborTown_BattleTentLobby_Text_2C487F: @ 82C487F +FallarborTown_BattleTentLobby_Text_AwaitAnotherChallenge: @ 82C487F .string "We await your challenge on\n" .string "another occasion!$" -FallarborTown_BattleTentLobby_Text_2C48AC: @ 82C48AC +FallarborTown_BattleTentLobby_Text_ExplainFallarborTent: @ 82C48AC .string "In the FALLARBOR BATTLE TENT,\n" .string "we undertake the Set KO Tourney.\p" .string "All participants enter with a team of\n" @@ -32,20 +32,21 @@ FallarborTown_BattleTentLobby_Text_2C48AC: @ 82C48AC .string "three TRAINERS in succession,\l" .string "we will present you with a fine prize.$" -FallarborTown_BattleTentLobby_Text_2C4B35: @ 82C4B35 +FallarborTown_BattleTentLobby_Text_SaveBeforeChallenge: @ 82C4B35 .string "Before showing you to the BATTLE\n" .string "TENT, I must save. Is that okay?$" -FallarborTown_BattleTentLobby_Text_2C4B77: @ 82C4B77 +@ Unused +FallarborTown_BattleTentLobby_Text_WhichLevelMode: @ 82C4B77 .string "We offer two levels of challenge,\n" .string "Level 50 and Open Level.\l" .string "Which is your choice?$" -FallarborTown_BattleTentLobby_Text_2C4BC8: @ 82C4BC8 +FallarborTown_BattleTentLobby_Text_SelectThreeMons: @ 82C4BC8 .string "Very well, now select your\n" .string "three POKéMON, please.$" -FallarborTown_BattleTentLobby_Text_2C4BFA: @ 82C4BFA +FallarborTown_BattleTentLobby_Text_NotEnoughValidMonsLv50: @ 82C4BFA .string "My dear challenger!\p" .string "You do not have the three POKéMON\n" .string "required for entry.\p" @@ -55,7 +56,7 @@ FallarborTown_BattleTentLobby_Text_2C4BFA: @ 82C4BFA .string "When you have made your preparations,\n" .string "please do return.$" -FallarborTown_BattleTentLobby_Text_2C4CC0: @ 82C4CC0 +FallarborTown_BattleTentLobby_Text_NotEnoughValidMonsLvOpen: @ 82C4CC0 .string "My dear challenger!\p" .string "You do not have the three POKéMON\n" .string "required for entry.\p" @@ -67,11 +68,11 @@ FallarborTown_BattleTentLobby_Text_2C4CC0: @ 82C4CC0 .string "When you have made your preparations,\n" .string "please do return.$" -FallarborTown_BattleTentLobby_Text_2C4DC3: @ 82C4DC3 +FallarborTown_BattleTentLobby_Text_GuideYouToBattleTent: @ 82C4DC3 .string "I shall now guide you to\n" .string "the BATTLE TENT.$" -FallarborTown_BattleTentLobby_Text_2C4DED: @ 82C4DED +FallarborTown_BattleTentLobby_Text_DidntSaveBeforeQuitting: @ 82C4DED .string "My dear challenger!\p" .string "You did not save the game before\n" .string "shutting down, did you?\p" @@ -81,52 +82,52 @@ FallarborTown_BattleTentLobby_Text_2C4DED: @ 82C4DED .string "You may, of course, start with a fresh\n" .string "challenge.$" -FallarborTown_BattleTentLobby_Text_2C4EC3: @ 82C4EC3 +FallarborTown_BattleTentLobby_Text_BeatThreeTrainers: @ 82C4EC3 .string "How splendid! You have beaten\n" .string "three TRAINERS in succession!$" -FallarborTown_BattleTentLobby_Text_2C4EFF: @ 82C4EFF +FallarborTown_BattleTentLobby_Text_WaitWhileSaveGame: @ 82C4EFF .string "Please wait while I save the game.$" -FallarborTown_BattleTentLobby_Text_2C4F22: @ 82C4F22 +FallarborTown_BattleTentLobby_Text_PresentYouWithPrize: @ 82C4F22 .string "In commemoration of your 3-win streak,\n" .string "we present you with this prize.$" -FallarborTown_BattleTentLobby_Text_2C4F69: @ 82C4F69 +FallarborTown_BattleTentLobby_Text_ReceivedPrize: @ 82C4F69 .string "{PLAYER} received the prize\n" .string "{STR_VAR_1}.$" -FallarborTown_BattleTentLobby_Text_2C4F83: @ 82C4F83 +FallarborTown_BattleTentLobby_Text_BagFullReturnForPrize: @ 82C4F83 .string "Oh?\n" .string "Your BAG seems to be full.\p" .string "I urge you to clear space and\n" .string "return for your prize.$" -FallarborTown_BattleTentLobby_Text_2C4FD7: @ 82C4FD7 +FallarborTown_BattleTentLobby_Text_ThankYouWaitWhileSaving: @ 82C4FD7 .string "Thank you so much for participating!\p" .string "Please wait while I save the game.$" -FallarborTown_BattleTentLobby_Text_2C501F: @ 82C501F +FallarborTown_BattleTentLobby_Text_AwaitAnotherChallenge2: @ 82C501F .string "We await your challenge on\n" .string "another occasion!$" -FallarborTown_BattleTentLobby_Text_2C504C: @ 82C504C +FallarborTown_BattleTentLobby_Text_LookingForwardToArrival: @ 82C504C .string "We have been looking forward to\n" .string "your arrival.\p" .string "Before I show you to the BATTLE TENT,\n" .string "I must save the game. Please wait.$" -VerdanturfTown_BattleTentLobby_Text_2C50C3: @ 82C50C3 +VerdanturfTown_BattleTentLobby_Text_WelcomeToBattleTent: @ 82C50C3 .string "I welcome you to the BATTLE TENT\n" .string "VERDANTURF SITE!\p" .string "Here, the TRAINER's trust toward\n" .string "POKéMON is tested.$" -VerdanturfTown_BattleTentLobby_Text_2C5129: @ 82C5129 +VerdanturfTown_BattleTentLobby_Text_TakeChallenge: @ 82C5129 .string "Do you wish to take the VERDANTURF\n" .string "BATTLE TENT challenge?$" -VerdanturfTown_BattleTentLobby_Text_2C5163: @ 82C5163 +VerdanturfTown_BattleTentLobby_Text_ExplainVerdanturfTent: @ 82C5163 .string "In the VERDANTURF BATTLE TENT,\n" .string "there is one crucial rule that must\l" .string "be obeyed.\p" @@ -146,16 +147,17 @@ VerdanturfTown_BattleTentLobby_Text_2C5163: @ 82C5163 .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -VerdanturfTown_BattleTentLobby_Text_2C539A: @ 82C539A +VerdanturfTown_BattleTentLobby_Text_ReturnFortified: @ 82C539A .string "When you have fortified your heart\n" .string "and POKéMON, you must return.$" -VerdanturfTown_BattleTentLobby_Text_2C53DB: @ 82C53DB +@ Unused +VerdanturfTown_BattleTentLobby_Text_WhichLevelMode: @ 82C53DB .string "There are two levels of difficulty,\n" .string "Level 50 and Open Level.\l" .string "Which is your choice of a challenge?$" -VerdanturfTown_BattleTentLobby_Text_2C543D: @ 82C543D +VerdanturfTown_BattleTentLobby_Text_NotEnoughValidMonsLv50: @ 82C543D .string "Sigh…\p" .string "You do not have the three POKéMON\n" .string "required for the challenge.\p" @@ -167,7 +169,7 @@ VerdanturfTown_BattleTentLobby_Text_2C543D: @ 82C543D .string "Come back when you have made\n" .string "your preparations.$" -VerdanturfTown_BattleTentLobby_Text_2C5538: @ 82C5538 +VerdanturfTown_BattleTentLobby_Text_NotEnoughValidMonsLvOpen: @ 82C5538 .string "Sigh…\p" .string "You do not have the three POKéMON\n" .string "required for the challenge.\p" @@ -179,48 +181,48 @@ VerdanturfTown_BattleTentLobby_Text_2C5538: @ 82C5538 .string "Come back when you have made\n" .string "your preparations.$" -VerdanturfTown_BattleTentLobby_Text_2C5633: @ 82C5633 +VerdanturfTown_BattleTentLobby_Text_SelectThreeMons: @ 82C5633 .string "Good. Now, you must select your\n" .string "three POKéMON.$" -VerdanturfTown_BattleTentLobby_Text_2C5662: @ 82C5662 +VerdanturfTown_BattleTentLobby_Text_SaveBeforeChallenge: @ 82C5662 .string "I must save before I show you to\n" .string "the BATTLE TENT. Is that okay?$" -VerdanturfTown_BattleTentLobby_Text_2C56A2: @ 82C56A2 +VerdanturfTown_BattleTentLobby_Text_NowFollowMe: @ 82C56A2 .string "Good.\n" .string "Now, follow me.$" -VerdanturfTown_BattleTentLobby_Text_2C56B8: @ 82C56B8 +VerdanturfTown_BattleTentLobby_Text_ResultsWillBeRecorded: @ 82C56B8 .string "I feel privileged for having seen\n" .string "your POKéMON's exploits.\p" .string "The results will be recorded.\n" .string "I must ask you to briefly wait.$" -VerdanturfTown_BattleTentLobby_Text_2C5731: @ 82C5731 +VerdanturfTown_BattleTentLobby_Text_AchievedThreeWinStreak: @ 82C5731 .string "To achieve a 3-win streak…\p" .string "The bonds that bind your heart with\n" .string "your POKéMON seem firm and true.$" -VerdanturfTown_BattleTentLobby_Text_2C5791: @ 82C5791 +VerdanturfTown_BattleTentLobby_Text_FeatWillBeRecorded: @ 82C5791 .string "Your feat will be recorded.\n" .string "I must ask you to briefly wait.$" -VerdanturfTown_BattleTentLobby_Text_2C57CD: @ 82C57CD +VerdanturfTown_BattleTentLobby_Text_PresentYouWithPrize: @ 82C57CD .string "For the feat of your 3-win streak,\n" .string "we present you with this prize.$" -SlateportCity_BattleTentLobby_Text_2C5810: @ 82C5810 +SlateportCity_BattleTentLobby_Text_WelcomeToBattleTent: @ 82C5810 .string "Welcome to the BATTLE TENT\n" .string "SLATEPORT SITE!\p" .string "I am your guide to the Battle Swap\n" .string "Tournament.$" -SlateportCity_BattleTentLobby_Text_2C586A: @ 82C586A +SlateportCity_BattleTentLobby_Text_TakeChallenge: @ 82C586A .string "Would you like to take the Battle\n" .string "Swap challenge?$" -SlateportCity_BattleTentLobby_Text_2C589C: @ 82C589C +SlateportCity_BattleTentLobby_Text_ExplainSlateportTent: @ 82C589C .string "Here at the SLATEPORT BATTLE TENT,\n" .string "we hold Battle Swap events\l" .string "using rental POKéMON.\p" @@ -238,36 +240,39 @@ SlateportCity_BattleTentLobby_Text_2C589C: @ 82C589C .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -SlateportCity_BattleTentLobby_Text_2C5AA5: @ 82C5AA5 +SlateportCity_BattleTentLobby_Text_LookForwardToNextVisit: @ 82C5AA5 .string "We look forward to your next visit.$" -SlateportCity_BattleTentLobby_Text_2C5AC9: @ 82C5AC9 +@ Unused +SlateportCity_BattleTentLobby_Text_WhichLevelMode: @ 82C5AC9 .string "Which level do you wish to challenge?\n" .string "Level 50 or Level 100?$" -SlateportCity_BattleTentLobby_Text_2C5B06: @ 82C5B06 +SlateportCity_BattleTentLobby_Text_SaveBeforeChallenge: @ 82C5B06 .string "Before you begin your challenge,\n" .string "I need to save data. Is that okay?$" -SlateportCity_BattleTentLobby_Text_2C5B4A: @ 82C5B4A +@ Unused +SlateportCity_BattleTentLobby_Text_HoldMonsForSafekeeping: @ 82C5B4A .string "Okay, I will hold your POKéMON for\n" .string "safekeeping while you compete.$" -SlateportCity_BattleTentLobby_Text_2C5B8C: @ 82C5B8C +SlateportCity_BattleTentLobby_Text_StepThisWay: @ 82C5B8C .string "Please step this way.$" -SlateportCity_BattleTentLobby_Text_2C5BA2: @ 82C5BA2 +SlateportCity_BattleTentLobby_Text_ReturnRentalMonsSaveResults: @ 82C5BA2 .string "Thank you for participating!\p" .string "I will return your POKéMON in exchange\n" .string "for our rental POKéMON.\p" .string "I must also save your event results.\n" .string "Please wait.$" -SlateportCity_BattleTentLobby_Text_2C5C30: @ 82C5C30 +@ Unused +SlateportCity_BattleTentLobby_Text_ReturnMonsExchangeRentals: @ 82C5C30 .string "I will return your POKéMON in exchange\n" .string "for our rental POKéMON.$" -SlateportCity_BattleTentLobby_Text_2C5C6F: @ 82C5C6F +SlateportCity_BattleTentLobby_Text_WonThreeMatchesReturnMons: @ 82C5C6F .string "Congratulations!\n" .string "You've won three straight matches!\p" .string "I will return your POKéMON in exchange\n" @@ -275,61 +280,65 @@ SlateportCity_BattleTentLobby_Text_2C5C6F: @ 82C5C6F .string "I must also save your event results.\n" .string "Please wait.$" -SlateportCity_BattleTentLobby_Text_2C5D14: @ 82C5D14 +SlateportCity_BattleTentLobby_Text_AwardYouThisPrize: @ 82C5D14 .string "In recognition of your 3-win streak,\n" .string "we award you this prize.$" -SlateportCity_BattleTentLobby_Text_2C5D52: @ 82C5D52 +SlateportCity_BattleTentLobby_Text_NoRoomInBagMakeRoom: @ 82C5D52 .string "Oh?\n" .string "You seem to have no room for this.\p" .string "Please make room in your BAG and\n" .string "let me know.$" -SlateportCity_BattleTentLobby_Text_2C5DA7: @ 82C5DA7 +SlateportCity_BattleTentLobby_Text_BeenWaitingForYou: @ 82C5DA7 .string "We've been waiting for you!\p" .string "Before we resume your challenge,\n" .string "I must save the game.$" -SlateportCity_BattleTentLobby_Text_2C5DFA: @ 82C5DFA +SlateportCity_BattleTentLobby_Text_DidntSaveBeforeQuitting: @ 82C5DFA .string "I'm sorry to say this, but you didn't\n" .string "save before you quit playing last time.\p" .string "As a result, you have been disqualified\n" .string "from your challenge.$" -SlateportCity_BattleTentLobby_Text_2C5E85: @ 82C5E85 +@ Unused +SlateportCity_BattleTentLobby_Text_ReturnPersonalMons: @ 82C5E85 .string "We'll return your personal POKéMON.$" -SlateportCity_BattleTentLobby_Text_2C5EA9: @ 82C5EA9 +@ Unused +SlateportCity_BattleTentLobby_Text_ReceivedPrize: @ 82C5EA9 .string "{PLAYER} received the prize\n" .string "{STR_VAR_1}.$" -SlateportCity_BattleTentLobby_Text_2C5EC3: @ 82C5EC3 +@ Unused +SlateportCity_BattleTentLobby_Text_RulesAreListed: @ 82C5EC3 .string "The Battle Swap rules are listed.$" -SlateportCity_BattleTentLobby_Text_2C5EE5: @ 82C5EE5 +@ Unused +SlateportCity_BattleTentLobby_Text_ReadWhichHeading: @ 82C5EE5 .string "Which heading do you want to read?$" -SlateportCity_BattleTentLobby_Text_2C5F08: @ 82C5F08 +SlateportCity_BattleTentLobby_Text_ExplainBasicRules: @ 82C5F08 .string "In a Battle Swap event, you may use\n" .string "only three POKéMON.\p" .string "Whether you are renting or swapping,\n" .string "your team may not have two or more\l" .string "of the same POKéMON.$" -SlateportCity_BattleTentLobby_Text_2C5F9D: @ 82C5F9D +SlateportCity_BattleTentLobby_Text_ExplainSwapPartnerRules: @ 82C5F9D .string "You may swap POKéMON only with\n" .string "the TRAINER you have just defeated.\p" .string "You may swap for only those POKéMON\n" .string "used by the beaten TRAINER.$" -SlateportCity_BattleTentLobby_Text_2C6020: @ 82C6020 +SlateportCity_BattleTentLobby_Text_ExplainSwapNumberRules: @ 82C6020 .string "After every battle you win, you may\n" .string "swap for one of your defeated\l" .string "opponent's POKéMON.\p" .string "You will not be able to swap POKéMON\n" .string "with the third TRAINER in the event.$" -SlateportCity_BattleTentLobby_Text_2C60C0: @ 82C60C0 +SlateportCity_BattleTentLobby_Text_ExplainSwapNotes: @ 82C60C0 .string "There are two key points to be aware\n" .string "of when swapping POKéMON.\p" .string "First, when swapping, you can't check\n" @@ -341,20 +350,23 @@ SlateportCity_BattleTentLobby_Text_2C60C0: @ 82C60C0 .string "This sequence remains unchanged\n" .string "even when swaps are made.$" -SlateportCity_BattleTentLobby_Text_2C61FE: @ 82C61FE +SlateportCity_BattleTentLobby_Text_ExplainMonRules: @ 82C61FE .string "The POKéMON of the SLATEPORT\n" .string "BATTLE TENT are all rentals.\p" .string "All rental POKéMON are kept at\n" .string "Level 30.$" -VerdanturfTown_BattleTentLobby_Text_2C6261: @ 82C6261 +@ Unused +VerdanturfTown_BattleTentLobby_Text_RulesAreListed2: @ 82C6261 .string "The VERDANTURF BATTLE TENT\n" .string "rules are listed.$" -VerdanturfTown_BattleTentLobby_Text_2C628E: @ 82C628E +@ Unused +VerdanturfTown_BattleTentLobby_Text_ReadWhichHeading: @ 82C628E .string "Which heading do you want to read?$" -VerdanturfTown_BattleTentLobby_Text_2C62B1: @ 82C62B1 +@ Unused +VerdanturfTown_BattleTentLobby_Text_ExplainBasicRules: @ 82C62B1 .string "Here at the VERDANTURF BATTLE TENT,\n" .string "POKéMON are required to think and\l" .string "battle by themselves.\p" @@ -362,7 +374,8 @@ VerdanturfTown_BattleTentLobby_Text_2C62B1: @ 82C62B1 .string "with people behave differently\l" .string "depending on their nature.$" -VerdanturfTown_BattleTentLobby_Text_2C636D: @ 82C636D +@ Unused +VerdanturfTown_BattleTentLobby_Text_ExplainNatureRules: @ 82C636D .string "Depending on its nature, a POKéMON\n" .string "may prefer to attack no matter what.\p" .string "Another POKéMON may prefer to protect\n" @@ -375,7 +388,8 @@ VerdanturfTown_BattleTentLobby_Text_2C636D: @ 82C636D .string "It may also dislike certain moves that\n" .string "it has trouble using.$" -VerdanturfTown_BattleTentLobby_Text_2C64BA: @ 82C64BA +@ Unused +VerdanturfTown_BattleTentLobby_Text_ExplainMoveRules: @ 82C64BA .string "There are offensive moves that inflict\n" .string "direct damage on the foe.\p" .string "There are defensive moves that are\n" @@ -388,7 +402,8 @@ VerdanturfTown_BattleTentLobby_Text_2C64BA: @ 82C64BA .string "POKéMON will consider using moves in\n" .string "these three categories.$" -VerdanturfTown_BattleTentLobby_Text_2C6612: @ 82C6612 +@ Unused +VerdanturfTown_BattleTentLobby_Text_ExplainUnderpoweredRules: @ 82C6612 .string "When not under command by its TRAINER,\n" .string "a POKéMON may be unable to effectively\l" .string "use certain moves.\p" @@ -398,21 +413,21 @@ VerdanturfTown_BattleTentLobby_Text_2C6612: @ 82C6612 .string "do not match its nature, it will often\l" .string "be unable to live up to its potential.$" -VerdanturfTown_BattleTentLobby_Text_2C671E: @ 82C671E +@ Unused +VerdanturfTown_BattleTentLobby_Text_ExplainWhenInDangerRules: @ 82C671E .string "Depending on its nature, a POKéMON may\n" .string "start using moves that don't match its\l" .string "nature when it is in trouble.\p" .string "If a POKéMON begins behaving oddly\n" .string "in a pinch, watch it carefully.$" -FallarborTown_BattleTentLobby_Text_2C67CD: @ 82C67CD -VerdanturfTown_BattleTentLobby_Text_2C67CD: @ 82C67CD +BattleTentLobby_Text_ExplainLevelRules: @ 82C67CD .string "At this BATTLE TENT, the levels of\n" .string "your opponents will be adjusted to\l" .string "match the levels of your POKéMON.\p" .string "However, no TRAINER you face will\n" .string "have any POKéMON below Level 30.$" -VerdanturfTown_BattleTentLobby_Text_2C6878: @ 82C6878 +VerdanturfTown_BattleTentLobby_Text_RulesAreListed: @ 82C6878 .string "The VERDANTURF BATTLE TENT\n" .string "rules are listed.$" From 96ec5e1b84f2c1d189dc67b53a113d0299b4f37b Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 15 Dec 2019 11:42:50 -0500 Subject: [PATCH 2/8] Use fadescreen constants --- asm/macros/event.inc | 16 +++++------ data/event_scripts.s | 21 ++++++++------- .../scripts.inc | 2 +- .../scripts.inc | 2 +- .../scripts.inc | 4 +-- .../scripts.inc | 10 +++---- .../scripts.inc | 6 ++--- .../scripts.inc | 2 +- .../scripts.inc | 2 +- .../scripts.inc | 2 +- .../scripts.inc | 2 +- .../scripts.inc | 2 +- .../scripts.inc | 2 +- .../scripts.inc | 2 +- .../scripts.inc | 8 +++--- data/maps/BattleFrontier_Lounge7/scripts.inc | 2 +- data/maps/CaveOfOrigin_B1F/scripts.inc | 4 +-- .../EverGrandeCity_HallOfFame/scripts.inc | 4 +-- .../scripts.inc | 2 +- .../FallarborTown_BattleTentLobby/scripts.inc | 2 +- data/maps/FarawayIsland_Interior/scripts.inc | 4 +-- .../LilycoveCity_ContestLobby/scripts.inc | 16 +++++------ .../scripts.inc | 10 +++---- .../scripts.inc | 4 +-- data/maps/MagmaHideout_4F/scripts.inc | 4 +-- .../MossdeepCity_SpaceCenter_2F/scripts.inc | 12 ++++----- data/maps/MtChimney/scripts.inc | 4 +-- data/maps/MtPyre_Summit/scripts.inc | 4 +-- data/maps/Route101/scripts.inc | 2 +- data/maps/Route113_GlassWorkshop/scripts.inc | 4 +-- .../Route119_WeatherInstitute_2F/scripts.inc | 4 +-- data/maps/Route120/scripts.inc | 4 +-- data/maps/SkyPillar_Outside/scripts.inc | 4 +-- data/maps/SkyPillar_Top/scripts.inc | 8 +++--- .../scripts.inc | 6 ++--- .../scripts.inc | 8 +++--- data/maps/SootopolisCity/scripts.inc | 8 +++--- .../scripts.inc | 2 +- data/maps/TrainerHill_Entrance/scripts.inc | 2 +- .../scripts.inc | 2 +- .../scripts.inc | 2 +- data/scripts/abnormal_weather.inc | 4 +-- data/scripts/apprentice.inc | 2 +- data/scripts/berry_blender.inc | 8 +++--- data/scripts/berry_tree.inc | 2 +- data/scripts/cable_club.inc | 18 ++++++------- data/scripts/day_care.inc | 2 +- data/scripts/field_poison.inc | 4 +-- data/scripts/lilycove_lady.inc | 8 +++--- data/scripts/pc_transfer.inc | 2 +- data/scripts/players_house.inc | 4 +-- data/scripts/safari_zone.inc | 2 +- data/scripts/secret_base.inc | 4 +-- include/constants/field_weather.h | 24 +++++++++++++++++ include/field_weather.h | 27 +------------------ src/battle_pyramid_bag.c | 2 +- src/cable_club.c | 8 +++--- src/decoration.c | 10 +++---- src/easy_chat.c | 2 +- src/egg_hatch.c | 2 +- src/item_use.c | 2 +- src/player_pc.c | 6 ++--- src/pokemon_storage_system.c | 2 +- src/pokenav.c | 2 +- src/scrcmd.c | 7 ++--- src/secret_base.c | 2 +- src/shop.c | 4 +-- src/start_menu.c | 2 +- src/union_room.c | 2 +- 69 files changed, 188 insertions(+), 187 deletions(-) create mode 100644 include/constants/field_weather.h diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 96971b5834..8b43d08218 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -1101,16 +1101,16 @@ .2byte \index .endm - @ Fades the screen to and from black and white. Mode 0x00 fades from black, mode 0x01 fades out to black, mode 0x2 fades in from white, and mode 0x3 fades out to white. - .macro fadescreen effect:req + @ Fades the screen to and from black and white. Modes are FADE_(TO/FROM)_(WHITE/BLACK) + .macro fadescreen mode:req .byte 0x97 - .byte \effect + .byte \mode .endm - @ Fades the screen to and from black and white. Mode 0x00 fades from black, mode 0x01 fades out to black, mode 0x2 fades in from white, and mode 0x3 fades out to white. Other modes may exist. - .macro fadescreenspeed effect:req, speed:req + @ Fades the screen to and from black and white. Modes are FADE_(TO/FROM)_(WHITE/BLACK) + .macro fadescreenspeed mode:req, speed:req .byte 0x98 - .byte \effect + .byte \mode .byte \speed .endm @@ -1517,9 +1517,9 @@ .4byte \pointer .endm - .macro fadescreenswapbuffers byte:req + .macro fadescreenswapbuffers mode:req .byte 0xdc - .byte \byte + .byte \mode .endm .macro buffertrainerclassname out:req, class:req diff --git a/data/event_scripts.s b/data/event_scripts.s index c24ea1222b..4402f55177 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -24,6 +24,7 @@ #include "constants/field_poison.h" #include "constants/field_specials.h" #include "constants/field_tasks.h" +#include "constants/field_weather.h" #include "constants/flags.h" #include "constants/frontier_util.h" #include "constants/game_stat.h" @@ -720,9 +721,9 @@ Common_EventScript_ShowPokemonCenterSign:: @ 8271E73 end Common_ShowEasyChatScreen:: @ 8271E7C - fadescreen 1 + fadescreen FADE_TO_BLACK special ShowEasyChatScreen - fadescreen 0 + fadescreen FADE_FROM_BLACK return Common_EventScript_ReadyPetalburgGymForBattle:: @ 8271E84 @@ -773,17 +774,17 @@ Common_EventScript_PlayGymBadgeFanfare:: @ 827207E return Common_EventScript_OutOfCenterPartyHeal:: @ 8272083 - fadescreen 1 + fadescreen FADE_TO_BLACK playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty - fadescreen 0 + fadescreen FADE_FROM_BLACK return EventScript_RegionMap:: @ 827208F lockall msgbox Common_Text_LookCloserAtMap, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK special FieldShowRegionMap waitstate releaseall @@ -868,7 +869,7 @@ Common_EventScript_FerryDepartIsland:: @ 8272250 .include "data/scripts/kecleon.inc" Common_EventScript_NameReceivedPartyMon:: @ 82723DD - fadescreen 1 + fadescreen FADE_TO_BLACK special ChangePokemonNickname waitstate return @@ -1045,16 +1046,16 @@ Common_EventScript_DirectCornerAttendant:: @ 8273767 end Common_EventScript_RemoveStaticPokemon:: @ 827376D - fadescreenswapbuffers 1 + fadescreenswapbuffers FADE_TO_BLACK removeobject VAR_LAST_TALKED - fadescreenswapbuffers 0 + fadescreenswapbuffers FADE_FROM_BLACK release end Common_EventScript_LegendaryFlewAway:: @ 8273776 - fadescreenswapbuffers 1 + fadescreenswapbuffers FADE_TO_BLACK removeobject VAR_LAST_TALKED - fadescreenswapbuffers 0 + fadescreenswapbuffers FADE_FROM_BLACK bufferspeciesname 0, VAR_0x8004 msgbox gText_LegendaryFlewAway, MSGBOX_DEFAULT release diff --git a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc index f2251165cb..1764b8ffdc 100644 --- a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc @@ -240,7 +240,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_PauseChallenge:: @ 825789A arena_save CHALLENGE_STATUS_PAUSED playse SE_SAVE waitse - fadescreen 1 + fadescreen FADE_TO_BLACK frontier_reset end diff --git a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc index d6c3a3ca51..b4879f4936 100644 --- a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc @@ -133,7 +133,7 @@ BattleFrontier_BattleArenaLobby_EventScript_TryEnterChallenge:: @ 8255E47 goto_if_eq BattleFrontier_BattleArenaLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleArenaLobby_Text_SelectThreeMons, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, FRONTIER_PARTY_SIZE diff --git a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc index a96063caae..0bcbf95e19 100644 --- a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc @@ -166,7 +166,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249ABF:: @ 8249ABF goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_249C15 frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleDomeLobby_Text_24A26E, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, FRONTIER_PARTY_SIZE @@ -367,7 +367,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249D84:: @ 8249D84 call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249DDB compare VAR_RESULT, 3 call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249DE4 - fadescreen 1 + fadescreen FADE_TO_BLACK dome_showresultstree waitstate end diff --git a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc index 56d8e2e642..c554922d69 100644 --- a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc @@ -91,20 +91,20 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB:: @ 824B3BB dome_save CHALLENGE_STATUS_PAUSED playse SE_SAVE waitse - fadescreen 1 + fadescreen FADE_TO_BLACK frontier_reset end BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3DD:: @ 824B3DD msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B9B5, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK dome_showopponentinfo waitstate goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3F5:: @ 824B3F5 call BattleFrontier_BattleDomePreBattleRoom_EventScript_24B40A - fadescreen 1 + fadescreen FADE_TO_BLACK dome_showtourneytree waitstate goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F @@ -138,7 +138,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D message BattleFrontier_BattleDomePreBattleRoom_Text_24B70C waitmessage waitbuttonpress - fadescreen 1 + fadescreen FADE_TO_BLACK call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 2 @ 2 of the 3 party mons are selected for battle @@ -227,7 +227,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7:: @ 824B5C7 waitfanfare special HealPlayerParty call BattleFrontier_BattleDomePreBattleRoom_EventScript_24B600 - fadescreen 1 + fadescreen FADE_TO_BLACK dome_showstatictourneytree waitstate goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F diff --git a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc index 11c731f24e..47385a1d76 100644 --- a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc @@ -39,7 +39,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterRoom:: @ 8259AF9 call BattleFrontier_BattleFactoryPreBattleRoom_EventScript_CommentOnOpponentType call BattleFrontier_BattleFactoryPreBattleRoom_EventScript_CommentOnOpponentStyle msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_HoldMonsChooseFromSelection, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK factory_setswapped factory_rentmons waitstate @@ -163,7 +163,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapMon:: @ 8259D98 case MULTI_B_PRESSED, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterBattleRoom BattleFrontier_BattleFactoryPreBattleRoom_EventScript_SwapMons:: @ 8259DF2 - fadescreen 1 + fadescreen FADE_TO_BLACK factory_swapmons waitstate compare VAR_RESULT, 1 @@ -208,7 +208,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_PauseChallenge:: @ 8259E47 factory_save CHALLENGE_STATUS_PAUSED playse SE_SAVE waitse - fadescreen 1 + fadescreen FADE_TO_BLACK frontier_reset end diff --git a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc index 3f635767d3..fbc3487976 100644 --- a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc @@ -168,7 +168,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_PauseChallenge:: @ 824FB3F palace_save CHALLENGE_STATUS_PAUSED playse SE_SAVE waitse - fadescreen 1 + fadescreen FADE_TO_BLACK frontier_reset end diff --git a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc index 64000a6ac6..b50468e19f 100644 --- a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc @@ -155,7 +155,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_TryEnterChallenge:: @ 824D9E6 goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattlePalaceLobby_Text_NowSelectThreeMons, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, FRONTIER_PARTY_SIZE diff --git a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc index f0c7b941b6..4389d0d0f0 100644 --- a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc @@ -118,7 +118,7 @@ BattleFrontier_BattlePikeLobby_EventScript_TryEnterChallenge:: @ 825B8BB goto_if_eq BattleFrontier_BattlePikeLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattlePikeLobby_Text_PleaseChooseThreeMons, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, FRONTIER_PARTY_SIZE diff --git a/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc b/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc index a0c7ece1d3..8255308064 100644 --- a/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc @@ -125,7 +125,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_PauseChallenge:: @ 825C9FD pike_save CHALLENGE_STATUS_PAUSED playse SE_SAVE waitse - fadescreen 1 + fadescreen FADE_TO_BLACK frontier_reset end diff --git a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc index 7d3ddb2f13..6d6ce708a7 100644 --- a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc @@ -131,7 +131,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_TryEnterChallenge:: @ 8250904 goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattlePyramidLobby_Text_SelectThreeMons, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, FRONTIER_PARTY_SIZE diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc index 9c40126042..6bbf917085 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc @@ -146,7 +146,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241E22:: @ 8241E22 tower_save CHALLENGE_STATUS_PAUSED playse SE_SAVE waitse - fadescreen 1 + fadescreen FADE_TO_BLACK frontier_reset end diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc index c0c6fa9003..6d7bb156f5 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc @@ -219,7 +219,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2492DB:: @ 82492DB tower_save CHALLENGE_STATUS_PAUSED playse SE_SAVE waitse - fadescreen 1 + fadescreen FADE_TO_BLACK frontier_reset end diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index 275ac4041c..dd07de014a 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -216,7 +216,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E984:: @ 823E984 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleTowerLobby_Text_2407A6, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, FRONTIER_PARTY_SIZE @@ -283,7 +283,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EAED:: @ 823EAED goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleTowerLobby_Text_240A50, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, FRONTIER_DOUBLES_PARTY_SIZE @@ -351,7 +351,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EC59:: @ 823EC59 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleTowerLobby_Text_240DDB, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, FRONTIER_MULTI_PARTY_SIZE @@ -418,7 +418,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EDC2:: @ 823EDC2 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleTowerLobby_Text_24115E, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, FRONTIER_MULTI_PARTY_SIZE diff --git a/data/maps/BattleFrontier_Lounge7/scripts.inc b/data/maps/BattleFrontier_Lounge7/scripts.inc index 97e41cd963..3dd8fc98cf 100644 --- a/data/maps/BattleFrontier_Lounge7/scripts.inc +++ b/data/maps/BattleFrontier_Lounge7/scripts.inc @@ -264,7 +264,7 @@ BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection:: @ 826564F BattleFrontier_Lounge7_EventScript_TeachTutorMove:: @ 8265696 msgbox BattleFrontier_Lounge7_Text_TeachMoveToWhichMon, MSGBOX_DEFAULT special GetBattleFrontierTutorMoveIndex - fadescreen 1 + fadescreen FADE_TO_BLACK special CloseBattlePointsWindow special CloseBattleFrontierTutorWindow special ChooseMonForMoveTutor diff --git a/data/maps/CaveOfOrigin_B1F/scripts.inc b/data/maps/CaveOfOrigin_B1F/scripts.inc index 378819f43e..552f3b095d 100644 --- a/data/maps/CaveOfOrigin_B1F/scripts.inc +++ b/data/maps/CaveOfOrigin_B1F/scripts.inc @@ -50,12 +50,12 @@ CaveOfOrigin_B1F_EventScript_AtSkyPillar:: @ 823584D msgbox CaveOfOrigin_B1F_Text_WellHeadToSkyPillar, MSGBOX_DEFAULT closemessage playse SE_KAIDAN - fadescreenspeed 1, 4 + fadescreenspeed FADE_TO_BLACK, 4 setflag FLAG_WALLACE_GOES_TO_SKY_PILLAR setvar VAR_SOOTOPOLIS_CITY_STATE, 3 removeobject 1 clearflag FLAG_HIDE_SKY_PILLAR_WALLACE - fadescreen 0 + fadescreen FADE_FROM_BLACK release end diff --git a/data/maps/EverGrandeCity_HallOfFame/scripts.inc b/data/maps/EverGrandeCity_HallOfFame/scripts.inc index 3fe146f998..89cda0e40c 100644 --- a/data/maps/EverGrandeCity_HallOfFame/scripts.inc +++ b/data/maps/EverGrandeCity_HallOfFame/scripts.inc @@ -52,7 +52,7 @@ EverGrandeCity_HallOfFame_EventScript_EnterHallOfFame:: @ 8229850 EverGrandeCity_HallOfFame_EventScript_GameClearMale:: @ 82298E9 setrespawn HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F - fadescreenspeed 1, 24 + fadescreenspeed FADE_TO_BLACK, 24 special GameClear waitstate releaseall @@ -60,7 +60,7 @@ EverGrandeCity_HallOfFame_EventScript_GameClearMale:: @ 82298E9 EverGrandeCity_HallOfFame_EventScript_GameClearFemale:: @ 82298F5 setrespawn HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F - fadescreenspeed 1, 24 + fadescreenspeed FADE_TO_BLACK, 24 special GameClear waitstate releaseall diff --git a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc index ba8b3536f3..b748cc7da6 100644 --- a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc @@ -161,7 +161,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_200B51:: @ 8200B51 fallarbortent_save CHALLENGE_STATUS_PAUSED playse SE_SAVE waitse - fadescreen 1 + fadescreen FADE_TO_BLACK frontier_reset end diff --git a/data/maps/FallarborTown_BattleTentLobby/scripts.inc b/data/maps/FallarborTown_BattleTentLobby/scripts.inc index fddadae15f..6c82c7ea02 100644 --- a/data/maps/FallarborTown_BattleTentLobby/scripts.inc +++ b/data/maps/FallarborTown_BattleTentLobby/scripts.inc @@ -128,7 +128,7 @@ FallarborTown_BattleTentLobby_EventScript_20005D:: @ 820005D goto_if_eq FallarborTown_BattleTentLobby_EventScript_200176 frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_TENT msgbox FallarborTown_BattleTentLobby_Text_2C4BC8, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK setvar VAR_0x8004, 2 setvar VAR_0x8005, FRONTIER_PARTY_SIZE special ChoosePartyForBattleFrontier diff --git a/data/maps/FarawayIsland_Interior/scripts.inc b/data/maps/FarawayIsland_Interior/scripts.inc index 20121d500d..2cdb626bdf 100644 --- a/data/maps/FarawayIsland_Interior/scripts.inc +++ b/data/maps/FarawayIsland_Interior/scripts.inc @@ -190,10 +190,10 @@ FarawayIsland_Interior_EventScript_MewHideLeft:: @ 8267ED0 FarawayIsland_Interior_EventScript_HideMewWhenGrassCut:: @ 8267EDB lockall - fadescreenswapbuffers 1 + fadescreenswapbuffers FADE_TO_BLACK setflag FLAG_HIDE_MEW removeobject 1 - fadescreenswapbuffers 0 + fadescreenswapbuffers FADE_FROM_BLACK msgbox FarawayIsland_Interior_Text_TheFeelingOfBeingWatchedFaded, MSGBOX_DEFAULT closemessage releaseall diff --git a/data/maps/LilycoveCity_ContestLobby/scripts.inc b/data/maps/LilycoveCity_ContestLobby/scripts.inc index b6874d99f1..bdfce43253 100644 --- a/data/maps/LilycoveCity_ContestLobby/scripts.inc +++ b/data/maps/LilycoveCity_ContestLobby/scripts.inc @@ -42,7 +42,7 @@ LilycoveCity_ContestLobby_EventScript_ContestArtist:: @ 821A264 waitmovement 0 msgbox LilycoveCity_ContestLobby_Text_YourPokemonSpurredMeToPaint, MSGBOX_DEFAULT lockall - fadescreen 1 + fadescreen FADE_TO_BLACK showcontestwinner 0 lockall msgbox LilycoveCity_ContestLobby_Text_ShouldITakePaintingToMuseum, MSGBOX_YESNO @@ -216,7 +216,7 @@ LilycoveCity_ContestLobby_EventScript_LinkContestArtist:: @ 821A436 waitmovement 0 msgbox LilycoveCity_ContestLobby_Text_YourPokemonSpurredMeToPaint, MSGBOX_DEFAULT lockall - fadescreen 1 + fadescreen FADE_TO_BLACK showcontestwinner 0 msgbox LilycoveCity_ContestLobby_Text_ShouldITakePaintingToMuseum, MSGBOX_YESNO compare VAR_RESULT, YES @@ -504,42 +504,42 @@ LilycoveCity_ContestLobby_EventScript_NinjaBoy:: @ 821A735 LilycoveCity_ContestLobby_EventScript_ContestWinner1:: @ 821A73E lockall - fadescreen 1 + fadescreen FADE_TO_BLACK showcontestwinner 1 releaseall end LilycoveCity_ContestLobby_EventScript_ContestWinner2:: @ 821A745 lockall - fadescreen 1 + fadescreen FADE_TO_BLACK showcontestwinner 2 releaseall end LilycoveCity_ContestLobby_EventScript_ContestWinner3:: @ 821A74C lockall - fadescreen 1 + fadescreen FADE_TO_BLACK showcontestwinner 3 releaseall end LilycoveCity_ContestLobby_EventScript_ContestWinner4:: @ 821A753 lockall - fadescreen 1 + fadescreen FADE_TO_BLACK showcontestwinner 4 releaseall end LilycoveCity_ContestLobby_EventScript_ContestWinner5:: @ 821A75A lockall - fadescreen 1 + fadescreen FADE_TO_BLACK showcontestwinner 5 releaseall end LilycoveCity_ContestLobby_EventScript_ContestWinner6:: @ 821A761 lockall - fadescreen 1 + fadescreen FADE_TO_BLACK showcontestwinner 6 releaseall end diff --git a/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc b/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc index 4279d30640..f3328a9795 100644 --- a/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc +++ b/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc @@ -182,35 +182,35 @@ LilycoveCity_LilycoveMuseum_2F_EventScript_RichBoy:: @ 821999C LilycoveCity_LilycoveMuseum_2F_EventScript_ShowCoolPainting:: @ 82199A5 msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsPaintingOfPokemon, MSGBOX_SIGN - fadescreen 1 + fadescreen FADE_TO_BLACK showcontestwinner 9 releaseall end LilycoveCity_LilycoveMuseum_2F_EventScript_ShowBeautyPainting:: @ 82199B3 msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsPaintingOfPokemon, MSGBOX_SIGN - fadescreen 1 + fadescreen FADE_TO_BLACK showcontestwinner 10 releaseall end LilycoveCity_LilycoveMuseum_2F_EventScript_ShowCutePainting:: @ 82199C1 msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsPaintingOfPokemon, MSGBOX_SIGN - fadescreen 1 + fadescreen FADE_TO_BLACK showcontestwinner 11 releaseall end LilycoveCity_LilycoveMuseum_2F_EventScript_ShowSmartPainting:: @ 82199CF msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsPaintingOfPokemon, MSGBOX_SIGN - fadescreen 1 + fadescreen FADE_TO_BLACK showcontestwinner 12 releaseall end LilycoveCity_LilycoveMuseum_2F_EventScript_ShowToughPainting:: @ 82199DD msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsPaintingOfPokemon, MSGBOX_SIGN - fadescreen 1 + fadescreen FADE_TO_BLACK showcontestwinner 13 releaseall end diff --git a/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc b/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc index 7d9e0f2396..2592ccd9cf 100644 --- a/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc +++ b/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc @@ -25,9 +25,9 @@ LilycoveCity_MoveDeletersHouse_EventScript_ChooseMonAndMoveToForget:: @ 821EA3B compare VAR_RESULT, 1 goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_MonOnlyKnowsOneMove msgbox LilycoveCity_MoveDeletersHouse_Text_WhichMoveShouldBeForgotten, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK special MoveDeleterChooseMoveToForget - fadescreen 0 + fadescreen FADE_FROM_BLACK compare VAR_0x8005, MAX_MON_MOVES goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_ChooseMonAndMoveToForget special BufferMoveDeleterNicknameAndMove diff --git a/data/maps/MagmaHideout_4F/scripts.inc b/data/maps/MagmaHideout_4F/scripts.inc index 08b59e1f05..e536709b1c 100644 --- a/data/maps/MagmaHideout_4F/scripts.inc +++ b/data/maps/MagmaHideout_4F/scripts.inc @@ -62,14 +62,14 @@ MagmaHideout_4F_EventScript_Maxie:: @ 823A560 setvar VAR_SLATEPORT_CITY_STATE, 1 setflag FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT setvar VAR_SLATEPORT_HARBOR_STATE, 1 - fadescreen 1 + fadescreen FADE_TO_BLACK removeobject 6 removeobject 2 removeobject 3 removeobject 4 removeobject 5 setflag FLAG_HIDE_MAGMA_HIDEOUT_GRUNTS - fadescreen 0 + fadescreen FADE_FROM_BLACK releaseall end diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc index 403377161c..602c6b231e 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc @@ -248,7 +248,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_ChoosePartyForMultiBattle:: @ 822400C applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFastestDown waitmovement 0 special SavePlayerParty - fadescreen 1 + fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 @@ -267,7 +267,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_DoStevenMultiBattle:: @ 8224032 special LoadPlayerParty switch VAR_RESULT case 1, MossdeepCity_SpaceCenter_2F_EventScript_DefeatedMaxieTabitha - fadescreen 1 + fadescreen FADE_TO_BLACK special SetCB2WhiteOut waitstate @@ -287,7 +287,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_DefeatedMaxieTabitha:: @ 8224071 closemessage setvar VAR_MOSSDEEP_CITY_STATE, 3 fadedefaultbgm - fadescreen 1 + fadescreen FADE_TO_BLACK setvar VAR_MOSSDEEP_SPACE_CENTER_STATE, 3 setflag FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_1F_TEAM_MAGMA setflag FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_2F_TEAM_MAGMA @@ -304,10 +304,10 @@ MossdeepCity_SpaceCenter_2F_EventScript_DefeatedMaxieTabitha:: @ 8224071 setobjectxy 1, 6, 2 turnobject 1, DIR_NORTH call MossdeepCity_SpaceCenter_2F_EventScript_StevenFacePlayer - fadescreen 0 + fadescreen FADE_FROM_BLACK msgbox MossdeepCity_SpaceCenter_2F_Text_StevenThankYouComeSeeMeAtHome, MSGBOX_DEFAULT closemessage - fadescreen 1 + fadescreen FADE_TO_BLACK setflag FLAG_DEFEATED_MAGMA_SPACE_CENTER setflag FLAG_HIDE_MOSSDEEP_CITY_STEVENS_HOUSE_STEVEN removeobject 4 @@ -319,7 +319,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_DefeatedMaxieTabitha:: @ 8224071 setobjectxyperm 3, 5, 6 setobjectmovementtype 3, MOVEMENT_TYPE_WANDER_AROUND addobject 3 - fadescreen 0 + fadescreen FADE_FROM_BLACK end MossdeepCity_SpaceCenter_2F_EventScript_StevenFacePlayer:: @ 8224131 diff --git a/data/maps/MtChimney/scripts.inc b/data/maps/MtChimney/scripts.inc index a70d7e3ae7..e57260b2a4 100644 --- a/data/maps/MtChimney/scripts.inc +++ b/data/maps/MtChimney/scripts.inc @@ -47,13 +47,13 @@ MtChimney_EventScript_Maxie:: @ 822EE0B msgbox MtChimney_Text_MaxieYouHaventSeenLastOfMagma, MSGBOX_DEFAULT closemessage delay 30 - fadescreen 1 + fadescreen FADE_TO_BLACK removeobject 2 removeobject 29 removeobject 3 removeobject 22 setflag FLAG_HIDE_MT_CHIMNEY_TEAM_MAGMA - fadescreen 0 + fadescreen FADE_FROM_BLACK setobjectxyperm 1, 10, 12 addobject 1 compare VAR_FACING, DIR_EAST diff --git a/data/maps/MtPyre_Summit/scripts.inc b/data/maps/MtPyre_Summit/scripts.inc index 577b870764..c13dd0da7b 100644 --- a/data/maps/MtPyre_Summit/scripts.inc +++ b/data/maps/MtPyre_Summit/scripts.inc @@ -45,7 +45,7 @@ MtPyre_Summit_EventScript_TeamAquaExits:: @ 823203C call_if_eq MtPyre_Summit_EventScript_ArchieFacePlayer2 msgbox MtPyre_Summit_Text_ArchieWeGotTheOrbLetsGo, MSGBOX_DEFAULT closemessage - fadescreen 1 + fadescreen FADE_TO_BLACK removeobject 2 removeobject 4 removeobject 5 @@ -54,7 +54,7 @@ MtPyre_Summit_EventScript_TeamAquaExits:: @ 823203C setflag FLAG_HIDE_MT_PYRE_SUMMIT_ARCHIE setflag FLAG_HIDE_MT_PYRE_SUMMIT_TEAM_AQUA fadedefaultbgm - fadescreen 0 + fadescreen FADE_FROM_BLACK delay 20 setvar VAR_MT_PYRE_STATE, 1 compare VAR_0x8008, 0 diff --git a/data/maps/Route101/scripts.inc b/data/maps/Route101/scripts.inc index dca3dc47d0..56a256ca91 100644 --- a/data/maps/Route101/scripts.inc +++ b/data/maps/Route101/scripts.inc @@ -220,7 +220,7 @@ Route101_EventScript_BirchsBag:: @ 81EBE16 faceplayer setflag FLAG_SYS_POKEMON_GET setflag FLAG_RESCUED_BIRCH - fadescreen 1 + fadescreen FADE_TO_BLACK removeobject 4 setobjectxy EVENT_OBJ_ID_PLAYER, 6, 13 applymovement EVENT_OBJ_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft diff --git a/data/maps/Route113_GlassWorkshop/scripts.inc b/data/maps/Route113_GlassWorkshop/scripts.inc index 30d453abd1..57c5f9f572 100644 --- a/data/maps/Route113_GlassWorkshop/scripts.inc +++ b/data/maps/Route113_GlassWorkshop/scripts.inc @@ -206,10 +206,10 @@ Route113_GlassWorkshop_EventScript_ChooseDifferentItem:: @ 826F003 Route113_GlassWorkshop_EventScript_MakeGlassItem:: @ 826F00F msgbox Route113_GlassWorkshop_Text_IllMakeItemForYou, MSGBOX_DEFAULT closemessage - fadescreen 1 + fadescreen FADE_TO_BLACK playse SE_SELECT delay 30 - fadescreen 0 + fadescreen FADE_FROM_BLACK msgbox Route113_GlassWorkshop_Text_IveFinishedGlassItem, MSGBOX_DEFAULT compare VAR_0x8009, 0 call_if_eq Route113_GlassWorkshop_EventScript_GiveGlassFlute diff --git a/data/maps/Route119_WeatherInstitute_2F/scripts.inc b/data/maps/Route119_WeatherInstitute_2F/scripts.inc index 0433877a57..7363b1331b 100644 --- a/data/maps/Route119_WeatherInstitute_2F/scripts.inc +++ b/data/maps/Route119_WeatherInstitute_2F/scripts.inc @@ -64,7 +64,7 @@ Route119_WeatherInstitute_2F_EventScript_ShellyDefeated:: @ 826FFC8 setvar VAR_WEATHER_INSTITUTE_STATE, 1 clearflag FLAG_HIDE_WEATHER_INSTITUTE_2F_WORKERS fadedefaultbgm - fadescreen 1 + fadescreen FADE_TO_BLACK setflag FLAG_HIDE_ROUTE_119_TEAM_AQUA setflag FLAG_HIDE_WEATHER_INSTITUTE_2F_AQUA_GRUNT_M removeobject 1 @@ -74,7 +74,7 @@ Route119_WeatherInstitute_2F_EventScript_ShellyDefeated:: @ 826FFC8 removeobject 7 applymovement EVENT_OBJ_ID_PLAYER, Route119_WeatherInstitute_2F_Movement_PlayerReturnToPosition waitmovement 0 - fadescreen 0 + fadescreen FADE_FROM_BLACK applymovement 5, Route119_WeatherInstitute_2F_Movement_ScientistApproachPlayer waitmovement 0 copyobjectxytoperm 5 diff --git a/data/maps/Route120/scripts.inc b/data/maps/Route120/scripts.inc index a965ff0603..6018e2d95d 100644 --- a/data/maps/Route120/scripts.inc +++ b/data/maps/Route120/scripts.inc @@ -225,10 +225,10 @@ Route120_EventScript_StevenBattleKecleon:: @ 81F568B end Route120_EventScript_RemoveBridgeKecleonPostBattle:: @ 81F571C - fadescreenswapbuffers 1 + fadescreenswapbuffers FADE_TO_BLACK removeobject 30 @ Invisible Bridge Kecleon removeobject 36 @ Visible Bridge Kecleon - fadescreenswapbuffers 0 + fadescreenswapbuffers FADE_FROM_BLACK goto Route120_EventScript_StevenGiveDeconScope end diff --git a/data/maps/SkyPillar_Outside/scripts.inc b/data/maps/SkyPillar_Outside/scripts.inc index 49fdc6b9ab..84d0342376 100644 --- a/data/maps/SkyPillar_Outside/scripts.inc +++ b/data/maps/SkyPillar_Outside/scripts.inc @@ -80,12 +80,12 @@ SkyPillar_Outside_EventScript_WallaceScene:: @ 8239304 msgbox SkyPillar_Outside_Text_GotToGoBackForSootopolis, MSGBOX_DEFAULT closemessage playse SE_KAIDAN - fadescreenswapbuffers 1 + fadescreenswapbuffers FADE_TO_BLACK clearflag FLAG_HIDE_MAP_NAME_POPUP setvar VAR_SOOTOPOLIS_CITY_STATE, 4 removeobject 1 clearflag FLAG_HIDE_SOOTOPOLIS_CITY_WALLACE - fadescreenswapbuffers 0 + fadescreenswapbuffers FADE_FROM_BLACK releaseall end diff --git a/data/maps/SkyPillar_Top/scripts.inc b/data/maps/SkyPillar_Top/scripts.inc index e12919082e..b67675d93f 100644 --- a/data/maps/SkyPillar_Top/scripts.inc +++ b/data/maps/SkyPillar_Top/scripts.inc @@ -76,16 +76,16 @@ SkyPillar_Top_EventScript_RanFromRayquaza:: @ 8239771 end SkyPillar_Top_EventScript_DefeatedRayquaza2:: @ 823977C - fadescreenswapbuffers 1 + fadescreenswapbuffers FADE_TO_BLACK removeobject VAR_LAST_TALKED - fadescreenswapbuffers 0 + fadescreenswapbuffers FADE_FROM_BLACK releaseall end SkyPillar_Top_EventScript_RanFromRayquaza2:: @ 8239785 - fadescreenswapbuffers 1 + fadescreenswapbuffers FADE_TO_BLACK removeobject VAR_LAST_TALKED - fadescreenswapbuffers 0 + fadescreenswapbuffers FADE_FROM_BLACK bufferspeciesname 0, VAR_0x8004 msgbox gText_LegendaryFlewAway, MSGBOX_DEFAULT releaseall diff --git a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc index 8e9b5f1b45..5a8665de3e 100644 --- a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc +++ b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc @@ -34,7 +34,7 @@ SlateportCity_BattleTentCorridor_EventScript_208E65:: @ 8208E65 slateporttent_generaterentalmons slateporttent_generateopponentmons msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_HoldMonsChooseFromSelection, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK slateporttent_rentmons waitstate SlateportCity_BattleTentCorridor_EventScript_208EB4:: @ 8208EB4 @@ -97,7 +97,7 @@ SlateportCity_BattleTentCorridor_EventScript_208FBB:: @ 8208FBB case MULTI_B_PRESSED, SlateportCity_BattleTentCorridor_EventScript_208EB4 SlateportCity_BattleTentCorridor_EventScript_208FF1:: @ 8208FF1 - fadescreen 1 + fadescreen FADE_TO_BLACK slateporttent_swapmons waitstate compare VAR_RESULT, 1 @@ -121,7 +121,7 @@ SlateportCity_BattleTentCorridor_EventScript_209022:: @ 8209022 slateporttent_save CHALLENGE_STATUS_PAUSED playse SE_SAVE waitse - fadescreen 1 + fadescreen FADE_TO_BLACK frontier_reset end diff --git a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc index 9facd09375..38fb70e7d0 100644 --- a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc +++ b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc @@ -61,11 +61,11 @@ SlateportCity_OceanicMuseum_2F_EventScript_CaptStern:: @ 820BB00 closemessage savebgm MUS_DUMMY fadedefaultbgm - fadescreen 1 + fadescreen FADE_TO_BLACK removeobject 2 removeobject 3 removeobject 4 - fadescreen 0 + fadescreen FADE_FROM_BLACK delay 30 setflag FLAG_HIDE_SLATEPORT_CITY_OCEANIC_MUSEUM_AQUA_GRUNTS applymovement EVENT_OBJ_ID_PLAYER, Common_Movement_WalkInPlaceFastestRight @@ -75,7 +75,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_CaptStern:: @ 820BB00 call Common_EventScript_PlayerHandedOverTheItem msgbox SlateportCity_OceanicMuseum_2F_Text_SternIveGotToGo, MSGBOX_DEFAULT closemessage - fadescreen 1 + fadescreen FADE_TO_BLACK playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty @@ -87,7 +87,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_CaptStern:: @ 820BB00 clearflag FLAG_HIDE_ROUTE_116_DEVON_EMPLOYEE setflag FLAG_HIDE_RUSTBORO_CITY_DEVON_CORP_3F_EMPLOYEE setvar VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE, 1 - fadescreen 0 + fadescreen FADE_FROM_BLACK release end diff --git a/data/maps/SootopolisCity/scripts.inc b/data/maps/SootopolisCity/scripts.inc index faec317172..6b80168b9a 100644 --- a/data/maps/SootopolisCity/scripts.inc +++ b/data/maps/SootopolisCity/scripts.inc @@ -214,7 +214,7 @@ SootopolisCity_EventScript_LegendariesSceneFromPokeCenter:: @ 81E5946 waitmovement 0 special RemoveCameraObject delay 60 - fadescreenspeed 1, 8 + fadescreenspeed FADE_TO_BLACK, 8 setweather WEATHER_ABNORMAL doweather setvar VAR_0x8004, 0 @@ -314,7 +314,7 @@ SootopolisCity_EventScript_LegendariesSceneFromDive:: @ 81E5A82 waitmovement 0 special RemoveCameraObject delay 60 - fadescreenspeed 1, 8 + fadescreenspeed FADE_TO_BLACK, 8 setweather WEATHER_ABNORMAL doweather setvar VAR_0x8004, 0 @@ -505,7 +505,7 @@ SootopolisCity_EventScript_RayquazaSceneFromPokeCenter:: @ 81E5C1E waitmovement 0 special RemoveCameraObject delay 60 - fadescreenspeed 1, 8 + fadescreenspeed FADE_TO_BLACK, 8 call SootopolisCity_EventScript_SetRoughWater removeobject 9 removeobject 10 @@ -558,7 +558,7 @@ SootopolisCity_EventScript_RayquazaSceneFromDive:: @ 81E5CCE waitmovement 0 special RemoveCameraObject delay 60 - fadescreenspeed 1, 8 + fadescreenspeed FADE_TO_BLACK, 8 call SootopolisCity_EventScript_SetRoughWater removeobject 9 removeobject 10 diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc index 043d9ad827..949d199d5e 100644 --- a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc +++ b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc @@ -126,7 +126,7 @@ SootopolisCity_MysteryEventsHouse_1F_EventScript_DeclineBattle:: @ 8227AE2 SootopolisCity_MysteryEventsHouse_1F_EventScript_ChooseParty:: @ 8227AEF msgbox SootopolisCity_MysteryEventsHouse_1F_Text_KeepItTo3On3, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate return diff --git a/data/maps/TrainerHill_Entrance/scripts.inc b/data/maps/TrainerHill_Entrance/scripts.inc index 0e8d28c1de..cde7aae2f9 100644 --- a/data/maps/TrainerHill_Entrance/scripts.inc +++ b/data/maps/TrainerHill_Entrance/scripts.inc @@ -219,7 +219,7 @@ TrainerHill_Entrance_Movement_PlayerExitElevator: @ 8268385 TrainerHill_Entrance_EventScript_Records:: @ 8268388 lockall - fadescreen 1 + fadescreen FADE_TO_BLACK special ShowTrainerHillRecords waitstate releaseall diff --git a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc index 4760880e24..e379165176 100644 --- a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc @@ -123,7 +123,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_20251F:: @ 820251F verdanturftent_save CHALLENGE_STATUS_PAUSED playse SE_SAVE waitse - fadescreen 1 + fadescreen FADE_TO_BLACK frontier_reset end diff --git a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc index f15bbd4f87..690ca37dba 100644 --- a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc @@ -129,7 +129,7 @@ VerdanturfTown_BattleTentLobby_EventScript_2018CF:: @ 82018CF goto_if_eq VerdanturfTown_BattleTentLobby_EventScript_2019E8 frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_TENT msgbox VerdanturfTown_BattleTentLobby_Text_2C5633, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK setvar VAR_0x8004, 1 setvar VAR_0x8005, FRONTIER_PARTY_SIZE special ChoosePartyForBattleFrontier diff --git a/data/scripts/abnormal_weather.inc b/data/scripts/abnormal_weather.inc index 9a900f3156..88da0405ff 100644 --- a/data/scripts/abnormal_weather.inc +++ b/data/scripts/abnormal_weather.inc @@ -179,7 +179,7 @@ AbnormalWeather_EventScript_EndEventAndCleanup_1:: @ 8273D1F AbnormalWeather_EventScript_EndEventAndCleanup_2:: @ 8273D31 closemessage - fadescreenswapbuffers 1 + fadescreenswapbuffers FADE_TO_BLACK setweather WEATHER_SUNNY doweather call AbnormalWeather_EventScript_CleanupMapTiles @@ -187,7 +187,7 @@ AbnormalWeather_EventScript_EndEventAndCleanup_2:: @ 8273D31 setvar VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_NONE setvar VAR_SHOULD_END_ABNORMAL_WEATHER, 0 clearflag FLAG_HIDE_MAP_NAME_POPUP - fadescreenswapbuffers 0 + fadescreenswapbuffers FADE_FROM_BLACK releaseall end diff --git a/data/scripts/apprentice.inc b/data/scripts/apprentice.inc index 53b43a1f91..b3ae904a09 100644 --- a/data/scripts/apprentice.inc +++ b/data/scripts/apprentice.inc @@ -96,7 +96,7 @@ Apprentice_EventScript_UseWhatHeldItem: @ 82B6ACF apprentice_msg TRUE, APPRENTICE_MSG_WHAT_HELD_ITEM apprentice_freequestion Apprentice_EventScript_ChooseHoldItem: @ 82B6B09 - fadescreen 1 + fadescreen FADE_TO_BLACK setvar VAR_RESULT, 0 apprentice_openbag compare VAR_RESULT, FALSE diff --git a/data/scripts/berry_blender.inc b/data/scripts/berry_blender.inc index 1d0862a65d..b699c8e043 100644 --- a/data/scripts/berry_blender.inc +++ b/data/scripts/berry_blender.inc @@ -302,7 +302,7 @@ BerryBlender_EventScript_TryUseBerryBlender1: @ 8293CEE @ VAR_0x8009 here is the Blender number. 1 is top right, 2 is bottom right, 3 is bottom left BerryBlender_EventScript_DoBerryBlending: @ 8293D2C copyvar VAR_0x8004, VAR_0x8009 - fadescreen 1 + fadescreen FADE_TO_BLACK special DoBerryBlending waitstate releaseall @@ -629,7 +629,7 @@ BerryBlender_EventScript_FourPlayerLink: @ 8294139 BerryBlender_EventScript_DoLinkBerryBlending: @ 8294147 setvar VAR_0x8004, 0 - fadescreen 1 + fadescreen FADE_TO_BLACK removeobject 240 removeobject 239 removeobject 238 @@ -678,7 +678,7 @@ BerryBlender_EventScript_LinkError: @ 829419D end BerryBlender_EventScript_SpawnLinkPartners: @ 82941AA - fadescreen 1 + fadescreen FADE_TO_BLACK specialvar VAR_RESULT, GetLinkPartnerNames copyvar VAR_0x8008, VAR_RESULT copyvar VAR_0x8004, VAR_0x8008 @@ -687,7 +687,7 @@ BerryBlender_EventScript_SpawnLinkPartners: @ 82941AA end BerryBlender_EventScript_LinkPlayersArrived: @ 82941C4 - fadescreen 0 + fadescreen FADE_FROM_BLACK switch VAR_0x8008 case 2, BerryBlender_EventScript_TwoPlayerLink case 3, BerryBlender_EventScript_ThreePlayerLink diff --git a/data/scripts/berry_tree.inc b/data/scripts/berry_tree.inc index 6b2da5ccb3..f4b592b699 100644 --- a/data/scripts/berry_tree.inc +++ b/data/scripts/berry_tree.inc @@ -39,7 +39,7 @@ BerryTree_EventScript_WantToPlant:: @ 8274374 end BerryTree_EventScript_ChooseBerryToPlant:: @ 8274393 - fadescreen 1 + fadescreen FADE_TO_BLACK closemessage special Bag_ChooseBerry waitstate diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index f375969617..2da5fa6b6b 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -723,7 +723,7 @@ EventScript_BattleColosseum2P_PlayerSpot1:: @ 827737E end EventScript_BattleColosseum4P_PlayerSpot0:: @ 8277388 - fadescreen 1 + fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 @@ -734,7 +734,7 @@ EventScript_BattleColosseum4P_PlayerSpot0:: @ 8277388 end EventScript_BattleColosseum4P_PlayerSpot1:: @ 82773A3 - fadescreen 1 + fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 @@ -745,7 +745,7 @@ EventScript_BattleColosseum4P_PlayerSpot1:: @ 82773A3 end EventScript_BattleColosseum4P_PlayerSpot2:: @ 82773BE - fadescreen 1 + fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 @@ -756,7 +756,7 @@ EventScript_BattleColosseum4P_PlayerSpot2:: @ 82773BE end EventScript_BattleColosseum4P_PlayerSpot3:: @ 82773D9 - fadescreen 1 + fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 @@ -838,14 +838,14 @@ RecordCorner_EventScript_ReceivedGiftItem:: @ 8277471 CableClub_EventScript_ReadTrainerCard:: @ 827747E msgbox CableClub_Text_GotToLookAtTrainerCard, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK special Script_ShowLinkTrainerCard waitstate end CableClub_EventScript_ReadTrainerCardColored:: @ 827748D msgbox CableClub_Text_GotToLookAtColoredTrainerCard, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK special Script_ShowLinkTrainerCard waitstate end @@ -1309,7 +1309,7 @@ EventScript_WirelessBoxResults:: @ 8277B8A specialvar VAR_RESULT, IsWirelessAdapterConnected compare VAR_RESULT, FALSE goto_if_eq CableClub_EventScript_AdapterNotConnected - fadescreen 1 + fadescreen FADE_TO_BLACK special sub_801A42C waitstate msgbox CableClub_Text_ParticipantsStepUpToCounter, MSGBOX_DEFAULT @@ -1408,7 +1408,7 @@ MossdeepCity_GameCorner_1F_EventScript_PlayPokemonJump:: @ 8277CE9 compare VAR_RESULT, FALSE goto_if_eq MossdeepCity_GameCorner_1F_EventScript_DontHaveRequiredMon msgbox MossdeepCity_GameCorner_1F_Text_EnterWhichPokemon, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK setvar VAR_0x8005, 0 special ChooseMonForWirelessMinigame waitstate @@ -1427,7 +1427,7 @@ MossdeepCity_GameCorner_1F_EventScript_PlayDodrioBerryPicking:: @ 8277D35 compare VAR_RESULT, FALSE goto_if_eq MossdeepCity_GameCorner_1F_EventScript_DontHaveRequiredMon msgbox MossdeepCity_GameCorner_1F_Text_EnterWhichPokemon, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK setvar VAR_0x8005, 1 special ChooseMonForWirelessMinigame waitstate diff --git a/data/scripts/day_care.inc b/data/scripts/day_care.inc index 968464f9df..6506897eed 100644 --- a/data/scripts/day_care.inc +++ b/data/scripts/day_care.inc @@ -102,7 +102,7 @@ Route117_PokemonDayCare_EventScript_GiveMonToRaise:: @ 8291D56 compare VAR_RESULT, 2 goto_if_eq Route117_PokemonDayCare_EventScript_OnlyTwoAliveMons msgbox Route117_PokemonDayCare_Text_WhichMonShouldWeRaise, MSGBOX_DEFAULT - fadescreen 1 + fadescreen FADE_TO_BLACK special ChooseSendDaycareMon waitstate compare VAR_0x8004, 255 diff --git a/data/scripts/field_poison.inc b/data/scripts/field_poison.inc index ccdebd5cd3..3ce36b3843 100644 --- a/data/scripts/field_poison.inc +++ b/data/scripts/field_poison.inc @@ -15,7 +15,7 @@ EventScript_FieldWhiteOut:: @ 82736D9 waitbuttonpress special Script_FadeOutMapMusic waitstate - fadescreen 1 + fadescreen FADE_TO_BLACK call_if_set FLAG_WHITEOUT_TO_LAVARIDGE, EventScript_SetRespawnLavaridgePkmnCenter special SetCB2WhiteOut waitstate @@ -42,7 +42,7 @@ EventScript_FrontierFieldWhiteOut:: @ 82736F8 goto_if_eq TrainerHill_1F_EventScript_Lost special Script_FadeOutMapMusic waitstate - fadescreen 1 + fadescreen FADE_TO_BLACK special SetCB2WhiteOut waitstate end diff --git a/data/scripts/lilycove_lady.inc b/data/scripts/lilycove_lady.inc index f553ea0ad0..c2ff593cf7 100644 --- a/data/scripts/lilycove_lady.inc +++ b/data/scripts/lilycove_lady.inc @@ -73,7 +73,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_AcceptFavor:: @ 82A845E end LilycoveCity_PokemonCenter_1F_EventScript_ChooseFavorItem:: @ 82A846C - fadescreen 1 + fadescreen FADE_TO_BLACK setvar VAR_RESULT, 0 special Script_FavorLadyOpenBagMenu waitstate @@ -326,7 +326,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_DeclineMakeQuiz:: @ 82A8778 LilycoveCity_PokemonCenter_1F_EventScript_MakeQuiz:: @ 82A8785 msgbox LilycoveCity_PokemonCenter_1F_Text_PickYourPrize, MSGBOX_DEFAULT LilycoveCity_PokemonCenter_1F_EventScript_PickPrize:: @ 82A878D - fadescreen 1 + fadescreen FADE_TO_BLACK setvar VAR_RESULT, 0 special Script_QuizLadyOpenBagMenu waitstate @@ -350,7 +350,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_WriteQuiz:: @ 82A87CE special ClearQuizLadyPlayerAnswer setvar VAR_0x8004, EASY_CHAT_TYPE_QUIZ_QUESTION LilycoveCity_PokemonCenter_1F_EventScript_WriteQuizQuestion:: @ 82A87E1 - fadescreen 1 + fadescreen FADE_TO_BLACK special QuizLadySetCustomQuestion waitstate compare VAR_RESULT, 0 @@ -418,7 +418,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_DeclineGivePokeblock:: @ 82A88B0 end LilycoveCity_PokemonCenter_1F_EventScript_ChoosePokeblock:: @ 82A88BA - fadescreen 1 + fadescreen FADE_TO_BLACK special OpenPokeblockCaseForContestLady waitstate compare VAR_RESULT, 0xFFFF diff --git a/data/scripts/pc_transfer.inc b/data/scripts/pc_transfer.inc index cc583022db..ec58b26f18 100644 --- a/data/scripts/pc_transfer.inc +++ b/data/scripts/pc_transfer.inc @@ -6,7 +6,7 @@ Common_EventScript_GetGiftMonPartySlot:: @ 827378B return Common_EventScript_NameReceivedBoxMon:: @ 8273797 - fadescreen 1 + fadescreen FADE_TO_BLACK special ChangeBoxPokemonNickname waitstate lock diff --git a/data/scripts/players_house.inc b/data/scripts/players_house.inc index 1b706e603b..58618efe7c 100644 --- a/data/scripts/players_house.inc +++ b/data/scripts/players_house.inc @@ -101,14 +101,14 @@ PlayersHouse_2F_EventScript_MomComesUpstairsFemale:: @ 829280F PlayersHouse_2F_EventScript_CheckWallClock:: @ 829283F incrementgamestat GAME_STAT_CHECKED_CLOCK - fadescreen 1 + fadescreen FADE_TO_BLACK special Special_ViewWallClock waitstate releaseall end PlayersHouse_2F_EventScript_SetWallClock:: @ 8292849 - fadescreen 1 + fadescreen FADE_TO_BLACK special StartWallClock waitstate return diff --git a/data/scripts/safari_zone.inc b/data/scripts/safari_zone.inc index 72d1d3c923..6a811d9354 100644 --- a/data/scripts/safari_zone.inc +++ b/data/scripts/safari_zone.inc @@ -52,7 +52,7 @@ EventScript_PokeBlockFeeder:: @ 82A4BAC end SafariZone_EventScript_ChoosePokeblock:: @ 82A4BD0 - fadescreen 1 + fadescreen FADE_TO_BLACK special OpenPokeblockCaseOnFeeder waitstate compare VAR_RESULT, 0xFFFF diff --git a/data/scripts/secret_base.inc b/data/scripts/secret_base.inc index 617b19b42f..0f2ad02b1b 100644 --- a/data/scripts/secret_base.inc +++ b/data/scripts/secret_base.inc @@ -214,10 +214,10 @@ SecretBase_EventScript_AlreadyHasSecretBase:: @ 8275BE8 msgbox SecretBase_Text_AllDecorationsWillBeReturned, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SecretBase_EventScript_CancelOnEntrance - fadescreenswapbuffers 1 + fadescreenswapbuffers FADE_TO_BLACK special MoveOutOfSecretBaseFromOutside closemessage - fadescreenswapbuffers 0 + fadescreenswapbuffers FADE_FROM_BLACK msgbox SecretBase_Text_MovingCompletedUseSecretPower, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SecretBase_EventScript_CancelOnEntrance diff --git a/include/constants/field_weather.h b/include/constants/field_weather.h new file mode 100644 index 0000000000..e84dbc48c4 --- /dev/null +++ b/include/constants/field_weather.h @@ -0,0 +1,24 @@ +#ifndef GUARD_CONSTANTS_FIELD_WEATHER_H +#define GUARD_CONSTANTS_FIELD_WEATHER_H + +#define MAX_RAIN_SPRITES 24 +#define NUM_CLOUD_SPRITES 3 +#define NUM_FOG_HORIZONTAL_SPRITES 20 +#define NUM_ASH_SPRITES 20 +#define NUM_FOG_DIAGONAL_SPRITES 20 +#define NUM_SANDSTORM_SPRITES 20 +#define NUM_SWIRL_SANDSTORM_SPRITES 5 + +// Controls how the weather should be changing the screen palettes. +#define WEATHER_PAL_STATE_CHANGING_WEATHER 0 +#define WEATHER_PAL_STATE_SCREEN_FADING_IN 1 +#define WEATHER_PAL_STATE_SCREEN_FADING_OUT 2 +#define WEATHER_PAL_STATE_IDLE 3 + +// Modes for FadeScreen +#define FADE_FROM_BLACK 0 +#define FADE_TO_BLACK 1 +#define FADE_FROM_WHITE 2 +#define FADE_TO_WHITE 3 + +#endif // GUARD_CONSTANTS_FIELD_WEATHER_H diff --git a/include/field_weather.h b/include/field_weather.h index e587da233c..1af320151a 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -2,32 +2,7 @@ #define GUARD_WEATHER_H #include "sprite.h" - -#define MAX_RAIN_SPRITES 24 -#define NUM_CLOUD_SPRITES 3 -#define NUM_FOG_HORIZONTAL_SPRITES 20 -#define NUM_ASH_SPRITES 20 -#define NUM_FOG_DIAGONAL_SPRITES 20 -#define NUM_SANDSTORM_SPRITES 20 -#define NUM_SWIRL_SANDSTORM_SPRITES 5 - -// Controls how the weather should be changing the screen palettes. -enum -{ - WEATHER_PAL_STATE_CHANGING_WEATHER, - WEATHER_PAL_STATE_SCREEN_FADING_IN, - WEATHER_PAL_STATE_SCREEN_FADING_OUT, - WEATHER_PAL_STATE_IDLE, -}; - -// For the FadeScreen function. -enum -{ - FADE_FROM_BLACK, - FADE_TO_BLACK, - FADE_FROM_WHITE, - FADE_TO_WHITE, -}; +#include "constants/field_weather.h" struct Weather { diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 5a9fd5687f..bdd1b14621 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -357,7 +357,7 @@ static void sub_81C4F10(void) void ChooseItemsToTossFromPyramidBag(void) { ScriptContext2_Enable(); - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); CreateTask(Task_ChooseItemsToTossFromPyramidBag, 10); } diff --git a/src/cable_club.c b/src/cable_club.c index b1675030bb..ab72ee3f2f 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -816,7 +816,7 @@ static void sub_80B32B4(u8 taskId) switch (task->data[0]) { case 0: - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); gLinkType = LINKTYPE_BATTLE; ClearLinkCallback_2(); task->data[0]++; @@ -862,7 +862,7 @@ static void sub_80B33BC(u8 taskId) switch (data[0]) { case 0: - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); gLinkType = LINKTYPE_BATTLE; ClearLinkCallback_2(); data[0] = 1; @@ -1077,7 +1077,7 @@ static void sub_80B37FC(u8 taskId) { case 0: ScriptContext2_Enable(); - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); ClearLinkCallback_2(); task->data[0]++; break; @@ -1110,7 +1110,7 @@ static void sub_80B3894(u8 taskId) { case 0: ScriptContext2_Enable(); - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); ClearLinkRfuCallback(); data[0]++; break; diff --git a/src/decoration.c b/src/decoration.c index 2a47dd5539..4198f432f9 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -608,7 +608,7 @@ static void DecorationMenuAction_PutAway(u8 taskId) { RemoveDecorationWindow(0); ClearDialogWindowAndFrame(0, 0); - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); gTasks[taskId].data[2] = 0; gTasks[taskId].func = sub_8129ABC; } @@ -1292,7 +1292,7 @@ void sub_8127F68(u8 taskId) { if (sub_8127F38() == TRUE) { - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); gTasks[taskId].data[2] = 0; gTasks[taskId].func = sub_8128060; } @@ -1682,7 +1682,7 @@ void CancelDecorating(u8 taskId) void sub_8128BBC(u8 taskId) { - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); gTasks[taskId].data[2] = 0; gTasks[taskId].func = c1_overworld_prev_quest; } @@ -2551,7 +2551,7 @@ void ReturnDecorationPrompt(u8 taskId) void PutAwayDecoration(u8 taskId) { - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); gTasks[taskId].data[2] = 0; gTasks[taskId].func = sub_81298EC; } @@ -2570,7 +2570,7 @@ void StopPuttingAwayDecorations(u8 taskId) void sub_812A22C(u8 taskId) { - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); gTasks[taskId].data[2] = 0; gTasks[taskId].func = sub_812A25C; } diff --git a/src/easy_chat.c b/src/easy_chat.c index 995a2bc7e3..6bb1d9c862 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -1341,7 +1341,7 @@ static void CB2_QuizLadyQuestion(void) switch (gMain.state) { case 0: - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); break; case 1: if (!gPaletteFade.active) diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 2ce2c04bb2..2a942c9d9d 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -461,7 +461,7 @@ void EggHatch(void) { ScriptContext2_Enable(); CreateTask(Task_EggHatch, 10); - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); } static void Task_EggHatch(u8 taskID) diff --git a/src/item_use.c b/src/item_use.c index 0b76250546..4d5796f59e 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -601,7 +601,7 @@ void ItemUseOutOfBattle_PokeblockCase(u8 taskId) else { gFieldCallback = sub_80AF6D4; - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); gTasks[taskId].func = sub_80FDC00; } } diff --git a/src/player_pc.c b/src/player_pc.c index 94484ab729..e10af43b8d 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -484,7 +484,7 @@ static void ItemStorageMenuProcessInput(u8 taskId) static void ItemStorage_Deposit(u8 taskId) { gTasks[taskId].func = Task_ItemStorage_Deposit; - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); } static void Task_ItemStorage_Deposit(u8 taskId) @@ -714,7 +714,7 @@ static void Mailbox_MailOptionsProcessInput(u8 taskId) static void Mailbox_DoMailRead(u8 taskId) { - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); gTasks[taskId].func = Mailbox_FadeAndReadMail; } @@ -813,7 +813,7 @@ static void Mailbox_Give(u8 taskId) Mailbox_NoPokemonForMail(taskId); else { - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); gTasks[taskId].func = Mailbox_DoGiveMailPokeMenu; } } diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index fae152bb2e..3118f66cdf 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -1790,7 +1790,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) } else { - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); task->data[0] = 4; } break; diff --git a/src/pokenav.c b/src/pokenav.c index 9f12380df2..511c323d10 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -320,7 +320,7 @@ void CB2_InitPokeNav(void) void OpenPokenavForTutorial(void) { SetMainCallback2(CB2_InitPokenavForTutorial); - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); } static void CB2_InitPokenavForTutorial(void) diff --git a/src/scrcmd.c b/src/scrcmd.c index a9be5c3ef9..a6ead183b0 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -650,13 +650,14 @@ bool8 ScrCmd_fadescreenswapbuffers(struct ScriptContext *ctx) switch (mode) { - case 1: + case FADE_TO_BLACK: + case FADE_TO_WHITE: default: CpuCopy32(gPlttBufferUnfaded, gPaletteDecompressionBuffer, PLTT_DECOMP_BUFFER_SIZE); FadeScreen(mode, 0); break; - case 0: - case 2: + case FADE_FROM_BLACK: + case FADE_FROM_WHITE: CpuCopy32(gPaletteDecompressionBuffer, gPlttBufferUnfaded, PLTT_DECOMP_BUFFER_SIZE); FadeScreen(mode, 0); break; diff --git a/src/secret_base.c b/src/secret_base.c index b9826a2572..1d53133832 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -423,7 +423,7 @@ static void Task_EnterSecretBase(u8 taskId) void EnterSecretBase(void) { CreateTask(Task_EnterSecretBase, 0); - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } diff --git a/src/shop.c b/src/shop.c index 324154d2e7..3fe4909410 100755 --- a/src/shop.c +++ b/src/shop.c @@ -348,7 +348,7 @@ static void Task_HandleShopMenuBuy(u8 taskId) data[8] = (u32)CB2_InitBuyMenu >> 16; data[9] = (u32)CB2_InitBuyMenu; gTasks[taskId].func = Task_GoToBuyOrSellMenu; - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); } static void Task_HandleShopMenuSell(u8 taskId) @@ -357,7 +357,7 @@ static void Task_HandleShopMenuSell(u8 taskId) data[8] = (u32)CB2_GoToSellMenu >> 16; data[9] = (u32)CB2_GoToSellMenu; gTasks[taskId].func = Task_GoToBuyOrSellMenu; - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); } void CB2_ExitSellMenu(void) diff --git a/src/start_menu.c b/src/start_menu.c index d0e28cf026..b9ecf77bec 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -581,7 +581,7 @@ static bool8 HandleStartMenuInput(void) && gMenuCallback != StartMenuSafariZoneRetireCallback && gMenuCallback != StartMenuBattlePyramidRetireCallback) { - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); } return FALSE; diff --git a/src/union_room.c b/src/union_room.c index ba973a7d9f..1655b78dac 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -1583,7 +1583,7 @@ void sub_8014790(u8 taskId) case 1: if (!ScriptContext1_IsScriptSetUp()) { - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); data[0] = 2; } break; From 3f858c1c26bbc8301970d8201d58577da764cd62 Mon Sep 17 00:00:00 2001 From: jiangzhengwenjz Date: Thu, 12 Dec 2019 10:16:05 +0800 Subject: [PATCH 3/8] sub_8022F04 --- asm/berry_crush.s | 2527 --------------------------------------------- src/berry_crush.c | 1665 +++++++++++++++++++++++++++-- 2 files changed, 1556 insertions(+), 2636 deletions(-) diff --git a/asm/berry_crush.s b/asm/berry_crush.s index cd70df741b..ebf8191889 100755 --- a/asm/berry_crush.s +++ b/asm/berry_crush.s @@ -5,2533 +5,6 @@ .text - thumb_func_start sub_8021A28 -sub_8021A28: @ 8021A28 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - str r0, [sp, 0xC] - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x10] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x14] - lsls r3, 24 - movs r0, 0 - str r0, [sp, 0x18] - movs r1, 0 - str r1, [sp, 0x1C] - ldr r2, [sp, 0xC] - adds r2, 0x68 - str r2, [sp, 0x20] - movs r4, 0xF0 - lsls r4, 24 - adds r3, r4 - lsrs r3, 24 - ldr r0, [sp, 0x10] - cmp r0, 0x2 - bne _08021A68 - adds r0, r3, 0 - subs r0, 0x2A - lsls r0, 24 - lsrs r3, r0, 24 -_08021A68: - ldr r2, [sp, 0xC] - ldrb r1, [r2, 0x9] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - subs r6, r3, r0 - cmp r6, 0 - ble _08021A84 - lsrs r0, r6, 31 - adds r0, r6, r0 - asrs r0, 1 - adds r6, r0, 0 - adds r6, 0x10 - b _08021A86 -_08021A84: - movs r6, 0x10 -_08021A86: - movs r5, 0 - ldr r3, [sp, 0xC] - ldrb r3, [r3, 0x9] - cmp r5, r3 - bcc _08021A92 - b _08021D14 -_08021A92: - ldr r4, [sp, 0x10] - lsls r4, 2 - str r4, [sp, 0x24] -_08021A98: - bl DynamicPlaceholderTextUtil_Reset - ldr r0, [sp, 0x10] - cmp r0, 0x1 - beq _08021B48 - cmp r0, 0x1 - bgt _08021AC0 - cmp r0, 0 - beq _08021ADE - ldr r4, [sp, 0x14] - subs r4, 0x4 - lsls r1, r6, 24 - mov r10, r1 - ldr r2, [sp, 0x1C] - adds r2, 0xA2 - mov r9, r2 - ldr r3, [sp, 0x18] - lsls r3, 5 - mov r8, r3 - b _08021C5A -_08021AC0: - ldr r4, [sp, 0x10] - cmp r4, 0x2 - bne _08021AC8 - b _08021C1C -_08021AC8: - ldr r4, [sp, 0x14] - subs r4, 0x4 - lsls r0, r6, 24 - mov r10, r0 - ldr r1, [sp, 0x1C] - adds r1, 0xA2 - mov r9, r1 - ldr r2, [sp, 0x18] - lsls r2, 5 - mov r8, r2 - b _08021C5A -_08021ADE: - ldr r0, [sp, 0x20] - adds r0, 0x20 - adds r0, r5 - ldrb r0, [r0] - str r0, [sp, 0x18] - lsls r3, r5, 1 - ldr r2, [sp, 0x20] - adds r2, 0xC - cmp r5, 0 - beq _08021B04 - adds r0, r2, r3 - subs r1, r5, 0x1 - lsls r1, 1 - adds r1, r2, r1 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - beq _08021B04 - str r5, [sp, 0x1C] -_08021B04: - ldr r4, [sp, 0x24] - ldr r1, [sp, 0x10] - adds r0, r4, r1 - lsls r0, 1 - adds r0, r3, r0 - adds r0, r2, r0 - ldrh r1, [r0] - ldr r0, =gStringVar4 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r0, =gUnknown_082F43B4 - adds r0, r4, r0 - ldr r1, [r0] - ldr r0, =gStringVar4 - bl StringAppend - ldr r4, [sp, 0x14] - subs r4, 0x4 - lsls r2, r6, 24 - mov r10, r2 - ldr r3, [sp, 0x1C] - adds r3, 0xA2 - mov r9, r3 - ldr r0, [sp, 0x18] - lsls r0, 5 - mov r8, r0 - b _08021C5A - .pool -_08021B48: - ldr r1, [sp, 0x20] - adds r0, r1, r5 - adds r0, 0x28 - ldrb r0, [r0] - str r0, [sp, 0x18] - lsls r3, r5, 1 - adds r2, r1, 0 - adds r2, 0xC - cmp r5, 0 - beq _08021B72 - adds r0, r3, 0 - adds r0, 0xA - adds r0, r2, r0 - adds r1, r3, 0 - adds r1, 0x8 - adds r1, r2, r1 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - beq _08021B72 - str r5, [sp, 0x1C] -_08021B72: - ldr r0, [sp, 0x24] - ldr r1, [sp, 0x10] - adds r4, r0, r1 - lsls r4, 1 - adds r4, r3, r4 - adds r4, r2, r4 - ldrh r1, [r4] - lsrs r1, 4 - ldr r0, =gStringVar1 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r7, 0 - ldrb r0, [r4] - movs r3, 0xF - ands r3, r0 - movs r2, 0 - ldr r4, [sp, 0x10] - lsls r4, 2 - str r4, [sp, 0x28] - ldr r4, [sp, 0x14] - subs r4, 0x4 - lsls r0, r6, 24 - mov r10, r0 - ldr r1, [sp, 0x1C] - adds r1, 0xA2 - mov r9, r1 - ldr r0, [sp, 0x18] - lsls r0, 5 - mov r8, r0 - adds r6, 0xE - adds r5, 0x1 - ldr r1, =gUnknown_082F334C - mov r12, r1 -_08021BB8: - movs r0, 0x3 - subs r1, r0, r2 - adds r0, r3, 0 - asrs r0, r1 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08021BD0 - lsls r0, r2, 2 - add r0, r12 - ldr r0, [r0] - adds r7, r0 -_08021BD0: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _08021BB8 - adds r0, r7, 0 - ldr r1, =0x000f4240 - bl __udivsi3 - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, =gStringVar2 - adds r1, r3, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, =gUnknown_082F43B4 - ldr r2, [sp, 0x28] - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, =gStringVar4 - bl StringExpandPlaceholders - b _08021C5E - .pool -_08021C1C: - str r5, [sp, 0x18] - str r5, [sp, 0x1C] - lsls r7, r5, 5 - ldr r3, [sp, 0xC] - adds r0, r3, r7 - adds r0, 0xA4 - ldrb r2, [r0] - cmp r2, 0x2B - bls _08021C30 - movs r2, 0 -_08021C30: - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - ldr r0, =gBerries - adds r1, r0 - ldr r0, =gStringVar1 - bl StringCopy - ldr r0, =gUnknown_082F43B4 - ldr r1, [r0, 0x8] - ldr r0, =gStringVar4 - bl StringExpandPlaceholders - ldr r4, [sp, 0x14] - subs r4, 0x4 - lsls r0, r6, 24 - mov r10, r0 - movs r1, 0xA2 - adds r1, r5 - mov r9, r1 - mov r8, r7 -_08021C5A: - adds r6, 0xE - adds r5, 0x1 -_08021C5E: - movs r0, 0x2 - ldr r1, =gStringVar4 - adds r2, r4, 0 - bl GetStringRightAlignXOffset - adds r2, r0, 0 - ldr r3, [sp, 0xC] - movs r4, 0xDD - lsls r4, 1 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r2, 24 - lsrs r2, 24 - mov r1, r10 - lsrs r3, r1, 24 - ldr r1, =sBerryCrushTextColors1 - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r1, =gStringVar4 - str r1, [sp, 0x8] - movs r1, 0x2 - bl AddTextPrinterParameterized3 - ldr r3, [sp, 0x18] - ldr r2, [sp, 0xC] - ldrb r2, [r2, 0x8] - cmp r3, r2 - bne _08021CC0 - ldr r0, =gStringVar3 - ldr r1, =gText_1DotBlueF700 - bl StringCopy - b _08021CC8 - .pool -_08021CC0: - ldr r0, =gStringVar3 - ldr r1, =gText_1DotF700 - bl StringCopy -_08021CC8: - ldr r4, =gStringVar3 - mov r3, r9 - strb r3, [r4] - mov r1, r8 - adds r1, 0x98 - ldr r0, [sp, 0xC] - adds r1, r0, r1 - movs r0, 0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r0, =gStringVar4 - adds r1, r4, 0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - ldr r1, [sp, 0xC] - movs r2, 0xDD - lsls r2, 1 - adds r0, r1, r2 - ldrb r0, [r0] - mov r4, r10 - lsrs r3, r4, 24 - ldr r1, =sBerryCrushTextColors1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - ldr r2, =gStringVar4 - str r2, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x4 - bl AddTextPrinterParameterized3 - lsls r0, r5, 24 - lsrs r5, r0, 24 - ldr r3, [sp, 0xC] - ldrb r3, [r3, 0x9] - cmp r5, r3 - bcs _08021D14 - b _08021A98 -_08021D14: - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8021A28 - - thumb_func_start sub_8021D34 -sub_8021D34: @ 8021D34 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - mov r8, r0 - movs r0, 0 - mov r10, r0 - movs r6, 0 - movs r1, 0 - str r1, [sp, 0xC] - mov r2, r8 - adds r2, 0x68 - str r2, [sp, 0x10] - movs r4, 0xDD - lsls r4, 1 - add r4, r8 - mov r9, r4 - ldrb r0, [r4] - movs r1, 0x4 - bl GetWindowAttribute - lsls r0, 27 - movs r1, 0xD6 - lsls r1, 24 - adds r0, r1 - lsrs r7, r0, 24 - movs r0, 0x9C - lsls r0, 1 - add r0, r8 - ldr r2, [sp, 0x10] - ldrh r1, [r2, 0x4] - bl sub_8021944 - ldrb r0, [r4] - ldr r4, =sBerryCrushTextColors1 - str r4, [sp] - str r6, [sp, 0x4] - ldr r1, =gText_TimeColon - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - ldr r4, =gText_SpaceSec - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0x1 - negs r2, r2 - bl GetStringWidth - movs r1, 0xB0 - subs r0, r1, r0 - lsls r0, 24 - lsrs r6, r0, 24 - mov r2, r9 - ldrb r0, [r2] - ldr r1, =sBerryCrushTextColors1 - str r1, [sp] - mov r2, r10 - str r2, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - adds r2, r6, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - movs r0, 0x9F - lsls r0, 1 - add r0, r8 - movs r4, 0 - ldrsh r1, [r0, r4] - ldr r0, =gStringVar1 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, =gStringVar2 - movs r1, 0xA0 - lsls r1, 1 - add r1, r8 - movs r2, 0 - ldrsh r1, [r1, r2] - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r5, =gStringVar4 - ldr r1, =gText_XDotY2 - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0x2 - adds r1, r5, 0 - movs r2, 0x1 - negs r2, r2 - bl GetStringWidth - subs r0, r6, r0 - lsls r0, 24 - lsrs r6, r0, 24 - mov r4, r9 - ldrb r0, [r4] - ldr r1, =sBerryCrushTextColors1 - str r1, [sp] - mov r2, r10 - str r2, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x2 - adds r2, r6, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - ldr r4, =gText_SpaceMin - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0x1 - negs r2, r2 - bl GetStringWidth - subs r0, r6, r0 - lsls r0, 24 - lsrs r6, r0, 24 - mov r1, r9 - ldrb r0, [r1] - ldr r2, =sBerryCrushTextColors1 - str r2, [sp] - mov r1, r10 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - adds r2, r6, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - movs r0, 0x9E - lsls r0, 1 - add r0, r8 - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r0, =gStringVar1 - movs r2, 0x2 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r1, =gText_StrVar1 - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0x2 - adds r1, r5, 0 - movs r2, 0x1 - negs r2, r2 - bl GetStringWidth - subs r0, r6, r0 - lsls r0, 24 - lsrs r6, r0, 24 - mov r4, r9 - ldrb r0, [r4] - ldr r1, =sBerryCrushTextColors1 - str r1, [sp] - mov r2, r10 - str r2, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x2 - adds r2, r6, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - adds r0, r7, 0 - adds r0, 0xE - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r4] - ldr r4, =sBerryCrushTextColors1 - str r4, [sp] - mov r1, r10 - str r1, [sp, 0x4] - ldr r1, =gText_PressingSpeed - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - ldr r4, =gText_TimesPerSec - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0x1 - negs r2, r2 - bl GetStringWidth - movs r2, 0xB0 - subs r0, r2, r0 - lsls r0, 24 - str r0, [sp, 0x18] - lsrs r6, r0, 24 - mov r1, r9 - ldrb r0, [r1] - ldr r2, =sBerryCrushTextColors1 - str r2, [sp] - mov r1, r10 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - adds r2, r6, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - mov r4, r8 - ldrb r2, [r4, 0x16] - ldrh r0, [r4, 0x16] - mov r12, r0 - movs r1, 0x7 - mov r9, r1 - movs r5, 0x1 - ldr r3, =gUnknown_082F334C -_08021EEC: - mov r4, r9 - mov r0, r10 - subs r1, r4, r0 - adds r0, r2, 0 - asrs r0, r1 - ands r0, r5 - cmp r0, 0 - beq _08021F0A - mov r1, r10 - lsls r0, r1, 2 - adds r0, r3 - ldr r0, [r0] - ldr r4, [sp, 0xC] - adds r4, r0 - str r4, [sp, 0xC] -_08021F0A: - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - cmp r0, 0x7 - bls _08021EEC - ldr r0, =gStringVar1 - mov r2, r12 - lsrs r1, r2, 8 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar2 - ldr r1, =0x000f4240 - ldr r0, [sp, 0xC] - bl __udivsi3 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gText_XDotY3 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r2, 0x1 - negs r2, r2 - movs r0, 0x2 - adds r1, r4, 0 - bl GetStringWidth - subs r0, r6, r0 - lsls r0, 24 - lsrs r6, r0, 24 - mov r0, r8 - adds r0, 0x25 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _08021FC4 - movs r0, 0xDD - lsls r0, 1 - add r0, r8 - ldrb r0, [r0] - ldr r1, =sBerryCrushTextColors4 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - adds r2, r6, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - b _08021FDE - .pool -_08021FC4: - movs r0, 0xDD - lsls r0, 1 - add r0, r8 - ldrb r0, [r0] - ldr r1, =sBerryCrushTextColors1 - str r1, [sp] - str r2, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - adds r2, r6, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 -_08021FDE: - adds r0, r7, 0 - adds r0, 0xE - lsls r0, 24 - lsrs r7, r0, 24 - movs r4, 0xDD - lsls r4, 1 - add r8, r4 - mov r1, r8 - ldrb r0, [r1] - ldr r2, =sBerryCrushTextColors1 - mov r9, r2 - str r2, [sp] - movs r5, 0 - str r5, [sp, 0x4] - ldr r1, =gText_Silkiness - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - ldr r0, =gStringVar1 - ldr r4, [sp, 0x10] - ldrh r1, [r4, 0x8] - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gText_Var1Percent - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r2, 0x1 - negs r2, r2 - movs r0, 0x2 - adds r1, r4, 0 - bl GetStringWidth - movs r1, 0xB0 - subs r1, r0 - lsls r1, 24 - lsrs r6, r1, 24 - mov r1, r8 - ldrb r0, [r1] - mov r2, r9 - str r2, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - adds r2, r6, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8021D34 - - thumb_func_start sub_8022070 -sub_8022070: @ 8022070 - push {r4-r6,lr} - sub sp, 0x8 - adds r4, r0, 0 - adds r6, r1, 0 - adds r0, r6, 0 - adds r0, 0x80 - ldrb r0, [r0] - cmp r0, 0x5 - bls _08022084 - b _08022218 -_08022084: - lsls r0, 2 - ldr r1, =_08022094 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08022094: - .4byte _080220AC - .4byte _080220F8 - .4byte _0802210C - .4byte _08022130 - .4byte _080221F8 - .4byte _08022200 -_080220AC: - ldrb r0, [r4, 0x9] - subs r0, 0x2 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0 - bl sub_8022554 - ldrh r0, [r4, 0x12] - lsls r0, 3 - ldr r2, =gUnknown_082F32CC - mov r1, sp - adds r0, r2 - ldm r0!, {r2,r3} - stm r1!, {r2,r3} - ldrh r0, [r4, 0x12] - cmp r0, 0xD - bne _080220DC - ldr r0, =gUnknown_082F3344 - adds r0, 0x4 - b _080220DE - .pool -_080220DC: - ldr r0, =gUnknown_082F3344 -_080220DE: - adds r0, r5, r0 - ldrb r1, [r0] - mov r0, sp - strb r1, [r0, 0x4] - mov r0, sp - bl AddWindow - adds r1, r6, 0 - adds r1, 0x82 - strb r0, [r1] - b _08022218 - .pool -_080220F8: - adds r4, r6, 0 - adds r4, 0x82 - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0 - bl FillWindowPixelBuffer - b _08022218 -_0802210C: - adds r5, r6, 0 - adds r5, 0x82 - ldrb r0, [r5] - ldr r4, =0x0000021d - adds r1, r4, 0 - movs r2, 0xD0 - bl LoadUserWindowBorderGfx_ - ldrb r0, [r5] - movs r1, 0 - adds r2, r4, 0 - movs r3, 0xD - bl DrawStdFrameWithCustomTileAndPalette - b _08022218 - .pool -_08022130: - ldrb r0, [r4, 0x9] - subs r0, 0x2 - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r4, 0x12] - cmp r0, 0xC - beq _08022184 - cmp r0, 0xC - bgt _08022148 - cmp r0, 0xB - beq _0802214E - b _08022218 -_08022148: - cmp r0, 0xD - beq _080221C8 - b _08022218 -_0802214E: - adds r0, r6, 0 - adds r0, 0x82 - ldrb r0, [r0] - ldr r3, =gText_PressesRankings - movs r1, 0x14 - movs r2, 0x3 - bl sub_80219C8 - ldr r0, =gUnknown_082F3344 - adds r0, r5, r0 - ldrb r3, [r0] - lsls r3, 27 - lsrs r3, 24 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0xA0 - bl sub_8021A28 - adds r1, r6, 0 - adds r1, 0x80 - movs r0, 0x5 - b _08022220 - .pool -_08022184: - adds r0, r6, 0 - adds r0, 0x82 - ldrb r0, [r0] - ldr r2, =gUnknown_082F43B4 - adds r1, r4, 0 - adds r1, 0x8F - ldrb r1, [r1] - adds r1, 0x3 - lsls r1, 2 - adds r1, r2 - ldr r3, [r1] - movs r1, 0x14 - movs r2, 0x4 - bl sub_80219C8 - ldr r0, =gUnknown_082F3344 - adds r0, r5, r0 - ldrb r3, [r0] - lsls r3, 27 - lsrs r3, 24 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0xA0 - bl sub_8021A28 - adds r1, r6, 0 - adds r1, 0x80 - movs r0, 0x5 - b _08022220 - .pool -_080221C8: - adds r0, r6, 0 - adds r0, 0x82 - ldrb r0, [r0] - ldr r3, =gText_CrushingResults - movs r1, 0x16 - movs r2, 0x3 - bl sub_80219C8 - ldr r0, =gUnknown_082F3344 - adds r0, 0x4 - adds r0, r5, r0 - ldrb r3, [r0] - lsls r3, 27 - lsrs r3, 24 - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0xB0 - bl sub_8021A28 - b _08022218 - .pool -_080221F8: - adds r0, r4, 0 - bl sub_8021D34 - b _08022218 -_08022200: - adds r0, r6, 0 - adds r0, 0x82 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - adds r1, r6, 0 - adds r1, 0x80 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - b _08022224 -_08022218: - adds r1, r6, 0 - adds r1, 0x80 - ldrb r0, [r1] - adds r0, 0x1 -_08022220: - strb r0, [r1] - movs r0, 0 -_08022224: - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8022070 - - thumb_func_start sub_802222C -sub_802222C: @ 802222C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xDD - lsls r0, 1 - adds r5, r4, r0 - ldrb r0, [r5] - movs r1, 0x1 - bl ClearStdWindowAndFrameToTransparent - ldrb r0, [r5] - bl RemoveWindow - adds r0, r4, 0 - bl sub_8022600 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_802222C - - thumb_func_start sub_8022250 -sub_8022250: @ 8022250 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - mov r9, r0 - movs r1, 0 - str r1, [sp, 0xC] - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r6, r0, r1 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - beq _080222D0 - cmp r0, 0x1 - bgt _08022288 - cmp r0, 0 - beq _08022296 - b _080224BA - .pool -_08022288: - cmp r0, 0x2 - bne _0802228E - b _08022480 -_0802228E: - cmp r0, 0x3 - bne _08022294 - b _08022494 -_08022294: - b _080224BA -_08022296: - ldr r0, =gUnknown_082F32EC - bl AddWindow - strh r0, [r6, 0x2] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldrb r0, [r6, 0x2] - movs r1, 0 - bl FillWindowPixelBuffer - ldrb r0, [r6, 0x2] - ldr r4, =0x0000021d - adds r1, r4, 0 - movs r2, 0xD0 - bl LoadUserWindowBorderGfx_ - ldrb r0, [r6, 0x2] - movs r1, 0 - adds r2, r4, 0 - movs r3, 0xD - bl DrawStdFrameWithCustomTileAndPalette - b _080224BA - .pool -_080222D0: - ldr r0, =gText_BerryCrush2 - mov r10, r0 - movs r1, 0x1 - negs r1, r1 - mov r8, r1 - movs r0, 0x1 - mov r1, r10 - mov r2, r8 - bl GetStringWidth - lsrs r0, 1 - movs r4, 0x60 - subs r0, r4, r0 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r6, 0x2] - ldr r5, =sBerryCrushTextColorTable - str r5, [sp] - mov r1, r9 - str r1, [sp, 0x4] - mov r1, r10 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r7, 0 - movs r3, 0x1 - bl AddTextPrinterParameterized3 - ldr r0, =gText_PressingSpeedRankings - mov r10, r0 - movs r0, 0x1 - mov r1, r10 - mov r2, r8 - bl GetStringWidth - lsrs r0, 1 - subs r4, r0 - lsls r4, 24 - lsrs r7, r4, 24 - ldrb r0, [r6, 0x2] - str r5, [sp] - mov r1, r9 - str r1, [sp, 0x4] - mov r1, r10 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r7, 0 - movs r3, 0x11 - bl AddTextPrinterParameterized3 - movs r0, 0x29 - mov r10, r0 -_08022336: - mov r1, r9 - adds r1, 0x2 - ldr r0, =gStringVar1 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r0, =gStringVar4 - ldr r1, =gText_Var1Players - bl StringExpandPlaceholders - ldrb r0, [r6, 0x2] - ldr r1, =sBerryCrushTextColors1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - ldr r1, =gStringVar4 - str r1, [sp, 0x8] - movs r1, 0x1 - movs r2, 0 - mov r3, r10 - bl AddTextPrinterParameterized3 - movs r0, 0x1 - ldr r1, =gText_TimesPerSec - movs r2, 0x1 - negs r2, r2 - bl GetStringWidth - movs r1, 0xC0 - subs r1, r0 - lsls r1, 24 - lsrs r7, r1, 24 - ldrb r0, [r6, 0x2] - ldr r1, =sBerryCrushTextColors1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - ldr r1, =gText_TimesPerSec - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r7, 0 - mov r3, r10 - bl AddTextPrinterParameterized3 - movs r2, 0 - mov r0, r9 - lsls r4, r0, 1 - mov r1, r10 - adds r1, 0x10 - str r1, [sp, 0x10] - movs r0, 0x1 - add r9, r0 - adds r0, r4, r6 - ldrb r3, [r0, 0x4] - movs r1, 0x7 - mov r12, r1 - movs r0, 0x1 - mov r8, r0 - ldr r5, =gUnknown_082F334C -_080223AE: - mov r0, r12 - subs r1, r0, r2 - adds r0, r3, 0 - asrs r0, r1 - mov r1, r8 - ands r0, r1 - cmp r0, 0 - beq _080223CA - lsls r0, r2, 2 - adds r0, r5 - ldr r0, [r0] - ldr r1, [sp, 0xC] - adds r1, r0 - str r1, [sp, 0xC] -_080223CA: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _080223AE - adds r0, r4, r6 - ldrh r1, [r0, 0x4] - lsrs r1, 8 - ldr r0, =gStringVar1 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, [sp, 0xC] - ldr r1, =0x000f4240 - bl __udivsi3 - adds r1, r0, 0 - ldr r0, =gStringVar2 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, =gStringVar4 - ldr r1, =gText_XDotY3 - bl StringExpandPlaceholders - movs r0, 0x1 - ldr r1, =gStringVar4 - movs r2, 0x1 - negs r2, r2 - bl GetStringWidth - subs r0, r7, r0 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r6, 0x2] - ldr r1, =sBerryCrushTextColors1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - ldr r1, =gStringVar4 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r7, 0 - mov r3, r10 - bl AddTextPrinterParameterized3 - ldr r1, [sp, 0x10] - lsls r0, r1, 24 - lsrs r0, 24 - mov r10, r0 - movs r0, 0 - str r0, [sp, 0xC] - mov r1, r9 - lsls r0, r1, 24 - lsrs r0, 24 - mov r9, r0 - cmp r0, 0x3 - bhi _08022444 - b _08022336 -_08022444: - ldrb r0, [r6, 0x2] - movs r1, 0x3 - bl CopyWindowToVram - b _080224BA - .pool -_08022480: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _080224BA - b _080224C0 - .pool -_08022494: - ldrb r0, [r6, 0x2] - movs r1, 0x1 - bl ClearStdWindowAndFrameToTransparent - ldrb r0, [r6, 0x2] - bl ClearWindowTilemap - ldrb r0, [r6, 0x2] - bl RemoveWindow - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts - bl ScriptContext2_Disable - mov r0, r9 - b _080224BE -_080224BA: - ldrh r0, [r6] - adds r0, 0x1 -_080224BE: - strh r0, [r6] -_080224C0: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8022250 - - thumb_func_start ShowBerryCrushRankings -ShowBerryCrushRankings: @ 80224D0 - push {lr} - bl ScriptContext2_Enable - ldr r0, =sub_8022250 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - movs r3, 0xF6 - lsls r3, 1 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1, 0xC] - adds r3, 0x2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1, 0xE] - adds r3, 0x2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1, 0x10] - adds r3, 0x2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1, 0x12] - pop {r0} - bx r0 - .pool - thumb_func_end ShowBerryCrushRankings - - thumb_func_start sub_8022524 -sub_8022524: @ 8022524 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r1, 16 - bl sub_8021944 - movs r0, 0x4 - ldrsh r1, [r4, r0] - movs r0, 0 - bl sub_8035044 - movs r0, 0x6 - ldrsh r1, [r4, r0] - movs r0, 0x1 - bl sub_8035044 - movs r0, 0x8 - ldrsh r1, [r4, r0] - movs r0, 0x2 - bl sub_8035044 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8022524 - - thumb_func_start sub_8022554 -sub_8022554: @ 8022554 - push {lr} - ldr r2, [r0, 0x78] - adds r2, 0x3E - ldrb r1, [r2] - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2] - ldr r1, [r0, 0x7C] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r3 - strb r0, [r1] - movs r0, 0x2 - movs r1, 0x1 - bl sub_803547C - movs r0, 0x1 - movs r1, 0x1 - bl sub_803547C - movs r0, 0 - movs r1, 0x1 - bl sub_803547C - pop {r0} - bx r0 - thumb_func_end sub_8022554 - - thumb_func_start sub_8022588 -sub_8022588: @ 8022588 - push {r4-r7,lr} - adds r5, r0, 0 - movs r6, 0 - ldrb r0, [r5, 0x9] - cmp r6, r0 - bcs _080225E8 - ldr r7, =gUnknown_082F417C -_08022596: - lsls r0, r6, 2 - movs r1, 0xA2 - lsls r1, 1 - adds r2, r5, r1 - adds r2, r0 - ldrb r1, [r5, 0x9] - subs r1, 0x2 - lsls r0, r1, 2 - adds r0, r1 - adds r0, r6, r0 - adds r0, r7 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_082F4190 - adds r0, r1 - str r0, [r2] - ldrb r0, [r0] - lsls r0, 3 - ldr r1, =gUnknown_082F32F4 - adds r0, r1 - bl AddWindow - ldr r1, =0x000001bb - adds r4, r5, r1 - adds r4, r6 - strb r0, [r4] - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r5, 0x9] - cmp r6, r0 - bcc _08022596 -_080225E8: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8022588 - - thumb_func_start sub_8022600 -sub_8022600: @ 8022600 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r6, r0, 0 - movs r7, 0 - ldrb r0, [r6, 0x9] - cmp r7, r0 - bcs _080226B6 - movs r1, 0 - mov r8, r1 -_08022616: - ldr r1, =0x000001bb - adds r0, r6, r1 - adds r5, r0, r7 - ldrb r0, [r5] - bl PutWindowTilemap - ldrb r0, [r6, 0x8] - cmp r7, r0 - bne _08022668 - lsls r4, r7, 5 - adds r4, 0x98 - adds r4, r6, r4 - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - lsrs r0, 1 - movs r2, 0x24 - subs r2, r0 - lsls r2, 24 - lsrs r2, 24 - ldrb r0, [r5] - mov r1, r8 - str r1, [sp] - str r1, [sp, 0x4] - ldr r1, =sBerryCrushTextColors2 - str r1, [sp, 0x8] - mov r1, r8 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x2 - movs r3, 0x1 - bl AddTextPrinterParameterized4 - b _0802269C - .pool -_08022668: - lsls r4, r7, 5 - adds r4, 0x98 - adds r4, r6, r4 - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - lsrs r0, 1 - movs r2, 0x24 - subs r2, r0 - lsls r2, 24 - lsrs r2, 24 - ldrb r0, [r5] - mov r1, r8 - str r1, [sp] - str r1, [sp, 0x4] - ldr r1, =sBerryCrushTextColors3 - str r1, [sp, 0x8] - mov r1, r8 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x2 - movs r3, 0x1 - bl AddTextPrinterParameterized4 -_0802269C: - ldr r1, =0x000001bb - adds r0, r6, r1 - adds r0, r7 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r6, 0x9] - cmp r7, r0 - bcc _08022616 -_080226B6: - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8022600 - - thumb_func_start sub_80226D0 -sub_80226D0: @ 80226D0 - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - movs r5, 0 - ldr r0, =gUnknown_08DE3FD4 - ldr r4, =gDecompressionBuffer - adds r1, r4, 0 - bl LZ77UnCompWram - b _0802271A - .pool -_080226EC: - lsls r1, r5, 2 - movs r2, 0xA2 - lsls r2, 1 - adds r0, r6, r2 - adds r0, r1 - ldr r3, [r0] - ldrb r0, [r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4, r1 - ldrb r2, [r3, 0x1] - ldrb r3, [r3, 0x2] - movs r0, 0xA - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x3 - bl CopyToBgTilemapBufferRect - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_0802271A: - ldrb r0, [r6, 0x9] - cmp r5, r0 - bcc _080226EC - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80226D0 - - thumb_func_start sub_8022730 -sub_8022730: @ 8022730 - push {r4-r7,lr} - adds r6, r0, 0 - movs r5, 0 - ldr r0, =0x0000ff98 - strh r0, [r6, 0x2A] - strh r5, [r6, 0x2C] - ldr r1, =gSpriteCoordOffsetX - strh r5, [r1] - ldr r1, =gSpriteCoordOffsetY - strh r0, [r1] - ldr r4, =gUnknown_082F41F4 -_08022746: - lsls r0, r5, 3 - adds r0, r4 - bl LoadCompressedSpriteSheet - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _08022746 - ldr r0, =gUnknown_082F421C - bl LoadSpritePalettes - ldr r0, =gUnknown_082F430C - movs r1, 0x78 - movs r2, 0x58 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0xAC - lsls r0, 1 - adds r3, r6, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - str r0, [r3] - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r1, [r3] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, 0x2C - ldrb r0, [r1] - movs r2, 0x40 - orrs r0, r2 - strb r0, [r1] - movs r5, 0 - ldrb r1, [r6, 0x9] - cmp r5, r1 - bcs _08022822 - movs r7, 0x4 -_080227AA: - lsls r4, r5, 2 - movs r3, 0xA2 - lsls r3, 1 - adds r0, r6, r3 - adds r0, r4 - ldr r0, [r0] - ldrh r1, [r0, 0x4] - adds r1, 0x78 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r0, 0x6] - adds r2, 0x20 - lsls r2, 16 - asrs r2, 16 - ldr r0, =gUnknown_082F4324 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0xAE - lsls r0, 1 - adds r3, r6, r0 - adds r3, r4 - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - str r1, [r3] - ldrb r0, [r1, 0x5] - movs r4, 0xD - negs r4, r4 - adds r2, r4, 0 - ands r0, r2 - orrs r0, r7 - strb r0, [r1, 0x5] - ldr r1, [r3] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r7 - strb r0, [r1] - ldr r2, [r3] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - ldr r2, [r3] - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r6, 0x9] - cmp r5, r0 - bcc _080227AA -_08022822: - movs r5, 0 - ldr r4, =gUnknown_082F41CC+6 - adds r7, r4, 0x1 -_08022828: - lsls r2, r5, 1 - adds r0, r2, r4 - movs r1, 0 - ldrsb r1, [r0, r1] - adds r1, 0x78 - adds r2, r7 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - adds r2, 0x88 - ldr r0, =gUnknown_082F433C - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r5, 2 - movs r1, 0xC2 - lsls r1, 1 - adds r3, r6, r1 - adds r3, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - str r0, [r3] - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r2, [r3] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r2, [r3] - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r3] - strh r5, [r0, 0x2E] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xA - bls _08022828 - movs r5, 0 -_0802288E: - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 19 - movs r3, 0xB0 - lsls r3, 16 - adds r1, r3 - asrs r1, 16 - ldr r0, =gUnknown_082F4354 - movs r2, 0x8 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r5, 2 - movs r4, 0xD8 - lsls r4, 1 - adds r3, r6, r4 - adds r3, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - str r0, [r3] - ldrb r1, [r0, 0x5] - movs r4, 0xD - negs r4, r4 - adds r2, r4, 0 - ands r1, r2 - strb r1, [r0, 0x5] - ldr r2, [r3] - adds r2, 0x3E - ldrb r0, [r2] - adds r4, 0x8 - adds r1, r4, 0 - ands r0, r1 - strb r0, [r2] - ldr r2, [r3] - adds r2, 0x2C - ldrb r0, [r2] - movs r3, 0x41 - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - strb r0, [r2] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _0802288E - ldr r4, =gUnknown_082F4384 - movs r0, 0 - movs r1, 0 - adds r2, r4, 0 - bl sub_8034D14 - adds r2, r4, 0 - adds r2, 0x10 - movs r0, 0x1 - movs r1, 0 - bl sub_8034D14 - adds r4, 0x20 - movs r0, 0x2 - movs r1, 0 - adds r2, r4, 0 - bl sub_8034D14 - ldrh r0, [r6, 0x12] - cmp r0, 0x1 - bne _08022928 - movs r4, 0x9C - lsls r4, 1 - adds r0, r6, r4 - bl sub_8022554 -_08022928: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8022730 - - thumb_func_start sub_8022960 -sub_8022960: @ 8022960 - push {r4-r6,lr} - adds r5, r0, 0 - movs r4, 0 - movs r0, 0x4 - bl FreeSpriteTilesByTag - movs r0, 0x3 - bl FreeSpriteTilesByTag - movs r0, 0x2 - bl FreeSpriteTilesByTag - movs r0, 0x1 - bl FreeSpriteTilesByTag - movs r0, 0x4 - bl FreeSpritePaletteByTag - movs r0, 0x2 - bl FreeSpritePaletteByTag - movs r0, 0x1 - bl FreeSpritePaletteByTag - movs r0, 0xD8 - lsls r0, 1 - adds r6, r5, r0 -_08022996: - lsls r0, r4, 2 - adds r0, r6, r0 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _08022996 - movs r0, 0x2 - bl sub_80353DC - movs r0, 0x1 - bl sub_80353DC - movs r0, 0 - bl sub_80353DC - movs r4, 0 - movs r1, 0xC2 - lsls r1, 1 - adds r6, r5, r1 -_080229C4: - lsls r0, r4, 2 - adds r0, r6, r0 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xA - bls _080229C4 - movs r4, 0 - ldrb r2, [r5, 0x9] - cmp r4, r2 - bcs _080229FC -_080229E0: - lsls r1, r4, 2 - movs r2, 0xAE - lsls r2, 1 - adds r0, r5, r2 - adds r0, r1 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r5, 0x9] - cmp r4, r0 - bcc _080229E0 -_080229FC: - movs r1, 0xAC - lsls r1, 1 - adds r0, r5, r1 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08022A18 - adds r0, r2, 0 - bl DestroySprite -_08022A18: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8022960 - - thumb_func_start sub_8022A20 -sub_8022A20: @ 8022A20 - push {lr} - adds r3, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08022A46 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - subs r2, 0x12 - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] -_08022A46: - pop {r0} - bx r0 - thumb_func_end sub_8022A20 - - thumb_func_start sub_8022A4C -sub_8022A4C: @ 8022A4C - push {r4,r5,lr} - adds r3, r0, 0 - movs r1, 0 - ldr r5, =SpriteCallbackDummy - adds r2, r3, 0 - adds r2, 0x2E - movs r4, 0 -_08022A5A: - lsls r0, r1, 1 - adds r0, r2, r0 - strh r4, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x7 - bls _08022A5A - movs r0, 0 - strh r0, [r3, 0x24] - strh r0, [r3, 0x26] - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - subs r2, 0x12 - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - str r5, [r3, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8022A4C - - thumb_func_start sub_8022A94 -sub_8022A94: @ 8022A94 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r5, 0 - adds r4, 0x2E - ldrh r0, [r4, 0x4] - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 24 - ldrh r2, [r5, 0x26] - adds r0, r2 - strh r0, [r5, 0x26] - movs r1, 0xE - ldrsh r0, [r4, r1] - movs r6, 0x80 - lsls r6, 8 - ands r0, r6 - cmp r0, 0 - beq _08022AFA - ldrh r0, [r4, 0x6] - ldrh r2, [r5, 0x2E] - adds r0, r2 - strh r0, [r5, 0x2E] - ldrh r0, [r4, 0xA] - ldrh r1, [r4, 0x8] - adds r0, r1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 23 - movs r2, 0xC - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r5, 0x24] - movs r1, 0xE - ldrsh r0, [r4, r1] - ands r0, r6 - cmp r0, 0 - beq _08022AFA - ldrh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 23 - cmp r0, 0x7E - ble _08022AFA - movs r0, 0 - strh r0, [r5, 0x24] - ldrh r1, [r4, 0xE] - ldr r0, =0x00007fff - ands r0, r1 - strh r0, [r4, 0xE] -_08022AFA: - ldrh r0, [r4] - lsls r0, 16 - asrs r0, 23 - strh r0, [r5, 0x20] - movs r2, 0x22 - ldrsh r1, [r5, r2] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - ldrh r2, [r4, 0xE] - ldr r0, =0x00007fff - ands r0, r2 - cmp r1, r0 - ble _08022B1A - ldr r0, =sub_8022A4C - str r0, [r5, 0x1C] -_08022B1A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8022A94 - - thumb_func_start sub_8022B28 -sub_8022B28: @ 8022B28 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r7, r6, 0 - adds r7, 0x2E - movs r0, 0 - mov r8, r0 - movs r2, 0xA0 - lsls r2, 2 - strh r2, [r7, 0x2] - movs r0, 0x20 - strh r0, [r7, 0x4] - movs r1, 0xA8 - strh r1, [r7, 0xE] - movs r0, 0x24 - ldrsh r4, [r6, r0] - lsls r4, 23 - lsrs r4, 16 - ldrh r0, [r6, 0x22] - subs r1, r0 - lsls r1, 23 - asrs r1, 16 - adds r2, 0x20 - asrs r2, 1 - movs r0, 0x7 - bl sub_81515D4 - adds r5, r0, 0 - ldrh r0, [r6, 0x20] - lsls r0, 7 - strh r0, [r6, 0x2E] - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - movs r0, 0x7 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_81515D4 - strh r0, [r7, 0x6] - movs r0, 0x7 - adds r1, r5, 0 - movs r2, 0x55 - bl sub_8151550 - adds r2, r0, 0 - mov r1, r8 - strh r1, [r7, 0x8] - movs r1, 0xFE - lsls r1, 6 - lsls r2, 16 - asrs r2, 16 - movs r0, 0x7 - bl sub_81515D4 - strh r0, [r7, 0xA] - movs r2, 0x24 - ldrsh r0, [r6, r2] - cmp r0, 0 - bge _08022BA6 - adds r0, 0x3 -_08022BA6: - asrs r0, 2 - strh r0, [r7, 0xC] - ldrh r0, [r7, 0xE] - ldr r2, =0xffff8000 - adds r1, r2, 0 - orrs r0, r1 - strh r0, [r7, 0xE] - mov r0, r8 - strh r0, [r6, 0x26] - strh r0, [r6, 0x24] - ldr r0, =sub_8022A94 - str r0, [r6, 0x1C] - adds r2, r6, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r2, 0x12 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8022B28 - - thumb_func_start sub_8022BEC -sub_8022BEC: @ 8022BEC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r2, 0 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 24 - lsrs r4, r1, 24 - mov r8, r4 - bl sub_8020C00 - adds r6, r0, 0 - cmp r5, 0x19 - bls _08022C0A - movs r5, 0 -_08022C0A: - cmp r4, 0 - beq _08022C14 - cmp r4, 0x1 - beq _08022C40 - b _08022C4A -_08022C14: - cmp r5, 0 - beq _08022C28 - ldr r0, =gUnknown_082F43CC - lsls r1, r5, 2 - adds r1, r0 - ldr r2, [r1] - adds r0, r6, 0 - adds r1, r7, 0 - bl _call_via_r2 -_08022C28: - ldrb r0, [r6, 0xE] - cmp r0, 0x19 - bls _08022C32 - mov r0, r8 - strb r0, [r6, 0xE] -_08022C32: - ldr r0, =gUnknown_082F43CC - ldrb r1, [r6, 0xE] - lsls r1, 2 - b _08022C44 - .pool -_08022C40: - ldr r0, =gUnknown_082F43CC - lsls r1, r5, 2 -_08022C44: - adds r1, r0 - ldr r0, [r1] - str r0, [r6, 0x4] -_08022C4A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8022BEC - - thumb_func_start sub_8022C58 -sub_8022C58: @ 8022C58 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldrb r2, [r1] - ldrb r3, [r1, 0x1] - lsls r3, 8 - orrs r2, r3 - ldrb r3, [r1, 0x2] - lsls r3, 16 - orrs r2, r3 - ldrb r3, [r1, 0x3] - lsls r3, 24 - adds r0, r2, 0 - orrs r0, r3 - ldrb r2, [r1, 0x9] - strb r2, [r1] - ldrb r4, [r1, 0x8] - lsls r4, 8 - ldrb r2, [r1, 0x7] - orrs r4, r2 - ldr r5, =gPaletteFade - ldrb r3, [r5, 0x8] - movs r2, 0x7F - ands r2, r3 - strb r2, [r5, 0x8] - movs r5, 0x4 - ldrsb r5, [r1, r5] - ldrb r2, [r1, 0x5] - ldrb r3, [r1, 0x6] - str r4, [sp] - adds r1, r5, 0 - bl BeginNormalPaletteFade - bl UpdatePaletteFade - movs r0, 0x2 - strb r0, [r6, 0xE] - movs r0, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8022C58 - - thumb_func_start sub_8022CB0 -sub_8022CB0: @ 8022CB0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0xC] - cmp r0, 0x1 - beq _08022CE4 - cmp r0, 0x1 - bgt _08022CC6 - cmp r0, 0 - beq _08022CD0 - b _08022D06 -_08022CC6: - cmp r0, 0x2 - beq _08022CEA - cmp r0, 0x3 - beq _08022CF6 - b _08022D06 -_08022CD0: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08022D0C - ldrb r0, [r5] - cmp r0, 0 - bne _08022D06 - movs r0, 0x3 - b _08022D0A -_08022CE4: - bl sub_8010434 - b _08022D06 -_08022CEA: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - bne _08022D06 - b _08022D0C -_08022CF6: - ldrb r0, [r4, 0xF] - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - movs r0, 0 - strb r0, [r4, 0xC] - b _08022D0E -_08022D06: - ldrb r0, [r4, 0xC] - adds r0, 0x1 -_08022D0A: - strb r0, [r4, 0xC] -_08022D0C: - movs r0, 0 -_08022D0E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8022CB0 - - thumb_func_start sub_8022D14 -sub_8022D14: @ 8022D14 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r7, r0, 0 - adds r5, r1, 0 - ldrb r4, [r5, 0x3] - lsls r4, 8 - ldrb r0, [r5, 0x2] - orrs r4, r0 - ldrb r6, [r7, 0xC] - cmp r6, 0x1 - beq _08022DC0 - cmp r6, 0x1 - bgt _08022D38 - cmp r6, 0 - beq _08022D42 - b _08022E08 -_08022D38: - cmp r6, 0x2 - beq _08022DD8 - cmp r6, 0x3 - beq _08022DE8 - b _08022E08 -_08022D42: - movs r0, 0 - movs r1, 0 - bl DrawDialogueFrame - ldrb r1, [r5, 0x1] - movs r0, 0x2 - mov r8, r0 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _08022D90 - ldr r4, =gStringVar4 - ldr r1, =gUnknown_082F32A4 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringExpandPlaceholders - ldrb r3, [r7, 0xB] - str r6, [sp] - mov r0, r8 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - adds r2, r4, 0 - bl AddTextPrinterParameterized2 - b _08022DB2 - .pool -_08022D90: - ldr r1, =gUnknown_082F32A4 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - ldrb r3, [r7, 0xB] - str r4, [sp] - mov r0, r8 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - bl AddTextPrinterParameterized2 -_08022DB2: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - b _08022E08 - .pool -_08022DC0: - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _08022E0E - cmp r4, 0 - bne _08022E08 - ldrb r0, [r7, 0xC] - adds r0, 0x1 - strb r0, [r7, 0xC] - b _08022E08 -_08022DD8: - ldr r0, =gMain - ldrh r0, [r0, 0x2E] - ands r4, r0 - cmp r4, 0 - bne _08022E08 - b _08022E0E - .pool -_08022DE8: - ldrb r1, [r5, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08022DFA - movs r0, 0 - movs r1, 0x1 - bl ClearDialogWindowAndFrame -_08022DFA: - ldrb r0, [r7, 0xE] - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - ldrb r0, [r5, 0x4] - b _08022E0C -_08022E08: - ldrb r0, [r7, 0xC] - adds r0, 0x1 -_08022E0C: - strb r0, [r7, 0xC] -_08022E0E: - movs r0, 0 - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8022D14 - - thumb_func_start sub_8022E1C -sub_8022E1C: @ 8022E1C - push {r4,lr} - adds r4, r0, 0 - bl sub_802104C - cmp r0, 0 - beq _08022E34 - ldrb r0, [r4, 0xE] - adds r2, r4, 0 - adds r2, 0x36 - movs r1, 0 - bl sub_8022BEC -_08022E34: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8022E1C - - thumb_func_start sub_8022E3C -sub_8022E3C: @ 8022E3C - push {r4,lr} - adds r4, r0, 0 - bl sub_802130C - cmp r0, 0 - beq _08022E54 - ldrb r0, [r4, 0xE] - adds r2, r4, 0 - adds r2, 0x36 - movs r1, 0 - bl sub_8022BEC -_08022E54: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8022E3C - - thumb_func_start sub_8022E5C -sub_8022E5C: @ 8022E5C - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0xC] - cmp r0, 0 - beq _08022E6C - cmp r0, 0x1 - beq _08022E72 - b _08022E9C -_08022E6C: - bl sub_8010434 - b _08022E9C -_08022E72: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _08022EA2 - ldr r0, =0x000001e5 - bl PlayNewMapMusic - movs r0, 0x7 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - movs r1, 0 - movs r0, 0x3 - strh r0, [r4, 0x12] - strb r1, [r4, 0xC] - b _08022EA2 - .pool -_08022E9C: - ldrb r0, [r4, 0xC] - adds r0, 0x1 - strb r0, [r4, 0xC] -_08022EA2: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8022E5C - - thumb_func_start sub_8022EAC -sub_8022EAC: @ 8022EAC - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0xC] - cmp r0, 0 - beq _08022EC2 - cmp r0, 0x1 - beq _08022EE8 - adds r0, 0x1 - b _08022EF8 -_08022EC2: - adds r0, r4, 0 - bl sub_8024578 - movs r0, 0x1 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x1 - movs r3, 0 - bl sub_8024644 - movs r0, 0x7 - strb r0, [r4, 0xE] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - b _08022EFA -_08022EE8: - movs r0, 0x8 - strb r0, [r4, 0xE] - movs r0, 0x5 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - movs r0, 0x2 -_08022EF8: - strb r0, [r4, 0xC] -_08022EFA: - movs r0, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8022EAC - - thumb_func_start sub_8022F04 -sub_8022F04: @ 8022F04 - push {lr} - movs r1, 0 - str r1, [r0, 0x4] - ldr r0, =sub_8020E1C - bl SetMainCallback2 - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_8022F04 - thumb_func_start sub_8022F1C sub_8022F1C: @ 8022F1C push {r4-r7,lr} diff --git a/src/berry_crush.c b/src/berry_crush.c index 5303da11a7..11028b0afc 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -1,26 +1,33 @@ #include "global.h" -#include "malloc.h" +#include "berry.h" #include "berry_powder.h" #include "bg.h" +#include "decompress.h" +#include "dynamic_placeholder_text_util.h" #include "event_data.h" #include "gpu_regs.h" #include "graphics.h" +#include "international_string_util.h" #include "item_icon.h" #include "item_menu.h" #include "link.h" #include "link_rfu.h" #include "main.h" +#include "malloc.h" #include "math_util.h" #include "menu.h" #include "overworld.h" #include "palette.h" #include "rom_8034C54.h" #include "scanline_effect.h" +#include "script.h" #include "sound.h" #include "sprite.h" #include "string_util.h" +#include "strings.h" #include "task.h" #include "text.h" +#include "text_window.h" #include "trig.h" #include "window.h" #include "constants/items.h" @@ -30,8 +37,9 @@ struct BerryCrushGame_Player { u16 unk0; - u8 filler2[0x12]; - u8 unk14[0xC]; + u8 filler2[2]; + u8 unk4[16]; + u8 unk14[12]; }; struct BerryCrushGame_PlayersSeparate @@ -48,7 +56,12 @@ typedef union BerryCrushGame_Players struct BerryCrushGame_138_C { - u8 filler0[0x8]; + u8 unk0; + u8 unk1; + u8 unk2; + u8 filler3; + u16 unk4; + u16 unk6; s16 unk8; u16 unkA; }; @@ -56,16 +69,19 @@ struct BerryCrushGame_138_C struct BerryCrushGame_138 { u8 filler0[0x4]; - u16 unk4; - u16 unk6; - u16 unk8; - struct BerryCrushGame_138_C *unkC[5]; - u8 filler1C[0x4]; + s16 unk4; + s16 unk6; + s16 unk8; + const struct BerryCrushGame_138_C *unkC[5]; + struct Sprite *unk20; struct Sprite *unk24[5]; struct Sprite *unk38[5]; - struct Sprite *unk4C[5]; - struct Sprite *unk60[5]; - struct Sprite *unk74[5]; + struct Sprite *unk4C[11]; + struct Sprite *unk78[2]; + u8 unk80; + u8 filler81; + u8 unk82; + u8 unk83[5]; }; struct BerryCrushGame_4E @@ -83,10 +99,22 @@ struct __attribute__((packed)) BerryCrushGame_40 struct BerryCrushGame_4E unkE; }; +struct BerryCrushGame_68 +{ + int unk00; + u16 unk04; + u8 filler06[2]; + u16 unk08; + u16 unk0A; + u16 unk0C[8]; // TODO: Resolve the type of the field. + BerryCrushGame_Players unk1C; + u8 fillerBC[20]; +}; + struct BerryCrushGame { MainCallback unk0; - void (* unk4)(struct BerryCrushGame *, u8 *); + u32 (* unk4)(struct BerryCrushGame *, u8 *); u8 unk8; u8 unk9; u8 unkA; @@ -113,13 +141,7 @@ struct BerryCrushGame u8 unk36[0xA]; struct BerryCrushGame_40 unk40; u8 filler60[0x8]; - int unk68; - u16 unk6C; - u8 filler6E[0x4]; - u16 unk72; - u8 filler74[0x10]; - BerryCrushGame_Players unk84; - u8 filler124[0x14]; + struct BerryCrushGame_68 unk68; struct BerryCrushGame_138 unk138; u8 unk1C0[0x1000]; u8 unk11C0[0x1000]; @@ -141,6 +163,9 @@ void sub_8022730(struct BerryCrushGame *); void sub_8022960(struct BerryCrushGame *); void sub_8022524(struct BerryCrushGame_138 *, u16); void sub_8022B28(struct Sprite *); +void sub_8022554(struct BerryCrushGame_138 *r0); +void sub_8024578(struct BerryCrushGame *); +void sub_8024644(u8 *, u32, u32, u32, u32); static EWRAM_DATA struct BerryCrushGame *gUnknown_02022C90 = NULL; @@ -154,6 +179,46 @@ extern const s8 gUnknown_082F41CC[][2]; extern const s8 gUnknown_082F41D2[][2]; extern const u32 gUnknown_082F334C[]; extern const u8 sBerryCrushTextColors1[][3]; +extern const u8 *gUnknown_082F43B4[]; +extern const u8 gText_Var1Berry[]; +extern const u8 gText_XDotY[]; +extern const u8 gText_1DotBlueF700[]; +extern const u8 gText_1DotF700[]; +extern const u8 gText_TimeColon[]; +extern const u8 gText_SpaceSec[]; +extern const u8 gText_XDotY2[]; +extern const u8 gText_SpaceMin[]; +extern const u8 gText_StrVar1[]; +extern const u8 gText_PressingSpeed[]; +extern const u8 gText_TimesPerSec[]; +extern const u8 gText_XDotY3[]; +extern const u8 sBerryCrushTextColors4[]; +extern const u8 gText_Silkiness[]; +extern const u8 gText_Var1Percent[]; +extern const struct WindowTemplate gUnknown_082F32CC[]; +extern const u8 gUnknown_082F3344[][4]; +extern const u8 gText_PressesRankings[]; +extern const u8 gText_CrushingResults[]; +extern const struct WindowTemplate gUnknown_082F32EC; +extern const u8 gText_BerryCrush2[]; +extern const u8 sBerryCrushTextColorTable[][3]; +extern const u8 gText_PressingSpeedRankings[]; +extern const u8 gText_Var1Players[]; +extern const struct WindowTemplate gUnknown_082F32F4[]; +extern const u8 gUnknown_082F417C[][5]; +extern const struct BerryCrushGame_138_C gUnknown_082F4190[]; +extern const u8 sBerryCrushTextColors2[][3]; +extern const u8 sBerryCrushTextColors3[][3]; +extern const u32 gUnknown_08DE3FD4[]; +extern const struct CompressedSpriteSheet gUnknown_082F41F4[]; +extern const struct SpritePalette gUnknown_082F421C; +extern const struct SpriteTemplate gUnknown_082F430C; +extern const struct SpriteTemplate gUnknown_082F4324; +extern const struct SpriteTemplate gUnknown_082F433C; +extern const struct SpriteTemplate gUnknown_082F4354; +extern const struct UnkStruct3 gUnknown_082F4384[]; +extern u32 (*const gUnknown_082F43CC[])(struct BerryCrushGame *, u8 *); +extern const u8 *const gUnknown_082F32A4[]; struct BerryCrushGame *sub_8020C00(void) { @@ -237,7 +302,7 @@ static void sub_8020D8C(void) else RemoveBagItem(gSpecialVar_ItemId, 1); - gUnknown_02022C90->unk84.separate.others[gUnknown_02022C90->unk8].unk0 = gSpecialVar_ItemId - FIRST_BERRY_INDEX; + gUnknown_02022C90->unk68.unk1C.separate.others[gUnknown_02022C90->unk8].unk0 = gSpecialVar_ItemId - FIRST_BERRY_INDEX; gUnknown_02022C90->unkE = 1; gUnknown_02022C90->unkF = 9; sub_8024604(gUnknown_02022C90->unk36, 0, -1, 0, 16, 0, 0); @@ -266,10 +331,10 @@ void sub_8020E58(void) { u32 var0, var1; - var0 = gUnknown_02022C90->unk6C; + var0 = gUnknown_02022C90->unk68.unk04; var0 <<= 8; var0 = sub_81515FC(var0, 60 << 8); - var1 = gUnknown_02022C90->unk72; + var1 = gUnknown_02022C90->unk68.unk0A; var1 <<= 8; var1 = sub_81515FC(var1, var0) & 0xFFFF; gUnknown_02022C90->unk16 = var1; @@ -305,7 +370,7 @@ void sub_8020E58(void) break; } - gUnknown_02022C90->unk1C = gUnknown_02022C90->unk68; + gUnknown_02022C90->unk1C = gUnknown_02022C90->unk68.unk00; if (GiveBerryPowder(gUnknown_02022C90->unk1C)) return; @@ -335,18 +400,23 @@ static void sub_8020FA0(u8 taskId) sub_8021450(gUnknown_02022C90); } -#ifdef NONMATCHING +#define PLAYER_UNK14(game, i) \ + ((u8 *)(game) \ + + offsetof(struct BerryCrushGame, unk68) \ + + offsetof(struct BerryCrushGame_68, unk1C) \ + + offsetof(struct BerryCrushGame_Player, unk14) \ + + sizeof(struct BerryCrushGame_Player) * (i)) + void sub_8020FC4(struct BerryCrushGame *arg0) { u8 i; for (i = 0; i < arg0->unk9; i++) - StringCopy(arg0->unk84.players[i].unk14, gLinkPlayers[i].name); - + StringCopy(PLAYER_UNK14(arg0, i), gLinkPlayers[i].name); for (; i < 5; i++) { - memset(arg0->unk84.players[i].unk14, 1, PLAYER_NAME_LENGTH); - arg0->unk84.players[i].unk14[PLAYER_NAME_LENGTH] = EOS; + memset(PLAYER_UNK14(arg0, i), 1, PLAYER_NAME_LENGTH); + arg0->unk68.unk1C.players[i].unk14[PLAYER_NAME_LENGTH] = EOS; } switch (gSaveBlock2Ptr->optionsTextSpeed) @@ -362,85 +432,6 @@ void sub_8020FC4(struct BerryCrushGame *arg0) break; } } -#else -NAKED -void sub_8020FC4(struct BerryCrushGame *arg0) -{ - asm_unified("\n\ - push {r4-r6,lr}\n\ - adds r6, r0, 0\n\ - movs r5, 0\n\ - b _08020FE6\n\ -LOOP_1:\n\ - lsls r0, r5, 5\n\ - adds r0, 0x98\n\ - adds r0, r6, r0\n\ - lsls r1, r5, 3\n\ - subs r1, r5\n\ - lsls r1, 2\n\ - ldr r2, =gLinkPlayers + 8\n\ - adds r1, r2\n\ - bl StringCopy\n\ - adds r0, r5, 0x1\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ -_08020FE6:\n\ - ldrb r0, [r6, 0x9]\n\ - cmp r5, r0\n\ - bcc LOOP_1\n\ - cmp r5, 0x4\n\ - bhi _08021012\n\ -_08020FF0:\n\ - lsls r4, r5, 5\n\ - adds r0, r4, 0\n\ - adds r0, 0x98\n\ - adds r0, r6, r0\n\ - movs r1, 0x1\n\ - movs r2, 0x7\n\ - bl memset\n\ - adds r4, r6, r4\n\ - adds r4, 0x9F\n\ - movs r0, 0xFF\n\ - strb r0, [r4]\n\ - adds r0, r5, 0x1\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - cmp r5, 0x4\n\ - bls _08020FF0\n\ -_08021012:\n\ - ldr r0, =gSaveBlock2Ptr\n\ - ldr r0, [r0]\n\ - ldrb r0, [r0, 0x14]\n\ - lsls r0, 29\n\ - lsrs r0, 29\n\ - cmp r0, 0x1\n\ - beq _0802103E\n\ - cmp r0, 0x1\n\ - bgt _08021034\n\ - cmp r0, 0\n\ - beq _0802103A\n\ - b _08021046\n\ - .pool\n\ -_08021034:\n\ - cmp r0, 0x2\n\ - beq _08021042\n\ - b _08021046\n\ -_0802103A:\n\ - movs r0, 0x8\n\ - b _08021044\n\ -_0802103E:\n\ - movs r0, 0x4\n\ - b _08021044\n\ -_08021042:\n\ - movs r0, 0x1\n\ -_08021044:\n\ - strb r0, [r6, 0xB]\n\ -_08021046:\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0"); -} -#endif // NONMATCHING int sub_802104C(void) { @@ -636,7 +627,7 @@ void sub_80214A8(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1) &gUnknown_082F436C, gUnknown_082F41E8[i], gUnknown_082F41E8[i], - arg0->unk84.separate.others[i].unk0 + 133); + arg0->unk68.unk1C.separate.others[i].unk0 + 133); arg1->unk38[i] = &gSprites[spriteId]; arg1->unk38[i]->oam.priority = 3; arg1->unk38[i]->affineAnimPaused = 1; @@ -823,3 +814,1459 @@ void sub_80219C8(u8 windowId, u8 left, u8 colorId, const u8 *string) left = (left * 4) - (GetStringWidth(2, string, -1) / 2u); AddTextPrinterParameterized3(windowId, 2, left, 0, sBerryCrushTextColors1[colorId], 0, string); } + +#ifdef NONMATCHING +void sub_8021A28(struct BerryCrushGame *sp0C, u8 sp10, u8 sp14, u8 r3) +{ + s32 r6; + u8 i, j; + u8 sp18 = 0; + u8 sp1C = 0; + struct BerryCrushGame_68 *sp20 = &sp0C->unk68; + u32 xOffset; + u32 r8, r9, r4, r7, r3_; + u8 r10, r2; + + r3 -= 16; + if (sp10 == 2) + r3 -= 42; + r6 = r3 - 14 * sp0C->unk9; + if (r6 > 0) + r6 = r6 / 2 + 16; + else + r6 = 16; + i = 0; + while (i < sp0C->unk9) + { + DynamicPlaceholderTextUtil_Reset(); + switch (sp10) + { + default: // how can you write this twice?????? + r4 = sp14 - 4; + r10 = r6; + r9 = sp1C + 0xA2; + r8 = sp18; + r6 += 14; // should be tail merged, but not + ++i; + break; + case 0: + sp18 = sp20->unk1C.separate.player.unk4[i]; + if (i != 0 && sp20->unk0C[i] != sp20->unk0C[i - 1]) + sp1C = i; + ConvertIntToDecimalStringN( + gStringVar4, + sp20->unk0C[5 * sp10 + i], // ~ line 145. 2 * i was stored in temp variable + 1, + 4 + ); + StringAppend(gStringVar4, gUnknown_082F43B4[sp10]); + r4 = sp14 - 4; + r10 = r6; // shift right should happen after the switch + r9 = sp1C + 0xA2; + r8 = sp18; + r6 += 14; + ++i; + break; + case 1: + sp18 = sp20->unk1C.separate.player.unk4[i + 8]; + if (i != 0 && sp20->unk0C[i + 5] != sp20->unk0C[i + 4]) // damn, access to unk0C is weird again + sp1C = i; + ConvertIntToDecimalStringN( + gStringVar1, + sp20->unk0C[5 * sp10 + i] >> 4, + 1, + 3 + ); + j = 0; + r3_ = 15 & (u8)sp20->unk0C[5 * sp10 + i]; + r4 = sp14 - 4; + r10 = r6; + r9 = sp1C + 0xA2; + r8 = sp18; + r6 += 14; + ++i; + for (; j < 4; ++j) + if (((r3_ >> (3 - j)) & 1) != 0) // why does it load constant 1 into r10? + r7 += gUnknown_082F334C[j]; + ConvertIntToDecimalStringN( + gStringVar2, + (u8)(r7 / 1000000), + 2, + 2 + ); + StringExpandPlaceholders(gStringVar4, gText_XDotY); + break; + case 2: + sp18 = i; + sp1C = i; + r2 = sp0C->unk68.unk1C.separate.others[i].unk0; + if (r2 > 43) + r2 = 0; + StringCopy(gStringVar1,gBerries[r2].name); + StringExpandPlaceholders(gStringVar4, gText_Var1Berry); + r4 = sp14 - 4; + r10 = r6; + r9 = sp1C + 0xA2; + r8 = i; + r6 += 14; + ++i; + break; + } + xOffset = GetStringRightAlignXOffset(2, gStringVar4, r4); + AddTextPrinterParameterized3( + sp0C->unk138.unk82, + 2, + xOffset, + r10, + sBerryCrushTextColors1[0], + 0, + gStringVar4 + ); + if (sp18 == sp0C->unk8) + StringCopy(gStringVar3, gText_1DotBlueF700); + else + StringCopy(gStringVar3, gText_1DotF700); + gStringVar3[0] = r9; + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, PLAYER_UNK14(sp0C, r8)); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gStringVar3); + AddTextPrinterParameterized3( + sp0C->unk138.unk82, + 2, + 4, + r10, + sBerryCrushTextColors1[0], + 0, + gStringVar4 + ); + } +} +#else +NAKED +void sub_8021A28(struct BerryCrushGame *sp0C, u8 sp10, u8 sp14, u8 r3) +{ + asm_unified("\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x2C\n\ + str r0, [sp, 0xC]\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + str r1, [sp, 0x10]\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + str r2, [sp, 0x14]\n\ + lsls r3, 24\n\ + movs r0, 0\n\ + str r0, [sp, 0x18]\n\ + movs r1, 0\n\ + str r1, [sp, 0x1C]\n\ + ldr r2, [sp, 0xC]\n\ + adds r2, 0x68\n\ + str r2, [sp, 0x20]\n\ + movs r4, 0xF0\n\ + lsls r4, 24\n\ + adds r3, r4\n\ + lsrs r3, 24\n\ + ldr r0, [sp, 0x10]\n\ + cmp r0, 0x2\n\ + bne _08021A68\n\ + adds r0, r3, 0\n\ + subs r0, 0x2A\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + _08021A68:\n\ + ldr r2, [sp, 0xC]\n\ + ldrb r1, [r2, 0x9]\n\ + lsls r0, r1, 3\n\ + subs r0, r1\n\ + lsls r0, 1\n\ + subs r6, r3, r0\n\ + cmp r6, 0\n\ + ble _08021A84\n\ + lsrs r0, r6, 31\n\ + adds r0, r6, r0\n\ + asrs r0, 1\n\ + adds r6, r0, 0\n\ + adds r6, 0x10\n\ + b _08021A86\n\ + _08021A84:\n\ + movs r6, 0x10\n\ + _08021A86:\n\ + movs r5, 0\n\ + ldr r3, [sp, 0xC]\n\ + ldrb r3, [r3, 0x9]\n\ + cmp r5, r3\n\ + bcc _08021A92\n\ + b _08021D14\n\ + _08021A92:\n\ + ldr r4, [sp, 0x10]\n\ + lsls r4, 2\n\ + str r4, [sp, 0x24]\n\ + _08021A98:\n\ + bl DynamicPlaceholderTextUtil_Reset\n\ + ldr r0, [sp, 0x10]\n\ + cmp r0, 0x1\n\ + beq _08021B48\n\ + cmp r0, 0x1\n\ + bgt _08021AC0\n\ + cmp r0, 0\n\ + beq _08021ADE\n\ + ldr r4, [sp, 0x14]\n\ + subs r4, 0x4\n\ + lsls r1, r6, 24\n\ + mov r10, r1\n\ + ldr r2, [sp, 0x1C]\n\ + adds r2, 0xA2\n\ + mov r9, r2\n\ + ldr r3, [sp, 0x18]\n\ + lsls r3, 5\n\ + mov r8, r3\n\ + b _08021C5A\n\ + _08021AC0:\n\ + ldr r4, [sp, 0x10]\n\ + cmp r4, 0x2\n\ + bne _08021AC8\n\ + b _08021C1C\n\ + _08021AC8:\n\ + ldr r4, [sp, 0x14]\n\ + subs r4, 0x4\n\ + lsls r0, r6, 24\n\ + mov r10, r0\n\ + ldr r1, [sp, 0x1C]\n\ + adds r1, 0xA2\n\ + mov r9, r1\n\ + ldr r2, [sp, 0x18]\n\ + lsls r2, 5\n\ + mov r8, r2\n\ + b _08021C5A\n\ + _08021ADE:\n\ + ldr r0, [sp, 0x20]\n\ + adds r0, 0x20\n\ + adds r0, r5\n\ + ldrb r0, [r0]\n\ + str r0, [sp, 0x18]\n\ + lsls r3, r5, 1\n\ + ldr r2, [sp, 0x20]\n\ + adds r2, 0xC\n\ + cmp r5, 0\n\ + beq _08021B04\n\ + adds r0, r2, r3\n\ + subs r1, r5, 0x1\n\ + lsls r1, 1\n\ + adds r1, r2, r1\n\ + ldrh r0, [r0]\n\ + ldrh r1, [r1]\n\ + cmp r0, r1\n\ + beq _08021B04\n\ + str r5, [sp, 0x1C]\n\ + _08021B04:\n\ + ldr r4, [sp, 0x24]\n\ + ldr r1, [sp, 0x10]\n\ + adds r0, r4, r1\n\ + lsls r0, 1\n\ + adds r0, r3, r0\n\ + adds r0, r2, r0\n\ + ldrh r1, [r0]\n\ + ldr r0, =gStringVar4\n\ + movs r2, 0x1\n\ + movs r3, 0x4\n\ + bl ConvertIntToDecimalStringN\n\ + ldr r0, =gUnknown_082F43B4\n\ + adds r0, r4, r0\n\ + ldr r1, [r0]\n\ + ldr r0, =gStringVar4\n\ + bl StringAppend\n\ + ldr r4, [sp, 0x14]\n\ + subs r4, 0x4\n\ + lsls r2, r6, 24\n\ + mov r10, r2\n\ + ldr r3, [sp, 0x1C]\n\ + adds r3, 0xA2\n\ + mov r9, r3\n\ + ldr r0, [sp, 0x18]\n\ + lsls r0, 5\n\ + mov r8, r0\n\ + b _08021C5A\n\ + .pool\n\ + _08021B48:\n\ + ldr r1, [sp, 0x20]\n\ + adds r0, r1, r5\n\ + adds r0, 0x28\n\ + ldrb r0, [r0]\n\ + str r0, [sp, 0x18]\n\ + lsls r3, r5, 1\n\ + adds r2, r1, 0\n\ + adds r2, 0xC\n\ + cmp r5, 0\n\ + beq _08021B72\n\ + adds r0, r3, 0\n\ + adds r0, 0xA\n\ + adds r0, r2, r0\n\ + adds r1, r3, 0\n\ + adds r1, 0x8\n\ + adds r1, r2, r1\n\ + ldrh r0, [r0]\n\ + ldrh r1, [r1]\n\ + cmp r0, r1\n\ + beq _08021B72\n\ + str r5, [sp, 0x1C]\n\ + _08021B72:\n\ + ldr r0, [sp, 0x24]\n\ + ldr r1, [sp, 0x10]\n\ + adds r4, r0, r1\n\ + lsls r4, 1\n\ + adds r4, r3, r4\n\ + adds r4, r2, r4\n\ + ldrh r1, [r4]\n\ + lsrs r1, 4\n\ + ldr r0, =gStringVar1\n\ + movs r2, 0x1\n\ + movs r3, 0x3\n\ + bl ConvertIntToDecimalStringN\n\ + movs r7, 0\n\ + ldrb r0, [r4]\n\ + movs r3, 0xF\n\ + ands r3, r0\n\ + movs r2, 0\n\ + ldr r4, [sp, 0x10]\n\ + lsls r4, 2\n\ + str r4, [sp, 0x28]\n\ + ldr r4, [sp, 0x14]\n\ + subs r4, 0x4\n\ + lsls r0, r6, 24\n\ + mov r10, r0\n\ + ldr r1, [sp, 0x1C]\n\ + adds r1, 0xA2\n\ + mov r9, r1\n\ + ldr r0, [sp, 0x18]\n\ + lsls r0, 5\n\ + mov r8, r0\n\ + adds r6, 0xE\n\ + adds r5, 0x1\n\ + ldr r1, =gUnknown_082F334C\n\ + mov r12, r1\n\ + _08021BB8:\n\ + movs r0, 0x3\n\ + subs r1, r0, r2\n\ + adds r0, r3, 0\n\ + asrs r0, r1\n\ + movs r1, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08021BD0\n\ + lsls r0, r2, 2\n\ + add r0, r12\n\ + ldr r0, [r0]\n\ + adds r7, r0\n\ + _08021BD0:\n\ + adds r0, r2, 0x1\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + cmp r2, 0x3\n\ + bls _08021BB8\n\ + adds r0, r7, 0\n\ + ldr r1, =0x000f4240\n\ + bl __udivsi3\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + ldr r0, =gStringVar2\n\ + adds r1, r3, 0\n\ + movs r2, 0x2\n\ + movs r3, 0x2\n\ + bl ConvertIntToDecimalStringN\n\ + ldr r0, =gUnknown_082F43B4\n\ + ldr r2, [sp, 0x28]\n\ + adds r0, r2, r0\n\ + ldr r1, [r0]\n\ + ldr r0, =gStringVar4\n\ + bl StringExpandPlaceholders\n\ + b _08021C5E\n\ + .pool\n\ + _08021C1C:\n\ + str r5, [sp, 0x18]\n\ + str r5, [sp, 0x1C]\n\ + lsls r7, r5, 5\n\ + ldr r3, [sp, 0xC]\n\ + adds r0, r3, r7\n\ + adds r0, 0xA4\n\ + ldrb r2, [r0]\n\ + cmp r2, 0x2B\n\ + bls _08021C30\n\ + movs r2, 0\n\ + _08021C30:\n\ + lsls r1, r2, 3\n\ + subs r1, r2\n\ + lsls r1, 2\n\ + ldr r0, =gBerries\n\ + adds r1, r0\n\ + ldr r0, =gStringVar1\n\ + bl StringCopy\n\ + ldr r0, =gUnknown_082F43B4\n\ + ldr r1, [r0, 0x8]\n\ + ldr r0, =gStringVar4\n\ + bl StringExpandPlaceholders\n\ + ldr r4, [sp, 0x14]\n\ + subs r4, 0x4\n\ + lsls r0, r6, 24\n\ + mov r10, r0\n\ + movs r1, 0xA2\n\ + adds r1, r5\n\ + mov r9, r1\n\ + mov r8, r7\n\ + _08021C5A:\n\ + adds r6, 0xE\n\ + adds r5, 0x1\n\ + _08021C5E:\n\ + movs r0, 0x2\n\ + ldr r1, =gStringVar4\n\ + adds r2, r4, 0\n\ + bl GetStringRightAlignXOffset\n\ + adds r2, r0, 0\n\ + ldr r3, [sp, 0xC]\n\ + movs r4, 0xDD\n\ + lsls r4, 1\n\ + adds r0, r3, r4\n\ + ldrb r0, [r0]\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + mov r1, r10\n\ + lsrs r3, r1, 24\n\ + ldr r1, =sBerryCrushTextColors1\n\ + str r1, [sp]\n\ + movs r4, 0\n\ + str r4, [sp, 0x4]\n\ + ldr r1, =gStringVar4\n\ + str r1, [sp, 0x8]\n\ + movs r1, 0x2\n\ + bl AddTextPrinterParameterized3\n\ + ldr r3, [sp, 0x18]\n\ + ldr r2, [sp, 0xC]\n\ + ldrb r2, [r2, 0x8]\n\ + cmp r3, r2\n\ + bne _08021CC0\n\ + ldr r0, =gStringVar3\n\ + ldr r1, =gText_1DotBlueF700\n\ + bl StringCopy\n\ + b _08021CC8\n\ + .pool\n\ + _08021CC0:\n\ + ldr r0, =gStringVar3\n\ + ldr r1, =gText_1DotF700\n\ + bl StringCopy\n\ + _08021CC8:\n\ + ldr r4, =gStringVar3\n\ + mov r3, r9\n\ + strb r3, [r4]\n\ + mov r1, r8\n\ + adds r1, 0x98\n\ + ldr r0, [sp, 0xC]\n\ + adds r1, r0, r1\n\ + movs r0, 0\n\ + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr\n\ + ldr r0, =gStringVar4\n\ + adds r1, r4, 0\n\ + bl DynamicPlaceholderTextUtil_ExpandPlaceholders\n\ + ldr r1, [sp, 0xC]\n\ + movs r2, 0xDD\n\ + lsls r2, 1\n\ + adds r0, r1, r2\n\ + ldrb r0, [r0]\n\ + mov r4, r10\n\ + lsrs r3, r4, 24\n\ + ldr r1, =sBerryCrushTextColors1\n\ + str r1, [sp]\n\ + movs r1, 0\n\ + str r1, [sp, 0x4]\n\ + ldr r2, =gStringVar4\n\ + str r2, [sp, 0x8]\n\ + movs r1, 0x2\n\ + movs r2, 0x4\n\ + bl AddTextPrinterParameterized3\n\ + lsls r0, r5, 24\n\ + lsrs r5, r0, 24\n\ + ldr r3, [sp, 0xC]\n\ + ldrb r3, [r3, 0x9]\n\ + cmp r5, r3\n\ + bcs _08021D14\n\ + b _08021A98\n\ + _08021D14:\n\ + add sp, 0x2C\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool"); +} +#endif + +void sub_8021D34(struct BerryCrushGame *r8) +{ + u8 r10 = 0; + u8 r6 = 0; + u32 sp0C = 0; + struct BerryCrushGame_68 *sp10 = &r8->unk68; + u8 r7 = GetWindowAttribute(r8->unk138.unk82, WINDOW_HEIGHT) * 8 - 42; + + sub_8021944(&r8->unk138, sp10->unk04); + AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gText_TimeColon); + r6 = 176 - (u8)GetStringWidth(2, gText_SpaceSec, -1); + AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gText_SpaceSec); + ConvertIntToDecimalStringN(gStringVar1, r8->unk138.unk6, 2, 2); + ConvertIntToDecimalStringN(gStringVar2, r8->unk138.unk8, 2, 2); + StringExpandPlaceholders(gStringVar4, gText_XDotY2); + r6 -= GetStringWidth(2, gStringVar4, -1); + AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gStringVar4); + r6 -= GetStringWidth(2, gText_SpaceMin, -1); + AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gText_SpaceMin); + ConvertIntToDecimalStringN(gStringVar1, r8->unk138.unk4, 2, 1); + StringExpandPlaceholders(gStringVar4, gText_StrVar1); + r6 -= GetStringWidth(2, gStringVar4, -1); + AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gStringVar4); + r7 += 14; + AddTextPrinterParameterized3(r8->unk138.unk82, 2, 0, r7, sBerryCrushTextColors1[0], 0, gText_PressingSpeed); + r6 = 176 - (u8)GetStringWidth(2, gText_TimesPerSec, -1); + AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gText_TimesPerSec); + for (; r10 < 8; ++r10) + if (((u8)r8->unk16 >> (7 - r10)) & 1) + sp0C += *(r10 + gUnknown_082F334C); // It's accessed in a different way here for unknown reason + ConvertIntToDecimalStringN(gStringVar1, r8->unk16 >> 8, 1, 3); + ConvertIntToDecimalStringN(gStringVar2, sp0C / 1000000, 2, 2); + StringExpandPlaceholders(gStringVar4, gText_XDotY3); + r6 -= GetStringWidth(2, gStringVar4, -1); + if (r8->unk25_1) + AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors4, 0, gStringVar4); + else + AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gStringVar4); + r7 += 14; + AddTextPrinterParameterized3(r8->unk138.unk82, 2, 0, r7, sBerryCrushTextColors1[0], 0, gText_Silkiness); + ConvertIntToDecimalStringN(gStringVar1, sp10->unk08, 1, 3); + StringExpandPlaceholders(gStringVar4, gText_Var1Percent); + r6 = 176 - (u8)GetStringWidth(2, gStringVar4, -1); + AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gStringVar4); +} + +bool32 sub_8022070(struct BerryCrushGame *r4, struct BerryCrushGame_138 *r6) +{ + u8 r5; + struct WindowTemplate template; + + switch (r6->unk80) + { + case 0: + r5 = r4->unk9 - 2; + sub_8022554(r6); + memcpy(&template, &gUnknown_082F32CC[r4->unk12], sizeof(struct WindowTemplate)); + if (r4->unk12 == 13) + template.height = gUnknown_082F3344[1][r5]; + else + template.height = gUnknown_082F3344[0][r5]; + r6->unk82 = AddWindow(&template); + break; + case 1: + PutWindowTilemap(r6->unk82); + FillWindowPixelBuffer(r6->unk82, PIXEL_FILL(0)); + break; + case 2: + LoadUserWindowBorderGfx_(r6->unk82, 541, 208); + DrawStdFrameWithCustomTileAndPalette(r6->unk82, 0, 541, 13); + break; + case 3: + r5 = r4->unk9 - 2; + switch (r4->unk12) + { + case 11: + sub_80219C8(r6->unk82, 20, 3, gText_PressesRankings); + sub_8021A28(r4, 0, 0xA0, 8 * gUnknown_082F3344[0][r5]); + r6->unk80 = 5; + return FALSE; + case 12: + sub_80219C8(r6->unk82, 20, 4, gUnknown_082F43B4[r4->unk68.unk1C.separate.player.unk4[7] + 3]); + sub_8021A28(r4, 1, 0xA0, 8 * gUnknown_082F3344[0][r5]); + r6->unk80 = 5; + return FALSE; + case 13: + sub_80219C8(r6->unk82, 22, 3, gText_CrushingResults); + sub_8021A28(r4, 2, 0xB0, 8 * gUnknown_082F3344[1][r5]); + break; + } + break; + case 4: + sub_8021D34(r4); + break; + case 5: + CopyWindowToVram(r6->unk82, 3); + r6->unk80 = 0; + return TRUE; + } + ++r6->unk80; + return FALSE; +} + +void sub_802222C(struct BerryCrushGame *r4) +{ + ClearStdWindowAndFrameToTransparent(r4->unk138.unk82, 1); + RemoveWindow(r4->unk138.unk82); + sub_8022600(r4); +} + +#ifdef NONMATCHING +void sub_8022250(u8 r4) +{ + u8 r9 = 0, r2, r7, r10; + u32 sp0C = 0; + s16 *r6 = gTasks[r4].data; + + switch (r6[0]) + { + case 0: + r6[1] = AddWindow(&gUnknown_082F32EC); + PutWindowTilemap((u8)r6[1]); + FillWindowPixelBuffer((u8)r6[1], PIXEL_FILL(0)); + LoadUserWindowBorderGfx_((u8)r6[1], 541, 208); + DrawStdFrameWithCustomTileAndPalette((u8)r6[1], 0, 541, 13); + break; + case 1: + // r5/r10 register swap + r7 = 96 - GetStringWidth(1, gText_BerryCrush2, -1) / 2u; + AddTextPrinterParameterized3( + (u8)r6[1], + 1, + r7, + 1, + sBerryCrushTextColorTable[0], + 0, + gText_BerryCrush2 + ); + r7 = 96 - GetStringWidth(1, gText_PressingSpeedRankings, -1) / 2u; + AddTextPrinterParameterized3( + (u8)r6[1], + 1, + r7, + 17, + sBerryCrushTextColorTable[0], + 0, + gText_PressingSpeedRankings + ); + + for (r10 = 41; r9 < 4; ++r9) + { + ConvertIntToDecimalStringN(gStringVar1, r9 + 2, 0, 1); + StringExpandPlaceholders(gStringVar4, gText_Var1Players); + AddTextPrinterParameterized3( + (u8)r6[1], + 1, + 0, + r10, + sBerryCrushTextColors1[0], + 0, + gStringVar4 + ); + r7 = 192 - (u8)GetStringWidth(1, gText_TimesPerSec, -1); + AddTextPrinterParameterized3( + (u8)r6[1], + 1, + r7, + r10, + sBerryCrushTextColors1[0], + 0, + gText_TimesPerSec + ); + for (r2 = 0; r2 < 8; ++r2) + if (((u8)r6[r9 + 2] >> (7 - r2)) & 1) + sp0C += gUnknown_082F334C[r2]; + ConvertIntToDecimalStringN(gStringVar1, (u16)r6[r9 + 2] >> 8, 1, 3); + ConvertIntToDecimalStringN(gStringVar2, sp0C / 1000000, 2, 2); + StringExpandPlaceholders(gStringVar4, gText_XDotY3); + r7 -= GetStringWidth(1, gStringVar4, -1); + AddTextPrinterParameterized3( + (u8)r6[1], + 1, + r7, + r10, + sBerryCrushTextColors1[0], + 0, + gStringVar4 + ); + r10 += 16; + sp0C = 0; + } + CopyWindowToVram((u8)r6[1], 3); + break; + case 2: + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + break; + else + return; + case 3: + ClearStdWindowAndFrameToTransparent((u8)r6[1], 1); + ClearWindowTilemap((u8)r6[1]); + RemoveWindow((u8)r6[1]); + DestroyTask(r4); + EnableBothScriptContexts(); + ScriptContext2_Disable(); + r6[0] = 0; + return; + } + ++r6[0]; +} +#else +NAKED +void sub_8022250(u8 r4) +{ + asm_unified("\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x14\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + movs r0, 0\n\ + mov r9, r0\n\ + movs r1, 0\n\ + str r1, [sp, 0xC]\n\ + lsls r0, r4, 2\n\ + adds r0, r4\n\ + lsls r0, 3\n\ + ldr r1, =gTasks + 0x8\n\ + adds r6, r0, r1\n\ + movs r1, 0\n\ + ldrsh r0, [r6, r1]\n\ + cmp r0, 0x1\n\ + beq _080222D0_case_1\n\ + cmp r0, 0x1\n\ + bgt _08022288\n\ + cmp r0, 0\n\ + beq _08022296_case_0\n\ + b _080224BA_case_def\n\ + .pool\n\ + _08022288:\n\ + cmp r0, 0x2\n\ + bne _0802228E\n\ + b _08022480_case_2\n\ + _0802228E:\n\ + cmp r0, 0x3\n\ + bne _08022294\n\ + b _08022494_case_3\n\ + _08022294:\n\ + b _080224BA_case_def\n\ + _08022296_case_0:\n\ + ldr r0, =gUnknown_082F32EC\n\ + bl AddWindow\n\ + strh r0, [r6, 0x2]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + bl PutWindowTilemap\n\ + ldrb r0, [r6, 0x2]\n\ + movs r1, 0\n\ + bl FillWindowPixelBuffer\n\ + ldrb r0, [r6, 0x2]\n\ + ldr r4, =0x0000021d\n\ + adds r1, r4, 0\n\ + movs r2, 0xD0\n\ + bl LoadUserWindowBorderGfx_\n\ + ldrb r0, [r6, 0x2]\n\ + movs r1, 0\n\ + adds r2, r4, 0\n\ + movs r3, 0xD\n\ + bl DrawStdFrameWithCustomTileAndPalette\n\ + b _080224BA_case_def\n\ + .pool\n\ + _080222D0_case_1:\n\ + ldr r0, =gText_BerryCrush2\n\ + mov r10, r0\n\ + movs r1, 0x1\n\ + negs r1, r1\n\ + mov r8, r1\n\ + movs r0, 0x1\n\ + mov r1, r10\n\ + mov r2, r8\n\ + bl GetStringWidth\n\ + lsrs r0, 1\n\ + movs r4, 0x60\n\ + subs r0, r4, r0\n\ + lsls r0, 24\n\ + lsrs r7, r0, 24\n\ + ldrb r0, [r6, 0x2]\n\ + ldr r5, =sBerryCrushTextColorTable\n\ + str r5, [sp]\n\ + mov r1, r9\n\ + str r1, [sp, 0x4]\n\ + mov r1, r10\n\ + str r1, [sp, 0x8]\n\ + movs r1, 0x1\n\ + adds r2, r7, 0\n\ + movs r3, 0x1\n\ + bl AddTextPrinterParameterized3\n\ + ldr r0, =gText_PressingSpeedRankings\n\ + mov r10, r0\n\ + movs r0, 0x1\n\ + mov r1, r10\n\ + mov r2, r8\n\ + bl GetStringWidth\n\ + lsrs r0, 1\n\ + subs r4, r0\n\ + lsls r4, 24\n\ + lsrs r7, r4, 24\n\ + ldrb r0, [r6, 0x2]\n\ + str r5, [sp]\n\ + mov r1, r9\n\ + str r1, [sp, 0x4]\n\ + mov r1, r10\n\ + str r1, [sp, 0x8]\n\ + movs r1, 0x1\n\ + adds r2, r7, 0\n\ + movs r3, 0x11\n\ + bl AddTextPrinterParameterized3\n\ + movs r0, 0x29\n\ + mov r10, r0\n\ + _08022336:\n\ + mov r1, r9\n\ + adds r1, 0x2\n\ + ldr r0, =gStringVar1\n\ + movs r2, 0\n\ + movs r3, 0x1\n\ + bl ConvertIntToDecimalStringN\n\ + ldr r0, =gStringVar4\n\ + ldr r1, =gText_Var1Players\n\ + bl StringExpandPlaceholders\n\ + ldrb r0, [r6, 0x2]\n\ + ldr r1, =sBerryCrushTextColors1\n\ + str r1, [sp]\n\ + movs r1, 0\n\ + str r1, [sp, 0x4]\n\ + ldr r1, =gStringVar4\n\ + str r1, [sp, 0x8]\n\ + movs r1, 0x1\n\ + movs r2, 0\n\ + mov r3, r10\n\ + bl AddTextPrinterParameterized3\n\ + movs r0, 0x1\n\ + ldr r1, =gText_TimesPerSec\n\ + movs r2, 0x1\n\ + negs r2, r2\n\ + bl GetStringWidth\n\ + movs r1, 0xC0\n\ + subs r1, r0\n\ + lsls r1, 24\n\ + lsrs r7, r1, 24\n\ + ldrb r0, [r6, 0x2]\n\ + ldr r1, =sBerryCrushTextColors1\n\ + str r1, [sp]\n\ + movs r1, 0\n\ + str r1, [sp, 0x4]\n\ + ldr r1, =gText_TimesPerSec\n\ + str r1, [sp, 0x8]\n\ + movs r1, 0x1\n\ + adds r2, r7, 0\n\ + mov r3, r10\n\ + bl AddTextPrinterParameterized3\n\ + movs r2, 0\n\ + mov r0, r9\n\ + lsls r4, r0, 1\n\ + mov r1, r10\n\ + adds r1, 0x10\n\ + str r1, [sp, 0x10]\n\ + movs r0, 0x1\n\ + add r9, r0\n\ + adds r0, r4, r6\n\ + ldrb r3, [r0, 0x4]\n\ + movs r1, 0x7\n\ + mov r12, r1\n\ + movs r0, 0x1\n\ + mov r8, r0\n\ + ldr r5, =gUnknown_082F334C\n\ + _080223AE:\n\ + mov r0, r12\n\ + subs r1, r0, r2\n\ + adds r0, r3, 0\n\ + asrs r0, r1\n\ + mov r1, r8\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _080223CA\n\ + lsls r0, r2, 2\n\ + adds r0, r5\n\ + ldr r0, [r0]\n\ + ldr r1, [sp, 0xC]\n\ + adds r1, r0\n\ + str r1, [sp, 0xC]\n\ + _080223CA:\n\ + adds r0, r2, 0x1\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + cmp r2, 0x7\n\ + bls _080223AE\n\ + adds r0, r4, r6\n\ + ldrh r1, [r0, 0x4]\n\ + lsrs r1, 8\n\ + ldr r0, =gStringVar1\n\ + movs r2, 0x1\n\ + movs r3, 0x3\n\ + bl ConvertIntToDecimalStringN\n\ + ldr r0, [sp, 0xC]\n\ + ldr r1, =0x000f4240\n\ + bl __udivsi3\n\ + adds r1, r0, 0\n\ + ldr r0, =gStringVar2\n\ + movs r2, 0x2\n\ + movs r3, 0x2\n\ + bl ConvertIntToDecimalStringN\n\ + ldr r0, =gStringVar4\n\ + ldr r1, =gText_XDotY3\n\ + bl StringExpandPlaceholders\n\ + movs r0, 0x1\n\ + ldr r1, =gStringVar4\n\ + movs r2, 0x1\n\ + negs r2, r2\n\ + bl GetStringWidth\n\ + subs r0, r7, r0\n\ + lsls r0, 24\n\ + lsrs r7, r0, 24\n\ + ldrb r0, [r6, 0x2]\n\ + ldr r1, =sBerryCrushTextColors1\n\ + str r1, [sp]\n\ + movs r1, 0\n\ + str r1, [sp, 0x4]\n\ + ldr r1, =gStringVar4\n\ + str r1, [sp, 0x8]\n\ + movs r1, 0x1\n\ + adds r2, r7, 0\n\ + mov r3, r10\n\ + bl AddTextPrinterParameterized3\n\ + ldr r1, [sp, 0x10]\n\ + lsls r0, r1, 24\n\ + lsrs r0, 24\n\ + mov r10, r0\n\ + movs r0, 0\n\ + str r0, [sp, 0xC]\n\ + mov r1, r9\n\ + lsls r0, r1, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ + cmp r0, 0x3\n\ + bhi _08022444\n\ + b _08022336\n\ + _08022444:\n\ + ldrb r0, [r6, 0x2]\n\ + movs r1, 0x3\n\ + bl CopyWindowToVram\n\ + b _080224BA_case_def\n\ + .pool\n\ + _08022480_case_2:\n\ + ldr r0, =gMain\n\ + ldrh r1, [r0, 0x2E]\n\ + movs r0, 0x3\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _080224BA_case_def\n\ + b _080224C0\n\ + .pool\n\ + _08022494_case_3:\n\ + ldrb r0, [r6, 0x2]\n\ + movs r1, 0x1\n\ + bl ClearStdWindowAndFrameToTransparent\n\ + ldrb r0, [r6, 0x2]\n\ + bl ClearWindowTilemap\n\ + ldrb r0, [r6, 0x2]\n\ + bl RemoveWindow\n\ + adds r0, r4, 0\n\ + bl DestroyTask\n\ + bl EnableBothScriptContexts\n\ + bl ScriptContext2_Disable\n\ + mov r0, r9\n\ + b _080224BE\n\ + _080224BA_case_def:\n\ + ldrh r0, [r6]\n\ + adds r0, 0x1\n\ + _080224BE:\n\ + strh r0, [r6]\n\ + _080224C0:\n\ + add sp, 0x14\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0"); +} +#endif + +void ShowBerryCrushRankings(void) +{ + u8 taskId; + + ScriptContext2_Enable(); + taskId = CreateTask(sub_8022250, 0); + gTasks[taskId].data[2] = gSaveBlock2Ptr->berryCrush.berryCrushResults[0]; + gTasks[taskId].data[3] = gSaveBlock2Ptr->berryCrush.berryCrushResults[1]; + gTasks[taskId].data[4] = gSaveBlock2Ptr->berryCrush.berryCrushResults[2]; + gTasks[taskId].data[5] = gSaveBlock2Ptr->berryCrush.berryCrushResults[3]; +} + +void sub_8022524(struct BerryCrushGame_138 *r4, u16 r1) +{ + sub_8021944(r4, r1); + sub_8035044(0, r4->unk4); + sub_8035044(1, r4->unk6); + sub_8035044(2, r4->unk8); +} + +void sub_8022554(struct BerryCrushGame_138 *r0) +{ + r0->unk78[0]->invisible = TRUE; + r0->unk78[1]->invisible = TRUE; + sub_803547C(2, 1); + sub_803547C(1, 1); + sub_803547C(0, 1); +} + +void sub_8022588(struct BerryCrushGame *r5) +{ + u8 r6; + + for (r6 = 0; r6 < r5->unk9; ++r6) + { + r5->unk138.unkC[r6] = &gUnknown_082F4190[gUnknown_082F417C[r5->unk9 - 2][r6]]; + r5->unk138.unk83[r6] = AddWindow(&gUnknown_082F32F4[r5->unk138.unkC[r6]->unk0]); + PutWindowTilemap(r5->unk138.unk83[r6]); + FillWindowPixelBuffer(r5->unk138.unk83[r6], 0); + } +} + +void sub_8022600(struct BerryCrushGame *r6) +{ + u8 r7, r2; + u8 *r4; + + for (r7 = 0; r7 < r6->unk9; ++r7) + { + PutWindowTilemap(r6->unk138.unk83[r7]); + if (r7 == r6->unk8) + { + AddTextPrinterParameterized4( + r6->unk138.unk83[r7], + 2, + 36 - GetStringWidth(2, PLAYER_UNK14(r6, r7), 0) / 2u, + 1, + 0, + 0, + sBerryCrushTextColors2[0], + 0, + PLAYER_UNK14(r6, r7) + ); + } + else + { + AddTextPrinterParameterized4( + r6->unk138.unk83[r7], + 2, + 36 - GetStringWidth(2, PLAYER_UNK14(r6, r7), 0) / 2u, + 1, + 0, + 0, + sBerryCrushTextColors3[0], + 0, + PLAYER_UNK14(r6, r7) + ); + } + CopyWindowToVram(r6->unk138.unk83[r7], 3); + } + CopyBgTilemapBufferToVram(0); +} + +void sub_80226D0(struct BerryCrushGame *r6) +{ + u8 r5 = 0; + const u32 *r0 = gUnknown_08DE3FD4; +#ifndef NONMATCHING // r4, r5, r6 register roulette + register u8 *r4 asm("r4") = gDecompressionBuffer; + register u32 r0_ asm("r0"); +#else + u8 *r4 = gDecompressionBuffer; + u32 r0_; +#endif + + LZ77UnCompWram(r0, r4); + for (; r5 < r6->unk9; ++r5) + { + r0_ = r6->unk138.unkC[r5]->unk0; + CopyToBgTilemapBufferRect( + 3, + &r4[r0_ * 40], + r6->unk138.unkC[r5]->unk1, + r6->unk138.unkC[r5]->unk2, + 10, + 2 + ); + } + CopyBgTilemapBufferToVram(3); +} + +void sub_8022730(struct BerryCrushGame *r6) +{ + u8 r5 = 0; + u8 r2; + + r6->unk2A = -104; + r6->unk2C = 0; + gSpriteCoordOffsetX = 0; + gSpriteCoordOffsetY = -104; + for (; r5 < 4; ++r5) + LoadCompressedSpriteSheet(&gUnknown_082F41F4[r5]); + LoadSpritePalettes(&gUnknown_082F421C); + r2 = CreateSprite(&gUnknown_082F430C, 120, 88, 5); + r6->unk138.unk20 = &gSprites[r2]; + r6->unk138.unk20->oam.priority = 3; + r6->unk138.unk20->coordOffsetEnabled = TRUE; + r6->unk138.unk20->animPaused = TRUE; + for (r5 = 0; r5 < r6->unk9; ++r5) + { + r2 = CreateSprite( + &gUnknown_082F4324, + r6->unk138.unkC[r5]->unk4 + 120, + r6->unk138.unkC[r5]->unk6 + 32, + 0 + ); + r6->unk138.unk24[r5] = &gSprites[r2]; + r6->unk138.unk24[r5]->oam.priority = 1; + r6->unk138.unk24[r5]->invisible = TRUE; + r6->unk138.unk24[r5]->coordOffsetEnabled = TRUE; + r6->unk138.unk24[r5]->animPaused = TRUE; + } + for (r5 = 0; r5 < ARRAY_COUNT(r6->unk138.unk4C); ++r5) + { + r2 = CreateSprite( + &gUnknown_082F433C, + gUnknown_082F41D2[r5][0] + 120, + gUnknown_082F41D2[r5][1] + 136, + 6 + ); + r6->unk138.unk4C[r5] = &gSprites[r2]; + r6->unk138.unk4C[r5]->oam.priority = 3; + r6->unk138.unk4C[r5]->invisible = TRUE; + r6->unk138.unk4C[r5]->animPaused = TRUE; + r6->unk138.unk4C[r5]->data[0] = r5; + } + for (r5 = 0; r5 < ARRAY_COUNT(r6->unk138.unk78); ++r5) + { + r2 = CreateSprite( + &gUnknown_082F4354, + 24 * r5 + 176, + 8, + 0 + ); + r6->unk138.unk78[r5] = &gSprites[r2]; + r6->unk138.unk78[r5]->oam.priority = 0; + r6->unk138.unk78[r5]->invisible = FALSE; + r6->unk138.unk78[r5]->animPaused = FALSE; + } + sub_8034D14(0, 0, &gUnknown_082F4384[0]); + sub_8034D14(1, 0, &gUnknown_082F4384[1]); + sub_8034D14(2, 0, &gUnknown_082F4384[2]); + if (r6->unk12 == 1) + sub_8022554(&r6->unk138); +} + +void sub_8022960(struct BerryCrushGame *r5) +{ + u8 r4 = 0; + + FreeSpriteTilesByTag(4); + FreeSpriteTilesByTag(3); + FreeSpriteTilesByTag(2); + FreeSpriteTilesByTag(1); + FreeSpritePaletteByTag(4); + FreeSpritePaletteByTag(2); + FreeSpritePaletteByTag(1); + for (; r4 < ARRAY_COUNT(r5->unk138.unk78); ++r4) + DestroySprite(r5->unk138.unk78[r4]); + sub_80353DC(2); + sub_80353DC(1); + sub_80353DC(0); + for (r4 = 0; r4 < ARRAY_COUNT(r5->unk138.unk4C); ++r4) + DestroySprite(r5->unk138.unk4C[r4]); + for (r4 = 0; r4 < r5->unk9; ++r4) + DestroySprite(r5->unk138.unk24[r4]); + if (r5->unk138.unk20->inUse) + DestroySprite(r5->unk138.unk20); +} + +void sub_8022A20(struct Sprite *sprite) +{ + if (sprite->animEnded) + { + sprite->invisible = TRUE; + sprite->animPaused = TRUE; + } +} + +void sub_8022A4C(struct Sprite *sprite) +{ + u8 r1 = 0; + SpriteCallback r5 = SpriteCallbackDummy; + + for (; r1 < ARRAY_COUNT(sprite->data); ++r1) + sprite->data[r1] = 0; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->invisible = TRUE; + sprite->animPaused = TRUE; + sprite->callback = r5; +} + +void sub_8022A94(struct Sprite *sprite) +{ + s16 *r4 = sprite->data; + + r4[1] += r4[2]; + sprite->pos2.y += r4[1] >> 8; + if (r4[7] & 0x8000) + { + sprite->data[0] += r4[3]; + r4[4] += r4[5]; + sprite->pos2.x = Sin(r4[4] >> 7, r4[6]); + if (r4[7] & 0x8000 && r4[4] >> 7 > 126) + { + sprite->pos2.x = 0; + r4[7] &= 0x7FFF; + } + } + sprite->pos1.x = r4[0] >> 7; + if (sprite->pos1.y + sprite->pos2.y > (r4[7] & 0x7FFF)) + sprite->callback = sub_8022A4C; +} + +void sub_8022B28(struct Sprite *sprite) +{ + s16 *r7 = sprite->data; + s16 r4, r5; + s32 r2; + u32 r8 = 0; + + r7 = sprite->data; + r2 = 640; + r7[1] = r2; + r7[2] = 32; + r7[7] = 168; + r4 = sprite->pos2.x * 128; + r5 = sub_81515D4(7, (168 - sprite->pos1.y) << 7, (r2 + 32) >> 1); + sprite->data[0] = sprite->pos1.x << 7; + r7[3] = sub_81515D4(7, r4, r5); + r2 = sub_8151550(7, r5, 85); + r7[4] = r8; + r7[5] = sub_81515D4(7, 0x3F80, r2); + r7[6] = sprite->pos2.x / 4; + r7[7] |= 0x8000; + sprite->pos2.y = r8; + sprite->pos2.x = r8; + sprite->callback = sub_8022A94; + sprite->animPaused = FALSE; + sprite->invisible = FALSE; +} + +void sub_8022BEC(u16 r5, u8 r4, u8 *r7) +{ + struct BerryCrushGame *r6 = sub_8020C00(); + + if (r5 > 25) + r5 = 0; + switch (r4) + { + case 0: + if (r5 != 0) + gUnknown_082F43CC[r5](r6, r7); + if (r6->unkE > 25) + r6->unkE = r4; + r6->unk4 = gUnknown_082F43CC[r6->unkE]; + break; + case 1: + r6->unk4 = gUnknown_082F43CC[r5]; + break; + } +} + +u32 sub_8022C58(struct BerryCrushGame *r6, u8 *r1) +{ + u16 r4; + u32 r0; +#ifndef NONMATCHING // fake match, nobody can write such code + register u32 r2 asm("r2"); + register u32 r3 asm("r3"); + + r2 = r1[0]; + r3 = r1[1]; + r3 <<= 8; + r2 |= r3; + r3 = r1[2]; + r3 <<= 16; + r2 |= r3; + r3 = r1[3]; + r3 <<= 24; + r0 = r2; + r0 |= r3; +#else + u32 r2; + + r0 = T1_READ_32(r1); +#endif + r2 = r1[9]; + r1[0] = r2; + r4 = r1[8] << 8; + r2 = r1[7]; + r4 |= r2; + gPaletteFade.bufferTransferDisabled = FALSE; + BeginNormalPaletteFade(r0, r1[4], r1[5], r1[6], r4); + UpdatePaletteFade(); + r6->unkE = 2; + return 0; +} + +u32 sub_8022CB0(struct BerryCrushGame *r4, u8 *r5) +{ + switch (r4->unkC) + { + case 0: + if (UpdatePaletteFade()) + return 0; + if(r5[0] != 0) + ++r4->unkC; + else + r4->unkC = 3; + return 0; + case 1: + sub_8010434(); + ++r4->unkC; + return 0; + case 2: + if (IsLinkTaskFinished()) + { + ++r4->unkC; + return 0; + } + return 0; + case 3: + sub_8022BEC(r4->unkF, 1, NULL); + r4->unkC = 0; + return 0; + default: + ++r4->unkC; + return 0; + } +} + +u32 sub_8022D14(struct BerryCrushGame *r7, u8 *r5) +{ + u16 r4 = r5[3]; + + r4 <<= 8; + r4 |= r5[2]; + switch (r7->unkC) + { + case 0: + DrawDialogueFrame(0, 0); + if (r5[1] & 2) + { + StringExpandPlaceholders(gStringVar4, gUnknown_082F32A4[r5[0]]); + AddTextPrinterParameterized2(0, 1, gStringVar4, r7->unkB, 0, 2, 1, 3); + } + else + { + AddTextPrinterParameterized2(0, 1, gUnknown_082F32A4[r5[0]], r7->unkB, 0, 2, 1, 3); + } + CopyWindowToVram(0, 3); + break; + case 1: + if (!IsTextPrinterActive(0)) + { + if (r4 == 0) + ++r7->unkC; + break; + } + return 0; + case 2: + if (!(r4 & gMain.newKeys)) + return 0; + break; + case 3: + if (r5[1] & 1) + ClearDialogWindowAndFrame(0, 1); + sub_8022BEC(r7->unkE, 1, NULL); + r7->unkC = r5[4]; + return 0; + } + ++r7->unkC; + return 0; +} + +u32 sub_8022E1C(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +{ + if (sub_802104C() != 0) + sub_8022BEC(r4->unkE, 0, r4->unk36); + return 0; +} + +u32 sub_8022E3C(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +{ + if (sub_802130C() != 0) + sub_8022BEC(r4->unkE, 0, r4->unk36); + return 0; +} + +u32 sub_8022E5C(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +{ + switch (r4->unkC) + { + case 0: + sub_8010434(); + break; + case 1: + if (IsLinkTaskFinished()) + { + PlayNewMapMusic(MUS_RG_SLOT); + sub_8022BEC(7, 1, NULL); + r4->unk12 = 3; + r4->unkC = 0; + } + return 0; + } + ++r4->unkC; + return 0; +} + +u32 sub_8022EAC(struct BerryCrushGame *r4, u8 *r5) +{ + switch (r4->unkC) + { + default: + ++r4->unkC; + break; + case 0: + sub_8024578(r4); + sub_8024644(r5, 0, 1, 0, 1); + r4->unkE = 7; + sub_8022BEC(3, 1, NULL); + break; + case 1: + r4->unkE = 8; + sub_8022BEC(5, 1, NULL); + r4->unkC = 2; + break; + } + return 0; +} + +u32 sub_8022F04(struct BerryCrushGame *r0, __attribute__((unused)) u8 *r1) +{ + r0->unk4 = NULL; + SetMainCallback2(sub_8020E1C); + return 0; +} From efa1ee1822408638e536361a2f21c0e3c5a03381 Mon Sep 17 00:00:00 2001 From: jiangzhengwenjz Date: Sat, 14 Dec 2019 13:30:47 +0800 Subject: [PATCH 4/8] sub_8022250 --- src/berry_crush.c | 308 +++------------------------------------------- 1 file changed, 14 insertions(+), 294 deletions(-) diff --git a/src/berry_crush.c b/src/berry_crush.c index 11028b0afc..8a88a2a926 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -1415,13 +1415,13 @@ void sub_802222C(struct BerryCrushGame *r4) sub_8022600(r4); } -#ifdef NONMATCHING void sub_8022250(u8 r4) { u8 r9 = 0, r2, r7, r10; u32 sp0C = 0; s16 *r6 = gTasks[r4].data; - + const u8 *r10_; // r5/sl register swap + switch (r6[0]) { case 0: @@ -1432,8 +1432,12 @@ void sub_8022250(u8 r4) DrawStdFrameWithCustomTileAndPalette((u8)r6[1], 0, 541, 13); break; case 1: - // r5/r10 register swap - r7 = 96 - GetStringWidth(1, gText_BerryCrush2, -1) / 2u; + r10_ = gText_BerryCrush2; + ++r10_; --r10_; + #ifndef NONMATCHING + asm("":::"r8"); + #endif + r7 = 96 - GetStringWidth(1, r10_, -1) / 2u; AddTextPrinterParameterized3( (u8)r6[1], 1, @@ -1441,9 +1445,10 @@ void sub_8022250(u8 r4) 1, sBerryCrushTextColorTable[0], 0, - gText_BerryCrush2 + r10_ ); - r7 = 96 - GetStringWidth(1, gText_PressingSpeedRankings, -1) / 2u; + r10_ = gText_PressingSpeedRankings; + r7 = 96 - GetStringWidth(1, r10_, -1) / 2u; AddTextPrinterParameterized3( (u8)r6[1], 1, @@ -1451,10 +1456,10 @@ void sub_8022250(u8 r4) 17, sBerryCrushTextColorTable[0], 0, - gText_PressingSpeedRankings + r10_ ); - - for (r10 = 41; r9 < 4; ++r9) + r10 = 41; + for (; r9 < 4; ++r9) { ConvertIntToDecimalStringN(gStringVar1, r9 + 2, 0, 1); StringExpandPlaceholders(gStringVar4, gText_Var1Players); @@ -1515,290 +1520,6 @@ void sub_8022250(u8 r4) } ++r6[0]; } -#else -NAKED -void sub_8022250(u8 r4) -{ - asm_unified("\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x14\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - movs r0, 0\n\ - mov r9, r0\n\ - movs r1, 0\n\ - str r1, [sp, 0xC]\n\ - lsls r0, r4, 2\n\ - adds r0, r4\n\ - lsls r0, 3\n\ - ldr r1, =gTasks + 0x8\n\ - adds r6, r0, r1\n\ - movs r1, 0\n\ - ldrsh r0, [r6, r1]\n\ - cmp r0, 0x1\n\ - beq _080222D0_case_1\n\ - cmp r0, 0x1\n\ - bgt _08022288\n\ - cmp r0, 0\n\ - beq _08022296_case_0\n\ - b _080224BA_case_def\n\ - .pool\n\ - _08022288:\n\ - cmp r0, 0x2\n\ - bne _0802228E\n\ - b _08022480_case_2\n\ - _0802228E:\n\ - cmp r0, 0x3\n\ - bne _08022294\n\ - b _08022494_case_3\n\ - _08022294:\n\ - b _080224BA_case_def\n\ - _08022296_case_0:\n\ - ldr r0, =gUnknown_082F32EC\n\ - bl AddWindow\n\ - strh r0, [r6, 0x2]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - bl PutWindowTilemap\n\ - ldrb r0, [r6, 0x2]\n\ - movs r1, 0\n\ - bl FillWindowPixelBuffer\n\ - ldrb r0, [r6, 0x2]\n\ - ldr r4, =0x0000021d\n\ - adds r1, r4, 0\n\ - movs r2, 0xD0\n\ - bl LoadUserWindowBorderGfx_\n\ - ldrb r0, [r6, 0x2]\n\ - movs r1, 0\n\ - adds r2, r4, 0\n\ - movs r3, 0xD\n\ - bl DrawStdFrameWithCustomTileAndPalette\n\ - b _080224BA_case_def\n\ - .pool\n\ - _080222D0_case_1:\n\ - ldr r0, =gText_BerryCrush2\n\ - mov r10, r0\n\ - movs r1, 0x1\n\ - negs r1, r1\n\ - mov r8, r1\n\ - movs r0, 0x1\n\ - mov r1, r10\n\ - mov r2, r8\n\ - bl GetStringWidth\n\ - lsrs r0, 1\n\ - movs r4, 0x60\n\ - subs r0, r4, r0\n\ - lsls r0, 24\n\ - lsrs r7, r0, 24\n\ - ldrb r0, [r6, 0x2]\n\ - ldr r5, =sBerryCrushTextColorTable\n\ - str r5, [sp]\n\ - mov r1, r9\n\ - str r1, [sp, 0x4]\n\ - mov r1, r10\n\ - str r1, [sp, 0x8]\n\ - movs r1, 0x1\n\ - adds r2, r7, 0\n\ - movs r3, 0x1\n\ - bl AddTextPrinterParameterized3\n\ - ldr r0, =gText_PressingSpeedRankings\n\ - mov r10, r0\n\ - movs r0, 0x1\n\ - mov r1, r10\n\ - mov r2, r8\n\ - bl GetStringWidth\n\ - lsrs r0, 1\n\ - subs r4, r0\n\ - lsls r4, 24\n\ - lsrs r7, r4, 24\n\ - ldrb r0, [r6, 0x2]\n\ - str r5, [sp]\n\ - mov r1, r9\n\ - str r1, [sp, 0x4]\n\ - mov r1, r10\n\ - str r1, [sp, 0x8]\n\ - movs r1, 0x1\n\ - adds r2, r7, 0\n\ - movs r3, 0x11\n\ - bl AddTextPrinterParameterized3\n\ - movs r0, 0x29\n\ - mov r10, r0\n\ - _08022336:\n\ - mov r1, r9\n\ - adds r1, 0x2\n\ - ldr r0, =gStringVar1\n\ - movs r2, 0\n\ - movs r3, 0x1\n\ - bl ConvertIntToDecimalStringN\n\ - ldr r0, =gStringVar4\n\ - ldr r1, =gText_Var1Players\n\ - bl StringExpandPlaceholders\n\ - ldrb r0, [r6, 0x2]\n\ - ldr r1, =sBerryCrushTextColors1\n\ - str r1, [sp]\n\ - movs r1, 0\n\ - str r1, [sp, 0x4]\n\ - ldr r1, =gStringVar4\n\ - str r1, [sp, 0x8]\n\ - movs r1, 0x1\n\ - movs r2, 0\n\ - mov r3, r10\n\ - bl AddTextPrinterParameterized3\n\ - movs r0, 0x1\n\ - ldr r1, =gText_TimesPerSec\n\ - movs r2, 0x1\n\ - negs r2, r2\n\ - bl GetStringWidth\n\ - movs r1, 0xC0\n\ - subs r1, r0\n\ - lsls r1, 24\n\ - lsrs r7, r1, 24\n\ - ldrb r0, [r6, 0x2]\n\ - ldr r1, =sBerryCrushTextColors1\n\ - str r1, [sp]\n\ - movs r1, 0\n\ - str r1, [sp, 0x4]\n\ - ldr r1, =gText_TimesPerSec\n\ - str r1, [sp, 0x8]\n\ - movs r1, 0x1\n\ - adds r2, r7, 0\n\ - mov r3, r10\n\ - bl AddTextPrinterParameterized3\n\ - movs r2, 0\n\ - mov r0, r9\n\ - lsls r4, r0, 1\n\ - mov r1, r10\n\ - adds r1, 0x10\n\ - str r1, [sp, 0x10]\n\ - movs r0, 0x1\n\ - add r9, r0\n\ - adds r0, r4, r6\n\ - ldrb r3, [r0, 0x4]\n\ - movs r1, 0x7\n\ - mov r12, r1\n\ - movs r0, 0x1\n\ - mov r8, r0\n\ - ldr r5, =gUnknown_082F334C\n\ - _080223AE:\n\ - mov r0, r12\n\ - subs r1, r0, r2\n\ - adds r0, r3, 0\n\ - asrs r0, r1\n\ - mov r1, r8\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _080223CA\n\ - lsls r0, r2, 2\n\ - adds r0, r5\n\ - ldr r0, [r0]\n\ - ldr r1, [sp, 0xC]\n\ - adds r1, r0\n\ - str r1, [sp, 0xC]\n\ - _080223CA:\n\ - adds r0, r2, 0x1\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - cmp r2, 0x7\n\ - bls _080223AE\n\ - adds r0, r4, r6\n\ - ldrh r1, [r0, 0x4]\n\ - lsrs r1, 8\n\ - ldr r0, =gStringVar1\n\ - movs r2, 0x1\n\ - movs r3, 0x3\n\ - bl ConvertIntToDecimalStringN\n\ - ldr r0, [sp, 0xC]\n\ - ldr r1, =0x000f4240\n\ - bl __udivsi3\n\ - adds r1, r0, 0\n\ - ldr r0, =gStringVar2\n\ - movs r2, 0x2\n\ - movs r3, 0x2\n\ - bl ConvertIntToDecimalStringN\n\ - ldr r0, =gStringVar4\n\ - ldr r1, =gText_XDotY3\n\ - bl StringExpandPlaceholders\n\ - movs r0, 0x1\n\ - ldr r1, =gStringVar4\n\ - movs r2, 0x1\n\ - negs r2, r2\n\ - bl GetStringWidth\n\ - subs r0, r7, r0\n\ - lsls r0, 24\n\ - lsrs r7, r0, 24\n\ - ldrb r0, [r6, 0x2]\n\ - ldr r1, =sBerryCrushTextColors1\n\ - str r1, [sp]\n\ - movs r1, 0\n\ - str r1, [sp, 0x4]\n\ - ldr r1, =gStringVar4\n\ - str r1, [sp, 0x8]\n\ - movs r1, 0x1\n\ - adds r2, r7, 0\n\ - mov r3, r10\n\ - bl AddTextPrinterParameterized3\n\ - ldr r1, [sp, 0x10]\n\ - lsls r0, r1, 24\n\ - lsrs r0, 24\n\ - mov r10, r0\n\ - movs r0, 0\n\ - str r0, [sp, 0xC]\n\ - mov r1, r9\n\ - lsls r0, r1, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ - cmp r0, 0x3\n\ - bhi _08022444\n\ - b _08022336\n\ - _08022444:\n\ - ldrb r0, [r6, 0x2]\n\ - movs r1, 0x3\n\ - bl CopyWindowToVram\n\ - b _080224BA_case_def\n\ - .pool\n\ - _08022480_case_2:\n\ - ldr r0, =gMain\n\ - ldrh r1, [r0, 0x2E]\n\ - movs r0, 0x3\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _080224BA_case_def\n\ - b _080224C0\n\ - .pool\n\ - _08022494_case_3:\n\ - ldrb r0, [r6, 0x2]\n\ - movs r1, 0x1\n\ - bl ClearStdWindowAndFrameToTransparent\n\ - ldrb r0, [r6, 0x2]\n\ - bl ClearWindowTilemap\n\ - ldrb r0, [r6, 0x2]\n\ - bl RemoveWindow\n\ - adds r0, r4, 0\n\ - bl DestroyTask\n\ - bl EnableBothScriptContexts\n\ - bl ScriptContext2_Disable\n\ - mov r0, r9\n\ - b _080224BE\n\ - _080224BA_case_def:\n\ - ldrh r0, [r6]\n\ - adds r0, 0x1\n\ - _080224BE:\n\ - strh r0, [r6]\n\ - _080224C0:\n\ - add sp, 0x14\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0"); -} -#endif void ShowBerryCrushRankings(void) { @@ -2052,7 +1773,6 @@ void sub_8022B28(struct Sprite *sprite) s32 r2; u32 r8 = 0; - r7 = sprite->data; r2 = 640; r7[1] = r2; r7[2] = 32; From 50c48d7ef63ffdb40e3019d25396baedef98a9dc Mon Sep 17 00:00:00 2001 From: jiangzhengwenjz Date: Sun, 15 Dec 2019 14:04:15 +0800 Subject: [PATCH 5/8] sub_8023BC0 --- asm/berry_crush.s | 1604 --------------------------------------------- src/berry_crush.c | 694 ++++++++++++++++++-- 2 files changed, 649 insertions(+), 1649 deletions(-) diff --git a/asm/berry_crush.s b/asm/berry_crush.s index ebf8191889..247341448f 100755 --- a/asm/berry_crush.s +++ b/asm/berry_crush.s @@ -5,1610 +5,6 @@ .text - thumb_func_start sub_8022F1C -sub_8022F1C: @ 8022F1C - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r2, r1, 0 - ldrb r0, [r5, 0xC] - cmp r0, 0x5 - bls _08022F2C - b _08023060 -_08022F2C: - lsls r0, 2 - ldr r1, =_08022F3C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08022F3C: - .4byte _08022F54 - .4byte _08022F74 - .4byte _08022F7A - .4byte _08022FAA - .4byte _08022FBA - .4byte _08023044 -_08022F54: - movs r0, 0x1 - str r0, [sp] - adds r0, r2, 0 - movs r1, 0x1 - movs r2, 0 - movs r3, 0 - bl sub_8024644 - movs r0, 0x9 - strb r0, [r5, 0xE] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - b _08023066 -_08022F74: - bl sub_8010434 - b _08023060 -_08022F7A: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _08023066 - adds r4, r5, 0 - adds r4, 0x42 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0xC - bl memset - ldrb r0, [r5, 0x8] - lsls r0, 5 - adds r0, r5, r0 - adds r0, 0xA4 - ldrh r0, [r0] - strh r0, [r4] - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x2 - bl SendBlock - b _08023060 -_08022FAA: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _08023066 - movs r0, 0 - strh r0, [r5, 0x10] - b _08023060 -_08022FBA: - bl GetBlockReceivedStatus - ldr r2, =gUnknown_082F4448 - ldrb r4, [r5, 0x9] - subs r1, r4, 0x2 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _08023066 - movs r3, 0 - cmp r3, r4 - bcs _0802301E - ldr r7, =gBlockRecvBuffer - movs r6, 0 - ldr r4, =gUnknown_0858AB24 -_08022FDC: - lsls r0, r3, 5 - adds r0, r5, r0 - lsls r1, r3, 8 - adds r1, r7 - ldrh r1, [r1] - adds r2, r0, 0 - adds r2, 0xA4 - strh r1, [r2] - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0xB0 - bls _08022FF6 - strh r6, [r2] -_08022FF6: - ldrh r1, [r2] - lsls r1, 2 - adds r1, r4 - ldrh r0, [r5, 0x18] - ldrb r1, [r1] - adds r0, r1 - strh r0, [r5, 0x18] - ldrh r0, [r2] - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x2] - ldr r0, [r5, 0x1C] - adds r0, r1 - str r0, [r5, 0x1C] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r5, 0x9] - cmp r3, r0 - bcc _08022FDC -_0802301E: - movs r0, 0 - strh r0, [r5, 0x10] - bl ResetBlockReceivedFlags - movs r1, 0x18 - ldrsh r0, [r5, r1] - lsls r0, 8 - movs r1, 0x80 - lsls r1, 6 - bl sub_81515FC - str r0, [r5, 0x20] - b _08023060 - .pool -_08023044: - movs r0, 0 - movs r1, 0x1 - bl ClearDialogWindowAndFrame - movs r0, 0xA - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - movs r1, 0 - movs r0, 0x4 - strh r0, [r5, 0x12] - strb r1, [r5, 0xC] - b _08023066 -_08023060: - ldrb r0, [r5, 0xC] - adds r0, 0x1 - strb r0, [r5, 0xC] -_08023066: - movs r0, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8022F1C - - thumb_func_start sub_8023070 -sub_8023070: @ 8023070 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0xC] - cmp r0, 0x6 - bls _0802307C - b _080231A8 -_0802307C: - lsls r0, 2 - ldr r1, =_0802308C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0802308C: - .4byte _080230A8 - .4byte _080230BA - .4byte _080230E8 - .4byte _08023120 - .4byte _08023150 - .4byte _08023172 - .4byte _08023184 -_080230A8: - movs r0, 0x9C - lsls r0, 1 - adds r1, r4, r0 - adds r0, r4, 0 - bl sub_80214A8 - bl sub_8010434 - b _080231A8 -_080230BA: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _080231AE - movs r2, 0x9C - lsls r2, 1 - adds r1, r4, r2 - movs r0, 0 - strb r0, [r1] - ldr r3, =0x00000139 - adds r1, r4, r3 - strb r0, [r1] - adds r2, 0x2 - adds r1, r4, r2 - strb r0, [r1] - adds r3, 0x2 - adds r1, r4, r3 - strb r0, [r1] - b _080231A8 - .pool -_080230E8: - movs r0, 0x9C - lsls r0, 1 - adds r3, r4, r0 - ldrb r0, [r3] - lsls r0, 2 - movs r2, 0xB8 - lsls r2, 1 - adds r1, r4, r2 - adds r0, r1, r0 - ldr r2, [r0] - ldr r0, =sub_8021608 - str r0, [r2, 0x1C] - ldrb r0, [r3] - lsls r0, 2 - adds r1, r0 - ldr r1, [r1] - adds r1, 0x2C - ldrb r2, [r1] - movs r0, 0x7F - ands r0, r2 - strb r0, [r1] - movs r0, 0x3D - bl PlaySE - b _080231A8 - .pool -_08023120: - movs r3, 0x9C - lsls r3, 1 - adds r2, r4, r3 - ldrb r0, [r2] - lsls r0, 2 - adds r3, 0x38 - adds r1, r4, r3 - adds r3, r1, r0 - ldr r0, [r3] - ldr r1, [r0, 0x1C] - ldr r0, =sub_8021608 - cmp r1, r0 - beq _080231AE - movs r0, 0 - str r0, [r3] - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - bl sub_8010434 - b _080231A8 - .pool -_08023150: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _080231AE - movs r0, 0x9C - lsls r0, 1 - adds r1, r4, r0 - ldrb r0, [r1] - ldrb r2, [r4, 0x9] - cmp r0, r2 - bcs _0802316C - movs r0, 0x2 - b _080231AC -_0802316C: - movs r0, 0 - strb r0, [r1] - b _080231A8 -_08023172: - movs r3, 0x9C - lsls r3, 1 - adds r1, r4, r3 - adds r0, r4, 0 - bl sub_80216A8 - bl sub_8010434 - b _080231A8 -_08023184: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _080231AE - movs r0, 0x2B - bl PlaySE - movs r0, 0xB - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - movs r1, 0 - movs r0, 0x5 - strh r0, [r4, 0x12] - strb r1, [r4, 0xC] - b _080231AE -_080231A8: - ldrb r0, [r4, 0xC] - adds r0, 0x1 -_080231AC: - strb r0, [r4, 0xC] -_080231AE: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8023070 - - thumb_func_start sub_80231B8 -sub_80231B8: @ 80231B8 - push {r4-r7,lr} - adds r4, r0, 0 - ldrb r1, [r4, 0xC] - cmp r1, 0x1 - beq _0802321C - cmp r1, 0x1 - bgt _080231CC - cmp r1, 0 - beq _080231D6 - b _080232DC -_080231CC: - cmp r1, 0x2 - beq _0802329C - cmp r1, 0x3 - beq _080232BE - b _080232DC -_080231D6: - ldrh r0, [r4, 0x2A] - adds r0, 0x4 - strh r0, [r4, 0x2A] - lsls r0, 16 - cmp r0, 0 - bge _080231E4 - b _080232E2 -_080231E4: - strh r1, [r4, 0x2A] - ldr r0, =0x00000139 - adds r3, r4, r0 - movs r0, 0x4 - strb r0, [r3] - movs r2, 0x9C - lsls r2, 1 - adds r1, r4, r2 - movs r0, 0 - strb r0, [r1] - ldr r2, =gUnknown_082F326C - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - adds r0, r2 - ldrb r0, [r0] - movs r2, 0x9D - lsls r2, 1 - adds r1, r4, r2 - strb r0, [r1] - movs r0, 0xD6 - bl PlaySE - b _080232DC - .pool -_0802321C: - ldr r7, =gUnknown_082F326C - movs r0, 0x9C - lsls r0, 1 - adds r6, r4, r0 - ldr r1, =0x00000139 - adds r5, r4, r1 - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - ldrb r2, [r6] - adds r0, r2 - adds r0, r7 - movs r1, 0 - ldrsb r1, [r0, r1] - strh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x12 - bl SetGpuReg - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1A - bl SetGpuReg - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1E - bl SetGpuReg - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - movs r1, 0x9D - lsls r1, 1 - adds r2, r4, r1 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r2] - cmp r0, r1 - bcc _080232E2 - ldrb r0, [r5] - cmp r0, 0 - beq _080232DC - subs r0, 0x1 - strb r0, [r5] - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - adds r0, r7 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0 - strb r0, [r6] - b _080232E2 - .pool -_0802329C: - movs r0, 0 - strh r0, [r4, 0x2C] - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - bl sub_8010434 - b _080232DC -_080232BE: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _080232E2 - movs r0, 0xC - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - movs r1, 0 - movs r0, 0x6 - strh r0, [r4, 0x12] - strb r1, [r4, 0xC] - b _080232E2 -_080232DC: - ldrb r0, [r4, 0xC] - adds r0, 0x1 - strb r0, [r4, 0xC] -_080232E2: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80231B8 - - thumb_func_start sub_80232EC -sub_80232EC: @ 80232EC - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrb r0, [r4, 0xC] - cmp r0, 0x1 - beq _0802330C - cmp r0, 0x1 - bgt _08023302 - cmp r0, 0 - beq _08023332 - b _0802338C -_08023302: - cmp r0, 0x2 - beq _0802332A - cmp r0, 0x3 - beq _08023338 - b _0802338C -_0802330C: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _08023392 - movs r1, 0x80 - lsls r1, 5 - movs r0, 0 - str r0, [sp] - adds r0, r1, 0 - movs r2, 0x78 - movs r3, 0x50 - bl sub_802EB24 - b _0802338C -_0802332A: - bl sub_802EB84 - cmp r0, 0 - bne _08023392 -_08023332: - bl sub_8010434 - b _0802338C -_08023338: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _08023392 - movs r0, 0x9C - lsls r0, 1 - adds r1, r4, r0 - movs r0, 0 - strb r0, [r1] - ldr r2, =0x00000139 - adds r1, r4, r2 - strb r0, [r1] - adds r2, 0x1 - adds r1, r4, r2 - strb r0, [r1] - adds r2, 0x1 - adds r1, r4, r2 - strb r0, [r1] - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - cmp r0, 0 - bne _08023378 - movs r0, 0xD - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - b _08023382 - .pool -_08023378: - movs r0, 0xE - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC -_08023382: - movs r1, 0 - movs r0, 0x7 - strh r0, [r4, 0x12] - strb r1, [r4, 0xC] - b _08023392 -_0802338C: - ldrb r0, [r4, 0xC] - adds r0, 0x1 - strb r0, [r4, 0xC] -_08023392: - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80232EC - - thumb_func_start sub_802339C -sub_802339C: @ 802339C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r4, r0, 0 - movs r0, 0 - mov r8, r0 - movs r2, 0 - adds r7, r2, 0 - ldrb r1, [r4, 0x9] - cmp r7, r1 - bcs _080234AA - movs r2, 0x5E - adds r2, r4 - mov r9, r2 - ldr r3, =gUnknown_082F325C - mov r10, r3 -_080233C0: - lsls r0, r7, 4 - ldr r1, =gRecvCmds - adds r2, r0, r1 - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - movs r3, 0xBC - lsls r3, 6 - cmp r0, r3 - bne _0802349E - ldrh r0, [r2, 0x2] - cmp r0, 0x2 - bne _0802349E - ldrb r1, [r2, 0x4] - movs r0, 0x4 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _08023496 - mov r0, r9 - ldrb r2, [r0] - lsrs r1, r2, 3 - mov r3, r10 - adds r0, r7, r3 - ldrb r0, [r0] - orrs r1, r0 - lsls r1, 3 - movs r0, 0x7 - ands r0, r2 - orrs r0, r1 - mov r1, r9 - strb r0, [r1] - lsls r2, r7, 5 - adds r3, r4, r2 - mov r12, r3 - mov r1, r12 - adds r1, 0xB5 - movs r0, 0x1 - strb r0, [r1] - subs r1, 0x7 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - subs r1, 0x8 - ldrh r0, [r4, 0x28] - ldrh r1, [r1] - subs r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - mov r5, r12 - adds r5, 0xAA - ldrh r1, [r5] - subs r0, r1, 0x1 - adds r6, r2, 0 - cmp r3, r0 - blt _08023468 - adds r0, r1, 0x1 - cmp r3, r0 - bgt _08023468 - mov r1, r12 - adds r1, 0xA8 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - strh r3, [r5] - mov r0, r12 - adds r0, 0xAC - ldrh r1, [r1] - ldrh r2, [r0] - cmp r1, r2 - bls _08023476 - strh r1, [r0] - b _08023476 - .pool -_08023468: - adds r0, r4, r6 - adds r2, r0, 0 - adds r2, 0xA8 - movs r1, 0 - strh r1, [r2] - adds r0, 0xAA - strh r3, [r0] -_08023476: - adds r1, r4, r6 - ldrh r0, [r4, 0x28] - adds r3, r1, 0 - adds r3, 0xA6 - movs r2, 0 - strh r0, [r3] - adds r1, 0xB4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bls _0802349E - strb r2, [r1] - b _0802349E -_08023496: - lsls r0, r7, 5 - adds r0, r4, r0 - adds r0, 0xB5 - strb r1, [r0] -_0802349E: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r3, [r4, 0x9] - cmp r7, r3 - bcc _080233C0 -_080234AA: - mov r0, r8 - cmp r0, 0x1 - bls _080234E0 - movs r7, 0 - ldrb r1, [r4, 0x9] - cmp r7, r1 - bcs _080234E0 - movs r3, 0x2 -_080234BA: - lsls r0, r7, 5 - adds r1, r4, r0 - adds r2, r1, 0 - adds r2, 0xB5 - ldrb r0, [r2] - cmp r0, 0 - beq _080234D4 - orrs r0, r3 - strb r0, [r2] - adds r1, 0xB0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080234D4: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r2, [r4, 0x9] - cmp r7, r2 - bcc _080234BA -_080234E0: - mov r3, r8 - cmp r3, 0 - beq _08023548 - ldrh r0, [r4, 0x2E] - add r0, r8 - strh r0, [r4, 0x2E] - ldr r1, =gUnknown_082F3264 - mov r0, r8 - subs r0, 0x1 - adds r0, r1 - ldrb r0, [r0] - add r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrh r0, [r4, 0x34] - add r0, r8 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x1A] - add r0, r8 - strh r0, [r4, 0x1A] - movs r1, 0x18 - ldrsh r0, [r4, r1] - movs r3, 0x1A - ldrsh r2, [r4, r3] - subs r0, r2 - cmp r0, 0 - ble _08023534 - lsls r2, 8 - ldr r1, [r4, 0x20] - adds r0, r2, 0 - bl sub_81515FC - adds r2, r0, 0 - asrs r2, 8 - adds r0, r4, 0 - adds r0, 0x24 - strb r2, [r0] - b _08023548 - .pool -_08023534: - adds r1, r4, 0 - adds r1, 0x24 - movs r0, 0x20 - strb r0, [r1] - adds r2, r4, 0 - adds r2, 0x5E - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_08023548: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_802339C - - thumb_func_start sub_8023558 -sub_8023558: @ 8023558 - push {r4-r6,lr} - adds r3, r0, 0 - movs r6, 0 - movs r1, 0 - adds r4, r1, 0 - ldrb r0, [r3, 0x9] - cmp r4, r0 - bcs _080235B0 - adds r5, r3, 0 - adds r5, 0x64 -_0802356C: - lsls r0, r4, 5 - adds r1, r3, r0 - adds r0, r1, 0 - adds r0, 0xB5 - ldrb r2, [r0] - cmp r2, 0 - beq _080235A4 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r1, 0 - adds r0, 0xB4 - ldrb r0, [r0] - adds r1, r0, 0x1 - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _08023594 - movs r0, 0x4 - orrs r1, r0 -_08023594: - lsls r0, r4, 1 - adds r0, r4 - lsls r1, r0 - lsls r0, r1, 16 - lsrs r1, r0, 16 - ldrh r0, [r5] - orrs r1, r0 - strh r1, [r5] -_080235A4: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r1, [r3, 0x9] - cmp r4, r1 - bcc _0802356C -_080235B0: - adds r0, r3, 0 - adds r0, 0x24 - ldrb r1, [r0] - adds r0, 0x3C - strh r1, [r0] - cmp r6, 0 - bne _080235D4 - ldr r2, =0x0000013b - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080236A0 - movs r4, 0x9C - lsls r4, 1 - adds r1, r3, r4 - b _08023612 - .pool -_080235D4: - ldr r5, =0x0000013b - adds r2, r3, r5 - ldrb r0, [r2] - cmp r0, 0 - beq _0802361A - ldr r0, =0x00000139 - adds r1, r3, r0 - ldrb r2, [r1] - cmp r6, r2 - beq _0802360C - subs r0, r6, 0x1 - strb r0, [r1] - ldr r1, =gUnknown_082F3290 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - movs r4, 0x9D - lsls r4, 1 - adds r1, r3, r4 - strb r0, [r1] - b _08023640 - .pool -_0802360C: - movs r5, 0x9C - lsls r5, 1 - adds r1, r3, r5 -_08023612: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08023640 -_0802361A: - movs r0, 0x9C - lsls r0, 1 - adds r1, r3, r0 - movs r0, 0 - strb r0, [r1] - subs r0, r6, 0x1 - ldr r4, =0x00000139 - adds r1, r3, r4 - strb r0, [r1] - ldr r1, =gUnknown_082F3290 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - movs r5, 0x9D - lsls r5, 1 - adds r1, r3, r5 - strb r0, [r1] - movs r0, 0x1 - strb r0, [r2] -_08023640: - ldr r0, =0x0000013b - adds r4, r3, r0 - ldrb r0, [r4] - cmp r0, 0 - beq _080236A0 - movs r2, 0x9C - lsls r2, 1 - adds r1, r3, r2 - movs r5, 0x9D - lsls r5, 1 - adds r2, r3, r5 - ldrb r0, [r1] - ldrb r5, [r2] - cmp r0, r5 - bcc _0802367C - movs r0, 0 - strb r0, [r1] - ldr r5, =0x00000139 - adds r1, r3, r5 - strb r0, [r1] - strb r0, [r2] - strb r0, [r4] - movs r1, 0 - b _08023690 - .pool -_0802367C: - ldr r2, =gUnknown_082F3290 - ldrb r1, [r1] - ldr r4, =0x00000139 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 2 - adds r0, 0x1 - adds r1, r0 - adds r1, r2 - ldrb r1, [r1] -_08023690: - adds r0, r3, 0 - adds r0, 0x5F - strb r1, [r0] - b _080236A8 - .pool -_080236A0: - adds r1, r3, 0 - adds r1, 0x5F - movs r0, 0 - strb r0, [r1] -_080236A8: - ldrh r1, [r3, 0x26] - adds r0, r3, 0 - adds r0, 0x62 - strh r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8023558 - - thumb_func_start sub_80236B8 -sub_80236B8: @ 80236B8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - ldr r3, =gMain - ldrh r1, [r3, 0x2E] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _080236DA - adds r2, r5, 0 - adds r2, 0x5E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080236DA: - ldrh r1, [r3, 0x2C] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _080236FA - ldrb r0, [r5, 0x8] - lsls r0, 5 - adds r0, r5, r0 - adds r1, r0, 0 - adds r1, 0xB2 - ldrh r0, [r1] - ldrh r2, [r5, 0x28] - cmp r0, r2 - bcs _080236FA - adds r0, 0x1 - strh r0, [r1] -_080236FA: - ldrb r0, [r5, 0x8] - adds r7, r5, 0 - adds r7, 0x5E - cmp r0, 0 - beq _08023710 - ldrb r1, [r7] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _08023710 - b _0802384C -_08023710: - adds r4, r5, 0 - adds r4, 0x5C - movs r0, 0x2 - strh r0, [r4] - ldrh r0, [r5, 0x28] - movs r1, 0x1E - bl __umodsi3 - lsls r0, 16 - mov r8, r4 - adds r6, r5, 0 - adds r6, 0x25 - cmp r0, 0 - bne _08023768 - movs r0, 0x2E - ldrsh r2, [r5, r0] - ldr r1, =gUnknown_082F4444 - ldrb r0, [r5, 0x9] - subs r0, 0x2 - adds r0, r1 - ldrb r0, [r0] - cmp r2, r0 - ble _08023754 - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - ldrb r0, [r6] - movs r1, 0x10 - orrs r0, r1 - b _0802375C - .pool -_08023754: - ldrb r1, [r6] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 -_0802375C: - strb r0, [r6] - movs r0, 0 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] -_08023768: - ldrh r0, [r5, 0x28] - movs r1, 0xF - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _080237DE - movs r0, 0x34 - ldrsh r2, [r5, r0] - ldr r3, =gUnknown_082F4434 - ldrb r0, [r5, 0x9] - subs r0, 0x2 - lsls r1, r0, 2 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r2, r0 - bge _08023798 - ldrb r1, [r6] - movs r0, 0x1F - ands r0, r1 - strb r0, [r6] - b _080237D8 - .pool -_08023798: - adds r0, r3, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r2, r0 - bge _080237AC - ldrb r0, [r6] - movs r1, 0x1F - ands r1, r0 - movs r0, 0x20 - b _080237D4 -_080237AC: - adds r0, r3, 0x2 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r2, r0 - bge _080237BC - movs r0, 0x2 - strh r0, [r5, 0x34] - b _080237D8 -_080237BC: - adds r0, r3, 0x3 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r2, r0 - bge _080237CC - movs r0, 0x3 - strh r0, [r5, 0x34] - b _080237D8 -_080237CC: - ldrb r0, [r6] - movs r1, 0x1F - ands r1, r0 - movs r0, 0x80 -_080237D4: - orrs r1, r0 - strb r1, [r6] -_080237D8: - movs r0, 0 - strh r0, [r5, 0x34] - b _0802380A -_080237DE: - ldrh r0, [r5, 0x10] - adds r0, 0x1 - strh r0, [r5, 0x10] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x3C - bls _0802380A - cmp r0, 0x46 - bls _080237FA - bl sub_8011AC8 - movs r0, 0 - strh r0, [r5, 0x10] - b _0802380A -_080237FA: - ldrb r0, [r7] - movs r4, 0xF8 - ands r4, r0 - cmp r4, 0 - bne _0802380A - bl sub_8011AC8 - strh r4, [r5, 0x10] -_0802380A: - ldrh r1, [r5, 0x28] - ldr r0, =0x00008c9f - cmp r1, r0 - bls _0802381A - ldrb r0, [r7] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r7] -_0802381A: - ldrb r1, [r6] - lsls r1, 27 - lsrs r1, 31 - lsls r1, 1 - ldrb r2, [r7] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7] - ldrb r0, [r6] - lsrs r0, 5 - adds r2, r5, 0 - adds r2, 0x66 - strh r0, [r2] - adds r4, r5, 0 - adds r4, 0x42 - adds r0, r4, 0 - mov r1, r8 - movs r2, 0xC - bl memcpy - adds r0, r4, 0 - bl sub_800FE50 -_0802384C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80236B8 - - thumb_func_start sub_802385C -sub_802385C: @ 802385C - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 - ldr r3, =gRecvCmds - ldrb r0, [r5, 0x9] - cmp r4, r0 - bcs _08023880 - movs r1, 0 -_0802386C: - lsls r0, r4, 5 - adds r0, r5, r0 - adds r0, 0xB5 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r5, 0x9] - cmp r4, r0 - bcc _0802386C -_08023880: - adds r2, r3, 0 - ldrh r0, [r2] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - movs r0, 0xBC - lsls r0, 6 - cmp r1, r0 - bne _08023898 - ldrh r0, [r2, 0x2] - cmp r0, 0x2 - beq _080238AC -_08023898: - adds r2, r5, 0 - adds r2, 0x25 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - b _080238EA - .pool -_080238AC: - adds r4, r5, 0 - adds r4, 0x4E - adds r0, r4, 0 - adds r1, r3, 0 - movs r2, 0xE - bl memcpy - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x2A] - movs r0, 0x5 - ldrsb r0, [r4, r0] - strh r0, [r5, 0x2C] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x28] - movs r0, 0x9C - lsls r0, 1 - adds r1, r5, r0 - adds r0, r5, 0 - bl sub_80216E0 - ldrb r1, [r4, 0x4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080238EA - adds r0, r5, 0 - adds r0, 0x25 - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] -_080238EA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_802385C - - thumb_func_start sub_80238F0 -sub_80238F0: @ 80238F0 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x5C - movs r1, 0 - movs r2, 0xC - bl memset - adds r0, r4, 0 - adds r0, 0x4E - movs r1, 0 - movs r2, 0xE - bl memset - adds r0, r4, 0 - bl sub_802385C - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x12 - bl SetGpuReg - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1A - bl SetGpuReg - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1E - bl SetGpuReg - adds r0, r4, 0 - adds r0, 0x25 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08023978 - ldrh r1, [r4, 0x28] - ldr r0, =0x00008c9f - cmp r1, r0 - bls _08023964 - adds r0, 0x1 - strh r0, [r4, 0x28] - movs r0, 0x10 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - b _0802396E - .pool -_08023964: - movs r0, 0xF - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC -_0802396E: - movs r1, 0 - movs r0, 0 - strh r0, [r4, 0x10] - strb r1, [r4, 0xC] - b _08023992 -_08023978: - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - adds r0, r4, 0 - bl sub_802339C - adds r0, r4, 0 - bl sub_8023558 - adds r0, r4, 0 - bl sub_80236B8 - movs r0, 0 -_08023992: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80238F0 - - thumb_func_start sub_8023998 -sub_8023998: @ 8023998 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x5C - movs r1, 0 - movs r2, 0xC - bl memset - adds r0, r4, 0 - adds r0, 0x4E - movs r1, 0 - movs r2, 0xE - bl memset - adds r0, r4, 0 - bl sub_802385C - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x12 - bl SetGpuReg - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1A - bl SetGpuReg - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1E - bl SetGpuReg - adds r0, r4, 0 - adds r0, 0x25 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08023A20 - ldrh r1, [r4, 0x28] - ldr r0, =0x00008c9f - cmp r1, r0 - bls _08023A0C - adds r0, 0x1 - strh r0, [r4, 0x28] - movs r0, 0x10 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - b _08023A16 - .pool -_08023A0C: - movs r0, 0xF - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC -_08023A16: - movs r1, 0 - movs r0, 0 - strh r0, [r4, 0x10] - strb r1, [r4, 0xC] - b _08023A28 -_08023A20: - adds r0, r4, 0 - bl sub_80236B8 - movs r0, 0 -_08023A28: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8023998 - - thumb_func_start sub_8023A30 -sub_8023A30: @ 8023A30 - push {r4-r7,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0xC] - cmp r0, 0x5 - bls _08023A3C - b _08023BB2 -_08023A3C: - lsls r0, 2 - ldr r1, =_08023A4C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08023A4C: - .4byte _08023A64 - .4byte _08023A8C - .4byte _08023ADC - .4byte _08023B5C - .4byte _08023B7A - .4byte _08023B94 -_08023A64: - movs r0, 0x8 - strh r0, [r4, 0x12] - movs r0, 0xD6 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - ldr r2, =0x000003ff - movs r1, 0x8 - bl BlendPalettes - movs r0, 0x9C - lsls r0, 1 - adds r1, r4, r0 - movs r0, 0x2 - strb r0, [r1] - b _08023BB2 - .pool -_08023A8C: - movs r1, 0x9C - lsls r1, 1 - adds r5, r4, r1 - ldrb r0, [r5] - subs r0, 0x1 - strb r0, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _08023AA2 - b _08023BB8 -_08023AA2: - movs r0, 0x1 - negs r0, r0 - ldr r2, =0x000003ff - movs r1, 0 - bl BlendPalettes - ldr r2, =0x00000139 - adds r1, r4, r2 - movs r0, 0x4 - strb r0, [r1] - movs r0, 0 - strb r0, [r5] - ldr r2, =gUnknown_082F326C - ldrb r1, [r1] - lsls r0, r1, 3 - subs r0, r1 - adds r0, r2 - ldrb r0, [r0] - movs r2, 0x9D - lsls r2, 1 - adds r1, r4, r2 - strb r0, [r1] - b _08023BB2 - .pool -_08023ADC: - ldr r7, =gUnknown_082F326C - movs r0, 0x9C - lsls r0, 1 - adds r6, r4, r0 - ldr r1, =0x00000139 - adds r5, r4, r1 - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - ldrb r2, [r6] - adds r0, r2 - adds r0, r7 - movs r1, 0 - ldrsb r1, [r0, r1] - strh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x12 - bl SetGpuReg - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1A - bl SetGpuReg - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1E - bl SetGpuReg - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - movs r1, 0x9D - lsls r1, 1 - adds r2, r4, r1 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r2] - cmp r0, r1 - bcc _08023BB8 - ldrb r0, [r5] - cmp r0, 0 - beq _08023BB2 - subs r0, 0x1 - strb r0, [r5] - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - adds r0, r7 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0 - strb r0, [r6] - b _08023BB8 - .pool -_08023B5C: - movs r0, 0 - strh r0, [r4, 0x2C] - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - b _08023BB2 -_08023B7A: - movs r2, 0x9C - lsls r2, 1 - adds r1, r4, r2 - adds r0, r4, 0 - bl sub_80218D4 - cmp r0, 0 - beq _08023BB8 - bl sub_8010434 - movs r0, 0 - strh r0, [r4, 0x10] - b _08023BB2 -_08023B94: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _08023BB8 - movs r0, 0x11 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - movs r1, 0 - movs r0, 0 - strh r0, [r4, 0x10] - strb r1, [r4, 0xC] - b _08023BBA -_08023BB2: - ldrb r0, [r4, 0xC] - adds r0, 0x1 - strb r0, [r4, 0xC] -_08023BB8: - movs r0, 0 -_08023BBA: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8023A30 - thumb_func_start sub_8023BC0 sub_8023BC0: @ 8023BC0 push {r4-r6,lr} diff --git a/src/berry_crush.c b/src/berry_crush.c index 8a88a2a926..fb1e5c7a01 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -18,6 +18,7 @@ #include "menu.h" #include "overworld.h" #include "palette.h" +#include "pokemon_jump.h" #include "rom_8034C54.h" #include "scanline_effect.h" #include "script.h" @@ -37,8 +38,12 @@ struct BerryCrushGame_Player { u16 unk0; - u8 filler2[2]; - u8 unk4[16]; + u16 unk2; + union + { + u8 as_bytes[16]; + u16 as_hwords[8]; + } unk4; u8 unk14[12]; }; @@ -54,6 +59,51 @@ typedef union BerryCrushGame_Players struct BerryCrushGame_PlayersSeparate separate; } BerryCrushGame_Players; +struct __attribute__((packed, aligned(2))) BerryCrushGame_4E +{ + u8 filler0[0x4]; + u8 unk4_0:1; + u8 unk4_1:1; + s8 unk5; + u16 unk6; + u16 unk8; + u16 unkA; + u16 unkC; +}; + +struct __attribute__((packed)) BerryCrushGame_40 +{ + u8 unk0[2]; + u16 unk2[6]; + struct BerryCrushGame_4E unkE; +}; + +struct __attribute__((packed, aligned(2))) BerryCrushGame_5C +{ + u16 unk00; + u8 unk02_0:1; + u8 unk02_1:1; + u8 unk02_2:1; + u8 unk02_3:5; + u8 unk03; + u16 unk04; + u16 unk06; + u16 unk08; + u16 unk0A; +}; + +struct BerryCrushGame_68 +{ + int unk00; + u16 unk04; + u8 filler06[2]; + u16 unk08; + u16 unk0A; + u16 unk0C[8]; // TODO: Resolve the type of the field. + BerryCrushGame_Players unk1C; + u8 fillerBC[20]; +}; + struct BerryCrushGame_138_C { u8 unk0; @@ -68,7 +118,10 @@ struct BerryCrushGame_138_C struct BerryCrushGame_138 { - u8 filler0[0x4]; + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; s16 unk4; s16 unk6; s16 unk8; @@ -84,33 +137,6 @@ struct BerryCrushGame_138 u8 unk83[5]; }; -struct BerryCrushGame_4E -{ - u8 filler0[0x4]; - u8 unk4; - u8 filler5[0x5]; - u16 unkA; - u16 unkC; -}; - -struct __attribute__((packed)) BerryCrushGame_40 -{ - u8 filler0[0xE]; - struct BerryCrushGame_4E unkE; -}; - -struct BerryCrushGame_68 -{ - int unk00; - u16 unk04; - u8 filler06[2]; - u16 unk08; - u16 unk0A; - u16 unk0C[8]; // TODO: Resolve the type of the field. - BerryCrushGame_Players unk1C; - u8 fillerBC[20]; -}; - struct BerryCrushGame { MainCallback unk0; @@ -123,24 +149,32 @@ struct BerryCrushGame u8 fillerD[0x1]; u8 unkE; u8 unkF; - u8 filler10[0x2]; + u16 unk10; u16 unk12; u8 filler14[0x2]; u16 unk16; - u8 filler18[0x4]; + s16 unk18; + s16 unk1A; int unk1C; - u8 filler20[0x5]; + s32 unk20; + u8 unk24; u8 unk25_0:1; u8 unk25_1:1; u8 unk25_2:1; - u8 filler26[0x2]; + u8 unk25_3:1; + u8 unk25_4:1; + u8 unk25_5:3; + u16 unk26; u16 unk28; - u16 unk2A; + s16 unk2A; s16 unk2C; - u8 filler2E[0x8]; + s16 unk2E; + u16 unk30; + u16 unk32; + s16 unk34; u8 unk36[0xA]; struct BerryCrushGame_40 unk40; - u8 filler60[0x8]; + struct BerryCrushGame_5C unk5C; struct BerryCrushGame_68 unk68; struct BerryCrushGame_138 unk138; u8 unk1C0[0x1000]; @@ -219,6 +253,13 @@ extern const struct SpriteTemplate gUnknown_082F4354; extern const struct UnkStruct3 gUnknown_082F4384[]; extern u32 (*const gUnknown_082F43CC[])(struct BerryCrushGame *, u8 *); extern const u8 *const gUnknown_082F32A4[]; +extern const u8 gUnknown_082F4448[]; +extern const s8 gUnknown_082F326C[][7]; +extern const u8 gUnknown_082F325C[]; +extern const u8 gUnknown_082F3264[]; +extern const u8 gUnknown_082F3290[][4]; +extern const u8 gUnknown_082F4434[][4]; +extern const u8 gUnknown_082F4444[]; struct BerryCrushGame *sub_8020C00(void) { @@ -686,7 +727,7 @@ void sub_8021608(struct Sprite *sprite) } } -void sub_80216A8(struct BerryCrushGame *arg0) +void sub_80216A8(struct BerryCrushGame *arg0, __attribute__((unused)) struct BerryCrushGame_138 *arg1) { u8 i; for (i = 0; i < arg0->unk9; i++) @@ -741,7 +782,7 @@ void sub_80216E0(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1) arg1->unk4C[i]->pos1.y = gUnknown_082F41D2[i][1] + 136 - (var * 4); arg1->unk4C[i]->pos2.x = gUnknown_082F41D2[i][0] + (gUnknown_082F41D2[i][0] / (var2 * 4)); arg1->unk4C[i]->pos2.y = gUnknown_082F41D2[i][1]; - if (var4E->unk4 & 0x2) + if (var4E->unk4_1) StartSpriteAnim(arg1->unk4C[i], 1); else StartSpriteAnim(arg1->unk4C[i], 0); @@ -850,7 +891,7 @@ void sub_8021A28(struct BerryCrushGame *sp0C, u8 sp10, u8 sp14, u8 r3) ++i; break; case 0: - sp18 = sp20->unk1C.separate.player.unk4[i]; + sp18 = sp20->unk1C.separate.player.unk4.as_bytes[i]; if (i != 0 && sp20->unk0C[i] != sp20->unk0C[i - 1]) sp1C = i; ConvertIntToDecimalStringN( @@ -868,7 +909,7 @@ void sub_8021A28(struct BerryCrushGame *sp0C, u8 sp10, u8 sp14, u8 r3) ++i; break; case 1: - sp18 = sp20->unk1C.separate.player.unk4[i + 8]; + sp18 = sp20->unk1C.separate.player.unk4.as_bytes[i + 8]; if (i != 0 && sp20->unk0C[i + 5] != sp20->unk0C[i + 4]) // damn, access to unk0C is weird again sp1C = i; ConvertIntToDecimalStringN( @@ -1386,7 +1427,7 @@ bool32 sub_8022070(struct BerryCrushGame *r4, struct BerryCrushGame_138 *r6) r6->unk80 = 5; return FALSE; case 12: - sub_80219C8(r6->unk82, 20, 4, gUnknown_082F43B4[r4->unk68.unk1C.separate.player.unk4[7] + 3]); + sub_80219C8(r6->unk82, 20, 4, gUnknown_082F43B4[r4->unk68.unk1C.separate.player.unk4.as_bytes[7] + 3]); sub_8021A28(r4, 1, 0xA0, 8 * gUnknown_082F3344[0][r5]); r6->unk80 = 5; return FALSE; @@ -1420,7 +1461,7 @@ void sub_8022250(u8 r4) u8 r9 = 0, r2, r7, r10; u32 sp0C = 0; s16 *r6 = gTasks[r4].data; - const u8 *r10_; // r5/sl register swap + const u8 *r10_; // turn r5/sl register swap into r8/sl switch (r6[0]) { @@ -1433,9 +1474,9 @@ void sub_8022250(u8 r4) break; case 1: r10_ = gText_BerryCrush2; - ++r10_; --r10_; + ++r10_; --r10_; // swap r9/sl #ifndef NONMATCHING - asm("":::"r8"); + asm("":::"r8"); // turn r8/sl register swap into sb/sl #endif r7 = 96 - GetStringWidth(1, r10_, -1) / 2u; AddTextPrinterParameterized3( @@ -1990,3 +2031,566 @@ u32 sub_8022F04(struct BerryCrushGame *r0, __attribute__((unused)) u8 *r1) SetMainCallback2(sub_8020E1C); return 0; } + +u32 sub_8022F1C(struct BerryCrushGame *r5, u8 *r2) +{ + u8 r3; + + switch (r5->unkC) + { + case 0: + sub_8024644(r2, 1, 0, 0, 1); + r5->unkE = 9; + sub_8022BEC(3, 1, NULL); + return 0; + case 1: + sub_8010434(); + break; + case 2: + if (!IsLinkTaskFinished()) + return 0; + memset(r5->unk40.unk2, 0, sizeof(r5->unk40.unk2)); + r5->unk40.unk2[0] = r5->unk68.unk1C.separate.others[r5->unk8].unk0; + SendBlock(0, r5->unk40.unk2, 2); + break; + case 3: + if (!IsLinkTaskFinished()) + return 0; + r5->unk10 = 0; + break; + case 4: + if (GetBlockReceivedStatus() != gUnknown_082F4448[r5->unk9 - 2]) + return 0; + for (r3 = 0; r3 < r5->unk9; ++r3) + { + r5->unk68.unk1C.separate.others[r3].unk0 = gBlockRecvBuffer[r3][0]; + if (r5->unk68.unk1C.separate.others[r3].unk0 > 0xB0) + r5->unk68.unk1C.separate.others[r3].unk0 = 0; + r5->unk18 += gUnknown_0858AB24[r5->unk68.unk1C.separate.others[r3].unk0].unk0; + r5->unk1C += gUnknown_0858AB24[r5->unk68.unk1C.separate.others[r3].unk0].unk1; + } + r5->unk10 = 0; + ResetBlockReceivedFlags(); + r5->unk20 = sub_81515FC(r5->unk18 << 8, 0x2000); + break; + case 5: + ClearDialogWindowAndFrame(0, 1); + sub_8022BEC(10, 1, NULL); + r5->unk12 = 4; + r5->unkC = 0; + return 0; + } + ++r5->unkC; + return 0; +} + +u32 sub_8023070(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +{ + switch (r4->unkC) + { + case 0: + sub_80214A8(r4, &r4->unk138); + sub_8010434(); + break; + case 1: + if (!IsLinkTaskFinished()) + return 0; + r4->unk138.unk0 = 0; + r4->unk138.unk1 = 0; + r4->unk138.unk2 = 0; + r4->unk138.unk3 = 0; + break; + case 2: + r4->unk138.unk38[r4->unk138.unk0]->callback = sub_8021608; + r4->unk138.unk38[r4->unk138.unk0]->affineAnimPaused = FALSE; + PlaySE(SE_NAGERU); + break; + case 3: + if (r4->unk138.unk38[r4->unk138.unk0]->callback == sub_8021608) + return 0; + r4->unk138.unk38[r4->unk138.unk0] = NULL; + ++r4->unk138.unk0; + sub_8010434(); + break; + case 4: + if (!IsLinkTaskFinished()) + return 0; + if (r4->unk138.unk0 < r4->unk9) + { + r4->unkC = 2; + return 0; + } + r4->unk138.unk0 = 0; + break; + case 5: + sub_80216A8(r4, &r4->unk138); + sub_8010434(); + break; + case 6: + if (!IsLinkTaskFinished()) + return 0; + PlaySE(SE_RU_HYUU); + sub_8022BEC(11, 1, NULL); + r4->unk12 = 5; + r4->unkC = 0; + return 0; + } + ++r4->unkC; + return 0; +} + +u32 sub_80231B8(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +{ + switch (r4->unkC) + { + case 0: + r4->unk2A += 4; + if (r4->unk2A < 0) + return 0; + r4->unk2A = 0; + r4->unk138.unk1 = 4; + r4->unk138.unk0 = 0; + r4->unk138.unk2 = gUnknown_082F326C[r4->unk138.unk1][0]; + PlaySE(SE_W070); + break; + case 1: + r4->unk2C = gUnknown_082F326C[r4->unk138.unk1][r4->unk138.unk0]; + SetGpuReg(REG_OFFSET_BG0VOFS, -r4->unk2C); + SetGpuReg(REG_OFFSET_BG2VOFS, -r4->unk2C); + SetGpuReg(REG_OFFSET_BG3VOFS, -r4->unk2C); + ++r4->unk138.unk0; + if (r4->unk138.unk0 < r4->unk138.unk2) + return 0; + if (r4->unk138.unk1 == 0) + break; + --r4->unk138.unk1; + r4->unk138.unk2 = gUnknown_082F326C[r4->unk138.unk1][0]; + r4->unk138.unk0 = 0; + return 0; + case 2: + r4->unk2C = 0; + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); + sub_8010434(); + break; + case 3: + if (!IsLinkTaskFinished()) + return 0; + sub_8022BEC(12, 1, NULL); + r4->unk12 = 6; + r4->unkC = 0; + return 0; + } + ++r4->unkC; + return 0; +} + +u32 sub_80232EC(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +{ + switch (r4-> unkC) + { + case 1: + if (!IsLinkTaskFinished()) + return 0; + sub_802EB24(0x1000, 0x1000, 120, 80, 0); + break; + case 2: + if (sub_802EB84()) + return 0; + // fallthrough + case 0: + sub_8010434(); + break; + case 3: + if (!IsLinkTaskFinished()) + return 0; + r4->unk138.unk0 = 0; + r4->unk138.unk1 = 0; + r4->unk138.unk2 = 0; + r4->unk138.unk3 = 0; + r4->unk10 = 0; + if (r4->unk8 == 0) + sub_8022BEC(13, 1, NULL); + else + sub_8022BEC(14, 1, NULL); + r4->unk12 = 7; + r4->unkC = 0; + return 0; + } + ++r4->unkC; + return 0; +} + +void sub_802339C(struct BerryCrushGame *r4) +{ + u8 r8 = 0; + u16 r3; + u16 *r2; + u8 r7 = 0; + s32 r2_ = 0; + s32 r0; + + for (r7 = 0; r7 < r4->unk9; ++r7) + { + r2 = gRecvCmds[r7]; + if ((r2[0] & 0xFF00) == 0x2F00 + && r2[1] == 2) + { + if ((u8)r2[2] & 4) + { + r4->unk5C.unk02_3 |= gUnknown_082F325C[r7]; + r4->unk68.unk1C.separate.others[r7].unk4.as_bytes[13] = 1; + ++r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[3]; + ++r8; + r3 = r4->unk28 - r4->unk68.unk1C.separate.others[r7].unk2; + if (r3 >= r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[1] - 1 + && r3 <= r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[1] + 1) + { + ++r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[0]; + r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[1] = r3; + if (r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[0] > r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[2]) + r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[2] = r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[0]; + } + else + { + r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[0] = 0; + r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[1] = r3; + } + r4->unk68.unk1C.separate.others[r7].unk2 = r4->unk28; + if (++r4->unk68.unk1C.separate.others[r7].unk4.as_bytes[12] > 2) + r4->unk68.unk1C.separate.others[r7].unk4.as_bytes[12] = 0; + } + else + { + r4->unk68.unk1C.separate.others[r7].unk4.as_bytes[13] = 0; + } + } + } + if (r8 > 1) + { + for (r7 = 0; r7 < r4->unk9; ++r7) + { + if (r4->unk68.unk1C.separate.others[r7].unk4.as_bytes[13] != 0) + { + r4->unk68.unk1C.separate.others[r7].unk4.as_bytes[13] |= 2; + ++r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[4]; + } + } + } + if (r8 != 0) + { + r4->unk2E += r8; + r8 += gUnknown_082F3264[r8 - 1]; + r4->unk34 += r8; + r4->unk1A += r8; + r0 = r4->unk18; + r2_ = r4->unk1A; + if (r0 - r2_ > 0) + { + r2_ <<= 8; + r2_ = sub_81515FC(r2_, r4->unk20); + r2_ >>= 8; + r4->unk24 = r2_; + } + else + { + r4->unk24 = 32; + r4->unk5C.unk02_0 = 1; + } + } +} + +void sub_8023558(struct BerryCrushGame *r3) +{ + u8 r6 = 0; + u16 r1 = 0; + u8 r4 = 0; + + for (r4 = 0; r4 < r3->unk9; ++r4) + { + if (r3->unk68.unk1C.separate.others[r4].unk4.as_bytes[13] != 0) + { + ++r6; + r1 = r3->unk68.unk1C.separate.others[r4].unk4.as_bytes[12] + 1; + if (r3->unk68.unk1C.separate.others[r4].unk4.as_bytes[13] & 2) + r1 |= 4; + r1 <<= 3 * r4; + r3->unk5C.unk08 |= r1; + } + } + r3->unk5C.unk04 = r3->unk24; + if (r6 == 0) + { + if (r3->unk138.unk3 != 0) + ++r3->unk138.unk0; + else + goto SET_UNK5F_0; + } + else + { + if (r3->unk138.unk3 != 0) + { + if (r6 != r3->unk138.unk1) + { + r3->unk138.unk1 = r6 - 1; + r3->unk138.unk2 = gUnknown_082F3290[r6 - 1][0]; + } + else + { + ++r3->unk138.unk0; + } + } + else + { + r3->unk138.unk0 = 0; + r3->unk138.unk1 = r6 - 1; + r3->unk138.unk2 = gUnknown_082F3290[r6 - 1][0]; + r3->unk138.unk3 = 1; + } + } + if (r3->unk138.unk3 != 0) + { + if (r3->unk138.unk0 >= r3->unk138.unk2) + { + r3->unk138.unk0 = 0; + r3->unk138.unk1 = 0; + r3->unk138.unk2 = 0; + r3->unk138.unk3 = 0; + r1 = 0; + } + else + { + r1 = gUnknown_082F3290[r3->unk138.unk1][r3->unk138.unk0 + 1]; + } + r3->unk5C.unk03 = r1; + } + else + { + SET_UNK5F_0: + r3->unk5C.unk03 = 0; + } + r3->unk5C.unk06 = r3->unk26; +} + +void sub_80236B8(struct BerryCrushGame *r5) +{ + if (gMain.newKeys & A_BUTTON) + r5->unk5C.unk02_2 = 1; + if (gMain.heldKeys & A_BUTTON) + { + if (r5->unk68.unk1C.separate.others[r5->unk8].unk4.as_hwords[5] < r5->unk28) + ++r5->unk68.unk1C.separate.others[r5->unk8].unk4.as_hwords[5]; + } + if (r5->unk8 != 0 && r5->unk5C.unk02_2 == 0) + return; + r5->unk5C.unk00 = 2; + if (r5->unk28 % 30 == 0) + { + if (r5->unk2E > gUnknown_082F4444[r5->unk9 - 2]) + { + ++r5->unk30; + r5->unk25_4 = 1; + } + else + { + r5->unk25_4 = 0; + } + r5->unk2E = 0; + ++r5->unk32; + } + if (r5->unk28 % 15 == 0) + { + if (r5->unk34 < gUnknown_082F4434[r5->unk9 - 2][0]) + r5->unk25_5 = 0; + else if (r5->unk34 < gUnknown_082F4434[r5->unk9 - 2][1]) + r5->unk25_5 = 1; + else if (r5->unk34 < gUnknown_082F4434[r5->unk9 - 2][2]) + r5->unk34 = 2; // typo since r5->unk34 will be reset? + else if (r5->unk34 < gUnknown_082F4434[r5->unk9 - 2][3]) + r5->unk34 = 3; // typo since r5->unk34 will be reset? + else + r5->unk25_5 = 4; + r5->unk34 = 0; + } + else + { + ++r5->unk10; + if (r5->unk10 > 60) + { + if (r5->unk10 > 70) + { + sub_8011AC8(); + r5->unk10 = 0; + } + else if (r5->unk5C.unk02_3 == 0) + { + sub_8011AC8(); + r5->unk10 = 0; + } + } + + } + if (r5->unk28 >= 36000) + r5->unk5C.unk02_0 = 1; + r5->unk5C.unk02_1 = r5->unk25_4; + r5->unk5C.unk0A = r5->unk25_5; + memcpy(r5->unk40.unk2, &r5->unk5C, sizeof(r5->unk40.unk2)); + sub_800FE50(r5->unk40.unk2); +} + +void sub_802385C(struct BerryCrushGame *r5) +{ + struct BerryCrushGame_4E *r4_; +#ifndef NONMATCHING + register u32 r4 asm("r4"); + register u32 r0 asm("r0"); + + for (r4 = 0; r4 < r5->unk9; r4 = (u8)r0) + { + r5->unk68.unk1C.separate.others[r4].unk4.as_bytes[13] = 0; + r0 = r4 + 1; + } +#else + u8 r4; + + for (r4 = 0; r4 < r5->unk9; ++r4) + r5->unk68.unk1C.separate.others[r4].unk4.as_bytes[13] = 0; +#endif + if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00 + || gRecvCmds[0][1] != 2) + { + r5->unk25_2 = 0; + } + else + { + r4_ = &r5->unk40.unkE; + memcpy(r4_, gRecvCmds, sizeof(struct BerryCrushGame_4E)); + r5->unk2A = r4_->unk6; + r5->unk2C = r4_->unk5; + r5->unk28 = r4_->unk8; + sub_80216E0(r5, &r5->unk138); + if (r4_->unk4_0) + r5->unk25_3 = 1; + } +} + +u32 sub_80238F0(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +{ + memset(&r4->unk5C, 0, sizeof(r4->unk5C)); + memset(&r4->unk40.unkE, 0, sizeof(r4->unk40.unkE)); + sub_802385C(r4); + SetGpuReg(REG_OFFSET_BG0VOFS, -r4->unk2C); + SetGpuReg(REG_OFFSET_BG2VOFS, -r4->unk2C); + SetGpuReg(REG_OFFSET_BG3VOFS, -r4->unk2C); + if (r4->unk25_3) + { + if (r4->unk28 >= 36000) + { + r4->unk28 = 36000; + sub_8022BEC(16, 1, NULL); + } + else + { + sub_8022BEC(15, 1, NULL); + } + r4->unk10 = 0; + r4->unkC = 0; + return 0; + } + else + { + ++r4->unk26; + sub_802339C(r4); + sub_8023558(r4); + sub_80236B8(r4); + return 0; + } +} + +u32 sub_8023998(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +{ + memset(&r4->unk5C, 0, sizeof(r4->unk5C)); + memset(&r4->unk40.unkE, 0, sizeof(r4->unk40.unkE)); + sub_802385C(r4); + SetGpuReg(REG_OFFSET_BG0VOFS, -r4->unk2C); + SetGpuReg(REG_OFFSET_BG2VOFS, -r4->unk2C); + SetGpuReg(REG_OFFSET_BG3VOFS, -r4->unk2C); + if (r4->unk25_3) + { + if (r4->unk28 >= 36000) + { + r4->unk28 = 36000; + sub_8022BEC(16, 1, NULL); + } + else + { + sub_8022BEC(15, 1, NULL); + } + r4->unk10 = 0; + r4->unkC = 0; + return 0; + } + else + { + sub_80236B8(r4); + return 0; + } +} + +u32 sub_8023A30(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +{ + switch (r4->unkC) + { + case 0: + r4->unk12 = 8; + PlaySE(SE_W070); + BlendPalettes(0xFFFFFFFF, 8, RGB(31, 31, 0)); + r4->unk138.unk0 = 2; + break; + case 1: + if (--r4->unk138.unk0 != 255) + return 0; + BlendPalettes(0xFFFFFFFF, 0, RGB(31, 31, 0)); + r4->unk138.unk1 = 4; + r4->unk138.unk0 = 0; + r4->unk138.unk2 = gUnknown_082F326C[r4->unk138.unk1][0]; + break; + case 2: + r4->unk2C = gUnknown_082F326C[r4->unk138.unk1][r4->unk138.unk0]; + SetGpuReg(REG_OFFSET_BG0VOFS, -r4->unk2C); + SetGpuReg(REG_OFFSET_BG2VOFS, -r4->unk2C); + SetGpuReg(REG_OFFSET_BG3VOFS, -r4->unk2C); + if (++r4->unk138.unk0 < r4->unk138.unk2) + return 0; + if (r4->unk138.unk1 != 0) + { + --r4->unk138.unk1; + r4->unk138.unk2 = gUnknown_082F326C[r4->unk138.unk1][0]; + r4->unk138.unk0 = 0; + return 0; + } + break; + case 3: + r4->unk2C = 0; + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); + break; + case 4: + if (!sub_80218D4(r4, &r4->unk138)) + return 0; + sub_8010434(); + r4->unk10 = 0; + break; + case 5: + if (!IsLinkTaskFinished()) + return 0; + sub_8022BEC(17, 1, NULL); + r4->unk10 = 0; + r4->unkC = 0; + return 0; + } + ++r4->unkC; + return 0; +} From 67690df65f8e85f590a146d5ec237d849690bb46 Mon Sep 17 00:00:00 2001 From: jiangzhengwenjz Date: Tue, 17 Dec 2019 15:20:38 +0800 Subject: [PATCH 6/8] sub_8023CAC --- asm/berry_crush.s | 577 ---------------------------------------------- src/berry_crush.c | 392 ++++++++++++++++++++++++------- 2 files changed, 312 insertions(+), 657 deletions(-) diff --git a/asm/berry_crush.s b/asm/berry_crush.s index 247341448f..3857a9b90c 100755 --- a/asm/berry_crush.s +++ b/asm/berry_crush.s @@ -5,583 +5,6 @@ .text - thumb_func_start sub_8023BC0 -sub_8023BC0: @ 8023BC0 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - ldrb r0, [r5, 0xC] - cmp r0, 0x1 - beq _08023C04 - cmp r0, 0x1 - bgt _08023BD8 - cmp r0, 0 - beq _08023BE2 - b _08023C9C -_08023BD8: - cmp r0, 0x2 - beq _08023C2A - cmp r0, 0x3 - beq _08023C5C - b _08023C9C -_08023BE2: - movs r0, 0x9 - strh r0, [r5, 0x12] - movs r0, 0x20 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - movs r1, 0x8 - movs r2, 0x1F - bl BlendPalettes - movs r0, 0x9C - lsls r0, 1 - adds r1, r5, r0 - movs r0, 0x4 - strb r0, [r1] - b _08023C9C -_08023C04: - movs r0, 0x9C - lsls r0, 1 - adds r4, r5, r0 - ldrb r0, [r4] - subs r0, 0x1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _08023CA2 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - movs r2, 0x1F - bl BlendPalettes - movs r0, 0 - strb r0, [r4] - b _08023C9C -_08023C2A: - movs r0, 0x9C - lsls r0, 1 - adds r1, r5, r0 - adds r0, r5, 0 - bl sub_80218D4 - cmp r0, 0 - beq _08023CA2 - bl sub_8010434 - movs r0, 0 - strh r0, [r5, 0x10] - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - b _08023C9C -_08023C5C: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _08023CA2 - ldr r0, =gStringVar1 - ldr r1, [r5, 0x1C] - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - movs r4, 0 - str r4, [sp] - adds r0, r6, 0 - movs r1, 0x7 - movs r2, 0x1 - movs r3, 0 - bl sub_8024644 - movs r0, 0x13 - strb r0, [r5, 0xE] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - movs r0, 0 - strh r4, [r5, 0x10] - b _08023CA0 - .pool -_08023C9C: - ldrb r0, [r5, 0xC] - adds r0, 0x1 -_08023CA0: - strb r0, [r5, 0xC] -_08023CA2: - movs r0, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8023BC0 - - thumb_func_start sub_8023CAC -sub_8023CAC: @ 8023CAC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r7, r0, 0 - ldrb r0, [r7, 0xC] - cmp r0, 0x7 - bls _08023CC2 - b _0802402E -_08023CC2: - lsls r0, 2 - ldr r1, =_08023CD0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08023CD0: - .4byte _08023CF0 - .4byte _08023D2A - .4byte _08023D38 - .4byte _08023DA0 - .4byte _08023F20 - .4byte _08023FD0 - .4byte _08023FDC - .4byte _08024010 -_08023CF0: - adds r4, r7, 0 - adds r4, 0x42 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x4 - bl memset - ldrb r0, [r7, 0x8] - lsls r0, 5 - adds r0, r7, r0 - adds r2, r0, 0 - adds r2, 0xB2 - ldrh r1, [r7, 0x28] - ldrh r0, [r2] - cmp r0, r1 - bls _08023D12 - strh r1, [r2] -_08023D12: - ldrb r0, [r7, 0x8] - lsls r0, 5 - adds r0, r7, r0 - adds r0, 0xB2 - ldrh r0, [r0] - strh r0, [r4] - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x2 - bl SendBlock - b _0802402E -_08023D2A: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - bne _08023D36 - b _08024034 -_08023D36: - b _08024004 -_08023D38: - bl GetBlockReceivedStatus - ldr r2, =gUnknown_082F4448 - ldrb r3, [r7, 0x9] - subs r1, r3, 0x2 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - beq _08023D50 - b _08024034 -_08023D50: - movs r0, 0 - mov r8, r0 - adds r4, r7, 0 - adds r4, 0x42 - cmp r8, r3 - bcs _08023D7E - ldr r2, =gBlockRecvBuffer -_08023D5E: - mov r3, r8 - lsls r1, r3, 5 - adds r1, r7, r1 - lsls r0, r3, 8 - adds r0, r2 - ldrh r0, [r0] - adds r1, 0xB2 - strh r0, [r1] - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r6, [r7, 0x9] - cmp r8, r6 - bcc _08023D5E -_08023D7E: - movs r0, 0 - strh r0, [r7, 0x10] - strh r0, [r4] - bl ResetBlockReceivedFlags - ldrb r0, [r7, 0x8] - cmp r0, 0 - bne _08023D9C - movs r0, 0x3 - b _08024032 - .pool -_08023D9C: - movs r0, 0x6 - b _08024032 -_08023DA0: - adds r0, r7, 0 - adds r0, 0x68 - movs r1, 0 - movs r2, 0x30 - bl memset - ldrh r1, [r7, 0x28] - adds r0, r7, 0 - adds r0, 0x6C - strh r1, [r0] - movs r0, 0x18 - ldrsh r4, [r7, r0] - ldrh r0, [r7, 0x28] - movs r1, 0x3C - bl __udivsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl __divsi3 - adds r1, r7, 0 - adds r1, 0x6E - strh r0, [r1] - movs r1, 0x30 - ldrsh r0, [r7, r1] - lsls r0, 8 - movs r4, 0xC8 - lsls r4, 6 - adds r1, r4, 0 - bl sub_8151574 - adds r2, r0, 0 - movs r3, 0x32 - ldrsh r1, [r7, r3] - lsls r1, 8 - bl sub_81515FC - adds r2, r0, r4 - asrs r2, 8 - movs r1, 0x7F - adds r0, r2, 0 - ands r0, r1 - adds r1, r7, 0 - adds r1, 0x70 - strh r0, [r1] - lsls r2, 8 - movs r1, 0xC8 - lsls r1, 7 - adds r0, r2, 0 - bl sub_81515FC - adds r2, r0, 0 - ldrb r1, [r7, 0x9] - ldr r0, [r7, 0x1C] - muls r0, r1 - lsls r4, r0, 8 - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_8151574 - adds r4, r0, 0 - asrs r0, r4, 8 - str r0, [r7, 0x68] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - adds r1, r7, 0 - adds r1, 0x8F - strb r0, [r1] - movs r6, 0 - mov r8, r6 - mov r9, r1 - ldrb r0, [r7, 0x9] - cmp r8, r0 - bcc _08023E44 - b _0802402E -_08023E44: - adds r0, r7, 0 - adds r0, 0x88 - add r0, r8 - mov r1, r8 - strb r1, [r0] - adds r0, r7, 0 - adds r0, 0x90 - add r0, r8 - strb r1, [r0] - mov r3, r8 - lsls r2, r3, 1 - adds r1, r7, 0 - adds r1, 0x74 - adds r1, r2 - lsls r0, r3, 5 - adds r3, r7, r0 - adds r5, r3, 0 - adds r5, 0xAE - ldrh r0, [r5] - strh r0, [r1] - adds r1, r7, 0 - adds r1, 0x72 - ldrh r6, [r1] - adds r0, r6 - strh r0, [r1] - mov r1, r9 - ldrb r0, [r1] - adds r6, r2, 0 - cmp r0, 0x1 - beq _08023EAE - cmp r0, 0x1 - bgt _08023E8A - cmp r0, 0 - beq _08023E90 - b _08023F04 -_08023E8A: - cmp r0, 0x2 - beq _08023ECC - b _08023F04 -_08023E90: - ldrh r0, [r5] - cmp r0, 0 - beq _08023ED2 - adds r0, r3, 0 - adds r0, 0xAC - ldrh r2, [r0] - lsls r2, 8 - adds r0, r2, 0 - movs r1, 0xC8 - lsls r1, 7 - bl sub_8151574 - adds r2, r0, 0 - ldrh r4, [r5] - b _08023EFA -_08023EAE: - ldrh r0, [r5] - cmp r0, 0 - beq _08023ED2 - adds r0, r3, 0 - adds r0, 0xB0 - ldrh r2, [r0] - lsls r2, 8 - adds r0, r2, 0 - movs r1, 0xC8 - lsls r1, 7 - bl sub_8151574 - adds r2, r0, 0 - ldrh r4, [r5] - b _08023EFA -_08023ECC: - ldrh r0, [r5] - cmp r0, 0 - bne _08023ED6 -_08023ED2: - movs r4, 0 - b _08023F04 -_08023ED6: - adds r1, r3, 0 - adds r1, 0xB2 - ldrh r0, [r1] - ldrh r2, [r7, 0x28] - cmp r0, r2 - bcc _08023EE8 - movs r4, 0xC8 - lsls r4, 7 - b _08023F04 -_08023EE8: - ldrh r2, [r1] - lsls r2, 8 - adds r0, r2, 0 - movs r1, 0xC8 - lsls r1, 7 - bl sub_8151574 - adds r2, r0, 0 - ldrh r4, [r7, 0x28] -_08023EFA: - lsls r4, 8 - adds r1, r4, 0 - bl sub_81515FC - adds r4, r0, 0 -_08023F04: - asrs r4, 4 - adds r0, r7, 0 - adds r0, 0x7E - adds r0, r6 - strh r4, [r0] - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r3, [r7, 0x9] - cmp r8, r3 - bcc _08023E44 - b _0802402E -_08023F20: - movs r6, 0 - mov r8, r6 - ldrb r0, [r7, 0x9] - subs r0, 0x1 - adds r1, r7, 0 - adds r1, 0x68 - str r1, [sp, 0xC] - cmp r8, r0 - bge _08023FC4 -_08023F32: - ldrb r0, [r7, 0x9] - subs r0, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - mov r2, r8 - adds r2, 0x1 - str r2, [sp, 0x8] - cmp r4, r8 - bls _08023FB4 - adds r3, r7, 0 - adds r3, 0x74 - str r3, [sp] - adds r6, r7, 0 - adds r6, 0x88 - str r6, [sp, 0x4] - movs r0, 0x90 - adds r0, r7 - mov r10, r0 - movs r1, 0x7E - adds r1, r7 - mov r9, r1 -_08023F5C: - subs r2, r4, 0x1 - mov r12, r2 - lsls r6, r2, 1 - ldr r0, [sp] - adds r3, r0, r6 - lsls r5, r4, 1 - adds r1, r0, r5 - ldrh r2, [r3] - ldrh r0, [r1] - cmp r2, r0 - bcs _08023F86 - ldrh r0, [r1] - strh r2, [r1] - strh r0, [r3] - ldr r1, [sp, 0x4] - adds r2, r1, r4 - ldrb r3, [r2] - add r1, r12 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] -_08023F86: - mov r2, r9 - adds r3, r2, r6 - adds r1, r2, r5 - ldrh r2, [r3] - ldrh r6, [r1] - cmp r2, r6 - bcs _08023FAA - ldrh r0, [r1] - strh r2, [r1] - strh r0, [r3] - mov r0, r10 - adds r2, r0, r4 - ldrb r3, [r2] - mov r1, r10 - add r1, r12 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] -_08023FAA: - mov r1, r12 - lsls r0, r1, 24 - lsrs r4, r0, 24 - cmp r4, r8 - bhi _08023F5C -_08023FB4: - ldr r2, [sp, 0x8] - lsls r0, r2, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r0, [r7, 0x9] - subs r0, 0x1 - cmp r8, r0 - blt _08023F32 -_08023FC4: - movs r0, 0 - ldr r1, [sp, 0xC] - movs r2, 0x30 - bl SendBlock - b _0802402E -_08023FD0: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _08024034 - b _08024004 -_08023FDC: - bl GetBlockReceivedStatus - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08024034 - adds r4, r7, 0 - adds r4, 0x68 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x30 - bl memset - ldr r1, =gBlockRecvBuffer - adds r0, r4, 0 - movs r2, 0x30 - bl memcpy - bl ResetBlockReceivedFlags -_08024004: - movs r0, 0 - strh r0, [r7, 0x10] - b _0802402E - .pool -_08024010: - bl sub_8020E58 - movs r0, 0x12 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - movs r0, 0 - movs r1, 0xB - strh r1, [r7, 0x12] - strb r0, [r7, 0xC] - adds r1, r7, 0 - adds r1, 0x24 - strb r0, [r1] - b _08024034 -_0802402E: - ldrb r0, [r7, 0xC] - adds r0, 0x1 -_08024032: - strb r0, [r7, 0xC] -_08024034: - movs r0, 0 - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8023CAC - thumb_func_start sub_8024048 sub_8024048: @ 8024048 push {r4-r6,lr} diff --git a/src/berry_crush.c b/src/berry_crush.c index fb1e5c7a01..1764d7573c 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -19,6 +19,7 @@ #include "overworld.h" #include "palette.h" #include "pokemon_jump.h" +#include "random.h" #include "rom_8034C54.h" #include "scanline_effect.h" #include "script.h" @@ -41,24 +42,12 @@ struct BerryCrushGame_Player u16 unk2; union { - u8 as_bytes[16]; + u8 as_2d_bytes[2][8]; u16 as_hwords[8]; } unk4; u8 unk14[12]; }; -struct BerryCrushGame_PlayersSeparate -{ - struct BerryCrushGame_Player player; - struct BerryCrushGame_Player others[4]; -}; - -typedef union BerryCrushGame_Players -{ - struct BerryCrushGame_Player players[5]; - struct BerryCrushGame_PlayersSeparate separate; -} BerryCrushGame_Players; - struct __attribute__((packed, aligned(2))) BerryCrushGame_4E { u8 filler0[0x4]; @@ -78,7 +67,7 @@ struct __attribute__((packed)) BerryCrushGame_40 struct BerryCrushGame_4E unkE; }; -struct __attribute__((packed, aligned(2))) BerryCrushGame_5C +struct BerryCrushGame_5C { u16 unk00; u8 unk02_0:1; @@ -92,16 +81,30 @@ struct __attribute__((packed, aligned(2))) BerryCrushGame_5C u16 unk0A; }; -struct BerryCrushGame_68 +union BerryCrushGame_68 { - int unk00; - u16 unk04; - u8 filler06[2]; - u16 unk08; - u16 unk0A; - u16 unk0C[8]; // TODO: Resolve the type of the field. - BerryCrushGame_Players unk1C; - u8 fillerBC[20]; + struct BerryCrushGame_68_x + { + struct BerryCrushGame_68_x_SubStruct + { + s32 unk00; + u16 unk04; + s16 unk06; + u16 unk08; + u16 unk0A; + u16 unk0C[2][5]; + u8 filler20[16]; + } unk00; + u8 unk30[12]; + struct BerryCrushGame_Player others[4]; + u8 fillerBC[20]; + } as_four_players; + struct BerryCrushGame_68_y + { + u8 filler00[28]; + struct BerryCrushGame_Player unk1C[5]; + u8 fillerBC[20]; + } as_five_players; }; struct BerryCrushGame_138_C @@ -169,13 +172,13 @@ struct BerryCrushGame s16 unk2A; s16 unk2C; s16 unk2E; - u16 unk30; - u16 unk32; + s16 unk30; + s16 unk32; s16 unk34; u8 unk36[0xA]; struct BerryCrushGame_40 unk40; struct BerryCrushGame_5C unk5C; - struct BerryCrushGame_68 unk68; + union BerryCrushGame_68 unk68; struct BerryCrushGame_138 unk138; u8 unk1C0[0x1000]; u8 unk11C0[0x1000]; @@ -343,7 +346,7 @@ static void sub_8020D8C(void) else RemoveBagItem(gSpecialVar_ItemId, 1); - gUnknown_02022C90->unk68.unk1C.separate.others[gUnknown_02022C90->unk8].unk0 = gSpecialVar_ItemId - FIRST_BERRY_INDEX; + gUnknown_02022C90->unk68.as_four_players.others[gUnknown_02022C90->unk8].unk0 = gSpecialVar_ItemId - FIRST_BERRY_INDEX; gUnknown_02022C90->unkE = 1; gUnknown_02022C90->unkF = 9; sub_8024604(gUnknown_02022C90->unk36, 0, -1, 0, 16, 0, 0); @@ -372,10 +375,10 @@ void sub_8020E58(void) { u32 var0, var1; - var0 = gUnknown_02022C90->unk68.unk04; + var0 = gUnknown_02022C90->unk68.as_four_players.unk00.unk04; var0 <<= 8; var0 = sub_81515FC(var0, 60 << 8); - var1 = gUnknown_02022C90->unk68.unk0A; + var1 = gUnknown_02022C90->unk68.as_four_players.unk00.unk0A; var1 <<= 8; var1 = sub_81515FC(var1, var0) & 0xFFFF; gUnknown_02022C90->unk16 = var1; @@ -411,7 +414,7 @@ void sub_8020E58(void) break; } - gUnknown_02022C90->unk1C = gUnknown_02022C90->unk68.unk00; + gUnknown_02022C90->unk1C = gUnknown_02022C90->unk68.as_four_players.unk00.unk00; if (GiveBerryPowder(gUnknown_02022C90->unk1C)) return; @@ -444,8 +447,7 @@ static void sub_8020FA0(u8 taskId) #define PLAYER_UNK14(game, i) \ ((u8 *)(game) \ + offsetof(struct BerryCrushGame, unk68) \ - + offsetof(struct BerryCrushGame_68, unk1C) \ - + offsetof(struct BerryCrushGame_Player, unk14) \ + + offsetof(struct BerryCrushGame_68_x, unk30) \ + sizeof(struct BerryCrushGame_Player) * (i)) void sub_8020FC4(struct BerryCrushGame *arg0) @@ -457,7 +459,7 @@ void sub_8020FC4(struct BerryCrushGame *arg0) for (; i < 5; i++) { memset(PLAYER_UNK14(arg0, i), 1, PLAYER_NAME_LENGTH); - arg0->unk68.unk1C.players[i].unk14[PLAYER_NAME_LENGTH] = EOS; + arg0->unk68.as_five_players.unk1C[i].unk14[PLAYER_NAME_LENGTH] = EOS; } switch (gSaveBlock2Ptr->optionsTextSpeed) @@ -668,7 +670,7 @@ void sub_80214A8(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1) &gUnknown_082F436C, gUnknown_082F41E8[i], gUnknown_082F41E8[i], - arg0->unk68.unk1C.separate.others[i].unk0 + 133); + arg0->unk68.as_four_players.others[i].unk0 + 133); arg1->unk38[i] = &gSprites[spriteId]; arg1->unk38[i]->oam.priority = 3; arg1->unk38[i]->affineAnimPaused = 1; @@ -863,7 +865,7 @@ void sub_8021A28(struct BerryCrushGame *sp0C, u8 sp10, u8 sp14, u8 r3) u8 i, j; u8 sp18 = 0; u8 sp1C = 0; - struct BerryCrushGame_68 *sp20 = &sp0C->unk68; + union BerryCrushGame_68 *sp20 = &sp0C->unk68; u32 xOffset; u32 r8, r9, r4, r7, r3_; u8 r10, r2; @@ -887,16 +889,16 @@ void sub_8021A28(struct BerryCrushGame *sp0C, u8 sp10, u8 sp14, u8 r3) r10 = r6; r9 = sp1C + 0xA2; r8 = sp18; - r6 += 14; // should be tail merged, but not + r6 += 14; ++i; break; case 0: - sp18 = sp20->unk1C.separate.player.unk4.as_bytes[i]; - if (i != 0 && sp20->unk0C[i] != sp20->unk0C[i - 1]) + sp18 = sp20->as_five_players.unk1C[0].unk4.as_2d_bytes[0][i]; + if (i != 0 && sp20->as_four_players.unk00.unk0C[0][i] != sp20->as_four_players.unk00.unk0C[0][i - 1]) sp1C = i; ConvertIntToDecimalStringN( gStringVar4, - sp20->unk0C[5 * sp10 + i], // ~ line 145. 2 * i was stored in temp variable + sp20->as_four_players.unk00.unk0C[sp10][i], 1, 4 ); @@ -909,17 +911,17 @@ void sub_8021A28(struct BerryCrushGame *sp0C, u8 sp10, u8 sp14, u8 r3) ++i; break; case 1: - sp18 = sp20->unk1C.separate.player.unk4.as_bytes[i + 8]; - if (i != 0 && sp20->unk0C[i + 5] != sp20->unk0C[i + 4]) // damn, access to unk0C is weird again + sp18 = sp20->as_five_players.unk1C[0].unk4.as_2d_bytes[1][i]; + if (i != 0 && sp20->as_four_players.unk00.unk0C[1][i] != sp20->as_four_players.unk00.unk0C[1][i - 1]) sp1C = i; ConvertIntToDecimalStringN( gStringVar1, - sp20->unk0C[5 * sp10 + i] >> 4, + sp20->as_four_players.unk00.unk0C[sp10][i] >> 4, 1, 3 ); j = 0; - r3_ = 15 & (u8)sp20->unk0C[5 * sp10 + i]; + r3_ = 15 & (u8)sp20->as_four_players.unk00.unk0C[sp10][i]; r4 = sp14 - 4; r10 = r6; r9 = sp1C + 0xA2; @@ -940,7 +942,7 @@ void sub_8021A28(struct BerryCrushGame *sp0C, u8 sp10, u8 sp14, u8 r3) case 2: sp18 = i; sp1C = i; - r2 = sp0C->unk68.unk1C.separate.others[i].unk0; + r2 = sp0C->unk68.as_four_players.others[i].unk0; if (r2 > 43) r2 = 0; StringCopy(gStringVar1,gBerries[r2].name); @@ -1351,10 +1353,10 @@ void sub_8021D34(struct BerryCrushGame *r8) u8 r10 = 0; u8 r6 = 0; u32 sp0C = 0; - struct BerryCrushGame_68 *sp10 = &r8->unk68; + union BerryCrushGame_68 *sp10 = &r8->unk68; u8 r7 = GetWindowAttribute(r8->unk138.unk82, WINDOW_HEIGHT) * 8 - 42; - sub_8021944(&r8->unk138, sp10->unk04); + sub_8021944(&r8->unk138, sp10->as_four_players.unk00.unk04); AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gText_TimeColon); r6 = 176 - (u8)GetStringWidth(2, gText_SpaceSec, -1); AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gText_SpaceSec); @@ -1386,7 +1388,7 @@ void sub_8021D34(struct BerryCrushGame *r8) AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gStringVar4); r7 += 14; AddTextPrinterParameterized3(r8->unk138.unk82, 2, 0, r7, sBerryCrushTextColors1[0], 0, gText_Silkiness); - ConvertIntToDecimalStringN(gStringVar1, sp10->unk08, 1, 3); + ConvertIntToDecimalStringN(gStringVar1, sp10->as_four_players.unk00.unk08, 1, 3); StringExpandPlaceholders(gStringVar4, gText_Var1Percent); r6 = 176 - (u8)GetStringWidth(2, gStringVar4, -1); AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gStringVar4); @@ -1427,7 +1429,7 @@ bool32 sub_8022070(struct BerryCrushGame *r4, struct BerryCrushGame_138 *r6) r6->unk80 = 5; return FALSE; case 12: - sub_80219C8(r6->unk82, 20, 4, gUnknown_082F43B4[r4->unk68.unk1C.separate.player.unk4.as_bytes[7] + 3]); + sub_80219C8(r6->unk82, 20, 4, gUnknown_082F43B4[r4->unk68.as_five_players.unk1C[0].unk4.as_2d_bytes[0][7] + 3]); sub_8021A28(r4, 1, 0xA0, 8 * gUnknown_082F3344[0][r5]); r6->unk80 = 5; return FALSE; @@ -1474,7 +1476,7 @@ void sub_8022250(u8 r4) break; case 1: r10_ = gText_BerryCrush2; - ++r10_; --r10_; // swap r9/sl + ++r10_; --r10_; // swap sb/sl #ifndef NONMATCHING asm("":::"r8"); // turn r8/sl register swap into sb/sl #endif @@ -2050,7 +2052,7 @@ u32 sub_8022F1C(struct BerryCrushGame *r5, u8 *r2) if (!IsLinkTaskFinished()) return 0; memset(r5->unk40.unk2, 0, sizeof(r5->unk40.unk2)); - r5->unk40.unk2[0] = r5->unk68.unk1C.separate.others[r5->unk8].unk0; + r5->unk40.unk2[0] = r5->unk68.as_four_players.others[r5->unk8].unk0; SendBlock(0, r5->unk40.unk2, 2); break; case 3: @@ -2063,11 +2065,11 @@ u32 sub_8022F1C(struct BerryCrushGame *r5, u8 *r2) return 0; for (r3 = 0; r3 < r5->unk9; ++r3) { - r5->unk68.unk1C.separate.others[r3].unk0 = gBlockRecvBuffer[r3][0]; - if (r5->unk68.unk1C.separate.others[r3].unk0 > 0xB0) - r5->unk68.unk1C.separate.others[r3].unk0 = 0; - r5->unk18 += gUnknown_0858AB24[r5->unk68.unk1C.separate.others[r3].unk0].unk0; - r5->unk1C += gUnknown_0858AB24[r5->unk68.unk1C.separate.others[r3].unk0].unk1; + r5->unk68.as_four_players.others[r3].unk0 = gBlockRecvBuffer[r3][0]; + if (r5->unk68.as_four_players.others[r3].unk0 > 0xB0) + r5->unk68.as_four_players.others[r3].unk0 = 0; + r5->unk18 += gUnknown_0858AB24[r5->unk68.as_four_players.others[r3].unk0].unk0; + r5->unk1C += gUnknown_0858AB24[r5->unk68.as_four_players.others[r3].unk0].unk1; } r5->unk10 = 0; ResetBlockReceivedFlags(); @@ -2240,30 +2242,30 @@ void sub_802339C(struct BerryCrushGame *r4) if ((u8)r2[2] & 4) { r4->unk5C.unk02_3 |= gUnknown_082F325C[r7]; - r4->unk68.unk1C.separate.others[r7].unk4.as_bytes[13] = 1; - ++r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[3]; + r4->unk68.as_four_players.others[r7].unk4.as_2d_bytes[1][5] = 1; + ++r4->unk68.as_four_players.others[r7].unk4.as_hwords[3]; ++r8; - r3 = r4->unk28 - r4->unk68.unk1C.separate.others[r7].unk2; - if (r3 >= r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[1] - 1 - && r3 <= r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[1] + 1) + r3 = r4->unk28 - r4->unk68.as_four_players.others[r7].unk2; + if (r3 >= r4->unk68.as_four_players.others[r7].unk4.as_hwords[1] - 1 + && r3 <= r4->unk68.as_four_players.others[r7].unk4.as_hwords[1] + 1) { - ++r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[0]; - r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[1] = r3; - if (r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[0] > r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[2]) - r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[2] = r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[0]; + ++r4->unk68.as_four_players.others[r7].unk4.as_hwords[0]; + r4->unk68.as_four_players.others[r7].unk4.as_hwords[1] = r3; + if (r4->unk68.as_four_players.others[r7].unk4.as_hwords[0] > r4->unk68.as_four_players.others[r7].unk4.as_hwords[2]) + r4->unk68.as_four_players.others[r7].unk4.as_hwords[2] = r4->unk68.as_four_players.others[r7].unk4.as_hwords[0]; } else { - r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[0] = 0; - r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[1] = r3; + r4->unk68.as_four_players.others[r7].unk4.as_hwords[0] = 0; + r4->unk68.as_four_players.others[r7].unk4.as_hwords[1] = r3; } - r4->unk68.unk1C.separate.others[r7].unk2 = r4->unk28; - if (++r4->unk68.unk1C.separate.others[r7].unk4.as_bytes[12] > 2) - r4->unk68.unk1C.separate.others[r7].unk4.as_bytes[12] = 0; + r4->unk68.as_four_players.others[r7].unk2 = r4->unk28; + if (++r4->unk68.as_four_players.others[r7].unk4.as_2d_bytes[1][4] > 2) + r4->unk68.as_four_players.others[r7].unk4.as_2d_bytes[1][4] = 0; } else { - r4->unk68.unk1C.separate.others[r7].unk4.as_bytes[13] = 0; + r4->unk68.as_four_players.others[r7].unk4.as_2d_bytes[1][5] = 0; } } } @@ -2271,10 +2273,10 @@ void sub_802339C(struct BerryCrushGame *r4) { for (r7 = 0; r7 < r4->unk9; ++r7) { - if (r4->unk68.unk1C.separate.others[r7].unk4.as_bytes[13] != 0) + if (r4->unk68.as_four_players.others[r7].unk4.as_2d_bytes[1][5] != 0) { - r4->unk68.unk1C.separate.others[r7].unk4.as_bytes[13] |= 2; - ++r4->unk68.unk1C.separate.others[r7].unk4.as_hwords[4]; + r4->unk68.as_four_players.others[r7].unk4.as_2d_bytes[1][5] |= 2; + ++r4->unk68.as_four_players.others[r7].unk4.as_hwords[4]; } } } @@ -2309,11 +2311,11 @@ void sub_8023558(struct BerryCrushGame *r3) for (r4 = 0; r4 < r3->unk9; ++r4) { - if (r3->unk68.unk1C.separate.others[r4].unk4.as_bytes[13] != 0) + if (r3->unk68.as_four_players.others[r4].unk4.as_2d_bytes[1][5] != 0) { ++r6; - r1 = r3->unk68.unk1C.separate.others[r4].unk4.as_bytes[12] + 1; - if (r3->unk68.unk1C.separate.others[r4].unk4.as_bytes[13] & 2) + r1 = r3->unk68.as_four_players.others[r4].unk4.as_2d_bytes[1][4] + 1; + if (r3->unk68.as_four_players.others[r4].unk4.as_2d_bytes[1][5] & 2) r1 |= 4; r1 <<= 3 * r4; r3->unk5C.unk08 |= r1; @@ -2379,8 +2381,8 @@ void sub_80236B8(struct BerryCrushGame *r5) r5->unk5C.unk02_2 = 1; if (gMain.heldKeys & A_BUTTON) { - if (r5->unk68.unk1C.separate.others[r5->unk8].unk4.as_hwords[5] < r5->unk28) - ++r5->unk68.unk1C.separate.others[r5->unk8].unk4.as_hwords[5]; + if (r5->unk68.as_four_players.others[r5->unk8].unk4.as_hwords[5] < r5->unk28) + ++r5->unk68.as_four_players.others[r5->unk8].unk4.as_hwords[5]; } if (r5->unk8 != 0 && r5->unk5C.unk02_2 == 0) return; @@ -2448,14 +2450,14 @@ void sub_802385C(struct BerryCrushGame *r5) for (r4 = 0; r4 < r5->unk9; r4 = (u8)r0) { - r5->unk68.unk1C.separate.others[r4].unk4.as_bytes[13] = 0; + r5->unk68.as_four_players.others[r4].unk4.as_2d_bytes[1][5] = 0; r0 = r4 + 1; } #else u8 r4; for (r4 = 0; r4 < r5->unk9; ++r4) - r5->unk68.unk1C.separate.others[r4].unk4.as_bytes[13] = 0; + r5->unk68.as_four_players.others[r4].unk4.as_2d_bytes[1][5] = 0; #endif if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00 || gRecvCmds[0][1] != 2) @@ -2594,3 +2596,233 @@ u32 sub_8023A30(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) ++r4->unkC; return 0; } + +u32 sub_8023BC0(struct BerryCrushGame *r5, u8 *r6) +{ + switch (r5->unkC) + { + case 0: + r5->unk12 = 9; + PlaySE(SE_HAZURE); + BlendPalettes(0xFFFFFFFF, 8, RGB(31, 0, 0)); + r5->unk138.unk0 = 4; + break; + case 1: + if (--r5->unk138.unk0 != 255) + return 0; + BlendPalettes(0xFFFFFFFF, 0, RGB(31, 0, 0)); + r5->unk138.unk0 = 0; + break; + case 2: + if (!sub_80218D4(r5, &r5->unk138)) + return 0; + sub_8010434(); + r5->unk10 = 0; + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); + break; + case 3: + if (!IsLinkTaskFinished()) + return 0; + ConvertIntToDecimalStringN(gStringVar1, r5->unk1C, 0, 6); + sub_8024644(r6, 7, 1, 0, 0); + r5->unkE = 19; + sub_8022BEC(3, 1, NULL); + r5->unk10 = 0; + r5->unkC = 0; + return 0; + } + ++r5->unkC; + return 0; +} + +u32 sub_8023CAC(struct BerryCrushGame *r7, __attribute__((unused)) u8 *r1) +{ + u8 r8, r4_; + s32 r2; + s32 r4; + u8 r6; // ??? + + switch (r7->unkC) + { + case 0: + memset(r7->unk40.unk2, 0, 2 * sizeof(u16)); + if (r7->unk68.as_four_players.others[r7->unk8].unk4.as_hwords[5] > r7->unk28) + r7->unk68.as_four_players.others[r7->unk8].unk4.as_hwords[5] = r7->unk28; + r7->unk40.unk2[0] = r7->unk68.as_four_players.others[r7->unk8].unk4.as_hwords[5]; + SendBlock(0, r7->unk40.unk2, 2); + break; + case 1: + if (!IsLinkTaskFinished()) + return 0; + r7->unk10 = 0; + break; + case 2: + if (GetBlockReceivedStatus() != gUnknown_082F4448[r7->unk9 - 2]) + return 0; + for (r8 = 0; r8 < r7->unk9; ++r8) + r7->unk68.as_four_players.others[r8].unk4.as_hwords[5] = gBlockRecvBuffer[r8][0]; + r7->unk10 = 0; + r7->unk40.unk2[0] = 0; + ResetBlockReceivedFlags(); + if (r7->unk8 == 0) + r7->unkC = 3; + else + r7->unkC = 6; + return 0; + case 3: + memset( + &r7->unk68, + 0, + sizeof(struct BerryCrushGame_68_x_SubStruct) + ); + r7->unk68.as_four_players.unk00.unk04 = r7->unk28; + r7->unk68.as_four_players.unk00.unk06 = r7->unk18 / (r7->unk28 / 60); + r2 = sub_8151574(r7->unk30 << 8, 0x3200); + r2 = sub_81515FC(r2, r7->unk32 << 8) + 0x3200; + r2 >>= 8; + r7->unk68.as_four_players.unk00.unk08 = r2 & 0x7F; + r2 <<= 8; + r2 = sub_81515FC(r2, 0x6400); + r4 = (r7->unk1C * r7->unk9) << 8; + r4 = sub_8151574(r4, r2); + r7->unk68.as_four_players.unk00.unk00 = r4 >> 8; + r7->unk68.as_five_players.unk1C[0].unk4.as_2d_bytes[0][7] = Random() % 3; + for (r6 = 0, r8 = 0; r8 < r7->unk9; ++r8) + { + r7->unk68.as_five_players.unk1C[0].unk4.as_2d_bytes[0][r8] = r8; + r7->unk68.as_five_players.unk1C[0].unk4.as_2d_bytes[1][r8] = r8; + r7->unk68.as_four_players.unk00.unk0C[0][r8] = r7->unk68.as_four_players.others[r8].unk4.as_hwords[3]; + r7->unk68.as_four_players.unk00.unk0A += r7->unk68.as_four_players.unk00.unk0C[0][r8]; + switch (r7->unk68.as_five_players.unk1C[0].unk4.as_2d_bytes[0][7]) + { + case 0: + if (r7->unk68.as_four_players.others[r8].unk4.as_hwords[3] != 0) + { + r2 = r7->unk68.as_four_players.others[r8].unk4.as_hwords[2]; + r2 <<= 8; + r2 = sub_8151574(r2, 0x6400); + r4 = r7->unk68.as_four_players.others[r8].unk4.as_hwords[3]; + r4 <<= 8; + r4 = sub_81515FC(r2, r4); + } + else + { + r4 = 0; + } + break; + case 1: + if (r7->unk68.as_four_players.others[r8].unk4.as_hwords[3] != 0) + { + r2 = r7->unk68.as_four_players.others[r8].unk4.as_hwords[4]; + r2 <<= 8; + r2 = sub_8151574(r2, 0x6400); + r4 = r7->unk68.as_four_players.others[r8].unk4.as_hwords[3]; + r4 <<= 8; + r4 = sub_81515FC(r2, r4); + } + else + { + r4 = 0; + } + break; + case 2: + if (r7->unk68.as_four_players.others[r8].unk4.as_hwords[3] == 0) + { + r4 = 0; + } + else if (r7->unk68.as_four_players.others[r8].unk4.as_hwords[5] >= r7->unk28) + { + r4 = 0x6400; + } + else + { + r2 = r7->unk68.as_four_players.others[r8].unk4.as_hwords[5]; + r2 <<= 8; + r2 = sub_8151574(r2, 0x6400); + r4 = r7->unk28; + r4 <<= 8; + r4 = sub_81515FC(r2, r4); + } + break; + } + r4 >>= 4; + r7->unk68.as_four_players.unk00.unk0C[1][r8] = r4; + } + break; + case 4: + for (r6 = 0, r8 = 0; r8 < r7->unk9 - 1; ++r8) + { + for (r4_ = r7->unk9 - 1; r4_ > r8; --r4_) + { + u16 r0; + u8 r3; + u16 *sp00 = r7->unk68.as_four_players.unk00.unk0C[0]; + u8 *sp04 = r7->unk68.as_five_players.unk1C[0].unk4.as_2d_bytes[0]; + u8 *r10 = r7->unk68.as_five_players.unk1C[0].unk4.as_2d_bytes[1]; + u16 *r9 = r7->unk68.as_four_players.unk00.unk0C[1]; + s32 r12 = r4_ - 1; + u16 *p1 = sp00 + r12; // these have to be here + u16 *p2 = sp00 + r4_; // to swap operands. macro? + + if (*p1 < *p2) + { + r0 = sp00[r4_]; + sp00[r4_] = sp00[r12]; + sp00[r12] = r0; + r3 = sp04[r4_]; + sp04[r4_] = sp04[r12]; + sp04[r12] = r3; + } + p1 = r9 + r12; + p2 = r9 + r4_; + if (*p1 < *p2) + { + r0 = r9[r4_]; + r9[r4_] = r9[r12]; + r9[r12] = r0; + r3 = r10[r4_]; + r10[r4_] = r10[r12]; + r10[r12] = r3; + } + } + } + SendBlock( + 0, + &r7->unk68, + sizeof(struct BerryCrushGame_68_x_SubStruct) + ); + break; + case 5: + if (!IsLinkTaskFinished()) + return 0; + r7->unk10 = 0; + break; + case 6: + if (GetBlockReceivedStatus() != 1) + return 0; + memset( + &r7->unk68, + 0, + sizeof(struct BerryCrushGame_68_x_SubStruct) + ); + memcpy( + &r7->unk68, + gBlockRecvBuffer, + sizeof(struct BerryCrushGame_68_x_SubStruct) + ); + ResetBlockReceivedFlags(); + r7->unk10 = 0; + break; + case 7: + sub_8020E58(); + sub_8022BEC(18, 1, NULL); + r7->unk12 = 11; + r7->unkC = 0; + r7->unk24 = 0; + return 0; + } + ++r7->unkC; + return 0; +} From 5bec27aa345d8d5f893800af8f55825a0e89072e Mon Sep 17 00:00:00 2001 From: jiangzhengwenjz Date: Wed, 18 Dec 2019 03:35:41 +0800 Subject: [PATCH 7/8] nonmatch sub_8024604 --- .gitignore | 1 + asm/berry_crush.s | 807 ---------------------------------------------- include/strings.h | 21 ++ ld_script.txt | 1 - src/berry_crush.c | 413 ++++++++++++++++++++++-- 5 files changed, 406 insertions(+), 837 deletions(-) delete mode 100755 asm/berry_crush.s diff --git a/.gitignore b/.gitignore index 15cc865df7..93385ea51b 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,4 @@ build/ porymap.project.cfg .vscode/ *.a +.fuse_hidden* diff --git a/asm/berry_crush.s b/asm/berry_crush.s deleted file mode 100755 index 3857a9b90c..0000000000 --- a/asm/berry_crush.s +++ /dev/null @@ -1,807 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8024048 -sub_8024048: @ 8024048 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - ldrb r0, [r5, 0xC] - cmp r0, 0x4 - bhi _08024124 - lsls r0, 2 - ldr r1, =_08024064 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08024064: - .4byte _08024078 - .4byte _0802408A - .4byte _0802409C - .4byte _080240CC - .4byte _080240DC -_08024078: - movs r0, 0x9C - lsls r0, 1 - adds r1, r5, r0 - adds r0, r5, 0 - bl sub_8022070 - cmp r0, 0 - bne _08024124 - b _0802412A -_0802408A: - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0x9C - lsls r0, 1 - adds r1, r5, r0 - movs r0, 0x1E - strb r0, [r1] - b _08024124 -_0802409C: - movs r0, 0x9C - lsls r0, 1 - adds r1, r5, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080240AE - subs r0, 0x1 - strb r0, [r1] - b _0802412A -_080240AE: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0802412A - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_802222C - b _08024124 - .pool -_080240CC: - ldrh r0, [r5, 0x12] - cmp r0, 0xC - bhi _08024124 - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x12] - strb r1, [r5, 0xC] - b _0802412A -_080240DC: - ldr r0, =gStringVar1 - ldr r1, [r5, 0x1C] - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar2 - bl GetBerryPowder - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - movs r4, 0 - str r4, [sp] - adds r0, r6, 0 - movs r1, 0x2 - movs r2, 0x3 - movs r3, 0 - bl sub_8024644 - movs r0, 0x13 - strb r0, [r5, 0xE] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - strb r4, [r5, 0xC] - b _0802412A - .pool -_08024124: - ldrb r0, [r5, 0xC] - adds r0, 0x1 - strb r0, [r5, 0xC] -_0802412A: - movs r0, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8024048 - - thumb_func_start sub_8024134 -sub_8024134: @ 8024134 - push {r4,r5,lr} - sub sp, 0x10 - adds r5, r0, 0 - adds r4, r1, 0 - ldrb r0, [r5, 0xC] - cmp r0, 0x4 - bhi _08024218 - lsls r0, 2 - ldr r1, =_08024150 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08024150: - .4byte _08024164 - .4byte _080241A0 - .4byte _080241A6 - .4byte _080241F0 - .4byte _08024204 -_08024164: - ldrh r1, [r5, 0x28] - ldr r0, =0x00008c9f - cmp r1, r0 - bls _08024176 - movs r1, 0x9C - lsls r1, 1 - adds r0, r5, r1 - bl sub_8022554 -_08024176: - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0x8 - movs r2, 0 - movs r3, 0 - bl sub_8024644 - movs r4, 0 - movs r0, 0x13 - strb r0, [r5, 0xE] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - strb r4, [r5, 0xC] - b _0802421E - .pool -_080241A0: - bl sub_8010434 - b _08024218 -_080241A6: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0802421E - movs r0, 0 - movs r1, 0 - bl DrawDialogueFrame - ldr r2, =gText_SavingDontTurnOffPower - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized2 - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, =sub_8153688 - movs r1, 0 - bl CreateTask - b _08024218 - .pool -_080241F0: - ldr r0, =sub_8153688 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - beq _08024218 - b _0802421E - .pool -_08024204: - movs r0, 0x14 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - movs r1, 0 - movs r0, 0xF - strh r0, [r5, 0x12] - strb r1, [r5, 0xC] - b _0802421E -_08024218: - ldrb r0, [r5, 0xC] - adds r0, 0x1 - strb r0, [r5, 0xC] -_0802421E: - movs r0, 0 - add sp, 0x10 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8024134 - - thumb_func_start sub_8024228 -sub_8024228: @ 8024228 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - ldrb r0, [r5, 0xC] - cmp r0, 0x1 - beq _0802426A - cmp r0, 0x1 - bgt _08024240 - cmp r0, 0 - beq _08024246 - b _080242D0 -_08024240: - cmp r0, 0x2 - beq _08024270 - b _080242D0 -_08024246: - movs r0, 0x1 - str r0, [sp] - adds r0, r6, 0 - movs r1, 0x4 - movs r2, 0 - movs r3, 0 - bl sub_8024644 - movs r0, 0x14 - strb r0, [r5, 0xE] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - movs r0, 0 - strb r0, [r5, 0xC] - b _080242D8 -_0802426A: - bl DisplayYesNoMenuDefaultYes - b _080242D0 -_08024270: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _080242D6 - adds r0, r5, 0 - adds r0, 0x42 - movs r1, 0 - movs r2, 0xC - bl memset - cmp r4, 0 - bne _080242A2 - bl HasAtLeastOneBerry - lsls r0, 24 - cmp r0, 0 - beq _0802429E - strh r4, [r5, 0x14] - b _080242A6 -_0802429E: - movs r0, 0x3 - b _080242A4 -_080242A2: - movs r0, 0x1 -_080242A4: - strh r0, [r5, 0x14] -_080242A6: - movs r0, 0 - movs r1, 0x1 - bl ClearDialogWindowAndFrame - movs r4, 0 - str r4, [sp] - adds r0, r6, 0 - movs r1, 0x8 - movs r2, 0 - movs r3, 0 - bl sub_8024644 - movs r0, 0x15 - strb r0, [r5, 0xE] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - strb r4, [r5, 0xC] - b _080242D6 -_080242D0: - ldrb r0, [r5, 0xC] - adds r0, 0x1 - strb r0, [r5, 0xC] -_080242D6: - movs r0, 0 -_080242D8: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8024228 - - thumb_func_start sub_80242E0 -sub_80242E0: @ 80242E0 - push {r4-r7,lr} - adds r4, r0, 0 - movs r5, 0 - ldrb r0, [r4, 0xC] - cmp r0, 0x1 - beq _08024306 - cmp r0, 0x1 - bgt _080242F6 - cmp r0, 0 - beq _08024300 - b _080243AC -_080242F6: - cmp r0, 0x2 - beq _08024328 - cmp r0, 0x3 - beq _08024336 - b _080243AC -_08024300: - bl sub_8010434 - b _080243AC -_08024306: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _080243B2 - ldrh r0, [r4, 0x14] - adds r1, r4, 0 - adds r1, 0x42 - strh r0, [r1] - adds r0, r4, 0 - adds r0, 0x4E - strh r5, [r0] - movs r0, 0 - movs r2, 0x2 - bl SendBlock - b _080243AC -_08024328: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _080243B2 - strh r5, [r4, 0x10] - b _080243AC -_08024336: - bl GetBlockReceivedStatus - ldr r2, =gUnknown_082F4448 - ldrb r3, [r4, 0x9] - subs r1, r3, 0x2 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _080243B2 - adds r7, r4, 0 - adds r7, 0x42 - adds r6, r4, 0 - adds r6, 0x4E - cmp r5, r3 - bcs _08024374 - adds r1, r6, 0 - ldr r2, =gBlockRecvBuffer -_0802435C: - lsls r0, r5, 8 - adds r0, r2 - ldrh r0, [r0] - ldrh r3, [r1] - adds r0, r3 - strh r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r4, 0x9] - cmp r5, r0 - bcc _0802435C -_08024374: - ldrh r0, [r6] - cmp r0, 0 - beq _08024390 - movs r0, 0x17 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - b _0802439A - .pool -_08024390: - movs r0, 0x16 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC -_0802439A: - bl ResetBlockReceivedFlags - movs r1, 0 - movs r0, 0 - strh r0, [r7] - strh r0, [r6] - strh r0, [r4, 0x10] - strb r1, [r4, 0xC] - b _080243B4 -_080243AC: - ldrb r0, [r4, 0xC] - adds r0, 0x1 - strb r0, [r4, 0xC] -_080243B2: - movs r0, 0 -_080243B4: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80242E0 - - thumb_func_start sub_80243BC -sub_80243BC: @ 80243BC - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldrb r4, [r5, 0xC] - cmp r4, 0x1 - beq _080243EA - cmp r4, 0x1 - bgt _080243D2 - cmp r4, 0 - beq _080243DC - b _08024434 -_080243D2: - cmp r4, 0x2 - beq _080243F6 - cmp r4, 0x3 - beq _0802441A - b _08024434 -_080243DC: - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0x1 - movs r2, 0 - movs r3, 0x10 - b _08024410 -_080243EA: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - beq _08024434 - b _0802443A -_080243F6: - movs r0, 0 - movs r1, 0x1 - bl ClearDialogWindowAndFrame - adds r0, r5, 0 - bl sub_8021488 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 -_08024410: - bl BeginNormalPaletteFade - bl UpdatePaletteFade - b _08024434 -_0802441A: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _0802443A - movs r0, 0x7 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - movs r0, 0 - strh r4, [r5, 0x12] - b _08024438 -_08024434: - ldrb r0, [r5, 0xC] - adds r0, 0x1 -_08024438: - strb r0, [r5, 0xC] -_0802443A: - movs r0, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80243BC - - thumb_func_start sub_8024444 -sub_8024444: @ 8024444 - push {r4,r5,lr} - sub sp, 0x10 - adds r5, r0, 0 - ldrb r4, [r5, 0xC] - cmp r4, 0x1 - beq _080244BC - cmp r4, 0x1 - bgt _0802445A - cmp r4, 0 - beq _08024460 - b _080244F6 -_0802445A: - cmp r4, 0x2 - beq _080244D4 - b _080244F6 -_08024460: - movs r0, 0 - movs r1, 0 - bl DrawDialogueFrame - ldrh r1, [r5, 0x14] - cmp r1, 0x3 - bne _08024490 - ldr r0, =gUnknown_082F32A4 - ldr r2, [r0, 0x14] - ldrb r3, [r5, 0xB] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - bl AddTextPrinterParameterized2 - b _080244AC - .pool -_08024490: - ldr r0, =gUnknown_082F32A4 - ldr r2, [r0, 0x18] - ldrb r3, [r5, 0xB] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - bl AddTextPrinterParameterized2 -_080244AC: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - b _080244F6 - .pool -_080244BC: - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _080244FC - movs r0, 0x9C - lsls r0, 1 - adds r1, r5, r0 - movs r0, 0x78 - strb r0, [r1] - b _080244F6 -_080244D4: - movs r0, 0x9C - lsls r0, 1 - adds r1, r5, r0 - ldrb r0, [r1] - adds r4, r0, 0 - cmp r4, 0 - beq _080244E8 - subs r0, 0x1 - strb r0, [r1] - b _080244FC -_080244E8: - movs r0, 0x18 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - strb r4, [r5, 0xC] - b _080244FC -_080244F6: - ldrb r0, [r5, 0xC] - adds r0, 0x1 - strb r0, [r5, 0xC] -_080244FC: - movs r0, 0 - add sp, 0x10 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8024444 - - thumb_func_start sub_8024508 -sub_8024508: @ 8024508 - push {r4,r5,lr} - adds r5, r0, 0 - ldrb r4, [r5, 0xC] - cmp r4, 0x1 - beq _08024528 - cmp r4, 0x1 - bgt _0802451C - cmp r4, 0 - beq _08024522 - b _08024558 -_0802451C: - cmp r4, 0x2 - beq _08024538 - b _08024558 -_08024522: - bl sub_8010434 - b _08024558 -_08024528: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0802455E - bl sub_800AC34 - b _08024558 -_08024538: - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _0802455E - movs r0, 0x19 - strb r0, [r5, 0xE] - movs r0, 0x5 - movs r1, 0x1 - movs r2, 0 - bl sub_8022BEC - strb r4, [r5, 0xC] - b _0802455E - .pool -_08024558: - ldrb r0, [r5, 0xC] - adds r0, 0x1 - strb r0, [r5, 0xC] -_0802455E: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8024508 - - thumb_func_start sub_8024568 -sub_8024568: @ 8024568 - push {lr} - movs r0, 0 - bl sub_8020C0C - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_8024568 - - thumb_func_start sub_8024578 -sub_8024578: @ 8024578 - push {r4-r6,lr} - adds r4, r0, 0 - movs r5, 0 - movs r0, 0x33 - bl IncrementGameStat - strb r5, [r4, 0xD] - movs r1, 0 - strh r5, [r4, 0x10] - movs r0, 0x2 - strh r0, [r4, 0x12] - strh r5, [r4, 0x14] - str r5, [r4, 0x1C] - strh r5, [r4, 0x18] - strh r5, [r4, 0x1A] - str r5, [r4, 0x20] - adds r0, r4, 0 - adds r0, 0x24 - strb r1, [r0] - adds r1, r4, 0 - adds r1, 0x25 - movs r0, 0 - strb r0, [r1] - strh r5, [r4, 0x26] - strh r5, [r4, 0x28] - strh r5, [r4, 0x2E] - ldr r0, =0x0000ffff - strh r0, [r4, 0x32] - strh r5, [r4, 0x30] - strh r5, [r4, 0x34] - movs r6, 0 - movs r3, 0 -_080245B8: - lsls r0, r5, 5 - adds r2, r4, r0 - adds r1, r2, 0 - adds r1, 0xA4 - ldr r0, =0x0000ffff - strh r0, [r1] - adds r0, r2, 0 - adds r0, 0xA6 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r1, 0x6 - movs r0, 0x1 - strh r0, [r1] - adds r0, r2, 0 - adds r0, 0xAC - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r0, 0x2 - strb r6, [r0] - adds r0, 0x1 - strb r6, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _080245B8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8024578 - - thumb_func_start sub_8024604 -sub_8024604: @ 8024604 - push {r4-r6,lr} - sub sp, 0x8 - str r2, [sp, 0x4] - ldr r5, [sp, 0x18] - ldr r6, [sp, 0x1C] - ldr r4, [sp, 0x20] - mov r2, sp - strh r4, [r2] - add r4, sp, 0x4 - ldrb r2, [r4] - strb r2, [r0] - ldrb r2, [r4, 0x1] - strb r2, [r0, 0x1] - ldrb r2, [r4, 0x2] - strb r2, [r0, 0x2] - ldrb r2, [r4, 0x3] - strb r2, [r0, 0x3] - strb r3, [r0, 0x4] - strb r5, [r0, 0x5] - strb r6, [r0, 0x6] - mov r2, sp - ldrb r2, [r2] - strb r2, [r0, 0x7] - mov r2, sp - ldrb r2, [r2, 0x1] - strb r2, [r0, 0x8] - strb r1, [r0, 0x9] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8024604 - - thumb_func_start sub_8024644 -sub_8024644: @ 8024644 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, [sp, 0x10] - mov r4, sp - strh r3, [r4] - strb r1, [r0] - strb r2, [r0, 0x1] - mov r1, sp - ldrb r1, [r1] - strb r1, [r0, 0x2] - mov r1, sp - ldrb r1, [r1, 0x1] - strb r1, [r0, 0x3] - strb r5, [r0, 0x4] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8024644 - - .align 2, 0 @ don't pad with nop diff --git a/include/strings.h b/include/strings.h index d97d435f63..f8d77c73e9 100644 --- a/include/strings.h +++ b/include/strings.h @@ -2864,6 +2864,27 @@ extern const u8 gText_JumpsInARow[]; extern const u8 gText_BestScore2[]; extern const u8 gText_ExcellentsInARow[]; +// Berry crush +extern const u8 gText_Var1Berry[]; +extern const u8 gText_XDotY[]; +extern const u8 gText_1DotBlueF700[]; +extern const u8 gText_1DotF700[]; +extern const u8 gText_TimeColon[]; +extern const u8 gText_SpaceSec[]; +extern const u8 gText_XDotY2[]; +extern const u8 gText_SpaceMin[]; +extern const u8 gText_StrVar1[]; +extern const u8 gText_PressingSpeed[]; +extern const u8 gText_TimesPerSec[]; +extern const u8 gText_XDotY3[]; +extern const u8 gText_Silkiness[]; +extern const u8 gText_Var1Percent[]; +extern const u8 gText_PressesRankings[]; +extern const u8 gText_CrushingResults[]; +extern const u8 gText_BerryCrush2[]; +extern const u8 gText_PressingSpeedRankings[]; +extern const u8 gText_Var1Players[]; + // Lilycove Lady extern const u8 gText_ContestLady_Handsome[]; extern const u8 gText_ContestLady_Vinny[]; diff --git a/ld_script.txt b/ld_script.txt index 2f61377734..7e0eeac3de 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -72,7 +72,6 @@ SECTIONS { src/mevent_news.o(.text); src/union_room_chat.o(.text); src/berry_crush.o(.text); - asm/berry_crush.o(.text); src/berry_powder.o(.text); src/dodrio_berry_picking.o(.text); src/pokemon_jump.o(.text); diff --git a/src/berry_crush.c b/src/berry_crush.c index 1764d7573c..c61d4eeede 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -21,6 +21,7 @@ #include "pokemon_jump.h" #include "random.h" #include "rom_8034C54.h" +#include "save.h" #include "scanline_effect.h" #include "script.h" #include "sound.h" @@ -50,7 +51,8 @@ struct BerryCrushGame_Player struct __attribute__((packed, aligned(2))) BerryCrushGame_4E { - u8 filler0[0x4]; + u16 unk0; + u16 filler2; u8 unk4_0:1; u8 unk4_1:1; s8 unk5; @@ -112,7 +114,6 @@ struct BerryCrushGame_138_C u8 unk0; u8 unk1; u8 unk2; - u8 filler3; u16 unk4; u16 unk6; s16 unk8; @@ -149,12 +150,12 @@ struct BerryCrushGame u8 unkA; u8 unkB; u8 unkC; - u8 fillerD[0x1]; + u8 unkD; u8 unkE; u8 unkF; u16 unk10; u16 unk12; - u8 filler14[0x2]; + u16 unk14; u16 unk16; s16 unk18; s16 unk1A; @@ -191,7 +192,7 @@ static void sub_8020F88(void); static void sub_8020FA0(u8); void sub_8020FC4(struct BerryCrushGame *); void sub_8022BEC(u16, u8, u8 *); -void sub_8024604(u8 *, u8, s8, u8, u8, u8, u8); +void sub_8024604(u8 *, u32, s32, u32, u32, u32, u32); static int sub_8021450(struct BerryCrushGame *); void sub_8022588(struct BerryCrushGame *); void sub_8022600(struct BerryCrushGame *); @@ -217,30 +218,11 @@ extern const s8 gUnknown_082F41D2[][2]; extern const u32 gUnknown_082F334C[]; extern const u8 sBerryCrushTextColors1[][3]; extern const u8 *gUnknown_082F43B4[]; -extern const u8 gText_Var1Berry[]; -extern const u8 gText_XDotY[]; -extern const u8 gText_1DotBlueF700[]; -extern const u8 gText_1DotF700[]; -extern const u8 gText_TimeColon[]; -extern const u8 gText_SpaceSec[]; -extern const u8 gText_XDotY2[]; -extern const u8 gText_SpaceMin[]; -extern const u8 gText_StrVar1[]; -extern const u8 gText_PressingSpeed[]; -extern const u8 gText_TimesPerSec[]; -extern const u8 gText_XDotY3[]; extern const u8 sBerryCrushTextColors4[]; -extern const u8 gText_Silkiness[]; -extern const u8 gText_Var1Percent[]; extern const struct WindowTemplate gUnknown_082F32CC[]; extern const u8 gUnknown_082F3344[][4]; -extern const u8 gText_PressesRankings[]; -extern const u8 gText_CrushingResults[]; extern const struct WindowTemplate gUnknown_082F32EC; -extern const u8 gText_BerryCrush2[]; extern const u8 sBerryCrushTextColorTable[][3]; -extern const u8 gText_PressingSpeedRankings[]; -extern const u8 gText_Var1Players[]; extern const struct WindowTemplate gUnknown_082F32F4[]; extern const u8 gUnknown_082F417C[][5]; extern const struct BerryCrushGame_138_C gUnknown_082F4190[]; @@ -269,7 +251,7 @@ struct BerryCrushGame *sub_8020C00(void) return gUnknown_02022C90; } -int sub_8020C0C(MainCallback callback) +u32 sub_8020C0C(MainCallback callback) { if (!gUnknown_02022C90) return 2; @@ -282,7 +264,7 @@ int sub_8020C0C(MainCallback callback) SetMainCallback2(callback); if (callback == CB2_ReturnToField) { - gTextFlags.autoScroll = 1; + gTextFlags.autoScroll = TRUE; PlayNewMapMusic(MUS_POKECEN); SetMainCallback1(CB1_Overworld); } @@ -537,7 +519,7 @@ int sub_802104C(void) sub_8197200(); sub_8022588(var0); sub_8022600(var0); - gPaletteFade.bufferTransferDisabled = 1; + gPaletteFade.bufferTransferDisabled = TRUE; break; case 7: LoadPalette(gUnknown_08DE3398, 0, 0x180); @@ -558,7 +540,7 @@ int sub_802104C(void) ChangeBgY(1, 0, 0); break; case 9: - gPaletteFade.bufferTransferDisabled = 0; + gPaletteFade.bufferTransferDisabled = FALSE; BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); ShowBg(0); ShowBg(1); @@ -904,7 +886,7 @@ void sub_8021A28(struct BerryCrushGame *sp0C, u8 sp10, u8 sp14, u8 r3) ); StringAppend(gStringVar4, gUnknown_082F43B4[sp10]); r4 = sp14 - 4; - r10 = r6; // shift right should happen after the switch + r10 = r6; r9 = sp1C + 0xA2; r8 = sp18; r6 += 14; @@ -2826,3 +2808,376 @@ u32 sub_8023CAC(struct BerryCrushGame *r7, __attribute__((unused)) u8 *r1) ++r7->unkC; return 0; } + +u32 sub_8024048(struct BerryCrushGame *r5, u8 *r6) +{ + switch (r5->unkC) + { + case 0: + if (!sub_8022070(r5, &r5->unk138)) + return 0; + break; + case 1: + CopyBgTilemapBufferToVram(0); + r5->unk138.unk0 = 30; + break; + case 2: + if (r5->unk138.unk0 != 0) + { + --r5->unk138.unk0; + return 0; + } + if (!(gMain.newKeys & A_BUTTON)) + return 0; + PlaySE(SE_SELECT); + sub_802222C(r5); + break; + case 3: + if (r5->unk12 <= 12) + { + ++r5->unk12; + r5->unkC = 0; + return 0; + } + break; + case 4: + ConvertIntToDecimalStringN(gStringVar1, r5->unk1C, 0, 6); + ConvertIntToDecimalStringN(gStringVar2, GetBerryPowder(), 0, 6); + sub_8024644(r6, 2, 3, 0, 0); + r5->unkE = 19; + sub_8022BEC(3, 1, NULL); + r5->unkC = 0; + return 0; + } + ++r5->unkC; + return 0; +} + +u32 sub_8024134(struct BerryCrushGame *r5, u8 *r4) +{ + switch (r5->unkC) + { + case 0: + if (r5->unk28 >= 36000) + sub_8022554(&r5->unk138); + sub_8024644(r4, 8, 0, 0, 1); + r5->unkE = 19; + sub_8022BEC(3, 1, NULL); + r5->unkC = 0; + return 0; + case 1: + sub_8010434(); + break; + case 2: + if (!IsLinkTaskFinished()) + return 0; + DrawDialogueFrame(0, 0); + AddTextPrinterParameterized2(0, 1, gText_SavingDontTurnOffPower, 0, 0, 2, 1, 3); + CopyWindowToVram(0, 3); + CreateTask(sub_8153688, 0); + break; + case 3: + if (FuncIsActiveTask(sub_8153688)) + return 0; + break; + case 4: + sub_8022BEC(20, 1, NULL); + r5->unk12 = 15; + r5->unkC = 0; + return 0; + } + ++r5->unkC; + return 0; +} + +u32 sub_8024228(struct BerryCrushGame *r5, u8 *r6) +{ + s32 r4; +#ifndef NONMATCHING + register s32 r0 asm("r0"); +#else + s32 r0; +#endif + + switch (r5->unkC) + { + case 0: + sub_8024644(r6, 4, 0, 0, 1); + r5->unkE = 20; + sub_8022BEC(3, 1, NULL); + r0 = 0; + r5->unkC = r0; // dunno what it's doing because it's already in case 0 + return 0; + case 1: + DisplayYesNoMenuDefaultYes(); + break; + case 2: + if ((r4 = Menu_ProcessInputNoWrapClearOnChoose()) != -2) + { + memset(r5->unk40.unk2, 0, sizeof(r5->unk40.unk2)); + if (r4 == 0) + { + if (HasAtLeastOneBerry()) + r5->unk14 = 0; + else + r5->unk14 = 3; + } + else + { + r5->unk14 = 1; + } + ClearDialogWindowAndFrame(0, 1); + sub_8024644(r6, 8, 0, 0, 0); + r5->unkE = 21; + sub_8022BEC(3, 1, NULL); + r5->unkC = 0; + } + return 0; + } + ++r5->unkC; + return 0; +} + +u32 sub_80242E0(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +{ + u8 r5 = 0; + + switch (r4->unkC) + { + case 0: + sub_8010434(); + break; + case 1: + if (!IsLinkTaskFinished()) + return 0; + r4->unk40.unk2[0] = r4->unk14; + r4->unk40.unkE.unk0 = 0; + SendBlock(0, r4->unk40.unk2, sizeof(u16)); + break; + case 2: + if (!IsLinkTaskFinished()) + return 0; + r4->unk10 = 0; + break; + case 3: + if (GetBlockReceivedStatus() != gUnknown_082F4448[r4->unk9 - 2]) + return 0; + for (; r5 < r4->unk9; ++r5) + r4->unk40.unkE.unk0 += gBlockRecvBuffer[r5][0]; + if (r4->unk40.unkE.unk0 != 0) + sub_8022BEC(23, 1, NULL); + else + sub_8022BEC(22, 1, NULL); + ResetBlockReceivedFlags(); + r4->unk40.unk2[0] = 0; + r4->unk40.unkE.unk0 = 0; + r4->unk10 = 0; + r4->unkC = 0; + return 0; + } + ++r4->unkC; + return 0; +} + +u32 sub_80243BC(struct BerryCrushGame *r5, __attribute__((unused)) u8 *r1) +{ + switch (r5->unkC) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 1, 0, 0x10, RGB_BLACK); + UpdatePaletteFade(); + break; + case 1: + if (UpdatePaletteFade()) + return 0; + break; + case 2: + ClearDialogWindowAndFrame(0, 1); + sub_8021488(r5); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + UpdatePaletteFade(); + break; + case 3: + if (UpdatePaletteFade()) + return 0; + sub_8022BEC(7, 1, NULL); + r5->unk12 = 3; + r5->unkC = 0; + return 0; + } + ++r5->unkC; + return 0; +} + +u32 sub_8024444(struct BerryCrushGame *r5, __attribute__((unused)) u8 *r1) +{ + switch (r5->unkC) + { + case 0: + DrawDialogueFrame(0, 0); + if (r5->unk14 == 3) + AddTextPrinterParameterized2(0, 1, gUnknown_082F32A4[5], r5->unkB, 0, 2, 1, 3); + else + AddTextPrinterParameterized2(0, 1, gUnknown_082F32A4[6], r5->unkB, 0, 2, 1, 3); + CopyWindowToVram(0, 3); + break; + case 1: + if (IsTextPrinterActive(0)) + return 0; + r5->unk138.unk0 = 120; + break; + case 2: + if (r5->unk138.unk0 != 0) + --r5->unk138.unk0; + else + { + sub_8022BEC(24, 1, NULL); + r5->unkC = 0; + } + return 0; + } + ++r5->unkC; + return 0; +} + +u32 sub_8024508(struct BerryCrushGame *r5, __attribute__((unused)) u8 *r1) +{ + switch (r5->unkC) + { + case 0: + sub_8010434(); + break; + case 1: + if (!IsLinkTaskFinished()) + return 0; + sub_800AC34(); + break; + case 2: + if (gReceivedRemoteLinkPlayers != 0) + return 0; + r5->unkE = 25; + sub_8022BEC(5, 1, NULL); + r5->unkC = 2; // ??? + return 0; + } + ++r5->unkC; + return 0; +} + +u32 sub_8024568(__attribute__((unused)) struct BerryCrushGame *r0, __attribute__((unused)) u8 *r1) +{ + sub_8020C0C(NULL); + return 0; +} + +void sub_8024578(struct BerryCrushGame *r4) +{ + u8 r5 = 0; + + IncrementGameStat(GAME_STAT_51); + r4->unkD = 0; + r4->unk10 = 0; + r4->unk12 = 2; + r4->unk14 = 0; + r4->unk1C = 0; + r4->unk18 = 0; + r4->unk1A = 0; + r4->unk20 = 0; + r4->unk24 = 0; + r4->unk25_0 = 0; + r4->unk25_1 = 0; + r4->unk25_2 = 0; + r4->unk25_3 = 0; + r4->unk25_4 = 0; + r4->unk25_5 = 0; + r4->unk26 = 0; + r4->unk28 = 0; + r4->unk2E = 0; + r4->unk32 = -1; + r4->unk30 = 0; + r4->unk34 = 0; + for (; r5 < 5; ++r5) // why is it 5 instead of 4? fillerBC isn't sufficient for one player + { + r4->unk68.as_four_players.others[r5].unk0 = -1; + r4->unk68.as_four_players.others[r5].unk2 = 0; + r4->unk68.as_four_players.others[r5].unk4.as_hwords[0] = 0; + r4->unk68.as_four_players.others[r5].unk4.as_hwords[1] = 1; + r4->unk68.as_four_players.others[r5].unk4.as_hwords[2] = 0; + r4->unk68.as_four_players.others[r5].unk4.as_hwords[3] = 0; + r4->unk68.as_four_players.others[r5].unk4.as_hwords[4] = 0; + r4->unk68.as_four_players.others[r5].unk4.as_hwords[5] = 0; + r4->unk68.as_four_players.others[r5].unk4.as_2d_bytes[1][4] = 0; + r4->unk68.as_four_players.others[r5].unk4.as_2d_bytes[1][5] = 0; + } +} + +#ifdef NONMATCHING +void sub_8024604(u8 *r0, u32 r1, s32 r2, u32 r3, u32 r5, u32 r6, u32 r4) +{ + u8 sp[8]; + u8 *p; + + 1[(u32 *)sp] = r2; + 0[(u16 *)sp] = r4; + p = &sp[4]; + r0[0] = p[0]; + r0[1] = p[1]; + r0[2] = p[2]; + r0[3] = p[3]; + r0[4] = r3; + r0[5] = r5; + r0[6] = r6; + r0[7] = sp[0]; + r0[8] = sp[1]; + r0[9] = r1; +} +#else +NAKED +void sub_8024604(u8 *r0, u32 r1, s32 r2, u32 r3, u32 r5, u32 r6, u32 r4) +{ + asm_unified("\n\ + push {r4-r6,lr}\n\ + sub sp, 0x8\n\ + str r2, [sp, 0x4]\n\ + ldr r5, [sp, 0x18]\n\ + ldr r6, [sp, 0x1C]\n\ + ldr r4, [sp, 0x20]\n\ + mov r2, sp\n\ + strh r4, [r2]\n\ + add r4, sp, 0x4\n\ + ldrb r2, [r4]\n\ + strb r2, [r0]\n\ + ldrb r2, [r4, 0x1]\n\ + strb r2, [r0, 0x1]\n\ + ldrb r2, [r4, 0x2]\n\ + strb r2, [r0, 0x2]\n\ + ldrb r2, [r4, 0x3]\n\ + strb r2, [r0, 0x3]\n\ + strb r3, [r0, 0x4]\n\ + strb r5, [r0, 0x5]\n\ + strb r6, [r0, 0x6]\n\ + mov r2, sp\n\ + ldrb r2, [r2]\n\ + strb r2, [r0, 0x7]\n\ + mov r2, sp\n\ + ldrb r2, [r2, 0x1]\n\ + strb r2, [r0, 0x8]\n\ + strb r1, [r0, 0x9]\n\ + add sp, 0x8\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0"); +} +#endif + +void sub_8024644(u8 *r0, u32 r1, u32 r2, u32 r3, u32 r5) +{ + u8 sp[4]; + + 0[(u16 *)sp] = r3; + r0[0] = r1; + r0[1] = r2; + r0[2] = sp[0]; + r0[3] = sp[1]; + r0[4] = r5; +} From 420b4b3fea3868e91147c5293a332294fce07008 Mon Sep 17 00:00:00 2001 From: jiangzhengwenjz Date: Wed, 18 Dec 2019 04:17:10 +0800 Subject: [PATCH 8/8] use STR_CONV_MODE_* constants --- src/berry_crush.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/berry_crush.c b/src/berry_crush.c index c61d4eeede..f0987c9538 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -655,7 +655,7 @@ void sub_80214A8(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1) arg0->unk68.as_four_players.others[i].unk0 + 133); arg1->unk38[i] = &gSprites[spriteId]; arg1->unk38[i]->oam.priority = 3; - arg1->unk38[i]->affineAnimPaused = 1; + arg1->unk38[i]->affineAnimPaused = TRUE; arg1->unk38[i]->pos1.x = arg1->unkC[i]->unk8 + 120; arg1->unk38[i]->pos1.y = -16; data = arg1->unk38[i]->data; @@ -742,8 +742,8 @@ void sub_80216E0(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1) else StartSpriteAnim(arg1->unk24[i], 0); - arg1->unk24[i]->invisible = 0; - arg1->unk24[i]->animPaused = 0; + arg1->unk24[i]->invisible = FALSE; + arg1->unk24[i]->animPaused = FALSE; arg1->unk24[i]->pos2.x = gUnknown_082F41CC[(var % 4) - 1][0]; arg1->unk24[i]->pos2.y = gUnknown_082F41CC[(var % 4) - 1][1]; } @@ -881,7 +881,7 @@ void sub_8021A28(struct BerryCrushGame *sp0C, u8 sp10, u8 sp14, u8 r3) ConvertIntToDecimalStringN( gStringVar4, sp20->as_four_players.unk00.unk0C[sp10][i], - 1, + STR_CONV_MODE_RIGHT_ALIGN, 4 ); StringAppend(gStringVar4, gUnknown_082F43B4[sp10]); @@ -899,7 +899,7 @@ void sub_8021A28(struct BerryCrushGame *sp0C, u8 sp10, u8 sp14, u8 r3) ConvertIntToDecimalStringN( gStringVar1, sp20->as_four_players.unk00.unk0C[sp10][i] >> 4, - 1, + STR_CONV_MODE_RIGHT_ALIGN, 3 ); j = 0; @@ -916,7 +916,7 @@ void sub_8021A28(struct BerryCrushGame *sp0C, u8 sp10, u8 sp14, u8 r3) ConvertIntToDecimalStringN( gStringVar2, (u8)(r7 / 1000000), - 2, + STR_CONV_MODE_LEADING_ZEROS, 2 ); StringExpandPlaceholders(gStringVar4, gText_XDotY); @@ -1342,14 +1342,14 @@ void sub_8021D34(struct BerryCrushGame *r8) AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gText_TimeColon); r6 = 176 - (u8)GetStringWidth(2, gText_SpaceSec, -1); AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gText_SpaceSec); - ConvertIntToDecimalStringN(gStringVar1, r8->unk138.unk6, 2, 2); - ConvertIntToDecimalStringN(gStringVar2, r8->unk138.unk8, 2, 2); + ConvertIntToDecimalStringN(gStringVar1, r8->unk138.unk6, STR_CONV_MODE_LEADING_ZEROS, 2); + ConvertIntToDecimalStringN(gStringVar2, r8->unk138.unk8, STR_CONV_MODE_LEADING_ZEROS, 2); StringExpandPlaceholders(gStringVar4, gText_XDotY2); r6 -= GetStringWidth(2, gStringVar4, -1); AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gStringVar4); r6 -= GetStringWidth(2, gText_SpaceMin, -1); AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gText_SpaceMin); - ConvertIntToDecimalStringN(gStringVar1, r8->unk138.unk4, 2, 1); + ConvertIntToDecimalStringN(gStringVar1, r8->unk138.unk4, STR_CONV_MODE_LEADING_ZEROS, 1); StringExpandPlaceholders(gStringVar4, gText_StrVar1); r6 -= GetStringWidth(2, gStringVar4, -1); AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gStringVar4); @@ -1360,8 +1360,8 @@ void sub_8021D34(struct BerryCrushGame *r8) for (; r10 < 8; ++r10) if (((u8)r8->unk16 >> (7 - r10)) & 1) sp0C += *(r10 + gUnknown_082F334C); // It's accessed in a different way here for unknown reason - ConvertIntToDecimalStringN(gStringVar1, r8->unk16 >> 8, 1, 3); - ConvertIntToDecimalStringN(gStringVar2, sp0C / 1000000, 2, 2); + ConvertIntToDecimalStringN(gStringVar1, r8->unk16 >> 8, STR_CONV_MODE_RIGHT_ALIGN, 3); + ConvertIntToDecimalStringN(gStringVar2, sp0C / 1000000, STR_CONV_MODE_LEADING_ZEROS, 2); StringExpandPlaceholders(gStringVar4, gText_XDotY3); r6 -= GetStringWidth(2, gStringVar4, -1); if (r8->unk25_1) @@ -1370,7 +1370,7 @@ void sub_8021D34(struct BerryCrushGame *r8) AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gStringVar4); r7 += 14; AddTextPrinterParameterized3(r8->unk138.unk82, 2, 0, r7, sBerryCrushTextColors1[0], 0, gText_Silkiness); - ConvertIntToDecimalStringN(gStringVar1, sp10->as_four_players.unk00.unk08, 1, 3); + ConvertIntToDecimalStringN(gStringVar1, sp10->as_four_players.unk00.unk08, STR_CONV_MODE_RIGHT_ALIGN, 3); StringExpandPlaceholders(gStringVar4, gText_Var1Percent); r6 = 176 - (u8)GetStringWidth(2, gStringVar4, -1); AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColors1[0], 0, gStringVar4); @@ -1486,7 +1486,7 @@ void sub_8022250(u8 r4) r10 = 41; for (; r9 < 4; ++r9) { - ConvertIntToDecimalStringN(gStringVar1, r9 + 2, 0, 1); + ConvertIntToDecimalStringN(gStringVar1, r9 + 2, STR_CONV_MODE_LEFT_ALIGN, 1); StringExpandPlaceholders(gStringVar4, gText_Var1Players); AddTextPrinterParameterized3( (u8)r6[1], @@ -1510,8 +1510,8 @@ void sub_8022250(u8 r4) for (r2 = 0; r2 < 8; ++r2) if (((u8)r6[r9 + 2] >> (7 - r2)) & 1) sp0C += gUnknown_082F334C[r2]; - ConvertIntToDecimalStringN(gStringVar1, (u16)r6[r9 + 2] >> 8, 1, 3); - ConvertIntToDecimalStringN(gStringVar2, sp0C / 1000000, 2, 2); + ConvertIntToDecimalStringN(gStringVar1, (u16)r6[r9 + 2] >> 8, STR_CONV_MODE_RIGHT_ALIGN, 3); + ConvertIntToDecimalStringN(gStringVar2, sp0C / 1000000, STR_CONV_MODE_LEADING_ZEROS, 2); StringExpandPlaceholders(gStringVar4, gText_XDotY3); r7 -= GetStringWidth(1, gStringVar4, -1); AddTextPrinterParameterized3( @@ -2607,7 +2607,7 @@ u32 sub_8023BC0(struct BerryCrushGame *r5, u8 *r6) case 3: if (!IsLinkTaskFinished()) return 0; - ConvertIntToDecimalStringN(gStringVar1, r5->unk1C, 0, 6); + ConvertIntToDecimalStringN(gStringVar1, r5->unk1C, STR_CONV_MODE_LEFT_ALIGN, 6); sub_8024644(r6, 7, 1, 0, 0); r5->unkE = 19; sub_8022BEC(3, 1, NULL); @@ -2841,8 +2841,8 @@ u32 sub_8024048(struct BerryCrushGame *r5, u8 *r6) } break; case 4: - ConvertIntToDecimalStringN(gStringVar1, r5->unk1C, 0, 6); - ConvertIntToDecimalStringN(gStringVar2, GetBerryPowder(), 0, 6); + ConvertIntToDecimalStringN(gStringVar1, r5->unk1C, STR_CONV_MODE_LEFT_ALIGN, 6); + ConvertIntToDecimalStringN(gStringVar2, GetBerryPowder(), STR_CONV_MODE_LEFT_ALIGN, 6); sub_8024644(r6, 2, 3, 0, 0); r5->unkE = 19; sub_8022BEC(3, 1, NULL);