fix walk
This commit is contained in:
parent
c6c71a3426
commit
9909ffed35
|
@ -54,8 +54,8 @@ public:
|
||||||
void addVolatileSquare(uint8 color);
|
void addVolatileSquare(uint8 color);
|
||||||
void removeVolatileSquare() { m_showVolatileSquare = false; }
|
void removeVolatileSquare() { m_showVolatileSquare = false; }
|
||||||
|
|
||||||
void activateStaticSquare(const Color& color) { m_showStaticSquare = true; m_staticSquareColor = color; }
|
void showStaticSquare(const Color& color) { m_showStaticSquare = true; m_staticSquareColor = color; }
|
||||||
void deactivateStaticSquare() { m_showStaticSquare = false; }
|
void hideStaticSquare() { m_showStaticSquare = false; }
|
||||||
|
|
||||||
std::string getName() { return m_name; }
|
std::string getName() { return m_name; }
|
||||||
uint8 getHealthPercent() { return m_healthPercent; }
|
uint8 getHealthPercent() { return m_healthPercent; }
|
||||||
|
|
|
@ -106,7 +106,7 @@ void Game::processInventoryChange(int slot, const ItemPtr& item)
|
||||||
|
|
||||||
void Game::walk(Otc::Direction direction)
|
void Game::walk(Otc::Direction direction)
|
||||||
{
|
{
|
||||||
if(!m_online || !m_localPlayer->canWalk(direction) || !g_ui.isOnInputEvent())
|
if(!m_online || !m_localPlayer->canWalk(direction) || (!g_ui.isOnInputEvent() && m_localPlayer->getNextWalkDirection() == Otc::InvalidDirection))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
cancelFollow();
|
cancelFollow();
|
||||||
|
@ -188,9 +188,9 @@ void Game::attack(const CreaturePtr& creature)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(m_attackingCreature)
|
if(m_attackingCreature)
|
||||||
m_attackingCreature->deactivateStaticSquare();
|
m_attackingCreature->hideStaticSquare();
|
||||||
|
|
||||||
creature->activateStaticSquare(Fw::red);
|
creature->showStaticSquare(Fw::red);
|
||||||
m_attackingCreature = creature;
|
m_attackingCreature = creature;
|
||||||
|
|
||||||
m_protocolGame->sendAttack(creature->getId());
|
m_protocolGame->sendAttack(creature->getId());
|
||||||
|
@ -200,7 +200,7 @@ void Game::cancelAttack()
|
||||||
{
|
{
|
||||||
if(m_attackingCreature) {
|
if(m_attackingCreature) {
|
||||||
m_protocolGame->sendAttack(0);
|
m_protocolGame->sendAttack(0);
|
||||||
m_attackingCreature->deactivateStaticSquare();
|
m_attackingCreature->hideStaticSquare();
|
||||||
m_attackingCreature = nullptr;
|
m_attackingCreature = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -208,7 +208,7 @@ void Game::cancelAttack()
|
||||||
void Game::onAttackCancelled()
|
void Game::onAttackCancelled()
|
||||||
{
|
{
|
||||||
if(m_attackingCreature) {
|
if(m_attackingCreature) {
|
||||||
m_attackingCreature->deactivateStaticSquare();
|
m_attackingCreature->hideStaticSquare();
|
||||||
m_attackingCreature = nullptr;
|
m_attackingCreature = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -219,9 +219,9 @@ void Game::follow(const CreaturePtr& creature)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(m_followingCreature)
|
if(m_followingCreature)
|
||||||
m_followingCreature->deactivateStaticSquare();
|
m_followingCreature->hideStaticSquare();
|
||||||
|
|
||||||
creature->activateStaticSquare(Fw::green);
|
creature->showStaticSquare(Fw::green);
|
||||||
m_followingCreature = creature;
|
m_followingCreature = creature;
|
||||||
|
|
||||||
m_protocolGame->sendFollow(creature->getId());
|
m_protocolGame->sendFollow(creature->getId());
|
||||||
|
@ -231,7 +231,7 @@ void Game::cancelFollow()
|
||||||
{
|
{
|
||||||
if(m_followingCreature) {
|
if(m_followingCreature) {
|
||||||
m_protocolGame->sendFollow(0);
|
m_protocolGame->sendFollow(0);
|
||||||
m_followingCreature->deactivateStaticSquare();
|
m_followingCreature->hideStaticSquare();
|
||||||
m_followingCreature = nullptr;
|
m_followingCreature = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,6 +46,7 @@ public:
|
||||||
void walk(const Position& position, bool inverse);
|
void walk(const Position& position, bool inverse);
|
||||||
void cancelWalk(Otc::Direction direction, bool force = false);
|
void cancelWalk(Otc::Direction direction, bool force = false);
|
||||||
bool canWalk(Otc::Direction direction);
|
bool canWalk(Otc::Direction direction);
|
||||||
|
Otc::Direction getNextWalkDirection() { return m_nextWalkDirection; }
|
||||||
|
|
||||||
LocalPlayerPtr asLocalPlayer() { return std::static_pointer_cast<LocalPlayer>(shared_from_this()); }
|
LocalPlayerPtr asLocalPlayer() { return std::static_pointer_cast<LocalPlayer>(shared_from_this()); }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue