mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-02-18 00:00:35 -05:00
Add Scene Specific Checks to Dirt Path Fixes (#2907)
* Move from Dev to Dev-Spock * Moved to mod.h * Update GameInteractor.h
This commit is contained in:
parent
cf711d9164
commit
7962e0e6d6
@ -486,6 +486,24 @@ void RegisterBonkDamage() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UpdateDirtPathFixState(int32_t sceneNum) {
|
||||||
|
switch (sceneNum) {
|
||||||
|
case SCENE_SPOT00:
|
||||||
|
case SCENE_SPOT04:
|
||||||
|
case SCENE_SPOT15:
|
||||||
|
CVarSetInteger("gDirtPathFix", CVarGetInteger("gSceneSpecificDirtPathFix", 0));
|
||||||
|
return;
|
||||||
|
default:
|
||||||
|
CVarClear("gDirtPathFix");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void RegisterMenuPathFix() {
|
||||||
|
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnTransitionEnd>([](int32_t sceneNum) {
|
||||||
|
UpdateDirtPathFixState(sceneNum);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
void InitMods() {
|
void InitMods() {
|
||||||
RegisterTTS();
|
RegisterTTS();
|
||||||
RegisterInfiniteMoney();
|
RegisterInfiniteMoney();
|
||||||
@ -504,4 +522,5 @@ void InitMods() {
|
|||||||
RegisterRupeeDash();
|
RegisterRupeeDash();
|
||||||
RegisterHyperBosses();
|
RegisterHyperBosses();
|
||||||
RegisterBonkDamage();
|
RegisterBonkDamage();
|
||||||
|
RegisterMenuPathFix();
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
#ifndef MODS_H
|
#ifndef MODS_H
|
||||||
#define MODS_H
|
#define MODS_H
|
||||||
|
|
||||||
@ -5,6 +7,7 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void UpdateDirtPathFixState(int32_t sceneNum);
|
||||||
void InitMods();
|
void InitMods();
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
#include "soh/SaveManager.h"
|
#include "soh/SaveManager.h"
|
||||||
#include "OTRGlobals.h"
|
#include "OTRGlobals.h"
|
||||||
#include "soh/Enhancements/presets.h"
|
#include "soh/Enhancements/presets.h"
|
||||||
|
#include "soh/Enhancements/mods.h"
|
||||||
#include "soh/resource/type/Skeleton.h"
|
#include "soh/resource/type/Skeleton.h"
|
||||||
|
|
||||||
#ifdef ENABLE_CROWD_CONTROL
|
#ifdef ENABLE_CROWD_CONTROL
|
||||||
@ -46,6 +47,8 @@ extern "C" {
|
|||||||
void disableBetaQuest() { isBetaQuestEnabled = false; }
|
void disableBetaQuest() { isBetaQuestEnabled = false; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" PlayState* gPlayState;
|
||||||
|
|
||||||
enum SeqPlayers {
|
enum SeqPlayers {
|
||||||
/* 0 */ SEQ_BGM_MAIN,
|
/* 0 */ SEQ_BGM_MAIN,
|
||||||
/* 1 */ SEQ_FANFARE,
|
/* 1 */ SEQ_FANFARE,
|
||||||
@ -860,7 +863,9 @@ namespace GameMenuBar {
|
|||||||
ImGui::EndMenu();
|
ImGui::EndMenu();
|
||||||
}
|
}
|
||||||
UIWidgets::PaddedText("Fix Vanishing Paths", true, false);
|
UIWidgets::PaddedText("Fix Vanishing Paths", true, false);
|
||||||
UIWidgets::EnhancementCombobox("gDirtPathFix", zFightingOptions, 0);
|
if (UIWidgets::EnhancementCombobox("gSceneSpecificDirtPathFix", zFightingOptions, 0) && gPlayState != NULL) {
|
||||||
|
UpdateDirtPathFixState(gPlayState->sceneNum);
|
||||||
|
}
|
||||||
UIWidgets::Tooltip("Disabled: Paths vanish more the higher the resolution (Z-fighting is based on resolution)\n"
|
UIWidgets::Tooltip("Disabled: Paths vanish more the higher the resolution (Z-fighting is based on resolution)\n"
|
||||||
"Consistent: Certain paths vanish the same way in all resolutions\n"
|
"Consistent: Certain paths vanish the same way in all resolutions\n"
|
||||||
"No Vanish: Paths do not vanish, Link seems to sink in to some paths\n"
|
"No Vanish: Paths do not vanish, Link seems to sink in to some paths\n"
|
||||||
|
Loading…
Reference in New Issue
Block a user