mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-22 17:32:19 -05:00
Adds beta quest Gameshark cheat. (#975)
* Adds beta quest Gameshark cheat. * Fixes issue where lus was including a function from soh. * Limits beta quest to 0-8
This commit is contained in:
parent
d648c7275c
commit
4f29833476
@ -68,6 +68,13 @@ OSContPad* pads;
|
|||||||
std::map<std::string, GameAsset*> DefaultAssets;
|
std::map<std::string, GameAsset*> DefaultAssets;
|
||||||
std::vector<std::string> emptyArgs;
|
std::vector<std::string> emptyArgs;
|
||||||
|
|
||||||
|
bool isBetaQuestEnabled = false;
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
void enableBetaQuest() { isBetaQuestEnabled = true; }
|
||||||
|
void disableBetaQuest() { isBetaQuestEnabled = false; }
|
||||||
|
}
|
||||||
|
|
||||||
namespace SohImGui {
|
namespace SohImGui {
|
||||||
|
|
||||||
WindowImpl impl;
|
WindowImpl impl;
|
||||||
@ -1404,6 +1411,78 @@ namespace SohImGui {
|
|||||||
EnhancementCheckbox("Shield with Two-Handed Weapons", "gShieldTwoHanded");
|
EnhancementCheckbox("Shield with Two-Handed Weapons", "gShieldTwoHanded");
|
||||||
Tooltip("This allows you to put up your shield with any two-handed weapon in hand except for Deku Sticks");
|
Tooltip("This allows you to put up your shield with any two-handed weapon in hand except for Deku Sticks");
|
||||||
|
|
||||||
|
{
|
||||||
|
static int32_t betaQuestEnabled = CVar_GetS32("gEnableBetaQuest", 0);
|
||||||
|
static int32_t lastBetaQuestEnabled = betaQuestEnabled;
|
||||||
|
static int32_t betaQuestWorld = CVar_GetS32("gBetaQuestWorld", 0xFFEF);
|
||||||
|
static int32_t lastBetaQuestWorld = betaQuestWorld;
|
||||||
|
|
||||||
|
if (!isBetaQuestEnabled) {
|
||||||
|
ImGui::PushItemFlag(ImGuiItemFlags_Disabled, true);
|
||||||
|
ImGui::PushStyleVar(ImGuiStyleVar_Alpha, ImGui::GetStyle().Alpha * 0.5f);
|
||||||
|
}
|
||||||
|
|
||||||
|
EnhancementCheckbox("Enable Beta Quest", "gEnableBetaQuest");
|
||||||
|
Tooltip("Turns on OoT Beta Quest. *WARNING* This will reset your game.");
|
||||||
|
betaQuestEnabled = CVar_GetS32("gEnableBetaQuest", 0);
|
||||||
|
if (betaQuestEnabled) {
|
||||||
|
if (betaQuestEnabled != lastBetaQuestEnabled) {
|
||||||
|
betaQuestWorld = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui::Text("Beta Quest World: %d", betaQuestWorld);
|
||||||
|
|
||||||
|
if (ImGui::Button(" - ##BetaQuest")) {
|
||||||
|
betaQuestWorld--;
|
||||||
|
}
|
||||||
|
ImGui::SameLine();
|
||||||
|
ImGui::SetCursorPosX(ImGui::GetCursorPosX() - 7.0f);
|
||||||
|
|
||||||
|
ImGui::SliderInt("##BetaQuest", &betaQuestWorld, 0, 8, "", ImGuiSliderFlags_AlwaysClamp);
|
||||||
|
Tooltip("Set the Beta Quest world to explore. *WARNING* Changing this will reset your game.\nCtrl+Click to type in a value.");
|
||||||
|
|
||||||
|
ImGui::Text("After Slider Beta Quest World: %d", betaQuestWorld);
|
||||||
|
|
||||||
|
|
||||||
|
ImGui::SameLine();
|
||||||
|
ImGui::SetCursorPosX(ImGui::GetCursorPosX() - 7.0f);
|
||||||
|
if (ImGui::Button(" + ##BetaQuest")) {
|
||||||
|
betaQuestWorld++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (betaQuestWorld > 8) {
|
||||||
|
betaQuestWorld = 8;
|
||||||
|
}
|
||||||
|
else if (betaQuestWorld < 0) {
|
||||||
|
betaQuestWorld = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui::Text("After Clamp Beta Quest World: %d", betaQuestWorld);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
lastBetaQuestWorld = betaQuestWorld = 0xFFEF;
|
||||||
|
CVar_SetS32("gBetaQuestWorld", betaQuestWorld);
|
||||||
|
needs_save = true;
|
||||||
|
}
|
||||||
|
if (betaQuestEnabled != lastBetaQuestEnabled || betaQuestWorld != lastBetaQuestWorld)
|
||||||
|
{
|
||||||
|
// Reset the game if the beta quest state or world changed because beta quest happens on redirecting the title screen cutscene.
|
||||||
|
lastBetaQuestEnabled = betaQuestEnabled;
|
||||||
|
lastBetaQuestWorld = betaQuestWorld;
|
||||||
|
CVar_SetS32("gEnableBetaQuest", betaQuestEnabled);
|
||||||
|
CVar_SetS32("gBetaQuestWorld", betaQuestWorld);
|
||||||
|
|
||||||
|
console->Commands["reset"].handler(emptyArgs);
|
||||||
|
|
||||||
|
needs_save = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isBetaQuestEnabled) {
|
||||||
|
ImGui::PopItemFlag();
|
||||||
|
ImGui::PopStyleVar();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ImGui::EndMenu();
|
ImGui::EndMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,15 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
void enableBetaQuest();
|
||||||
|
void disableBetaQuest();
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
#include "GameOverlay.h"
|
#include "GameOverlay.h"
|
||||||
#include "Lib/ImGui/imgui.h"
|
#include "Lib/ImGui/imgui.h"
|
||||||
#include "Console.h"
|
#include "Console.h"
|
||||||
@ -97,3 +107,5 @@ namespace SohImGui {
|
|||||||
std::string BreakTooltip(const char* text, int lineLength = 60);
|
std::string BreakTooltip(const char* text, int lineLength = 60);
|
||||||
std::string BreakTooltip(const std::string& text, int lineLength = 60);
|
std::string BreakTooltip(const std::string& text, int lineLength = 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
@ -8,7 +8,7 @@ void SaveContext_Init(void) {
|
|||||||
gSaveContext.seqId = (u8)NA_BGM_DISABLED;
|
gSaveContext.seqId = (u8)NA_BGM_DISABLED;
|
||||||
gSaveContext.natureAmbienceId = NATURE_ID_DISABLED;
|
gSaveContext.natureAmbienceId = NATURE_ID_DISABLED;
|
||||||
gSaveContext.forcedSeqId = NA_BGM_GENERAL_SFX;
|
gSaveContext.forcedSeqId = NA_BGM_GENERAL_SFX;
|
||||||
gSaveContext.nextCutsceneIndex = 0xFFEF;
|
gSaveContext.nextCutsceneIndex = CVar_GetS32("gBetaQuestWorld", 0xFFEF);
|
||||||
gSaveContext.cutsceneTrigger = 0;
|
gSaveContext.cutsceneTrigger = 0;
|
||||||
gSaveContext.chamberCutsceneNum = 0;
|
gSaveContext.chamberCutsceneNum = 0;
|
||||||
gSaveContext.nextDayTime = 0xFFFF;
|
gSaveContext.nextDayTime = 0xFFFF;
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "soh/Enhancements/gameconsole.h"
|
#include "soh/Enhancements/gameconsole.h"
|
||||||
|
#include "../libultraship/ImGuiImpl.h"
|
||||||
#include "soh/frame_interpolation.h"
|
#include "soh/frame_interpolation.h"
|
||||||
|
|
||||||
void* D_8012D1F0 = NULL;
|
void* D_8012D1F0 = NULL;
|
||||||
@ -190,6 +190,7 @@ void Gameplay_Destroy(GameState* thisx) {
|
|||||||
KaleidoManager_Destroy();
|
KaleidoManager_Destroy();
|
||||||
ZeldaArena_Cleanup();
|
ZeldaArena_Cleanup();
|
||||||
Fault_RemoveClient(&D_801614B8);
|
Fault_RemoveClient(&D_801614B8);
|
||||||
|
disableBetaQuest();
|
||||||
gGlobalCtx = NULL;
|
gGlobalCtx = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -260,6 +261,7 @@ void GivePlayerRandoRewardSariaGift(GlobalContext* globalCtx, RandomizerCheck ch
|
|||||||
void Gameplay_Init(GameState* thisx) {
|
void Gameplay_Init(GameState* thisx) {
|
||||||
GlobalContext* globalCtx = (GlobalContext*)thisx;
|
GlobalContext* globalCtx = (GlobalContext*)thisx;
|
||||||
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
|
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
|
||||||
|
enableBetaQuest();
|
||||||
gGlobalCtx = globalCtx;
|
gGlobalCtx = globalCtx;
|
||||||
//globalCtx->state.gfxCtx = NULL;
|
//globalCtx->state.gfxCtx = NULL;
|
||||||
uintptr_t zAlloc;
|
uintptr_t zAlloc;
|
||||||
|
Loading…
Reference in New Issue
Block a user