diff options
author | Ira Rice <irarice@gmail.com> | 2008-11-03 02:20:25 +0000 |
---|---|---|
committer | Ira Rice <irarice@gmail.com> | 2008-11-03 02:20:25 +0000 |
commit | 6c6b8104326941c4bd6c1f1d542e8969d82e97d8 (patch) | |
tree | 37b51100f967cb8f6a5bbee522ca24ce2587c820 /src/game.cpp | |
parent | 25cda302161fe6be6f70a6228b8f40467c77929e (diff) | |
download | mana-6c6b8104326941c4bd6c1f1d542e8969d82e97d8.tar.gz mana-6c6b8104326941c4bd6c1f1d542e8969d82e97d8.tar.bz2 mana-6c6b8104326941c4bd6c1f1d542e8969d82e97d8.tar.xz mana-6c6b8104326941c4bd6c1f1d542e8969d82e97d8.zip |
Fixed talk being recalled while t is held down. Thanks doors for
noticing this bug.
Diffstat (limited to 'src/game.cpp')
-rw-r--r-- | src/game.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/game.cpp b/src/game.cpp index d7ce4314..10a66ce1 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -863,17 +863,20 @@ void Game::handleInput() // Talk to the nearest NPC if 't' pressed if ( keyboard.isKeyActive(keyboard.KEY_TALK) ) { - Being *target = player_node->getTarget(); - - if (!target) + if (!npcTextDialog->isVisible() && !npcListDialog->isVisible()) { - target = beingManager->findNearestLivingBeing(x, y, 20, Being::NPC); - } + Being *target = player_node->getTarget(); - if (target) - { - if (target->getType() == Being::NPC) - dynamic_cast<NPC*>(target)->talk(); + if (!target) + { + target = beingManager->findNearestLivingBeing(x, y, 20, Being::NPC); + } + + if (target) + { + if (target->getType() == Being::NPC) + dynamic_cast<NPC*>(target)->talk(); + } } } |