From 7ad8ae5e40debbe17dfd677c587855c55356a96e Mon Sep 17 00:00:00 2001 From: Daniel Evans Date: Fri, 2 Dec 2016 00:42:38 +0000 Subject: [PATCH] Make loadTXD synchronous only --- rwengine/src/engine/GameData.cpp | 20 +++++++++++--------- rwengine/src/engine/GameData.hpp | 3 ++- rwengine/src/engine/GameWorld.cpp | 4 ++-- rwlib/source/loaders/LoaderTXD.cpp | 23 +---------------------- rwlib/source/loaders/LoaderTXD.hpp | 19 ------------------- 5 files changed, 16 insertions(+), 53 deletions(-) diff --git a/rwengine/src/engine/GameData.cpp b/rwengine/src/engine/GameData.cpp index fdc1e387..6ff9198e 100644 --- a/rwengine/src/engine/GameData.cpp +++ b/rwengine/src/engine/GameData.cpp @@ -295,21 +295,23 @@ void GameData::loadWater(const std::string& path) { } } -void GameData::loadTXD(const std::string& name, bool async) { +void GameData::loadTXD(const std::string& name) { if (loadedFiles.find(name) != loadedFiles.end()) { return; } loadedFiles[name] = true; - auto j = new LoadTextureArchiveJob(workContext, &index, textures, name); + /// @todo refactor loadTXD to use correct file locations + auto file = index.openFile(name); + if (!file) { + logger->error("Data", "Failed to open txd: " + name); + return; + } - if (async) { - workContext->queueJob(j); - } else { - j->work(); - j->complete(); - delete j; + TextureLoader l; + if (!l.loadFromMemory(file, textures)) { + logger->error("Data", "Error loading txd: " + name); } } @@ -493,7 +495,7 @@ void GameData::loadSplash(const std::string& name) { std::string lower(name); std::transform(lower.begin(), lower.end(), lower.begin(), ::tolower); - loadTXD(lower + ".txd", false); + loadTXD(lower + ".txd"); engine->state->currentSplash = lower; } diff --git a/rwengine/src/engine/GameData.hpp b/rwengine/src/engine/GameData.hpp index 74169c5c..47028157 100644 --- a/rwengine/src/engine/GameData.hpp +++ b/rwengine/src/engine/GameData.hpp @@ -18,6 +18,7 @@ class Logger; #include