diff options
-rw-r--r-- | src/localplayer.cpp | 8 | ||||
-rw-r--r-- | src/localplayer.h | 5 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/localplayer.cpp b/src/localplayer.cpp index ff3267ad..cb7515dc 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -749,7 +749,9 @@ void LocalPlayer::raiseAttribute(size_t attr) { // we assume that the server allows the change. When not we will undo it later. mCharacterPoints--; - mAttributeBase.at(attr)++; + IntMap::iterator it = mAttributeBase.find(attr); + if (it != mAttributeBase.end()) + (*it).second++; Net::getPlayerHandler()->increaseAttribute(attr); } @@ -758,7 +760,9 @@ void LocalPlayer::lowerAttribute(size_t attr) // we assume that the server allows the change. When not we will undo it later. mCorrectionPoints--; mCharacterPoints++; - mAttributeBase.at(attr)--; + IntMap::iterator it = mAttributeBase.find(attr); + if (it != mAttributeBase.end()) + (*it).second--; Net::getPlayerHandler()->decreaseAttribute(attr); } diff --git a/src/localplayer.h b/src/localplayer.h index a3ed5f29..fa0b8984 100644 --- a/src/localplayer.h +++ b/src/localplayer.h @@ -373,8 +373,9 @@ class LocalPlayer : public Player int mLastTarget; /** Time stamp of last targeting action, -1 if none. */ // Character status: - std::map<int, int> mAttributeBase; - std::map<int, int> mAttributeEffective; + typedef std::map<int, int> IntMap; + IntMap mAttributeBase; + IntMap mAttributeEffective; std::map<int, std::pair<int, int> > mSkillExp; int mCharacterPoints; int mCorrectionPoints; |