diff options
author | Erik Schilling <ablu.erikschilling@googlemail.com> | 2012-08-07 12:27:41 +0200 |
---|---|---|
committer | Erik Schilling <ablu.erikschilling@googlemail.com> | 2012-08-12 23:33:34 +0200 |
commit | 067ad70e9978fd678bb784783b2b5c3dc32746d1 (patch) | |
tree | 27c887e0568e364d5b6c7969df03c6b355c5da9a | |
parent | 9f564cc42ba650c502a31b72dc59530fcad684cd (diff) | |
download | mana-067ad70e9978fd678bb784783b2b5c3dc32746d1.tar.gz mana-067ad70e9978fd678bb784783b2b5c3dc32746d1.tar.bz2 mana-067ad70e9978fd678bb784783b2b5c3dc32746d1.tar.xz mana-067ad70e9978fd678bb784783b2b5c3dc32746d1.zip |
Fixed special keeping in list after serverside remove
Reviewed-by: Thorbjørn Lindeijer.
-rw-r--r-- | src/net/manaserv/playerhandler.cpp | 1 | ||||
-rw-r--r-- | src/playerinfo.cpp | 5 | ||||
-rw-r--r-- | src/playerinfo.h | 5 |
3 files changed, 11 insertions, 0 deletions
diff --git a/src/net/manaserv/playerhandler.cpp b/src/net/manaserv/playerhandler.cpp index c2c491d5..484e551a 100644 --- a/src/net/manaserv/playerhandler.cpp +++ b/src/net/manaserv/playerhandler.cpp @@ -248,6 +248,7 @@ void PlayerHandler::handleMessage(MessageIn &msg) case GPMSG_SPECIAL_STATUS : { + PlayerInfo::clearSpecialStatus(); while (msg.getUnreadLength()) { // { B specialID, L current, L max, L recharge } diff --git a/src/playerinfo.cpp b/src/playerinfo.cpp index 692090af..03c48340 100644 --- a/src/playerinfo.cpp +++ b/src/playerinfo.cpp @@ -282,6 +282,11 @@ void setBuySellState(BuySellState buySellState) // --- Specials --------------------------------------------------------------- +void clearSpecialStatus() +{ + mSpecials.clear(); +} + void setSpecialStatus(int id, int current, int max, int recharge) { logger->log("SpecialUpdate Skill #%d -- (%d/%d) -> %d", id, current, max, diff --git a/src/playerinfo.h b/src/playerinfo.h index d7483cc1..e228ec7e 100644 --- a/src/playerinfo.h +++ b/src/playerinfo.h @@ -225,6 +225,11 @@ namespace PlayerInfo // --- Specials --------------------------------------------------------------- /** + * Removes all specials. + */ + void clearSpecialStatus(); + + /** * Changes the status of the given special. */ void setSpecialStatus(int id, int current, int max, int recharge); |