mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-22 22:33:43 -07:00
i wonder what's going on here
This commit is contained in:
parent
63fe06a172
commit
265ecb9cea
4 changed files with 33 additions and 5 deletions
|
@ -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, f32 homePosX, f32 homePosY, f32 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:
|
||||
|
@ -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, f32 homePosX, f32 homePosY, f32 homePosZ) {
|
||||
if (!gSaveContext.n64ddFlag) {
|
||||
return UNKNOWN_CHECK;
|
||||
}
|
||||
|
|
|
@ -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, f32 homePosX = 0, f32 homePosY = 0, f32 homePosZ = 0);
|
||||
|
||||
public:
|
||||
Randomizer();
|
||||
|
@ -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, f32 homePosX, f32 homePosY, f32 homePosZ, GetItemID ogItemId);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -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) {
|
||||
|
@ -1011,3 +1011,8 @@ 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);
|
||||
}
|
||||
|
||||
extern "C" GetItemID GetItemFromSceneParamsAndHomePos(s16 sceneNum, s16 actorParams, f32 homePosX, f32 homePosY, f32 homePosZ, GetItemID ogItemId) {
|
||||
// the position values are broken here
|
||||
return OTRGlobals::Instance->gRandomizer->GetItemFromSceneParamsAndHomePos(sceneNum, actorParams, homePosX, homePosY, homePosZ, ogItemId);
|
||||
}
|
|
@ -388,6 +388,21 @@ s32 EnBox_GetRandomizedItemId(s16 actorParams, s16 sceneNum) {
|
|||
return 0 - itemId;
|
||||
}
|
||||
|
||||
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);
|
||||
return 0 - itemId;
|
||||
} else {
|
||||
s32 itemId = GetItemFromSceneAndParams(sceneNum, actorParams, actorParams >> 5 & 0x7F);
|
||||
return 0 - itemId;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Chest is ready to be open
|
||||
*/
|
||||
|
@ -429,8 +444,11 @@ void EnBox_WaitOpen(EnBox* this, GlobalContext* globalCtx) {
|
|||
func_8002DBD0(&this->dyna.actor, &sp4C, &player->actor.world.pos);
|
||||
if (sp4C.z > -50.0f && sp4C.z < 0.0f && fabsf(sp4C.y) < 10.0f && fabsf(sp4C.x) < 20.0f &&
|
||||
Player_IsFacingActor(&this->dyna.actor, 0x3000, globalCtx)) {
|
||||
// func_8002F554(&this->dyna.actor, globalCtx,
|
||||
// EnBox_GetRandomizedItemId(this->dyna.actor.params, globalCtx->sceneNum));
|
||||
func_8002F554(&this->dyna.actor, globalCtx,
|
||||
EnBox_GetRandomizedItemId(this->dyna.actor.params, globalCtx->sceneNum));
|
||||
EnBox_GetRandomizedItemIdTestDefinitelyDeleteThis(this->dyna.actor.params, globalCtx->sceneNum, this->dyna.actor.home.pos));
|
||||
|
||||
}
|
||||
if (Flags_GetTreasure(globalCtx, this->dyna.actor.params & 0x1F)) {
|
||||
EnBox_SetupAction(this, EnBox_Open);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue