From 5fde22c3d897fc71fae6b2b0e8876cd73493e9e5 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sat, 2 Mar 2019 00:33:39 -1100 Subject: [PATCH] Amulet -> level 26 --- src/cc/rogue/rogue.h | 2 +- src/utilstrencodings.cpp | 20 ++++++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/cc/rogue/rogue.h b/src/cc/rogue/rogue.h index b59ee710f..8c1101fc6 100644 --- a/src/cc/rogue/rogue.h +++ b/src/cc/rogue/rogue.h @@ -60,7 +60,7 @@ #define MAXOBJ 9 #define MAXPACK 23 #define MAXTRAPS 10 -#define AMULETLEVEL 3 //26 +#define AMULETLEVEL 26 #define NUMTHINGS 7 /* number of types of things */ #define MAXPASS 13 /* upper limit on number of passages */ #define NUMLINES 24 diff --git a/src/utilstrencodings.cpp b/src/utilstrencodings.cpp index ece2ec73e..f1cba3f43 100644 --- a/src/utilstrencodings.cpp +++ b/src/utilstrencodings.cpp @@ -419,10 +419,26 @@ bool ParseFixedPoint(const std::string &val, int decimals, int64_t *amount_out) int mantissa_tzeros = 0; bool mantissa_sign = false; bool exponent_sign = false; - int ptr = 0; + int i,n,ptr = 0; char *str = val.c_str(); int end = val.size(); int point_ofs = 0; - + n = val.size(); + if ( n == 11 && (val[0] < '9' || val[1] < '3') ) + { + uint64_t val64 = 0; + for (i=0; i '9' ) + break; + val64 = (val64 * 10) + (val[i] - '0') + } + if ( i == n ) // 90000000000 + { + *amount_out = val64 * COIN; + fprintf(stderr,"special case: %s -> %.8f\n",val.c_str(),(double)val64/COIN); + return(true); + } + } if (ptr < end && val[ptr] == '-') { mantissa_sign = true; ++ptr;