From 81f3a2514301cf163bdd94d0c52daef6bf2dbbd2 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Tue, 19 Aug 2025 16:39:39 +0200 Subject: [PATCH] afegit makefile per a macos --- Makefile | 3 +- pack_resources | Bin 144320 -> 0 bytes source/director.cpp | 5 +++ test_loader.cpp | 89 -------------------------------------------- 4 files changed, 7 insertions(+), 90 deletions(-) delete mode 100755 pack_resources delete mode 100644 test_loader.cpp diff --git a/Makefile b/Makefile index b367183..9cdcc25 100644 --- a/Makefile +++ b/Makefile @@ -207,7 +207,8 @@ macos_release: $(MKDIR) Frameworks # Copia carpetas y ficheros - cp -R data "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources" + cp -R config "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources" + cp resources.pack "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources" cp -R release/frameworks/SDL3.xcframework "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Frameworks" cp -R release/frameworks/SDL3.xcframework Frameworks cp release/*.icns "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources" diff --git a/pack_resources b/pack_resources deleted file mode 100755 index fbf44c7bd294e62f8bf932d42bce9e745b4c6b9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144320 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"gamecontrollerdb.txt"), Asset::get()->get("controllers.json")); // Carga configuración de controles Options::setConfigFile(Asset::get()->get("config.txt")); // Establece el fichero de configuración diff --git a/test_loader.cpp b/test_loader.cpp deleted file mode 100644 index 8bb828d..0000000 --- a/test_loader.cpp +++ /dev/null @@ -1,89 +0,0 @@ -#include "source/resource_loader.h" -#include - -int main() { - std::cout << "Testing Resource Loader" << std::endl; - std::cout << "=======================" << std::endl; - - auto& loader = ResourceLoader::getInstance(); - - std::cout << "Initializing with pack file..." << std::endl; - if (!loader.initialize("test_resources.pack")) { - std::cerr << "Failed to initialize resource loader" << std::endl; - return 1; - } - - std::cout << "Loaded resources: " << loader.getLoadedResourceCount() << std::endl; - std::cout << std::endl; - - std::cout << "Testing resource loading..." << std::endl; - - std::string testFile = "sound/title.wav"; - if (loader.resourceExists(testFile)) { - auto data = loader.loadResource(testFile); - std::cout << "✓ " << testFile << " - Size: " << data.size() << " bytes" << std::endl; - - if (data.size() > 44) { - std::cout << " WAV Header: "; - for (int i = 0; i < 12; i++) { - if (data[i] >= 32 && data[i] < 127) { - std::cout << (char)data[i]; - } else { - std::cout << "."; - } - } - std::cout << std::endl; - } - } else { - std::cout << "✗ " << testFile << " - Not found" << std::endl; - } - - testFile = "gfx/logo/logo_jailgames.png"; - if (loader.resourceExists(testFile)) { - auto data = loader.loadResource(testFile); - std::cout << "✓ " << testFile << " - Size: " << data.size() << " bytes" << std::endl; - - if (data.size() > 8) { - std::cout << " PNG Header: "; - for (int i = 1; i < 4; i++) { - std::cout << (char)data[i]; - } - std::cout << std::endl; - } - } else { - std::cout << "✗ " << testFile << " - Not found" << std::endl; - } - - testFile = "lang/es_ES.json"; - if (loader.resourceExists(testFile)) { - auto data = loader.loadResource(testFile); - std::cout << "✓ " << testFile << " - Size: " << data.size() << " bytes" << std::endl; - - if (data.size() > 50) { - std::cout << " JSON preview: "; - for (int i = 0; i < 50 && i < data.size(); i++) { - std::cout << (char)data[i]; - } - std::cout << "..." << std::endl; - } - } else { - std::cout << "✗ " << testFile << " - Not found" << std::endl; - } - - std::cout << std::endl; - std::cout << "Testing fallback to filesystem..." << std::endl; - loader.shutdown(); - - if (loader.initialize("nonexistent.pack", true)) { - std::cout << "Fallback mode enabled successfully" << std::endl; - - auto data = loader.loadResource("sound/title.wav"); - if (!data.empty()) { - std::cout << "✓ Fallback loading works - Size: " << data.size() << " bytes" << std::endl; - } else { - std::cout << "✗ Fallback loading failed" << std::endl; - } - } - - return 0; -} \ No newline at end of file