From 48eb2d0ab079b82bd5313960437839b1dd69546b Mon Sep 17 00:00:00 2001 From: MysterD Date: Mon, 23 Aug 2021 19:47:15 -0700 Subject: [PATCH] Removed spawn offset from players during a same-area-warp --- src/game/level_update.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/game/level_update.c b/src/game/level_update.c index 2c25fa3ba..4c7624bb1 100644 --- a/src/game/level_update.c +++ b/src/game/level_update.c @@ -428,6 +428,18 @@ void init_mario_after_warp(void) { init_mario(); set_mario_initial_action(gMarioState, marioSpawnType, sWarpDest.arg); + // remove offset from local mario during warps + if (sWarpDest.type == WARP_TYPE_SAME_AREA) { + gMarioState[0].pos[0] = (s16)spawnNode->object->oPosX; + gMarioState[0].pos[1] = (s16)spawnNode->object->oPosY; + gMarioState[0].pos[2] = (s16)spawnNode->object->oPosZ; + if (gMarioState[0].marioObj != NULL) { + gMarioState[0].marioObj->oPosX = spawnNode->object->oPosX; + gMarioState[0].marioObj->oPosY = spawnNode->object->oPosY; + gMarioState[0].marioObj->oPosZ = spawnNode->object->oPosZ; + } + } + gMarioState->interactObj = spawnNode->object; gMarioState->usedObj = spawnNode->object; }