summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKiritoDv <kiritodev01@gmail.com>2024-12-27 23:07:06 -0600
committerKiritoDv <kiritodev01@gmail.com>2024-12-27 23:07:06 -0600
commitd0fb09f25ce180fcee46997cecf7899c6e41f13f (patch)
treec350c1e68a5dfd89ee4dcd30b2284dc55e2a8fe0
parent6869fce01a28efa2506d5dc9a30982bc47c42ccd (diff)
Added alt assets
-rw-r--r--src/port/Engine.cpp15
-rw-r--r--src/port/ui/ImguiUI.cpp2
2 files changed, 11 insertions, 6 deletions
diff --git a/src/port/Engine.cpp b/src/port/Engine.cpp
index 4c6962dc..b0056bb3 100644
--- a/src/port/Engine.cpp
+++ b/src/port/Engine.cpp
@@ -45,6 +45,7 @@
namespace fs = std::filesystem;
extern "C" {
+bool prevAltAssets = false;
float gInterpolationStep = 0.0f;
#include <sf64thread.h>
#include <macros.h>
@@ -172,6 +173,9 @@ GameEngine::GameEngine() {
loader->RegisterResourceFactory(std::make_shared<SF64::ResourceFactoryBinarySoundFontV0>(), RESOURCE_FORMAT_BINARY,
"SoundFont", static_cast<uint32_t>(SF64::ResourceType::SoundFont), 0);
+
+ prevAltAssets = CVarGetInteger("gEnhancements.Mods.AlternateAssets", 0);
+ context->GetResourceManager()->SetAltAssetsEnabled(prevAltAssets);
}
void GameEngine::Create() {
@@ -191,8 +195,6 @@ void GameEngine::Destroy() {
free(MemoryPool.memory);
}
-bool ShouldClearTextureCacheAtEndOfFrame = false;
-
void GameEngine::StartFrame() const {
using Ship::KbScancode;
const int32_t dwScancode = this->context->GetWindow()->GetLastScancode();
@@ -201,8 +203,7 @@ void GameEngine::StartFrame() const {
switch (dwScancode) {
case KbScancode::LUS_KB_TAB: {
// Toggle HD Assets
- CVarSetInteger("gAltAssets", !CVarGetInteger("gAltAssets", 0));
- ShouldClearTextureCacheAtEndOfFrame = true;
+ CVarSetInteger("gEnhancements.Mods.AlternateAssets", !CVarGetInteger("gEnhancements.Mods.AlternateAssets", 0));
break;
}
default:
@@ -326,9 +327,11 @@ void GameEngine::RunCommands(Gfx* Commands, const std::vector<std::unordered_map
gfx_end_frame();
}
- if (ShouldClearTextureCacheAtEndOfFrame) {
+ bool curAltAssets = CVarGetInteger("gEnhancements.Mods.AlternateAssets", 0);
+ if (prevAltAssets != curAltAssets) {
+ prevAltAssets = curAltAssets;
+ Ship::Context::GetInstance()->GetResourceManager()->SetAltAssetsEnabled(curAltAssets);
gfx_texture_cache_clear();
- ShouldClearTextureCacheAtEndOfFrame = false;
}
}
diff --git a/src/port/ui/ImguiUI.cpp b/src/port/ui/ImguiUI.cpp
index 99dd148d..bdd60910 100644
--- a/src/port/ui/ImguiUI.cpp
+++ b/src/port/ui/ImguiUI.cpp
@@ -371,6 +371,8 @@ void DrawSettingsMenu(){
UIWidgets::Tooltip("Allows windows to be able to be dragged off of the main game window. Requires a reload to take effect.");
}
+ UIWidgets::PaddedEnhancementCheckbox("Enable Alternative Assets", "gEnhancements.Mods.AlternateAssets");
+
// If more filters are added to LUS, make sure to add them to the filters list here
ImGui::Text("Texture Filter (Needs reload)");