diff --git a/soh/soh/Enhancements/item-tables/ItemTableManager.h b/soh/soh/Enhancements/item-tables/ItemTableManager.h index abc41418bd..c80c64817b 100644 --- a/soh/soh/Enhancements/item-tables/ItemTableManager.h +++ b/soh/soh/Enhancements/item-tables/ItemTableManager.h @@ -1,5 +1,6 @@ #pragma once #include "ItemTableTypes.h" +#include "z64item.h" #define CHEST_ANIM_SHORT 0 #define CHEST_ANIM_LONG 1 @@ -8,7 +9,7 @@ { itemId, field, (chestAnim != CHEST_ANIM_SHORT ? 1 : -1) * (drawId + 1), textId, objectId } #define GET_ITEM_NONE \ - { 0, 0, 0, 0, 0 } + { ITEM_NONE, 0, 0, 0, 0 } #include diff --git a/soh/soh/Enhancements/randomizer/randomizer.cpp b/soh/soh/Enhancements/randomizer/randomizer.cpp index ae712a00ab..b99880962c 100644 --- a/soh/soh/Enhancements/randomizer/randomizer.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer.cpp @@ -4808,7 +4808,7 @@ void InitRandoItemTable() { // Starting here, these do not have ItemIDs or GetItemIDs from vanilla, so I'm using their // RandomizerGet enum values for both. - GET_ITEM(RG_ICE_TRAP, OBJECT_INVALID, GID_RUPEE_GOLD, 0, 0, CHEST_ANIM_SHORT), + GET_ITEM(RG_ICE_TRAP, OBJECT_GI_RUPY, GID_RUPEE_GOLD, 0, 0, CHEST_ANIM_SHORT), GET_ITEM(RG_MAGIC_SINGLE, OBJECT_GI_MAGICPOT, GID_MAGIC_SMALL, 0xE4, 0x80, CHEST_ANIM_LONG), GET_ITEM(RG_MAGIC_DOUBLE, OBJECT_GI_MAGICPOT, GID_MAGIC_LARGE, 0xE8, 0x80, CHEST_ANIM_LONG), GET_ITEM(RG_DOUBLE_DEFENSE, OBJECT_GI_HEARTS, GID_HEART_CONTAINER, 0xE9, 0x80, CHEST_ANIM_LONG), diff --git a/soh/src/overlays/actors/ovl_player_actor/z_player.c b/soh/src/overlays/actors/ovl_player_actor/z_player.c index de938305eb..43ed2b2605 100644 --- a/soh/src/overlays/actors/ovl_player_actor/z_player.c +++ b/soh/src/overlays/actors/ovl_player_actor/z_player.c @@ -12975,15 +12975,16 @@ void func_8084E6D4(Player* this, GlobalContext* globalCtx) { else { func_80832DBC(this); - if (this->getItemId == GI_ICE_TRAP) { + if ((this->getItemId == GI_ICE_TRAP && !gSaveContext.n64ddFlag) || + (gSaveContext.n64ddFlag && this->getItemId == RG_ICE_TRAP)) { this->stateFlags1 &= ~(PLAYER_STATE1_10 | PLAYER_STATE1_11); - if (this->getItemId != GI_ICE_TRAP) { + if ((this->getItemId != GI_ICE_TRAP && !gSaveContext.n64ddFlag) || + (gSaveContext.n64ddFlag && this->getItemId != RG_ICE_TRAP)) { Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_CLEAR_TAG, this->actor.world.pos.x, this->actor.world.pos.y + 100.0f, this->actor.world.pos.z, 0, 0, 0, 0); func_8083C0E8(this, globalCtx); - } - else { + } else { this->actor.colChkInfo.damage = 0; func_80837C0C(globalCtx, this, 3, 0.0f, 0.0f, 0, 20); }