My source is a few weeks out of date but in Client::SetLevel the return value of GetEXPForLevel is being cast as a float numerous times. That would do it. Change float to double.
Quote:
float tmpxp = (float) ( (float) m_pp.exp - GetEXPForLevel( GetLevel() )) /
( (float) GetEXPForLevel(GetLevel()+1) - GetEXPForLevel(GetLevel()));
lu->exp = (uint32)(330.0f * tmpxp);
|
Holy sh*t wut!?