mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-02-07 02:40:30 -05:00
[Time Savers] Shops and Games always open (#3789)
* Shops and Games always open * Added comment for scene reload requirement * Prefix * Spacing Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com> * I'm bad at merging * Refined by Archez --------- Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
This commit is contained in:
parent
458970816f
commit
c1365b3263
@ -33,6 +33,7 @@ extern "C" {
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
#include "functions.h"
|
||||
#include "src/overlays/actors/ovl_En_Door/z_en_door.h"
|
||||
void ResourceMgr_PatchGfxByName(const char* path, const char* patchName, int index, Gfx instruction);
|
||||
void ResourceMgr_UnpatchGfxByName(const char* path, const char* patchName);
|
||||
|
||||
@ -1222,6 +1223,34 @@ void RegisterRandomizedEnemySizes() {
|
||||
});
|
||||
}
|
||||
|
||||
void RegisterOpenAllHours() {
|
||||
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnActorInit>([](void* refActor) {
|
||||
Actor* actor = static_cast<Actor*>(refActor);
|
||||
|
||||
if (CVarGetInteger("gEnhancements.OpenAllHours", 0) && (actor->id == ACTOR_EN_DOOR)) {
|
||||
switch (actor->params) {
|
||||
case 4753: // Night Market Bazaar
|
||||
case 1678: // Night Potion Shop
|
||||
case 2689: // Day Bombchu Shop
|
||||
case 2703: // Night Slingshot Game
|
||||
case 653: // Day Chest Game
|
||||
case 6801: // Night Kak Bazaar
|
||||
case 7822: // Night Kak Potion Shop
|
||||
case 4751: // Night Kak Archery Game
|
||||
case 3728: // Night Mask Shop
|
||||
{
|
||||
actor->params = (actor->params & 0xFC00) | (DOOR_SCENEEXIT << 7) | 0x3F;
|
||||
EnDoor* enDoor = static_cast<EnDoor*>(refActor);
|
||||
EnDoor_SetupType(enDoor, gPlayState);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void PatchToTMedallions() {
|
||||
// TODO: Refactor the DemoEffect_UpdateJewelAdult and DemoEffect_UpdateJewelChild from z_demo_effect
|
||||
// effects to take effect in there
|
||||
@ -1353,6 +1382,7 @@ void InitMods() {
|
||||
RegisterAltTrapTypes();
|
||||
RegisterRandomizerSheikSpawn();
|
||||
RegisterRandomizedEnemySizes();
|
||||
RegisterOpenAllHours();
|
||||
RegisterToTMedallions();
|
||||
NameTag_RegisterHooks();
|
||||
RegisterPatchHandHandler();
|
||||
|
@ -631,6 +631,8 @@ void DrawEnhancementsMenu() {
|
||||
UIWidgets::Tooltip("The default response to Kaepora Gaebora is always that you understood what he said");
|
||||
UIWidgets::PaddedEnhancementCheckbox("Exit Market at Night", "gMarketSneak", true, false);
|
||||
UIWidgets::Tooltip("Allows exiting Hyrule Castle Market Town to Hyrule Field at night by speaking to the guard next to the gate.");
|
||||
UIWidgets::PaddedEnhancementCheckbox("Shops and Games Always Open", "gEnhancements.OpenAllHours", true, false);
|
||||
UIWidgets::Tooltip("Shops and minigames are open both day and night. Requires scene reload to take effect.");
|
||||
UIWidgets::PaddedEnhancementCheckbox("Link as default file name", "gLinkDefaultName", true, false);
|
||||
UIWidgets::Tooltip("Allows you to have \"Link\" as a premade file name");
|
||||
UIWidgets::PaddedEnhancementCheckbox("Quit Fishing At Door", "gQuitFishingAtDoor", true, false);
|
||||
|
@ -57,4 +57,6 @@ typedef struct EnDoor {
|
||||
/* 0x01D4 */ EnDoorActionFunc actionFunc;
|
||||
} EnDoor; // size = 0x01D8
|
||||
|
||||
void EnDoor_SetupType(EnDoor* enDoor, PlayState* play);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user