Hi Charles,
Thanks for looking into the problem.
As far as script usability is concerned, I'm pretty happy with the current ROUND() function that does the trick for me because I'd rather not introduce a separate explicit variable into the sources for compatibility with other languages that wouldn't require such a hack.
On the other hand, the situation leaves me with a somewhat uneasy feeling about the evaluator refusing such a trivial thing as adding a temp var for me transparently. I'm doing an elementary arith operation of subtracting
1 from
1.5 and what it actually does instead of humbly obeying my orders is require that I declare a variable and round my 1.5 up or down, otherwise it sabotages the expression with a wrong answer. And what if I have a dozen arith and trig operators in my one-liner that deals concurrently with doubles, singles, longs, words and bytes?
I assure you that following the existing program flow there cannot be a situation when
T3 (even rounded up at the start of current game round) would be larger than
GetTickCount / 1000 (even rounded down in the current loop) by a value of 1 to yield a mathematically wrong result of
-1.
GetTickCount / 1000 would always be equal to, or larger than,
T3 because whatever the rounding rules are, they are common to both parts of the expression, and because the current
GetTickCount is always greater than it was when
T3 was calculated and rounded.
If you can describe such a situation to me, please do so. Otherwise the evaluator should be subject to an unscheduled round of brutal vivisection for what it did to me.