void KotOREngine::initResources() { status("Setting base directory"); ResMan.registerDataBaseDir(_baseDirectory); // In the Xbox version of KotOR, TXB textures are actually TPCs if (_platform == Aurora::kPlatformXbox) ResMan.addTypeAlias(Aurora::kFileTypeTXB, Aurora::kFileTypeTPC); indexMandatoryDirectory("", 0, 0, 0); status("Adding extra archive directories"); ResMan.addArchiveDir(Aurora::kArchiveBIF, (_platform == Aurora::kPlatformXbox) ? "dataxbox" : "data"); ResMan.addArchiveDir(Aurora::kArchiveERF, "lips"); if (_platform != Aurora::kPlatformXbox) ResMan.addArchiveDir(Aurora::kArchiveERF, "texturepacks"); ResMan.addArchiveDir(Aurora::kArchiveERF, "modules"); ResMan.addArchiveDir(Aurora::kArchiveRIM, (_platform == Aurora::kPlatformXbox) ? "rimsxbox" : "rims"); ResMan.addArchiveDir(Aurora::kArchiveRIM, "modules"); status("Loading main KEY"); indexMandatoryArchive(Aurora::kArchiveKEY, "chitin.key", 0); if (indexOptionalArchive(Aurora::kArchiveKEY, "live1.key", 1)) { status("Loading Xbox DLC KEY"); _hasLiveKey = true; } status("Loading global auxiliary resources"); indexMandatoryArchive(Aurora::kArchiveRIM, "mainmenu.rim" , 10); indexMandatoryArchive(Aurora::kArchiveRIM, "mainmenudx.rim" , 11); indexMandatoryArchive(Aurora::kArchiveRIM, "legal.rim" , 12); indexMandatoryArchive(Aurora::kArchiveRIM, "legaldx.rim" , 13); indexMandatoryArchive(Aurora::kArchiveRIM, "global.rim" , 14); indexMandatoryArchive(Aurora::kArchiveRIM, "subglobaldx.rim" , 15); indexMandatoryArchive(Aurora::kArchiveRIM, "miniglobaldx.rim", 16); indexMandatoryArchive(Aurora::kArchiveRIM, "globaldx.rim" , 17); indexMandatoryArchive(Aurora::kArchiveRIM, "chargen.rim" , 18); indexMandatoryArchive(Aurora::kArchiveRIM, "chargendx.rim" , 19); if (_platform == Aurora::kPlatformXbox) { // The Xbox version has most of its textures in "textures.bif" // Some, however, reside in "players.erf" status("Loading Xbox textures"); indexMandatoryArchive(Aurora::kArchiveERF, "players.erf", 20); } else { // The Windows/Mac versions have the GUI textures here status("Loading GUI textures"); indexMandatoryArchive(Aurora::kArchiveERF, "swpc_tex_gui.erf", 20); } status("Indexing extra sound resources"); indexMandatoryDirectory("streamsounds", 0, -1, 30); status("Indexing extra voice resources"); indexMandatoryDirectory("streamwaves" , 0, -1, 31); status("Indexing extra music resources"); indexMandatoryDirectory("streammusic" , 0, -1, 32); status("Indexing extra movie resources"); indexMandatoryDirectory("movies" , 0, -1, 33); if (_platform == Aurora::kPlatformWindows) { status("Indexing Windows-specific resources"); initCursorsRemap(); indexMandatoryArchive(Aurora::kArchiveEXE, "swkotor.exe", 34); } else if (_platform == Aurora::kPlatformMacOSX) { status("Indexing Mac-specific resources"); indexMandatoryDirectory("Knights of the Old Republic.app/Contents/Resources", 0, -1, 34); indexMandatoryDirectory("Knights of the Old Republic.app/Contents/Resources/Cursors", 0, -1, 35); } else if (_platform == Aurora::kPlatformXbox) { status("Indexing Xbox-specific resources"); indexMandatoryDirectory("errortex" , 0, -1, 34); indexMandatoryDirectory("localvault", 0, -1, 35); indexMandatoryDirectory("media" , 0, -1, 36); // For the DLC, we need to index the "sound" directory as well if (_hasLiveKey) indexMandatoryDirectory("sound", 0, -1, 37); } status("Indexing override files"); indexOptionalDirectory("override", 0, 0, 40); if (EventMan.quitRequested()) return; status("Loading main talk table"); TalkMan.addMainTable("dialog"); if (_hasLiveKey) { status("Loading Xbox DLC talk table"); TalkMan.addAltTable("live1"); } registerModelLoader(new KotORModelLoader); FontMan.setFormat(Graphics::Aurora::kFontFormatTexture); }
void KotOR2Engine::initResources(LoadProgress &progress) { // In the Xbox version of KotOR2, TXB textures are actually TPCs if (_platform == Aurora::kPlatformXbox) ResMan.addTypeAlias(Aurora::kFileTypeTXB, Aurora::kFileTypeTPC); progress.step("Setting base directory"); Common::UString baseDir = _target; if (_platform == Aurora::kPlatformLinux) baseDir += "/steamassets"; else if (_platform == Aurora::kPlatformMacOSX) baseDir += "/GameData"; ResMan.registerDataBase(baseDir); progress.step("Adding extra archive directories"); const Common::UString dataDir = (_platform == Aurora::kPlatformXbox) ? "dataxbox" : "data"; const Common::UString rimsDir = (_platform == Aurora::kPlatformXbox) ? "rimsxbox" : "rims"; indexMandatoryDirectory( dataDir , 0, 0, 2); indexMandatoryDirectory("lips" , 0, 0, 3); indexMandatoryDirectory("modules", 0, 0, 4); indexOptionalDirectory(rimsDir, 0, 0, 5); if (_platform != Aurora::kPlatformXbox) indexMandatoryDirectory("texturepacks", 0, 0, 6); if (_platform == Aurora::kPlatformXbox) indexMandatoryDirectory("supermodels" , 0, 0, 7); progress.step("Loading main KEY"); indexMandatoryArchive("chitin.key", 10); progress.step("Loading high-res texture packs"); if (_platform != Aurora::kPlatformXbox) indexMandatoryArchive("swpc_tex_gui.erf", 50); progress.step("Indexing extra sound resources"); indexMandatoryDirectory("streamsounds", 0, -1, 100); progress.step("Indexing extra voice resources"); indexMandatoryDirectory("streamvoice" , 0, -1, 101); progress.step("Indexing extra music resources"); indexMandatoryDirectory("streammusic" , 0, -1, 102); progress.step("Indexing extra movie resources"); indexMandatoryDirectory("movies" , 0, -1, 103); progress.step("Indexing platform-specific resources"); if (_platform == Aurora::kPlatformWindows) { initCursorsRemap(); indexMandatoryArchive("swkotor2.exe", 104); } else if (_platform == Aurora::kPlatformLinux) { indexMandatoryDirectory("../resources/cursors/", 0, 0, 104); } else if (_platform == Aurora::kPlatformMacOSX) { indexMandatoryDirectory("../Resources/Cursors/", 0, 0, 104); } // Texture packs at 400, in module.cpp progress.step("Indexing override files"); indexOptionalDirectory("override", 0, 0, 500); if (EventMan.quitRequested()) return; progress.step("Loading main talk table"); TalkMan.addTable("dialog", "dialogf", false, 0); progress.step("Registering file formats"); registerModelLoader(new KotOR2ModelLoader(_platform == Aurora::kPlatformXbox)); FontMan.setFormat(Graphics::Aurora::kFontFormatTexture); }
void KotOR2Engine::initResources() { status("Setting base directory"); ResMan.registerDataBaseDir(_baseDirectory); // In the Xbox version of KotOR, TXB textures are actually TPCs if (_platform == Aurora::kPlatformXbox) ResMan.addTypeAlias(Aurora::kFileTypeTXB, Aurora::kFileTypeTPC); indexMandatoryDirectory("", 0, 0, 1); status("Adding extra archive directories"); ResMan.addArchiveDir(Aurora::kArchiveBIF, (_platform == Aurora::kPlatformXbox) ? "dataxbox" : "data"); ResMan.addArchiveDir(Aurora::kArchiveERF, "lips"); if (_platform != Aurora::kPlatformXbox) ResMan.addArchiveDir(Aurora::kArchiveERF, "texturepacks"); ResMan.addArchiveDir(Aurora::kArchiveERF, "modules"); ResMan.addArchiveDir(Aurora::kArchiveRIM, (_platform == Aurora::kPlatformXbox) ? "rimsxbox" : "rims"); ResMan.addArchiveDir(Aurora::kArchiveRIM, "modules"); if (_platform == Aurora::kPlatformXbox) ResMan.addArchiveDir(Aurora::kArchiveERF, "SuperModels"); status("Loading main KEY"); indexMandatoryArchive(Aurora::kArchiveKEY, "chitin.key", 1); if (_platform != Aurora::kPlatformXbox) { status("Loading high-res texture packs"); indexMandatoryArchive(Aurora::kArchiveERF, "swpc_tex_gui.erf", 10); indexMandatoryArchive(Aurora::kArchiveERF, "swpc_tex_tpa.erf", 11); } status("Indexing extra sound resources"); indexMandatoryDirectory("streamsounds", 0, -1, 20); status("Indexing extra voice resources"); indexMandatoryDirectory("streamvoice" , 0, -1, 21); status("Indexing extra music resources"); indexMandatoryDirectory("streammusic" , 0, -1, 22); status("Indexing extra movie resources"); indexMandatoryDirectory("movies" , 0, -1, 23); if (_platform == Aurora::kPlatformWindows) { status("Indexing Windows-specific resources"); initCursorsRemap(); indexMandatoryArchive(Aurora::kArchiveEXE, "swkotor2.exe", 24); } status("Indexing override files"); indexOptionalDirectory("override", 0, 0, 30); if (EventMan.quitRequested()) return; status("Loading main talk table"); TalkMan.addMainTable("dialog"); registerModelLoader(new KotOR2ModelLoader); FontMan.setFormat(Graphics::Aurora::kFontFormatTexture); }