diff options
| author | Eblo <7004497+Eblo@users.noreply.github.com> | 2025-03-31 11:46:08 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-31 10:46:08 -0500 |
| commit | 63e30e7ab21736f40f08d8e66964d12ce3bd3c2e (patch) | |
| tree | 6a6b3e6ecb6b9fdf374d3ba60c3107a07d4145f1 | |
| parent | 05047c859c3eec6cd582017973081264452e1466 (diff) | |
Fix free roam behavior with Romani reward (#1101)
| -rw-r--r-- | mm/2s2h/Rando/ActorBehavior/ActorBehavior.cpp | 1 | ||||
| -rw-r--r-- | mm/2s2h/Rando/ActorBehavior/ActorBehavior.h | 1 | ||||
| -rw-r--r-- | mm/2s2h/Rando/ActorBehavior/EnInvadepoh.cpp | 18 | ||||
| -rw-r--r-- | mm/2s2h/Rando/MiscBehavior/OfferGetItem.cpp | 1 |
4 files changed, 20 insertions, 1 deletions
diff --git a/mm/2s2h/Rando/ActorBehavior/ActorBehavior.cpp b/mm/2s2h/Rando/ActorBehavior/ActorBehavior.cpp index 738ab71a3..5c4e12028 100644 --- a/mm/2s2h/Rando/ActorBehavior/ActorBehavior.cpp +++ b/mm/2s2h/Rando/ActorBehavior/ActorBehavior.cpp @@ -92,6 +92,7 @@ void Rando::ActorBehavior::OnFileLoad() { Rando::ActorBehavior::InitEnGsBehavior(); Rando::ActorBehavior::InitEnHgBehavior(); Rando::ActorBehavior::InitEnInBehavior(); + Rando::ActorBehavior::InitEnInvadepohBehavior(); Rando::ActorBehavior::InitEnItem00Behavior(); Rando::ActorBehavior::InitEnJgameTsnBehavior(); Rando::ActorBehavior::InitEnJgBehavior(); diff --git a/mm/2s2h/Rando/ActorBehavior/ActorBehavior.h b/mm/2s2h/Rando/ActorBehavior/ActorBehavior.h index a18fb37ba..d38dec113 100644 --- a/mm/2s2h/Rando/ActorBehavior/ActorBehavior.h +++ b/mm/2s2h/Rando/ActorBehavior/ActorBehavior.h @@ -48,6 +48,7 @@ void InitEnGoBehavior(); void InitEnGsBehavior(); void InitEnHgBehavior(); void InitEnInBehavior(); +void InitEnInvadepohBehavior(); void InitEnItem00Behavior(); void InitEnJgameTsnBehavior(); void InitEnJgBehavior(); diff --git a/mm/2s2h/Rando/ActorBehavior/EnInvadepoh.cpp b/mm/2s2h/Rando/ActorBehavior/EnInvadepoh.cpp new file mode 100644 index 000000000..91b11b7ba --- /dev/null +++ b/mm/2s2h/Rando/ActorBehavior/EnInvadepoh.cpp @@ -0,0 +1,18 @@ +#include "ActorBehavior.h" +#include <libultraship/libultraship.h> + +void Rando::ActorBehavior::InitEnInvadepohBehavior() { + // This is the same block found for non-scripted actors in OfferGetItem.cpp, but without Player_TalkWithPlayer(). + COND_VB_SHOULD(VB_GIVE_ITEM_FROM_OFFER, IS_RANDO, { + GetItemId* item = va_arg(args, GetItemId*); + Actor* actor = va_arg(args, Actor*); + if (actor->id == ACTOR_EN_INVADEPOH) { // Romani Ranch invasion actor + *should = false; + Player* player = GET_PLAYER(gPlayState); + actor->parent = &player->actor; + player->talkActor = actor; + player->talkActorDistance = actor->xzDistToPlayer; + player->exchangeItemAction = PLAYER_IA_MINUS1; + } + }); +}
\ No newline at end of file diff --git a/mm/2s2h/Rando/MiscBehavior/OfferGetItem.cpp b/mm/2s2h/Rando/MiscBehavior/OfferGetItem.cpp index 5747da278..16502084d 100644 --- a/mm/2s2h/Rando/MiscBehavior/OfferGetItem.cpp +++ b/mm/2s2h/Rando/MiscBehavior/OfferGetItem.cpp @@ -53,7 +53,6 @@ void Rando::MiscBehavior::InitOfferGetItemBehavior() { actor->textId = 0x2AD1; [[fallthrough]]; case ACTOR_EN_DNO: - case ACTOR_EN_INVADEPOH: case ACTOR_EN_JS: case ACTOR_EN_KENDO_JS: case ACTOR_EN_GURUGURU: |
