diff --git a/JGE/include/JFileSystem.h b/JGE/include/JFileSystem.h index 036848195..8ce68fdd3 100644 --- a/JGE/include/JFileSystem.h +++ b/JGE/include/JFileSystem.h @@ -115,6 +115,9 @@ public: // Returns a string prefixed with the resource path string GetResourceFile(string filename); + // Manually Clear the zip cache + void clearZipCache(); + protected: JFileSystem(); ~JFileSystem(); @@ -128,6 +131,7 @@ private: char *mPassword; bool mZipAvailable; void preloadZip(const string& filename); + #if defined (PSP) SceUID mFile; #else diff --git a/JGE/lib/psp/libhgetools.a b/JGE/lib/psp/libhgetools.a index 58e443ed0..c9c14580d 100644 Binary files a/JGE/lib/psp/libhgetools.a and b/JGE/lib/psp/libhgetools.a differ diff --git a/JGE/src/JFileSystem.cpp b/JGE/src/JFileSystem.cpp index 718f4ce2a..c5b021602 100644 --- a/JGE/src/JFileSystem.cpp +++ b/JGE/src/JFileSystem.cpp @@ -110,6 +110,11 @@ JFileSystem::JFileSystem() JFileSystem::~JFileSystem() +{ + clearZipCache(); +} + +void JFileSystem::clearZipCache() { DetachZipFile(); @@ -120,7 +125,6 @@ JFileSystem::~JFileSystem() mZipCache.clear(); } - bool JFileSystem::AttachZipFile(const string &zipfile, char *password /* = NULL */) { if (mZipAvailable && mZipFile != NULL) diff --git a/projects/mtg/include/WResourceManager.h b/projects/mtg/include/WResourceManager.h index 43e1940f9..48549add1 100644 --- a/projects/mtg/include/WResourceManager.h +++ b/projects/mtg/include/WResourceManager.h @@ -88,6 +88,9 @@ public: //Refreshes all files in cache, for when mode/profile changes. virtual void Refresh() = 0; + //Manual clear of the cache + virtual void ClearUnlocked() = 0; + virtual unsigned int nowTime() = 0; virtual JQuadPtr GetQuad(const string &quadName) = 0; diff --git a/projects/mtg/src/GameStateMenu.cpp b/projects/mtg/src/GameStateMenu.cpp index 46e63fecd..3720a2c31 100644 --- a/projects/mtg/src/GameStateMenu.cpp +++ b/projects/mtg/src/GameStateMenu.cpp @@ -133,6 +133,10 @@ void GameStateMenu::Start() hasChosenGameType = false; mParent->gameType = GAME_TYPE_CLASSIC; + //Manual clean up of some cache Data. Ideally those should clean themselves up, so this is kind of a hack for now + JFileSystem::GetInstance()->clearZipCache(); + WResourceManager::Instance()->ClearUnlocked(); + bgTexture = WResourceManager::Instance()->RetrieveTexture("menutitle.png", RETRIEVE_LOCK); mBg = WResourceManager::Instance()->RetrieveQuad("menutitle.png", 0, 0, 256, 166); // Create background quad for rendering.