From edbb95f2a5fbe3351cb6eb064d9800a1820771ff Mon Sep 17 00:00:00 2001 From: Ariel A <24759293+aarant@users.noreply.github.com> Date: Sat, 3 Sep 2022 15:23:49 -0400 Subject: [PATCH 1/2] Cherry-pick of d6bac9895: Fixed contest palette load errors. --- src/contest_util.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/contest_util.c b/src/contest_util.c index c2b226a180..76a9fd2dfd 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -2505,6 +2505,12 @@ void SetLinkContestPlayerGfx(void) } } +// copied from event_object_movement +#define OBJ_EVENT_PAL_TAG_BRENDAN 0x1100 +#define OBJ_EVENT_PAL_TAG_MAY 0x1110 +#define OBJ_EVENT_PAL_TAG_RS_BRENDAN 0x1122 +#define OBJ_EVENT_PAL_TAG_RS_MAY 0x1123 + void LoadLinkContestPlayerPalettes(void) { int i; @@ -2513,28 +2519,28 @@ void LoadLinkContestPlayerPalettes(void) struct Sprite *sprite; static const u8 sContestantLocalIds[CONTESTANT_COUNT] = { 3, 4, 5, 14 }; - gReservedSpritePaletteCount = 12; + // gReservedSpritePaletteCount = 12; + // TODO: Does dynamically allocating link player palettes break link contests? if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { for (i = 0; i < gNumLinkContestPlayers; i++) { objectEventId = GetObjectEventIdByLocalIdAndMap(sContestantLocalIds[i], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); sprite = &gSprites[gObjectEvents[objectEventId].spriteId]; - sprite->oam.paletteNum = 6 + i; version = (u8)gLinkPlayers[i].version; if (version == VERSION_RUBY || version == VERSION_SAPPHIRE) { if (gLinkPlayers[i].gender == MALE) - LoadPalette(gObjectEventPal_RubySapphireBrendan, OBJ_PLTT_ID(6 + i), PLTT_SIZE_4BPP); + sprite->oam.paletteNum = LoadObjectEventPalette(OBJ_EVENT_PAL_TAG_RS_BRENDAN); else - LoadPalette(gObjectEventPal_RubySapphireMay, OBJ_PLTT_ID(6 + i), PLTT_SIZE_4BPP); + sprite->oam.paletteNum = LoadObjectEventPalette(OBJ_EVENT_PAL_TAG_RS_MAY); } else { if (gLinkPlayers[i].gender == MALE) - LoadPalette(gObjectEventPal_Brendan, OBJ_PLTT_ID(6 + i), PLTT_SIZE_4BPP); + sprite->oam.paletteNum = LoadObjectEventPalette(OBJ_EVENT_PAL_TAG_BRENDAN); else - LoadPalette(gObjectEventPal_May, OBJ_PLTT_ID(6 + i), PLTT_SIZE_4BPP); + sprite->oam.paletteNum = LoadObjectEventPalette(OBJ_EVENT_PAL_TAG_MAY); } } } From b1ea5fb8c38fb293b67c147a9c8ca514cd28b994 Mon Sep 17 00:00:00 2001 From: Ariel A <24759293+aarant@users.noreply.github.com> Date: Sun, 5 Mar 2023 01:38:01 -0500 Subject: [PATCH 2/2] Fixed bug with applymovement not hiding followers after a battle. --- data/maps/RusturfTunnel/scripts.inc | 2 +- data/scripts/trainer_battle.inc | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/data/maps/RusturfTunnel/scripts.inc b/data/maps/RusturfTunnel/scripts.inc index e7eee5817a..86c5e0f6ad 100644 --- a/data/maps/RusturfTunnel/scripts.inc +++ b/data/maps/RusturfTunnel/scripts.inc @@ -274,6 +274,7 @@ RusturfTunnel_EventScript_TunnelBlockagePos3:: RusturfTunnel_EventScript_AquaGruntBackUp:: lockall + setflag FLAG_SAFE_FOLLOWER_MOVEMENT msgbox RusturfTunnel_Text_ComeAndGetSome, MSGBOX_DEFAULT closemessage applymovement LOCALID_GRUNT, RusturfTunnel_Movement_GruntAndPeekoBackUp @@ -529,4 +530,3 @@ RusturfTunnel_Text_MikePostBattle: .string "They halted development here to\n" .string "protect POKéMON, right?\l" .string "There's a feel-good story!$" - diff --git a/data/scripts/trainer_battle.inc b/data/scripts/trainer_battle.inc index 66d4d6d5c0..cbbdaac291 100644 --- a/data/scripts/trainer_battle.inc +++ b/data/scripts/trainer_battle.inc @@ -10,9 +10,10 @@ EventScript_TrainerApproach:: EventScript_TryDoNormalTrainerBattle:: lock faceplayer - setflag FLAG_SAFE_FOLLOWER_MOVEMENT + setflag FLAG_SAFE_FOLLOWER_MOVEMENT applymovement VAR_LAST_TALKED, Movement_RevealTrainer waitmovement 0 + clearflag FLAG_SAFE_FOLLOWER_MOVEMENT specialvar VAR_RESULT, GetTrainerFlag goto_if_ne VAR_RESULT, FALSE, EventScript_NoNormalTrainerBattle special PlayTrainerEncounterMusic @@ -45,9 +46,10 @@ EventScript_NoDoubleTrainerBattle:: gotopostbattlescript EventScript_DoNoIntroTrainerBattle:: - setflag FLAG_SAFE_FOLLOWER_MOVEMENT + setflag FLAG_SAFE_FOLLOWER_MOVEMENT applymovement VAR_LAST_TALKED, Movement_RevealTrainer waitmovement 0 + clearflag FLAG_SAFE_FOLLOWER_MOVEMENT special PlayTrainerEncounterMusic dotrainerbattle gotopostbattlescript @@ -95,9 +97,10 @@ EventScript_NotEnoughMonsForDoubleRematchBattle:: end EventScript_RevealTrainer:: - setflag FLAG_SAFE_FOLLOWER_MOVEMENT + setflag FLAG_SAFE_FOLLOWER_MOVEMENT applymovement VAR_LAST_TALKED, Movement_RevealTrainer waitmovement 0 + clearflag FLAG_SAFE_FOLLOWER_MOVEMENT return Movement_RevealTrainer: