edited comment and changed error behavior of DeltaXp
This commit is contained in:
parent
b3bb34974f
commit
d2d8b1d073
@ -359,16 +359,22 @@ bool cPlayer::SetCurrentExperience(short int a_CurrentXp)
|
|||||||
short cPlayer::DeltaExperience(short a_Xp_delta)
|
short cPlayer::DeltaExperience(short a_Xp_delta)
|
||||||
{
|
{
|
||||||
//ToDo: figure out a better name?...
|
//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
|
// Value was bad, abort and report
|
||||||
LOGWARNING("Attempt was made to increment Xp by %d, which was invalid",
|
LOGWARNING("Attempt was made to increment Xp by %d, which was bad",
|
||||||
a_Xp_delta);
|
a_Xp_delta);
|
||||||
return -1; // Should we instead just return the current Xp?
|
return -1; // Should we instead just return the current Xp?
|
||||||
}
|
}
|
||||||
|
|
||||||
m_CurrentXp += a_Xp_delta;
|
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
|
// Update total for score calculation
|
||||||
if(a_Xp_delta > 0)
|
if(a_Xp_delta > 0)
|
||||||
{
|
{
|
||||||
|
@ -74,7 +74,8 @@ public:
|
|||||||
*/
|
*/
|
||||||
bool SetCurrentExperience(short a_XpTotal);
|
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
|
Returns the new current experience, -1 on error
|
||||||
*/
|
*/
|
||||||
short DeltaExperience(short a_Xp_delta);
|
short DeltaExperience(short a_Xp_delta);
|
||||||
|
Loading…
Reference in New Issue
Block a user