mirror of
https://github.com/libretro/scummvm.git
synced 2025-03-01 15:55:45 +00:00
DIRECTOR: LINGO: Implement Director-specific rounding (tested with D3-5)
This commit is contained in:
parent
12a35cda57
commit
db508e9875
@ -20,8 +20,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include <math.h>
|
||||
|
||||
#include "common/file.h"
|
||||
#include "common/config-manager.h"
|
||||
|
||||
@ -854,10 +852,11 @@ int Datum::asInt() const {
|
||||
res = u.i;
|
||||
break;
|
||||
case FLOAT:
|
||||
if (g_director->getVersion() < 4)
|
||||
if (g_director->getVersion() < 5) {
|
||||
res = (int)(u.f + 0.5); // Yes, +0.5 even for negative numbers
|
||||
} else {
|
||||
res = round(u.f);
|
||||
else
|
||||
res = (int)u.f;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
warning("Incorrect operation asInt() for type: %s", type2str());
|
||||
|
@ -22,3 +22,28 @@ put (1024/4096)*100.0 -- 0.0
|
||||
put ((1024*1.0)/4096)*100.0 -- 25.0
|
||||
|
||||
put the sqrt of 9
|
||||
|
||||
-- Testing rounding
|
||||
set save to the scummvmVersion
|
||||
set the scummvmVersion to 3
|
||||
scummvmAssertEqual(integer(2.5), 3)
|
||||
scummvmAssertEqual(integer(2.49), 2)
|
||||
scummvmAssertEqual(integer(2.1), 2)
|
||||
scummvmAssertEqual(integer(2.0), 2)
|
||||
scummvmAssertEqual(integer(1.9), 2)
|
||||
scummvmAssertEqual(integer(1.5), 2)
|
||||
scummvmAssertEqual(integer(1.49), 1)
|
||||
scummvmAssertEqual(integer(1.0), 1)
|
||||
scummvmAssertEqual(integer(0.0), 0)
|
||||
scummvmAssertEqual(integer(-0.49), 0)
|
||||
scummvmAssertEqual(integer(-0.5), 0)
|
||||
scummvmAssertEqual(integer(-1.0), 0)
|
||||
scummvmAssertEqual(integer(-1.49), 0)
|
||||
scummvmAssertEqual(integer(-1.5), -1)
|
||||
scummvmAssertEqual(integer(-1.9), -1)
|
||||
scummvmAssertEqual(integer(-2.0), -1)
|
||||
scummvmAssertEqual(integer(-2.1), -1)
|
||||
scummvmAssertEqual(integer(-2.49), -1)
|
||||
scummvmAssertEqual(integer(-2.5), -2)
|
||||
|
||||
set the scummvmVersion to save
|
||||
|
Loading…
x
Reference in New Issue
Block a user