summaryrefslogtreecommitdiff
path: root/src/port/Engine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/port/Engine.cpp')
-rw-r--r--src/port/Engine.cpp15
1 files changed, 9 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;
}
}