2011-12-04 23:26:53 +01:00
|
|
|
/*
|
2012-01-02 17:58:37 +01:00
|
|
|
* Copyright (c) 2010-2012 OTClient <https://github.com/edubart/otclient>
|
2011-12-04 23:26:53 +01:00
|
|
|
*
|
|
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
* of this software and associated documentation files (the "Software"), to deal
|
|
|
|
* in the Software without restriction, including without limitation the rights
|
|
|
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
|
* copies of the Software, and to permit persons to whom the Software is
|
|
|
|
* furnished to do so, subject to the following conditions:
|
|
|
|
*
|
|
|
|
* The above copyright notice and this permission notice shall be included in
|
|
|
|
* all copies or substantial portions of the Software.
|
|
|
|
*
|
|
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
|
* THE SOFTWARE.
|
|
|
|
*/
|
|
|
|
|
2011-08-15 16:11:24 +02:00
|
|
|
#include "otclient.h"
|
2011-12-05 19:27:07 +01:00
|
|
|
#include <framework/core/modulemanager.h>
|
2012-01-07 22:10:06 +01:00
|
|
|
#include <framework/core/resourcemanager.h>
|
2012-03-22 17:07:23 +01:00
|
|
|
#include <framework/graphics/graphics.h>
|
2012-03-22 13:57:43 +01:00
|
|
|
#include "core/game.h"
|
2012-01-30 04:11:05 +01:00
|
|
|
#include "core/map.h"
|
2011-08-15 16:11:24 +02:00
|
|
|
|
2012-03-16 14:28:29 +01:00
|
|
|
OTClient::OTClient() : Application(Otc::AppCompactName)
|
2011-12-05 07:44:03 +01:00
|
|
|
{
|
2012-03-22 13:57:43 +01:00
|
|
|
m_appVersion = Otc::AppVersion;
|
2011-12-05 07:44:03 +01:00
|
|
|
}
|
2011-08-15 16:11:24 +02:00
|
|
|
|
2011-12-03 22:41:37 +01:00
|
|
|
void OTClient::init(const std::vector<std::string>& args)
|
2011-08-15 16:11:24 +02:00
|
|
|
{
|
2012-03-22 17:07:23 +01:00
|
|
|
std::string startupOptions;
|
|
|
|
for(uint i=1;i<args.size();++i) {
|
|
|
|
const std::string& arg = args[i];
|
|
|
|
startupOptions += " ";
|
|
|
|
startupOptions += arg;
|
|
|
|
|
|
|
|
if(g_graphics.parseOption(arg))
|
|
|
|
continue;
|
|
|
|
|
|
|
|
if(arg == "-version" || arg == "--version" || arg == "-v") {
|
|
|
|
Fw::print(Otc::AppName, " ", Otc::AppVersion, "\n"
|
|
|
|
"Buitt on: ", BUILD_DATE, "\n",
|
|
|
|
"Revision: ", BUILD_REVISION, "\n",
|
|
|
|
"Compiled by: ", BUILD_COMPILER, "\n",
|
|
|
|
"Build type: ", BUILD_TYPE, "\n");
|
|
|
|
return;
|
|
|
|
} else if(arg == "-help" || arg == "--help" || arg == "-h") {
|
|
|
|
Fw::print("Usage: ", args[0], " [options]\n"
|
|
|
|
"Options:\n"
|
|
|
|
" -help Display this information and exit\n"
|
|
|
|
" -version Display version and exit\n"
|
|
|
|
"\n"
|
|
|
|
" -no-fbos Disable usage of opengl framebuffer objects\n"
|
|
|
|
" -no-mipmapping Disable texture mipmaping\n"
|
|
|
|
" -no-smoothing Disable texture smoothing (bilinear filter)\n"
|
|
|
|
" -no-hardware-buffering Disable buffering vertex arrays in hardware\n"
|
|
|
|
" -realtime-mipmapping Improve framebuffer smoothing quality by\n"
|
|
|
|
" generating mipmaps in realtime when hardware\n"
|
|
|
|
" mipmap generation implementation is available\n");
|
|
|
|
return;
|
|
|
|
} else {
|
|
|
|
Fw::println("Unrecognized option '", arg, "', please see -help for available options list");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-03-22 13:57:43 +01:00
|
|
|
logInfo(Fw::formatString("%s %s (rev %s) built on %s",
|
|
|
|
Otc::AppName,
|
|
|
|
Otc::AppVersion,
|
|
|
|
BUILD_REVISION,
|
|
|
|
BUILD_DATE));
|
2012-03-22 17:07:23 +01:00
|
|
|
if(startupOptions.length() > 0)
|
|
|
|
logInfo("Startup options:", startupOptions);
|
2012-03-22 13:57:43 +01:00
|
|
|
|
|
|
|
g_logger.setLogFile(Fw::formatString("%s.txt", Otc::AppCompactName));
|
2012-04-13 21:54:08 +02:00
|
|
|
Application::init(args);
|
2011-12-05 19:27:07 +01:00
|
|
|
|
|
|
|
g_modules.discoverModules();
|
2012-01-07 22:10:06 +01:00
|
|
|
|
2012-02-06 20:19:47 +01:00
|
|
|
// core modules 0-99
|
|
|
|
g_modules.autoLoadModules(99);
|
|
|
|
g_modules.ensureModuleLoaded("core_lib");
|
|
|
|
// client modules 100-499
|
|
|
|
g_modules.autoLoadModules(499);
|
2012-02-20 03:27:08 +01:00
|
|
|
g_modules.ensureModuleLoaded("client");
|
2012-02-06 20:19:47 +01:00
|
|
|
// game modules 500-999
|
|
|
|
g_modules.autoLoadModules(999);
|
|
|
|
g_modules.ensureModuleLoaded("game");
|
|
|
|
// addons 1000-9999
|
|
|
|
g_modules.autoLoadModules(9999);
|
2012-01-30 04:11:05 +01:00
|
|
|
|
2012-01-07 22:10:06 +01:00
|
|
|
// load otclientrc.lua
|
|
|
|
if(g_resources.fileExists("/otclientrc.lua")) {
|
|
|
|
try {
|
|
|
|
g_lua.runScript("/otclientrc.lua");
|
|
|
|
} catch(LuaException& e) {
|
|
|
|
logError("failed to load otclientrc.lua: ", e.what());
|
|
|
|
}
|
|
|
|
}
|
2011-08-15 16:11:24 +02:00
|
|
|
}
|