diff options
Diffstat (limited to 'src/client.cpp')
-rw-r--r-- | src/client.cpp | 143 |
1 files changed, 69 insertions, 74 deletions
diff --git a/src/client.cpp b/src/client.cpp index 03fbc184..7c8763a1 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -29,6 +29,7 @@ #include "game.h" #include "itemshortcut.h" #include "keyboardconfig.h" +#include "log.h" #include "playerrelations.h" #include "sound.h" @@ -96,7 +97,6 @@ LoginData loginData; Config config; /**< Global settings (config.xml) */ Configuration branding; /**< XML branding information reader */ Configuration paths; /**< XML default paths information reader */ -Logger *logger; /**< Log object */ ChatLogger *chatLogger; /**< Chat log object */ KeyboardConfig keyboard; @@ -176,8 +176,6 @@ Client::Client(const Options &options): assert(!mInstance); mInstance = this; - logger = new Logger; - // Set default values for configuration files branding.setDefaultValues(getBrandingDefaults()); paths.setDefaultValues(getPathsDefaults()); @@ -192,19 +190,18 @@ Client::Client(const Options &options): initHomeDir(); initConfiguration(); + // Configure logger + Log::init(); + Log::setLogFile(mLocalDataDir + "/mana.log"); + Log::setLogToStandardOut(config.logToStandardOut); + Log::info("%s", FULL_VERSION); + chatLogger = new ChatLogger; if (options.chatLogDir.empty()) chatLogger->setLogDir(mLocalDataDir + "/logs/"); else chatLogger->setLogDir(options.chatLogDir); - // Configure logger - logger->setLogFile(mLocalDataDir + "/mana.log"); - logger->setLogToStandardOut(config.logToStandardOut); - - // Log the mana version - logger->log("%s", FULL_VERSION); - initScreenshotDir(); #if SDL_VERSION_ATLEAST(2, 24, 0) @@ -212,10 +209,10 @@ Client::Client(const Options &options): #endif // Initialize SDL - logger->log("Initializing SDL..."); + Log::info("Initializing SDL..."); if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) < 0) { - logger->error(strprintf("Could not initialize SDL: %s", + Log::critical(strprintf("Could not initialize SDL: %s", SDL_GetError())); } atexit(SDL_Quit); @@ -224,7 +221,7 @@ Client::Client(const Options &options): if (!FS::setWriteDir(mLocalDataDir)) { - logger->error(strprintf("%s couldn't be set as write directory! " + Log::critical(strprintf("%s couldn't be set as write directory! " "Exiting.", mLocalDataDir.c_str())); } @@ -287,7 +284,7 @@ Client::Client(const Options &options): iconFile += ".png"; #endif iconFile = ResourceManager::getPath(iconFile); - logger->log("Loading icon from file: %s", iconFile.c_str()); + Log::info("Loading icon from file: %s", iconFile.c_str()); #ifdef _WIN32 static SDL_SysWMinfo pInfo; SDL_GetWindowWMInfo(mVideo.window(), &pInfo); @@ -329,7 +326,7 @@ Client::Client(const Options &options): { mState = STATE_ERROR; errorMessage = err; - logger->log("Warning: %s", err); + Log::warn("%s", err); } // Initialize keyboard @@ -425,15 +422,13 @@ Client::~Client() SDL_FreeSurface(mIcon); - logger->log("Quitting"); + Log::info("Quitting"); delete userPalette; XML::Writer writer(mConfigDir + "/config.xml"); if (writer.isValid()) serialize(writer, config); - delete logger; - mInstance = nullptr; } @@ -499,7 +494,7 @@ int Client::exec() catch (gcn::Exception e) { const char *err = e.getMessage().c_str(); - logger->log("Warning: guichan input exception: %s", err); + Log::warn("Guichan input exception: %s", err); } } @@ -616,7 +611,7 @@ void Client::update() switch (mState) { case STATE_CHOOSE_SERVER: - logger->log("State: CHOOSE SERVER"); + Log::info("State: CHOOSE SERVER"); // Don't allow an alpha opacity // lower than the default value @@ -627,7 +622,7 @@ void Client::update() break; case STATE_CONNECT_SERVER: - logger->log("State: CONNECT SERVER"); + Log::info("State: CONNECT SERVER"); Net::connectToServer(mCurrentServer); @@ -636,7 +631,7 @@ void Client::update() break; case STATE_LOGIN: - logger->log("State: LOGIN"); + Log::info("State: LOGIN"); // Don't allow an alpha opacity // lower than the default value gui->getTheme()->setMinimumOpacity(0.8f); @@ -655,14 +650,14 @@ void Client::update() break; case STATE_LOGIN_ATTEMPT: - logger->log("State: LOGIN ATTEMPT"); + Log::info("State: LOGIN ATTEMPT"); accountLogin(&loginData); mCurrentDialog = new ConnectionDialog( _("Logging in"), STATE_SWITCH_SERVER); break; case STATE_WORLD_SELECT: - logger->log("State: WORLD SELECT"); + Log::info("State: WORLD SELECT"); { Worlds worlds = Net::getLoginHandler()->getWorlds(); @@ -684,13 +679,13 @@ void Client::update() break; case STATE_WORLD_SELECT_ATTEMPT: - logger->log("State: WORLD SELECT ATTEMPT"); + Log::info("State: WORLD SELECT ATTEMPT"); mCurrentDialog = new ConnectionDialog( _("Entering game world"), STATE_WORLD_SELECT); break; case STATE_UPDATE: - logger->log("State: UPDATE"); + Log::info("State: UPDATE"); if (mOptions.skipUpdate) { @@ -705,7 +700,7 @@ void Client::update() break; case STATE_LOAD_DATA: - logger->log("State: LOAD DATA"); + Log::info("State: LOAD DATA"); // If another data path has been set, // we don't load any other files... @@ -752,7 +747,7 @@ void Client::update() break; case STATE_GET_CHARACTERS: - logger->log("State: GET CHARACTERS"); + Log::info("State: GET CHARACTERS"); Net::getCharHandler()->requestCharacters(); mCurrentDialog = new ConnectionDialog( _("Requesting characters"), @@ -760,7 +755,7 @@ void Client::update() break; case STATE_CHAR_SELECT: - logger->log("State: CHAR SELECT"); + Log::info("State: CHAR SELECT"); // Don't allow an alpha opacity // lower than the default value gui->getTheme()->setMinimumOpacity(0.8f); @@ -785,7 +780,7 @@ void Client::update() break; case STATE_CONNECT_GAME: - logger->log("State: CONNECT GAME"); + Log::info("State: CONNECT GAME"); Net::getGameHandler()->connect(); mCurrentDialog = new ConnectionDialog( @@ -795,7 +790,7 @@ void Client::update() break; case STATE_CHANGE_MAP: - logger->log("State: CHANGE_MAP"); + Log::info("State: CHANGE_MAP"); Net::getGameHandler()->connect(); mCurrentDialog = new ConnectionDialog( @@ -804,7 +799,7 @@ void Client::update() break; case STATE_GAME: - logger->log("Memorizing selected character %s", + Log::info("Memorizing selected character %s", local_player->getName().c_str()); config.lastCharacter = local_player->getName(); @@ -822,52 +817,52 @@ void Client::update() mCurrentDialog = nullptr; - logger->log("State: GAME"); + Log::info("State: GAME"); mGame = new Game; break; case STATE_LOGIN_ERROR: - logger->log("State: LOGIN ERROR"); + Log::info("State: LOGIN ERROR"); showErrorDialog(errorMessage, STATE_LOGIN); break; case STATE_ACCOUNTCHANGE_ERROR: - logger->log("State: ACCOUNT CHANGE ERROR"); + Log::info("State: ACCOUNT CHANGE ERROR"); showErrorDialog(errorMessage, STATE_CHAR_SELECT); break; case STATE_REGISTER_PREP: - logger->log("State: REGISTER_PREP"); + Log::info("State: REGISTER_PREP"); Net::getLoginHandler()->getRegistrationDetails(); mCurrentDialog = new ConnectionDialog( _("Requesting registration details"), STATE_LOGIN); break; case STATE_REGISTER: - logger->log("State: REGISTER"); + Log::info("State: REGISTER"); mCurrentDialog = new RegisterDialog(&loginData); break; case STATE_REGISTER_ATTEMPT: - logger->log("Username is %s", loginData.username.c_str()); + Log::info("Username is %s", loginData.username.c_str()); Net::getLoginHandler()->registerAccount(&loginData); loginData.password.clear(); break; case STATE_CHANGEPASSWORD: - logger->log("State: CHANGE PASSWORD"); + Log::info("State: CHANGE PASSWORD"); mCurrentDialog = new ChangePasswordDialog(&loginData); break; case STATE_CHANGEPASSWORD_ATTEMPT: - logger->log("State: CHANGE PASSWORD ATTEMPT"); + Log::info("State: CHANGE PASSWORD ATTEMPT"); Net::getLoginHandler()->changePassword(loginData.username, loginData.password, loginData.newPassword); break; case STATE_CHANGEPASSWORD_SUCCESS: - logger->log("State: CHANGE PASSWORD SUCCESS"); + Log::info("State: CHANGE PASSWORD SUCCESS"); showOkDialog(_("Password Change"), _("Password changed successfully!"), STATE_CHAR_SELECT); @@ -876,35 +871,35 @@ void Client::update() break; case STATE_CHANGEEMAIL: - logger->log("State: CHANGE EMAIL"); + Log::info("State: CHANGE EMAIL"); mCurrentDialog = new ChangeEmailDialog(&loginData); break; case STATE_CHANGEEMAIL_ATTEMPT: - logger->log("State: CHANGE EMAIL ATTEMPT"); + Log::info("State: CHANGE EMAIL ATTEMPT"); Net::getLoginHandler()->changeEmail(loginData.email); break; case STATE_CHANGEEMAIL_SUCCESS: - logger->log("State: CHANGE EMAIL SUCCESS"); + Log::info("State: CHANGE EMAIL SUCCESS"); showOkDialog(_("Email Change"), _("Email changed successfully!"), STATE_CHAR_SELECT); break; case STATE_UNREGISTER: - logger->log("State: UNREGISTER"); + Log::info("State: UNREGISTER"); mCurrentDialog = new UnRegisterDialog(&loginData); break; case STATE_UNREGISTER_ATTEMPT: - logger->log("State: UNREGISTER ATTEMPT"); + Log::info("State: UNREGISTER ATTEMPT"); Net::getLoginHandler()->unregisterAccount( loginData.username, loginData.password); break; case STATE_UNREGISTER_SUCCESS: - logger->log("State: UNREGISTER SUCCESS"); + Log::info("State: UNREGISTER SUCCESS"); Net::getLoginHandler()->disconnect(); showOkDialog(_("Unregister Successful"), @@ -914,7 +909,7 @@ void Client::update() break; case STATE_SWITCH_SERVER: - logger->log("State: SWITCH SERVER"); + Log::info("State: SWITCH SERVER"); Net::getLoginHandler()->disconnect(); Net::getGameHandler()->disconnect(); @@ -924,7 +919,7 @@ void Client::update() break; case STATE_SWITCH_LOGIN: - logger->log("State: SWITCH LOGIN"); + Log::info("State: SWITCH LOGIN"); Net::getLoginHandler()->disconnect(); @@ -932,7 +927,7 @@ void Client::update() break; case STATE_SWITCH_CHARACTER: - logger->log("State: SWITCH CHARACTER"); + Log::info("State: SWITCH CHARACTER"); // Done with game Net::getGameHandler()->disconnect(); @@ -941,26 +936,26 @@ void Client::update() break; case STATE_LOGOUT_ATTEMPT: - logger->log("State: LOGOUT ATTEMPT"); + Log::info("State: LOGOUT ATTEMPT"); // TODO break; case STATE_WAIT: - logger->log("State: WAIT"); + Log::info("State: WAIT"); break; case STATE_EXIT: - logger->log("State: EXIT"); + Log::info("State: EXIT"); break; case STATE_FORCE_QUIT: - logger->log("State: FORCE QUIT"); + Log::info("State: FORCE QUIT"); mState = STATE_EXIT; break; case STATE_ERROR: - logger->log("State: ERROR"); - logger->log("Error: %s", errorMessage.c_str()); + Log::info("State: ERROR"); + Log::error("%s", errorMessage.c_str()); showErrorDialog(errorMessage, STATE_CHOOSE_SERVER); Net::getGameHandler()->disconnect(); break; @@ -1018,7 +1013,7 @@ void Client::initRootDir() Configuration portable; portable.init(portableName); - logger->log("Portable file: %s", portableName.c_str()); + Log::info("Portable file: %s", portableName.c_str()); if (mOptions.localDataDir.empty()) { @@ -1026,8 +1021,8 @@ void Client::initRootDir() if (!dir.empty()) { mOptions.localDataDir = mRootDir + dir; - logger->log("Portable data dir: %s", - mOptions.localDataDir.c_str()); + Log::info("Portable data dir: %s", + mOptions.localDataDir.c_str()); } } @@ -1037,8 +1032,8 @@ void Client::initRootDir() if (!dir.empty()) { mOptions.configDir = mRootDir + dir; - logger->log("Portable config dir: %s", - mOptions.configDir.c_str()); + Log::info("Portable config dir: %s", + mOptions.configDir.c_str()); } } @@ -1048,8 +1043,8 @@ void Client::initRootDir() if (!dir.empty()) { mOptions.screenshotDir = mRootDir + dir; - logger->log("Portable screenshot dir: %s", - mOptions.screenshotDir.c_str()); + Log::info("Portable screenshot dir: %s", + mOptions.screenshotDir.c_str()); } } } @@ -1081,7 +1076,7 @@ void Client::initHomeDir() if (mkdir_r(mLocalDataDir.c_str())) { - logger->error(strprintf(_("%s doesn't exist and can't be created! " + Log::critical(strprintf(_("%s doesn't exist and can't be created! " "Exiting."), mLocalDataDir.c_str())); } @@ -1104,7 +1099,7 @@ void Client::initHomeDir() if (mkdir_r(mConfigDir.c_str())) { - logger->error(strprintf(_("%s doesn't exist and can't be created! " + Log::critical(strprintf(_("%s doesn't exist and can't be created! " "Exiting."), mConfigDir.c_str())); } } @@ -1123,7 +1118,7 @@ void Client::initConfiguration() if (doc.rootNode() && doc.rootNode().name() == "configuration") deserialize(doc.rootNode(), config); else - logger->log("Couldn't read configuration file: %s", configPath.c_str()); + Log::info("Couldn't read configuration file: %s", configPath.c_str()); } /** @@ -1146,7 +1141,7 @@ bool Client::initUpdatesDir() if (mUpdateHost.empty()) { - logger->log("No update host provided"); + Log::info("No update host provided"); mUpdatesDir.clear(); mState = STATE_LOAD_DATA; return false; @@ -1154,8 +1149,8 @@ bool Client::initUpdatesDir() mUpdatesDir = "updates/" + getDirectoryFromURL(mUpdateHost); - logger->log("Update host: %s", mUpdateHost.c_str()); - logger->log("Updates dir: %s", mUpdatesDir.c_str()); + Log::info("Update host: %s", mUpdateHost.c_str()); + Log::info("Updates dir: %s", mUpdatesDir.c_str()); // Verify that the updates directory exists. Create if necessary. if (!FS::isDirectory(mUpdatesDir)) @@ -1175,16 +1170,16 @@ bool Client::initUpdatesDir() if (!CreateDirectory(newDir.c_str(), 0) && GetLastError() != ERROR_ALREADY_EXISTS) { - logger->log("Error: %s can't be made, but doesn't exist!", - newDir.c_str()); + Log::error("%s can't be made, but doesn't exist!", + newDir.c_str()); errorMessage = strprintf(_("Error creating updates directory!\n(%s)"), newDir.c_str()); mState = STATE_ERROR; } #else - logger->log("Error: %s/%s can't be made, but doesn't exist!", - mLocalDataDir.c_str(), mUpdatesDir.c_str()); + Log::error("%s/%s can't be made, but doesn't exist!", + mLocalDataDir.c_str(), mUpdatesDir.c_str()); errorMessage = strprintf(_("Error creating updates directory!\n(%s/%s)"), mLocalDataDir.c_str(), mUpdatesDir.c_str()); @@ -1230,7 +1225,7 @@ void Client::initScreenshotDir() void Client::accountLogin(LoginData *loginData) { - logger->log("Username is %s", loginData->username.c_str()); + Log::info("Username is %s", loginData->username.c_str()); // Send login infos if (loginData->registerLogin) |