diff --git a/soh/soh/Enhancements/randomizer.cpp b/soh/soh/Enhancements/randomizer.cpp index bbeb10a20..c81916b5e 100644 --- a/soh/soh/Enhancements/randomizer.cpp +++ b/soh/soh/Enhancements/randomizer.cpp @@ -553,7 +553,7 @@ GetItemID Randomizer::GetItemFromSceneAndParams(s16 sceneNum, s16 actorParams, G return GetItemFromGet(this->itemLocations[GetCheckFromSceneAndParams(sceneNum, actorParams)], ogItemId); } -GetItemID Randomizer::GetItemFromSceneParamsAndHomePos(s16 sceneNum, s16 actorParams, f32 homePosX, f32 homePosY, f32 homePosZ, GetItemID ogItemId) { +GetItemID Randomizer::GetItemFromSceneParamsAndHomePos(s16 sceneNum, s16 actorParams, s32 homePosX, s32 homePosY, s32 homePosZ, GetItemID ogItemId) { return GetItemFromGet(this->itemLocations[GetCheckFromSceneAndParams(sceneNum, actorParams, homePosX, homePosY, homePosZ)], ogItemId); } @@ -773,7 +773,7 @@ RandomizerCheck Randomizer::GetCheckFromActor(s16 actorId, GetItemID ogItemId) { return UNKNOWN_CHECK; } -RandomizerCheck Randomizer::GetCheckFromSceneAndParams(s16 sceneNum, s16 actorParams, f32 homePosX, f32 homePosY, f32 homePosZ) { +RandomizerCheck Randomizer::GetCheckFromSceneAndParams(s16 sceneNum, s16 actorParams, s32 homePosX, s32 homePosY, s32 homePosZ) { if (!gSaveContext.n64ddFlag) { return UNKNOWN_CHECK; } diff --git a/soh/soh/Enhancements/randomizer.h b/soh/soh/Enhancements/randomizer.h index 4c700074f..b7c365c34 100644 --- a/soh/soh/Enhancements/randomizer.h +++ b/soh/soh/Enhancements/randomizer.h @@ -12,7 +12,7 @@ class Randomizer { std::unordered_map itemLocations; GetItemID GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId); RandomizerCheck GetCheckFromActor(s16 actorId, GetItemID ogItemId); - RandomizerCheck GetCheckFromSceneAndParams(s16 sceneNum, s16 actorParams, f32 homePosX = 0, f32 homePosY = 0, f32 homePosZ = 0); + RandomizerCheck GetCheckFromSceneAndParams(s16 sceneNum, s16 actorParams, s32 homePosX = 0, s32 homePosY = 0, s32 homePosZ = 0); public: Randomizer(); @@ -22,7 +22,7 @@ class Randomizer { void ParseItemLocations(std::string spoilerfilename); GetItemID GetItemFromActor(s16 actorId, GetItemID ogItemId); GetItemID GetItemFromSceneAndParams(s16 sceneNum, s16 actorParams, GetItemID ogItemId); - GetItemID GetItemFromSceneParamsAndHomePos(s16 sceneNum, s16 actorParams, f32 homePosX, f32 homePosY, f32 homePosZ, GetItemID ogItemId); + GetItemID GetItemFromSceneParamsAndHomePos(s16 sceneNum, s16 actorParams, s32 homePosX, s32 homePosY, s32 homePosZ, GetItemID ogItemId); }; #endif diff --git a/soh/soh/OTRGlobals.cpp b/soh/soh/OTRGlobals.cpp index c0181d3e5..cd6af51fb 100644 --- a/soh/soh/OTRGlobals.cpp +++ b/soh/soh/OTRGlobals.cpp @@ -1012,7 +1012,7 @@ extern "C" GetItemID GetItemFromSceneAndParams(s16 sceneNum, s16 actorParams, Ge return OTRGlobals::Instance->gRandomizer->GetItemFromSceneAndParams(sceneNum, actorParams, ogItemId); } -extern "C" GetItemID GetItemFromSceneParamsAndHomePos(s16 sceneNum, s16 actorParams, f32 homePosX, f32 homePosY, f32 homePosZ, GetItemID ogItemId) { +extern "C" GetItemID GetItemFromSceneParamsAndHomePos(s16 sceneNum, s16 actorParams, s32 homePosX, s32 homePosY, s32 homePosZ, GetItemID ogItemId) { // the position values are broken here return OTRGlobals::Instance->gRandomizer->GetItemFromSceneParamsAndHomePos(sceneNum, actorParams, homePosX, homePosY, homePosZ, ogItemId); } \ No newline at end of file diff --git a/soh/src/overlays/actors/ovl_En_Box/z_en_box.c b/soh/src/overlays/actors/ovl_En_Box/z_en_box.c index b5be8db02..7da8af4ad 100644 --- a/soh/src/overlays/actors/ovl_En_Box/z_en_box.c +++ b/soh/src/overlays/actors/ovl_En_Box/z_en_box.c @@ -391,11 +391,7 @@ s32 EnBox_GetRandomizedItemId(s16 actorParams, s16 sceneNum) { s32 EnBox_GetRandomizedItemIdTestDefinitelyDeleteThis(s16 actorParams, s16 sceneNum, Vec3f homePos) { // KF_MIDOS_TOP_LEFT_CHEST if(actorParams == 22944) { - f32 blargX = homePos.x; - f32 blargY = homePos.y; - f32 blargZ = homePos.z; - // all the position values are fine here - s32 itemId = GetItemFromSceneParamsAndHomePos(sceneNum, actorParams, blargX, blargY, blargZ, actorParams >> 5 & 0x7F); + s32 itemId = GetItemFromSceneParamsAndHomePos(sceneNum, actorParams, (s32)homePos.x, (s32)homePos.y, (s32)homePos.z, actorParams >> 5 & 0x7F); return 0 - itemId; } else { s32 itemId = GetItemFromSceneAndParams(sceneNum, actorParams, actorParams >> 5 & 0x7F);