summaryrefslogtreecommitdiffstats
path: root/src/game-server/character.cpp
diff options
context:
space:
mode:
authorPhilipp Sehmisch <tmw@crushnet.org>2008-11-01 01:41:12 +0000
committerPhilipp Sehmisch <tmw@crushnet.org>2008-11-01 01:41:12 +0000
commitad5efe104cd7639009622393f16bfd93075fcb34 (patch)
treef9618bffd5e38c9f50722d36d4d77e8bfea06168 /src/game-server/character.cpp
parent3ec0d0f152be4381dc843bc1ca99f8731c8fb366 (diff)
Added script bindings for manipulating the characters experience.
Diffstat (limited to 'src/game-server/character.cpp')
-rw-r--r--src/game-server/character.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/game-server/character.cpp b/src/game-server/character.cpp
index 8758b64..bf8355c 100644
--- a/src/game-server/character.cpp
+++ b/src/game-server/character.cpp
@@ -322,6 +322,7 @@ void Character::receiveExperience(size_t skill, int experience)
// add exp
long int newExp = mExperience.at(skill - CHAR_SKILL_BEGIN) + experience;
if (newExp > INT_MAX) newExp = INT_MAX; // avoid integer overflow.
+ if (newExp < 0) newExp = 0; // avoid integer underflow/negative exp
mExperience.at(skill - CHAR_SKILL_BEGIN) = newExp;
mModifiedExperience.insert(skill - CHAR_SKILL_BEGIN);