diff options
author | Ira Rice <irarice@gmail.com> | 2008-10-01 18:04:15 +0000 |
---|---|---|
committer | Ira Rice <irarice@gmail.com> | 2008-10-01 18:04:15 +0000 |
commit | ad4b0d0b8e32e61798ade9c256f850e8f96575f3 (patch) | |
tree | 3a6a97681d3cd91fbfb5047db5256a1c28373546 /src | |
parent | 9dd496ef1a395cada1f7fec08d4785728b2602d2 (diff) | |
download | mana-ad4b0d0b8e32e61798ade9c256f850e8f96575f3.tar.gz mana-ad4b0d0b8e32e61798ade9c256f850e8f96575f3.tar.bz2 mana-ad4b0d0b8e32e61798ade9c256f850e8f96575f3.tar.xz mana-ad4b0d0b8e32e61798ade9c256f850e8f96575f3.zip |
Possible fix for the arrow crashing bug. Confirmation needed.
Diffstat (limited to 'src')
-rw-r--r-- | src/equipment.cpp | 3 | ||||
-rw-r--r-- | src/map.cpp | 9 | ||||
-rw-r--r-- | src/net/equipmenthandler.cpp | 28 |
3 files changed, 19 insertions, 21 deletions
diff --git a/src/equipment.cpp b/src/equipment.cpp index 491aff0c..9a87c6b5 100644 --- a/src/equipment.cpp +++ b/src/equipment.cpp @@ -45,7 +45,8 @@ Equipment::removeEquipment(Item *item) void Equipment::removeEquipment(int index) { - mEquipment[index] = 0; + if (index >= 0 && index < EQUIPMENT_SIZE) + mEquipment[index] = 0; } void Equipment::setEquipment(int index, Item *item) diff --git a/src/map.cpp b/src/map.cpp index ef622ad0..3adc3498 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -24,7 +24,6 @@ #include "map.h" #include <queue> -#include <cassert> #include "beingmanager.h" #include "configuration.h" @@ -223,9 +222,9 @@ void Map::draw(Graphics *graphics, int scrollX, int scrollY) for (; layeri != mLayers.end(); ++layeri) { (*layeri)->draw(graphics, - startX, startY, endX, endY, - scrollX, scrollY, - mSprites); + startX, startY, endX, endY, + scrollX, scrollY, + mSprites); } drawOverlay(graphics, scrollX, scrollY, @@ -339,8 +338,6 @@ void Map::removeSprite(SpriteIterator iterator) mSprites.erase(iterator); } -static int const basicCost = 100; - Path Map::findPath(int startX, int startY, int destX, int destY) { // Path to be built up (empty by default) diff --git a/src/net/equipmenthandler.cpp b/src/net/equipmenthandler.cpp index 0fc98175..b5c9fe2b 100644 --- a/src/net/equipmenthandler.cpp +++ b/src/net/equipmenthandler.cpp @@ -146,22 +146,22 @@ void EquipmentHandler::handleMessage(MessageIn *msg) break; } - if (equipPoint & 0x8000) { // Arrows - player_node->mEquipment->setArrows(NULL); - position = 11; - } else { - mask = 1; - position = 0; - while (!(equipPoint & mask)) { - mask <<= 1; - position++; - } + mask = 1; + position = 0; + while (!(equipPoint & mask)) { + mask <<= 1; + position++; + } - item = inventory->getItem(index); - if (!item) - break; + item = inventory->getItem(index); + if (!item) + break; - item->setEquipped(false); + item->setEquipped(false); + if (equipPoint & 0x8000) { // Arrows + player_node->mEquipment->setArrows(NULL); + } + else { player_node->mEquipment->removeEquipment(position); } logger->log("Unequipping: %i %i(%i) %i", |