Can always bribe the Hyrule Castle guard in randomiser. (#6129)

This commit is contained in:
Pepper0ni
2026-01-11 05:02:37 +00:00
committed by GitHub
parent cd8bd69c6e
commit 31eefd57df
3 changed files with 65 additions and 43 deletions

View File

@@ -262,6 +262,14 @@ typedef enum {
// - `*EnShopnuts` // - `*EnShopnuts`
VB_BUSINESS_SCRUB_DESPAWN, VB_BUSINESS_SCRUB_DESPAWN,
// #### `result`
// ```c
// true
// ```
// #### `args`
// - `*EnHeishi2`
VB_CAN_BRIBE_HEISHI2,
// #### `result` // #### `result`
// ```c // ```c
// true // true

View File

@@ -57,6 +57,7 @@ extern "C" {
#include "src/overlays/actors/ovl_Fishing/z_fishing.h" #include "src/overlays/actors/ovl_Fishing/z_fishing.h"
#include "src/overlays/actors/ovl_En_Mk/z_en_mk.h" #include "src/overlays/actors/ovl_En_Mk/z_en_mk.h"
#include "src/overlays/actors/ovl_Obj_Bean/z_obj_bean.h" #include "src/overlays/actors/ovl_Obj_Bean/z_obj_bean.h"
#include "src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.h"
#include "draw.h" #include "draw.h"
static ObjectExtension::Register<DnsItemEntry> RegisterDnsItemEntryOverride; static ObjectExtension::Register<DnsItemEntry> RegisterDnsItemEntryOverride;
@@ -842,6 +843,8 @@ void RandomizerOnDialogMessageHandler() {
} }
} }
extern "C" void func_80A5475C(EnHeishi2* CastleGuard, PlayState* play);
void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_list originalArgs) { void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_list originalArgs) {
va_list args; va_list args;
va_copy(args, originalArgs); va_copy(args, originalArgs);
@@ -948,6 +951,15 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l
} }
break; break;
} }
case VB_CAN_BRIBE_HEISHI2: {
EnHeishi2* guard = va_arg(args, EnHeishi2*);
guard->actor.textId = 0x7072;
guard->unk_300 = TEXT_STATE_CHOICE;
guard->unk_30E = 1;
guard->actionFunc = func_80A5475C;
*should = false;
break;
}
case VB_GIVE_ITEM_MASTER_SWORD: case VB_GIVE_ITEM_MASTER_SWORD:
if (RAND_GET_OPTION(RSK_SHUFFLE_MASTER_SWORD) || RAND_GET_OPTION(RSK_STARTING_MASTER_SWORD)) { if (RAND_GET_OPTION(RSK_SHUFFLE_MASTER_SWORD) || RAND_GET_OPTION(RSK_STARTING_MASTER_SWORD)) {
*should = false; *should = false;

View File

@@ -189,6 +189,7 @@ void func_80A531E4(EnHeishi2* this, PlayState* play) {
void func_80A53278(EnHeishi2* this, PlayState* play) { void func_80A53278(EnHeishi2* this, PlayState* play) {
this->unk_30B = 0; this->unk_30B = 0;
this->unk_30E = 0; this->unk_30E = 0;
if (GameInteractor_Should(VB_CAN_BRIBE_HEISHI2, true, this)) {
if (Text_GetFaceReaction(play, 5) != 0) { if (Text_GetFaceReaction(play, 5) != 0) {
this->actor.textId = Text_GetFaceReaction(play, 5); this->actor.textId = Text_GetFaceReaction(play, 5);
this->unk_30B = 1; this->unk_30B = 1;
@@ -237,6 +238,7 @@ void func_80A53278(EnHeishi2* this, PlayState* play) {
this->actionFunc = func_80A5475C; this->actionFunc = func_80A5475C;
} }
} }
}
void func_80A5344C(EnHeishi2* this, PlayState* play) { void func_80A5344C(EnHeishi2* this, PlayState* play) {
SkelAnime_Update(&this->skelAnime); SkelAnime_Update(&this->skelAnime);