1
0

edited comment and changed error behavior of DeltaXp

This commit is contained in:
Daniel O'Brien 2013-11-16 22:43:42 +11:00
parent b3bb34974f
commit d2d8b1d073
2 changed files with 11 additions and 4 deletions

View File

@ -359,16 +359,22 @@ bool cPlayer::SetCurrentExperience(short int a_CurrentXp)
short cPlayer::DeltaExperience(short a_Xp_delta)
{
//ToDo: figure out a better name?...
if(a_Xp_delta > (SHRT_MAX - m_LifetimeTotalXp) || (m_CurrentXp + a_Xp_delta) < MIN_EXPERIENCE)
if(a_Xp_delta > (SHRT_MAX - m_LifetimeTotalXp))
{
// Value was negative, abort and report
LOGWARNING("Attempt was made to increment Xp by %d, which was invalid",
// Value was bad, abort and report
LOGWARNING("Attempt was made to increment Xp by %d, which was bad",
a_Xp_delta);
return -1; // Should we instead just return the current Xp?
}
m_CurrentXp += a_Xp_delta;
// Make sure they didn't subtract too much
if(m_CurrentXp < 0)
{
m_CurrentXp = 0;
}
// Update total for score calculation
if(a_Xp_delta > 0)
{

View File

@ -74,7 +74,8 @@ public:
*/
bool SetCurrentExperience(short a_XpTotal);
/* changes Xp by Xp_delta, you "shouldn't" not inc more than MAX_EXPERIENCE_ORB_SIZE
/* changes Xp by Xp_delta, you "shouldn't" inc more than MAX_EXPERIENCE_ORB_SIZE
Wont't allow xp to go negative
Returns the new current experience, -1 on error
*/
short DeltaExperience(short a_Xp_delta);