diff --git a/sm64.ld b/sm64.ld index 9319551e..e581587f 100755 --- a/sm64.ld +++ b/sm64.ld @@ -302,11 +302,7 @@ SECTIONS END_SEG(behavior) /* 0x8016F000 21D7D0-255EC0 [386F0] */ -#ifdef PRELIMINARY BEGIN_SEG(goddard, RAM_END - GODDARD_SIZE) -#else - BEGIN_SEG(goddard, 0x80345678) -#endif { KEEP(BUILD_DIR/src/menu*.o(.text)); KEEP(BUILD_DIR/src/menu*.o(.data*)); diff --git a/src/game/level_update.c b/src/game/level_update.c index d179cfd8..7d20cba5 100644 --- a/src/game/level_update.c +++ b/src/game/level_update.c @@ -28,6 +28,7 @@ #include "level_table.h" #include "course_table.h" #include "rumble_init.h" +#include "puppycam2.h" #include "config.h" @@ -640,6 +641,18 @@ void initiate_warp(s16 destLevel, s16 destArea, s16 destWarpNode, s32 arg3) { sWarpDest.areaIdx = destArea; sWarpDest.nodeId = destWarpNode; sWarpDest.arg = arg3; + + #ifdef PUPPYCAM + s32 i = 0; + if (sWarpDest.type != WARP_TYPE_SAME_AREA) + { + for (i = 0; i < gPuppyVolumeCount; i++) + { + mem_pool_free(gPuppyMemoryPool, sPuppyVolumeStack[i]); + } + gPuppyVolumeCount = 0; + } + #endif } // From Surface 0xD3 to 0xFC