diff options
Diffstat (limited to 'src/map/pc.c')
-rw-r--r-- | src/map/pc.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/map/pc.c b/src/map/pc.c index 46fe462d8..66a14f9db 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -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;
|