From 4ba4fa21728d1cc97e8c1235527a3298172f6269 Mon Sep 17 00:00:00 2001 From: Ariel Antonitis Date: Tue, 16 Jun 2020 22:54:56 -0400 Subject: [PATCH] Added follower object to ScrCmd_release. --- gflib/sprite.c | 2 +- src/scrcmd.c | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/gflib/sprite.c b/gflib/sprite.c index 2355829ff9..a840a702fd 100644 --- a/gflib/sprite.c +++ b/gflib/sprite.c @@ -1603,7 +1603,7 @@ void FreeAllSpritePalettes(void) gReservedSpritePaletteCount = 0; for (i = 0; i < 16; i++) sSpritePaletteTags[i] = 0xFFFF; - LoadPalette(emptyPalette, i * 16 + 0x100, 32); // TODO: For debugging only + LoadPalette(emptyPalette, i * 16 + 0x100, 32); // TODO: DEBUG: Remove this or battle palettes break } u8 LoadSpritePalette(const struct SpritePalette *palette) diff --git a/src/scrcmd.c b/src/scrcmd.c index 537233abd8..745c3dbf80 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1267,6 +1267,15 @@ bool8 ScrCmd_lock(struct ScriptContext *ctx) bool8 ScrCmd_releaseall(struct ScriptContext *ctx) { u8 playerObjectId; + struct ObjectEvent *followerObject = GetFollowerObject(); + if (followerObject) { // Release follower from movement + // ObjectEventClearHeldMovement( TODO: Change the way data[1] determines state + followerObject->movementActionId = 0xFF; + followerObject->heldMovementActive = FALSE; + followerObject->heldMovementFinished = FALSE; + gSprites[followerObject->spriteId].data[2] = 0; + // ) + } HideFieldMessageBox(); playerObjectId = GetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_PLAYER, 0, 0); @@ -1279,6 +1288,15 @@ bool8 ScrCmd_releaseall(struct ScriptContext *ctx) bool8 ScrCmd_release(struct ScriptContext *ctx) { u8 playerObjectId; + struct ObjectEvent *followerObject = GetFollowerObject(); + if (followerObject) { // Release follower from movement + // ObjectEventClearHeldMovement( + followerObject->movementActionId = 0xFF; + followerObject->heldMovementActive = FALSE; + followerObject->heldMovementFinished = FALSE; + gSprites[followerObject->spriteId].data[2] = 0; + // ) + } HideFieldMessageBox(); if (gObjectEvents[gSelectedObjectEvent].active)