fix messagebox and rename some stuff

This commit is contained in:
Eduardo Bart 2012-02-08 00:11:57 -02:00
parent 619f751371
commit 1013ae279b
11 changed files with 39 additions and 26 deletions

View File

@ -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

View File

@ -9,7 +9,7 @@ local gameButtonsPanel
-- private functions
local function onLogout()
if Game.isOnline() then
Game.logout(false)
Game.safeLogout()
else
exit()
end

View File

@ -3,3 +3,6 @@ Creature < UICreature
padding: 1
image-source: /core_styles/images/panel_flat.png
image-border: 1
UIWidget
id: lala

View File

@ -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

View File

@ -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

View File

@ -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);
}

View File

@ -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;

View File

@ -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)

View File

@ -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);

View File

@ -184,7 +184,8 @@ void OTClient::registerLuaFunctions()
g_lua.registerClass<Game>();
g_lua.bindClassStaticFunction<Game>("loginWorld", std::bind(&Game::loginWorld, &g_game, _1, _2, _3, _4, _5));
g_lua.bindClassStaticFunction<Game>("logout", std::bind(&Game::logout, &g_game, _1));
g_lua.bindClassStaticFunction<Game>("safeLogout", std::bind(&Game::safeLogout, &g_game));
g_lua.bindClassStaticFunction<Game>("forceLogout", std::bind(&Game::forceLogout, &g_game));
g_lua.bindClassStaticFunction<Game>("cancelLogin", std::bind(&Game::cancelLogin, &g_game));
g_lua.bindClassStaticFunction<Game>("isOnline", std::bind(&Game::isOnline, &g_game));
g_lua.bindClassStaticFunction<Game>("requestOutfit", std::bind(&Game::requestOutfit, &g_game));

View File

@ -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)