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);
|
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) {
|
GetItemID Randomizer::GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId) {
|
||||||
switch(randoGet) {
|
switch(randoGet) {
|
||||||
case UNKNOWN_GET:
|
case UNKNOWN_GET:
|
||||||
|
@ -769,7 +773,7 @@ RandomizerCheck Randomizer::GetCheckFromActor(s16 actorId, GetItemID ogItemId) {
|
||||||
return UNKNOWN_CHECK;
|
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) {
|
if (!gSaveContext.n64ddFlag) {
|
||||||
return UNKNOWN_CHECK;
|
return UNKNOWN_CHECK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ class Randomizer {
|
||||||
std::unordered_map<RandomizerCheck, RandomizerGet> itemLocations;
|
std::unordered_map<RandomizerCheck, RandomizerGet> itemLocations;
|
||||||
GetItemID GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId);
|
GetItemID GetItemFromGet(RandomizerGet randoGet, GetItemID ogItemId);
|
||||||
RandomizerCheck GetCheckFromActor(s16 actorId, 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:
|
public:
|
||||||
Randomizer();
|
Randomizer();
|
||||||
|
@ -22,6 +22,7 @@ class Randomizer {
|
||||||
void ParseItemLocations(std::string spoilerfilename);
|
void ParseItemLocations(std::string spoilerfilename);
|
||||||
GetItemID GetItemFromActor(s16 actorId, GetItemID ogItemId);
|
GetItemID GetItemFromActor(s16 actorId, GetItemID ogItemId);
|
||||||
GetItemID GetItemFromSceneAndParams(s16 sceneNum, s16 actorParams, 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
|
#endif
|
||||||
|
|
|
@ -997,11 +997,11 @@ extern "C" int Controller_ShouldRumble(size_t i) {
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void LoadItemLocations() {
|
extern "C" void LoadItemLocations() {
|
||||||
return OTRGlobals::Instance->gRandomizer->LoadItemLocations();
|
OTRGlobals::Instance->gRandomizer->LoadItemLocations();
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void ParseItemLocations(const char* spoilerfilename) {
|
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) {
|
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) {
|
extern "C" GetItemID GetItemFromSceneAndParams(s16 sceneNum, s16 actorParams, GetItemID ogItemId) {
|
||||||
return OTRGlobals::Instance->gRandomizer->GetItemFromSceneAndParams(sceneNum, actorParams, 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;
|
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
|
* 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);
|
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 &&
|
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)) {
|
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,
|
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)) {
|
if (Flags_GetTreasure(globalCtx, this->dyna.actor.params & 0x1F)) {
|
||||||
EnBox_SetupAction(this, EnBox_Open);
|
EnBox_SetupAction(this, EnBox_Open);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue