Skip to content

Commit

Permalink
Merge pull request #4 from briaguya-ai/testing-out-item-replacement-w…
Browse files Browse the repository at this point in the history
…ith-position
  • Loading branch information
briaguya-ai authored May 28, 2022
2 parents 63fe06a + 602215f commit 801dc04
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 5 deletions.
6 changes: 5 additions & 1 deletion soh/soh/Enhancements/randomizer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -553,6 +553,10 @@ GetItemID Randomizer::GetItemFromSceneAndParams(s16 sceneNum, s16 actorParams, G
return GetItemFromGet(this->itemLocations[GetCheckFromSceneAndParams(sceneNum, actorParams)], 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);
}

GetItemID Randomizer::GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId) {
switch(randoGet) {
case UNKNOWN_GET:
Expand Down Expand Up @@ -769,7 +773,7 @@ RandomizerCheck Randomizer::GetCheckFromActor(s16 actorId, GetItemID ogItemId) {
return UNKNOWN_CHECK;
}

RandomizerCheck Randomizer::GetCheckFromSceneAndParams(s16 sceneNum, s16 actorParams) {
RandomizerCheck Randomizer::GetCheckFromSceneAndParams(s16 sceneNum, s16 actorParams, s32 homePosX, s32 homePosY, s32 homePosZ) {
if (!gSaveContext.n64ddFlag) {
return UNKNOWN_CHECK;
}
Expand Down
3 changes: 2 additions & 1 deletion soh/soh/Enhancements/randomizer.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class Randomizer {
std::unordered_map<RandomizerCheck, RandomizerGet> itemLocations;
GetItemID GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId);
RandomizerCheck GetCheckFromActor(s16 actorId, GetItemID ogItemId);
RandomizerCheck GetCheckFromSceneAndParams(s16 sceneNum, s16 actorParams);
RandomizerCheck GetCheckFromSceneAndParams(s16 sceneNum, s16 actorParams, s32 homePosX = 0, s32 homePosY = 0, s32 homePosZ = 0);

public:
Randomizer();
Expand All @@ -22,6 +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, s32 homePosX, s32 homePosY, s32 homePosZ, GetItemID ogItemId);
};

#endif
11 changes: 8 additions & 3 deletions soh/soh/OTRGlobals.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -997,11 +997,11 @@ extern "C" int Controller_ShouldRumble(size_t i) {
}

extern "C" void LoadItemLocations() {
return OTRGlobals::Instance->gRandomizer->LoadItemLocations();
OTRGlobals::Instance->gRandomizer->LoadItemLocations();
}

extern "C" void ParseItemLocations(const char* spoilerfilename) {
return OTRGlobals::Instance->gRandomizer->ParseItemLocations(spoilerfilename);
OTRGlobals::Instance->gRandomizer->ParseItemLocations(spoilerfilename);
}

extern "C" GetItemID GetItemFromActor(s16 actorId, GetItemID ogItemId) {
Expand All @@ -1010,4 +1010,9 @@ extern "C" GetItemID GetItemFromActor(s16 actorId, GetItemID ogItemId) {

extern "C" GetItemID GetItemFromSceneAndParams(s16 sceneNum, s16 actorParams, GetItemID ogItemId) {
return OTRGlobals::Instance->gRandomizer->GetItemFromSceneAndParams(sceneNum, actorParams, ogItemId);
}
}

// use an explicit (s32) cast on the position values from the Vec3f when calling
extern "C" GetItemID GetItemFromSceneParamsAndHomePos(s16 sceneNum, s16 actorParams, s32 homePosX, s32 homePosY, s32 homePosZ, GetItemID ogItemId) {
return OTRGlobals::Instance->gRandomizer->GetItemFromSceneParamsAndHomePos(sceneNum, actorParams, homePosX, homePosY, homePosZ, ogItemId);
}

0 comments on commit 801dc04

Please sign in to comment.