From 1013ae279b12e419faba62e486e2dd54a66527b4 Mon Sep 17 00:00:00 2001 From: Eduardo Bart Date: Wed, 8 Feb 2012 00:11:57 -0200 Subject: [PATCH] fix messagebox and rename some stuff --- modules/client_entergame/characterlist.lua | 2 +- modules/client_topmenu/topmenu.lua | 2 +- modules/core_styles/styles/creatures.otui | 3 +++ modules/core_widgets/uimessagebox.lua | 7 ++++--- modules/game/game.lua | 4 ++-- src/otclient/core/creature.cpp | 14 +++++++------- src/otclient/core/creature.h | 8 ++++---- src/otclient/core/game.cpp | 16 ++++++++++++---- src/otclient/core/game.h | 4 ++-- src/otclient/luafunctions.cpp | 3 ++- src/otclient/net/protocolgameparse.cpp | 2 +- 11 files changed, 39 insertions(+), 26 deletions(-) diff --git a/modules/client_entergame/characterlist.lua b/modules/client_entergame/characterlist.lua index 06ece5e0..9f4ec501 100644 --- a/modules/client_entergame/characterlist.lua +++ b/modules/client_entergame/characterlist.lua @@ -29,7 +29,7 @@ local function tryLogin(charInfo, tries) end if Game.isOnline() then - Game.logout(false) + Game.safeLogout() if tries == 1 then loadBox = displayCancelBox('Please wait', 'Loggin out...') end diff --git a/modules/client_topmenu/topmenu.lua b/modules/client_topmenu/topmenu.lua index 5ad066c3..85becf32 100644 --- a/modules/client_topmenu/topmenu.lua +++ b/modules/client_topmenu/topmenu.lua @@ -9,7 +9,7 @@ local gameButtonsPanel -- private functions local function onLogout() if Game.isOnline() then - Game.logout(false) + Game.safeLogout() else exit() end diff --git a/modules/core_styles/styles/creatures.otui b/modules/core_styles/styles/creatures.otui index c2eeea97..62170298 100644 --- a/modules/core_styles/styles/creatures.otui +++ b/modules/core_styles/styles/creatures.otui @@ -3,3 +3,6 @@ Creature < UICreature padding: 1 image-source: /core_styles/images/panel_flat.png image-border: 1 + + UIWidget + id: lala diff --git a/modules/core_widgets/uimessagebox.lua b/modules/core_widgets/uimessagebox.lua index 7b19151a..b9f232aa 100644 --- a/modules/core_widgets/uimessagebox.lua +++ b/modules/core_widgets/uimessagebox.lua @@ -26,14 +26,15 @@ function UIMessageBox.display(title, message, flags) if flags == MessageBoxOk then buttonRight:setText('Ok') connect(buttonRight, { onClick = function(self) self:getParent():ok() end }) + connect(messagebox, { onEnter = function(self) self:ok() end }) + connect(messagebox, { onEscape = function(self) self:ok() end }) elseif flags == MessageBoxCancel then buttonRight:setText('Cancel') connect(buttonRight, { onClick = function(self) self:getParent():cancel() end }) + connect(messagebox, { onEnter = function(self) self:cancel() end }) + connect(messagebox, { onEscape = function(self) self:cancel() end }) end - connect(messagebox, { onEnter = function(self) self:destroy() end }) - connect(messagebox, { onEscape = function(self) self:destroy() end }) - messagebox:lock() return messagebox diff --git a/modules/game/game.lua b/modules/game/game.lua index 52b6e302..f1dc2767 100644 --- a/modules/game/game.lua +++ b/modules/game/game.lua @@ -8,7 +8,7 @@ local function onGameKeyPress(self, keyCode, keyboardModifiers) CharacterList.show() return true elseif keyCode == KeyQ then - Game.logout(false) + Game.safeLogout() return true end end @@ -101,7 +101,7 @@ end local function onApplicationClose() if Game.isOnline() then - Game.logout(true) + Game.forceLogout() else exit() end diff --git a/src/otclient/core/creature.cpp b/src/otclient/core/creature.cpp index 8e180035..18cb00b2 100644 --- a/src/otclient/core/creature.cpp +++ b/src/otclient/core/creature.cpp @@ -41,7 +41,7 @@ Creature::Creature() : Thing() { m_healthPercent = 0; - m_showVolatileSquare = false; + m_showTimedSquare = false; m_showStaticSquare = false; m_direction = Otc::South; m_walkAnimationPhase = 0; @@ -68,8 +68,8 @@ void Creature::draw(const Point& dest, float scaleFactor, bool animate) { Point animationOffset = animate ? m_walkOffset : Point(0,0); - if(m_showVolatileSquare && animate) { - g_painter.setColor(m_volatileSquareColor); + if(m_showTimedSquare && animate) { + g_painter.setColor(m_timedSquareColor); g_painter.drawBoundingRect(Rect(dest + (animationOffset - getDisplacement() + 3)*scaleFactor, Size(28, 28)*scaleFactor), std::max((int)(2*scaleFactor), 1)); } @@ -482,15 +482,15 @@ void Creature::setEmblemTexture(const std::string& filename) m_emblemTexture = g_textures.getTexture(filename); } -void Creature::addVolatileSquare(uint8 color) +void Creature::addTimedSquare(uint8 color) { - m_showVolatileSquare = true; - m_volatileSquareColor = Color::from8bit(color); + m_showTimedSquare = true; + m_timedSquareColor = Color::from8bit(color); // schedule removal auto self = asCreature(); g_dispatcher.scheduleEvent([self]() { - self->removeVolatileSquare(); + self->removeTimedSquare(); }, VOLATILE_SQUARE_DURATION); } diff --git a/src/otclient/core/creature.h b/src/otclient/core/creature.h index fa9e1008..12cb5327 100644 --- a/src/otclient/core/creature.h +++ b/src/otclient/core/creature.h @@ -58,8 +58,8 @@ public: void setEmblemTexture(const std::string& filename); void setPassable(bool passable) { m_passable = passable; } - void addVolatileSquare(uint8 color); - void removeVolatileSquare() { m_showVolatileSquare = false; } + void addTimedSquare(uint8 color); + void removeTimedSquare() { m_showTimedSquare = false; } void showStaticSquare(const Color& color) { m_showStaticSquare = true; m_staticSquareColor = color; } void hideStaticSquare() { m_showStaticSquare = false; } @@ -109,8 +109,8 @@ protected: TexturePtr m_skullTexture, m_shieldTexture, m_emblemTexture; bool m_showShieldTexture, m_shieldBlink; bool m_passable; - Color m_volatileSquareColor, m_staticSquareColor; - bool m_showVolatileSquare, m_showStaticSquare; + Color m_timedSquareColor, m_staticSquareColor; + bool m_showTimedSquare, m_showStaticSquare; FontPtr m_informationFont; Color m_informationColor; diff --git a/src/otclient/core/game.cpp b/src/otclient/core/game.cpp index 02359bd8..031df0db 100644 --- a/src/otclient/core/game.cpp +++ b/src/otclient/core/game.cpp @@ -42,18 +42,26 @@ void Game::loginWorld(const std::string& account, const std::string& password, c void Game::cancelLogin() { + if(m_protocolGame) + m_protocolGame->sendLogout(); processLogout(); } -void Game::logout(bool force) +void Game::forceLogout() { - if(!m_protocolGame || !isOnline()) + if(!isOnline()) return; m_protocolGame->sendLogout(); + processLogout(); +} - if(force) - processLogout(); +void Game::safeLogout() +{ + if(!isOnline()) + return; + + m_protocolGame->sendLogout(); } void Game::processLoginError(const std::string& error) diff --git a/src/otclient/core/game.h b/src/otclient/core/game.h index b9cdc22d..75a939b7 100644 --- a/src/otclient/core/game.h +++ b/src/otclient/core/game.h @@ -38,8 +38,8 @@ public: const std::string& characterName); void cancelLogin(); void logout(bool force); - void forceLogout() { logout(true); } - void cleanLogout() { logout(false); } + void forceLogout(); + void safeLogout(); void processLoginError(const std::string& error); void processConnectionError(const boost::system::error_code& error); void processGameStart(const LocalPlayerPtr& localPlayer, int serverBeat); diff --git a/src/otclient/luafunctions.cpp b/src/otclient/luafunctions.cpp index eed82cf1..b56990db 100644 --- a/src/otclient/luafunctions.cpp +++ b/src/otclient/luafunctions.cpp @@ -184,7 +184,8 @@ void OTClient::registerLuaFunctions() g_lua.registerClass(); g_lua.bindClassStaticFunction("loginWorld", std::bind(&Game::loginWorld, &g_game, _1, _2, _3, _4, _5)); - g_lua.bindClassStaticFunction("logout", std::bind(&Game::logout, &g_game, _1)); + g_lua.bindClassStaticFunction("safeLogout", std::bind(&Game::safeLogout, &g_game)); + g_lua.bindClassStaticFunction("forceLogout", std::bind(&Game::forceLogout, &g_game)); g_lua.bindClassStaticFunction("cancelLogin", std::bind(&Game::cancelLogin, &g_game)); g_lua.bindClassStaticFunction("isOnline", std::bind(&Game::isOnline, &g_game)); g_lua.bindClassStaticFunction("requestOutfit", std::bind(&Game::requestOutfit, &g_game)); diff --git a/src/otclient/net/protocolgameparse.cpp b/src/otclient/net/protocolgameparse.cpp index c8a56f2d..6d9aa782 100644 --- a/src/otclient/net/protocolgameparse.cpp +++ b/src/otclient/net/protocolgameparse.cpp @@ -579,7 +579,7 @@ void ProtocolGame::parseCreatureSquare(InputMessage& msg) CreaturePtr creature = g_map.getCreatureById(id); if(creature) - creature->addVolatileSquare(color); + creature->addTimedSquare(color); } void ProtocolGame::parseCreatureHealth(InputMessage& msg)