git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5238 54d463be-8e91-2dee-dedb-b68131a5f0ec
@@ -6,6 +6,8 @@ GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALAR
2006/02/09
+ * pc_readdb will now cap experience required per level to UINT_MAX, it will
+ warn if the exp table has exp values above said limit. [Skotlex]
* Changed the default of skill_delay_attack_enable to no. [Skotlex]
* Code rewrites in mob_damage and party_exp_even_share for correctly
handling overflow issues. Now uses UINT_MAX for range comparisons, as it
@@ -8047,10 +8047,22 @@ int pc_split_atoi(char *str,int *val, char sep, int max)
int pc_split_atoui(char *str,unsigned int *val, char sep, int max)
{
+ static int warning=0;
int i,j;
+ float f;
for (i=0; i<max; i++) {
if (!str) break;
- val[i] = (unsigned int)atof(str);
+ f = atof(str);
+ if (f < 0)
+ val[i] = 0;
+ else if (f > UINT_MAX) {
+ val[i] = UINT_MAX;
+ if (!warning) {
+ warning = 1;
+ ShowWarning("pc_readdb (exp.txt): Required exp per level is capped to %d\n", UINT_MAX);
+ }
+ } else
+ val[i] = (unsigned int)f;
str = strchr(str,sep);
if (str)
*str++=0;