fix focus bug, change battle events
This commit is contained in:
parent
e0325c4c3b
commit
959d9a87b0
|
@ -23,6 +23,7 @@
|
|||
#include "eventdispatcher.h"
|
||||
|
||||
#include <framework/core/clock.h>
|
||||
#include "timer.h"
|
||||
|
||||
EventDispatcher g_eventDispatcher;
|
||||
|
||||
|
@ -53,10 +54,10 @@ void EventDispatcher::poll()
|
|||
int count = 0;
|
||||
while(m_pollEventsSize > 0) {
|
||||
if(count > 50) {
|
||||
static bool reported = false;
|
||||
if(!reported) {
|
||||
static Timer reportTimer;
|
||||
if(reportTimer.running() && reportTimer.ticksElapsed() > 250) {
|
||||
logError("ATTENTION the event list is not getting empty, this could be caused by some bad code");
|
||||
reported = true;
|
||||
reportTimer.restart();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -88,10 +88,7 @@ void UIManager::inputEvent(const InputEvent& event)
|
|||
|
||||
m_mouseReceiver->propagateOnMouseEvent(event.mousePos, widgetList);
|
||||
for(const UIWidgetPtr& widget : widgetList) {
|
||||
if(widget->isFocusable()) {
|
||||
if(UIWidgetPtr parent = widget->getParent())
|
||||
parent->focusChild(widget, Fw::MouseFocusReason);
|
||||
}
|
||||
widget->recursiveFocus(Fw::MouseFocusReason);
|
||||
if(widget->onMousePress(event.mousePos, event.mouseButton))
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -579,6 +579,18 @@ void UIWidget::focus()
|
|||
parent->focusChild(asUIWidget(), Fw::ActiveFocusReason);
|
||||
}
|
||||
|
||||
void UIWidget::recursiveFocus(Fw::FocusReason reason)
|
||||
{
|
||||
if(m_destroyed)
|
||||
return;
|
||||
|
||||
if(UIWidgetPtr parent = getParent()) {
|
||||
if(m_focusable)
|
||||
parent->focusChild(asUIWidget(), reason);
|
||||
parent->recursiveFocus(reason);
|
||||
}
|
||||
}
|
||||
|
||||
void UIWidget::lower()
|
||||
{
|
||||
if(m_destroyed)
|
||||
|
|
|
@ -100,6 +100,7 @@ public:
|
|||
void lock();
|
||||
void unlock();
|
||||
void focus();
|
||||
void recursiveFocus(Fw::FocusReason reason);
|
||||
void lower();
|
||||
void raise();
|
||||
void grabMouse();
|
||||
|
|
|
@ -753,7 +753,6 @@ void Game::setChaseMode(Otc::ChaseModes chaseMode)
|
|||
{
|
||||
if(!canPerformGameAction())
|
||||
return;
|
||||
|
||||
m_chaseMode = chaseMode;
|
||||
m_protocolGame->sendChangeFightModes(m_fightMode, m_chaseMode, m_safeFight);
|
||||
}
|
||||
|
@ -762,7 +761,6 @@ void Game::setFightMode(Otc::FightModes fightMode)
|
|||
{
|
||||
if(!canPerformGameAction())
|
||||
return;
|
||||
|
||||
m_fightMode = fightMode;
|
||||
m_protocolGame->sendChangeFightModes(m_fightMode, m_chaseMode, m_safeFight);
|
||||
}
|
||||
|
@ -886,30 +884,16 @@ bool Game::canPerformGameAction()
|
|||
|
||||
void Game::setAttackingCreature(const CreaturePtr& creature)
|
||||
{
|
||||
if(m_attackingCreature) {
|
||||
m_attackingCreature->hideStaticSquare();
|
||||
m_attackingCreature = nullptr;
|
||||
}
|
||||
|
||||
if(creature) {
|
||||
creature->showStaticSquare(Color::red);
|
||||
CreaturePtr oldCreature = m_attackingCreature;
|
||||
m_attackingCreature = creature;
|
||||
}
|
||||
|
||||
g_lua.callGlobalField("g_game", "onAttackingCreatureChange", creature);
|
||||
g_lua.callGlobalField("g_game", "onAttackingCreatureChange", creature, oldCreature);
|
||||
}
|
||||
|
||||
void Game::setFollowingCreature(const CreaturePtr& creature)
|
||||
{
|
||||
if(m_followingCreature) {
|
||||
m_followingCreature->hideStaticSquare();
|
||||
m_followingCreature = nullptr;
|
||||
}
|
||||
|
||||
if(creature) {
|
||||
creature->showStaticSquare(Color::green);
|
||||
CreaturePtr oldCreature = m_followingCreature;
|
||||
m_followingCreature = creature;
|
||||
}
|
||||
|
||||
g_lua.callGlobalField("g_game", "onFollowingCreatureChange", creature);
|
||||
g_lua.callGlobalField("g_game", "onFollowingCreatureChange", creature, oldCreature);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue