summaryrefslogtreecommitdiff
path: root/soh/src
diff options
context:
space:
mode:
authorMalkierian <malkierian@gmail.com>2024-10-20 23:49:32 -0700
committerGitHub <noreply@github.com>2024-10-20 23:49:32 -0700
commit4663bd152af155da0f3f922f5c751dce0bd2a8dd (patch)
tree6e64b3d2a57e4f48806867e7192edf7cb5d14591 /soh/src
parentb2e99b8ff5f17b70dac2d880087b6af7cada18bb (diff)
VBify poe collector giving for rando. (#4458)
* VBify poe collector giving for rando. * Forgot an include. * Further refinement so all the action happens in the handler. Virtual full restoration of vanilla code flow. * Restored 1000 point messages before rando item give. * Cleanup redundant GI Should call.
Diffstat (limited to 'soh/src')
-rw-r--r--soh/src/overlays/actors/ovl_En_Gb/z_en_gb.c24
-rw-r--r--soh/src/overlays/actors/ovl_En_Gb/z_en_gb.h2
2 files changed, 9 insertions, 17 deletions
diff --git a/soh/src/overlays/actors/ovl_En_Gb/z_en_gb.c b/soh/src/overlays/actors/ovl_En_Gb/z_en_gb.c
index fb37cf0af..8fd732aeb 100644
--- a/soh/src/overlays/actors/ovl_En_Gb/z_en_gb.c
+++ b/soh/src/overlays/actors/ovl_En_Gb/z_en_gb.c
@@ -7,6 +7,7 @@
#include "z_en_gb.h"
#include "objects/object_ps/object_ps.h"
#include "soh/frame_interpolation.h"
+#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h"
#define FLAGS (ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_FRIENDLY)
@@ -337,10 +338,7 @@ void func_80A2FA50(EnGb* this, PlayState* play) {
Player_UpdateBottleHeld(play, GET_PLAYER(play), ITEM_BOTTLE, PLAYER_IA_BOTTLE);
Rupees_ChangeBy(50);
HIGH_SCORE(HS_POE_POINTS) += 100;
- if (
- (!IS_RANDO && HIGH_SCORE(HS_POE_POINTS) != 1000) ||
- (IS_RANDO && (HIGH_SCORE(HS_POE_POINTS) != 1000 || Flags_GetRandomizerInf(RAND_INF_10_BIG_POES)))
- ) {
+ if (HIGH_SCORE(HS_POE_POINTS) != 1000) {
if (HIGH_SCORE(HS_POE_POINTS) > 1100) {
HIGH_SCORE(HS_POE_POINTS) = 1100;
}
@@ -348,7 +346,6 @@ void func_80A2FA50(EnGb* this, PlayState* play) {
} else {
Player* player = GET_PLAYER(play);
- Flags_SetRandomizerInf(RAND_INF_10_BIG_POES);
player->exchangeItemId = EXCH_ITEM_NONE;
this->textId = 0x70F8;
Message_ContinueTextbox(play, this->textId);
@@ -359,13 +356,10 @@ void func_80A2FA50(EnGb* this, PlayState* play) {
void func_80A2FB40(EnGb* this, PlayState* play) {
if (Message_GetState(&play->msgCtx) == TEXT_STATE_DONE && Message_ShouldAdvance(play)) {
- if (!IS_RANDO) {
+ if (GameInteractor_Should(VB_GIVE_ITEM_FROM_POE_COLLECTOR, true, this)) {
Actor_OfferGetItem(&this->dyna.actor, play, GI_BOTTLE, 100.0f, 10.0f);
- } else {
- GetItemEntry getItemEntry = Randomizer_GetItemFromKnownCheck(RC_MARKET_10_BIG_POES, GI_BOTTLE);
- GiveItemEntryFromActor(&this->dyna.actor, play, getItemEntry, 100.0f, 10.0f);
+ this->actionFunc = func_80A2FBB0;
}
- this->actionFunc = func_80A2FBB0;
}
}
@@ -373,13 +367,9 @@ void func_80A2FBB0(EnGb* this, PlayState* play) {
if (Actor_HasParent(&this->dyna.actor, play)) {
this->dyna.actor.parent = NULL;
this->actionFunc = func_80A2FC0C;
- } else {
- if (!IS_RANDO) {
- Actor_OfferGetItem(&this->dyna.actor, play, GI_BOTTLE, 100.0f, 10.0f);
- } else {
- GetItemEntry getItemEntry = Randomizer_GetItemFromKnownCheck(RC_MARKET_10_BIG_POES, GI_BOTTLE);
- GiveItemEntryFromActor(&this->dyna.actor, play, getItemEntry, 100.0f, 10.0f);
- }
+ }
+ else {
+ Actor_OfferGetItem(&this->dyna.actor, play, GI_BOTTLE, 100.0f, 10.0f);
}
}
diff --git a/soh/src/overlays/actors/ovl_En_Gb/z_en_gb.h b/soh/src/overlays/actors/ovl_En_Gb/z_en_gb.h
index 261b51797..6df73808e 100644
--- a/soh/src/overlays/actors/ovl_En_Gb/z_en_gb.h
+++ b/soh/src/overlays/actors/ovl_En_Gb/z_en_gb.h
@@ -47,4 +47,6 @@ typedef struct EnGb {
/* 0x0388 */ EnGbCagedSoul cagedSouls[4];
} EnGb; // size = 0x0438
+void func_80A2FC0C(EnGb* actor, PlayState* play);
+
#endif