| 64 | } |
| 65 | |
| 66 | void BaseEngine::initEngine(int argc, char** argv) |
| 67 | { |
| 68 | m_Args.cmdline = bx::CommandLine(argc, (const char**)argv); |
| 69 | const char* value = nullptr; |
| 70 | |
| 71 | LogInfo() << "Initializing..."; |
| 72 | |
| 73 | m_Args.gameBaseDirectory = "."; |
| 74 | //m_Args.startupZEN = "addonworld.zen"; |
| 75 | |
| 76 | if (Flags::startG1.isSet()) |
| 77 | m_Args.gameBaseDirectory = Flags::g1Directory.getParam(0); |
| 78 | else if (Flags::startG2.isSet()) |
| 79 | m_Args.gameBaseDirectory = Flags::g2Directory.getParam(0); |
| 80 | else if (Flags::gameDirectory.isSet()) |
| 81 | m_Args.gameBaseDirectory = Flags::gameDirectory.getParam(0); |
| 82 | else |
| 83 | LogInfo() << "No game-root specified! Using the current working-directory as game root. Use the '-g' flag to specify this!"; |
| 84 | |
| 85 | if (Flags::modFile.isSet()) |
| 86 | m_Args.modfile = Flags::modFile.getParam(0); |
| 87 | |
| 88 | if (Flags::world.isSet()) |
| 89 | m_Args.startupZEN = Flags::world.getParam(0); |
| 90 | |
| 91 | loadArchives(); |
| 92 | |
| 93 | if (m_Args.startupZEN.empty() || !m_FileIndex.hasFile(m_Args.startupZEN)) |
| 94 | { |
| 95 | // Try Gothic 1 |
| 96 | if (m_FileIndex.hasFile("world.zen")) |
| 97 | m_Args.startupZEN = "world.zen"; |
| 98 | else if (m_FileIndex.hasFile("newworld.zen")) |
| 99 | m_Args.startupZEN = "newworld.zen"; |
| 100 | else |
| 101 | LogWarn() << "Unknown game files, could not find world.zen or newworld.zen!"; |
| 102 | } |
| 103 | |
| 104 | if (Flags::emptyWorld.isSet()) |
| 105 | m_Args.startupZEN = ""; |
| 106 | |
| 107 | if (Flags::playerScriptname.isSet()) |
| 108 | m_Args.playerScriptname = Flags::playerScriptname.getParam(0); |
| 109 | |
| 110 | m_Args.startNewGame = Flags::startNewGame.isSet(); |
| 111 | |
| 112 | std::string snd_device; |
| 113 | if (Flags::sndDevice.isSet()) |
| 114 | snd_device = Flags::sndDevice.getParam(0); |
| 115 | |
| 116 | m_Args.noTextureFiltering = Flags::noTextureFiltering.isSet(); |
| 117 | |
| 118 | m_AudioEngine = new Audio::AudioEngine(snd_device); |
| 119 | |
| 120 | // Init HUD |
| 121 | m_pFontCache = new UI::zFontCache(*this); |
| 122 | m_pHUD = new UI::Hud(*this); |
| 123 | getRootUIView().addChild(m_pHUD); |