From 5d86a43700cfad54d17bf083bc6469b81efad55d Mon Sep 17 00:00:00 2001 From: David Rose Date: Thu, 10 Apr 2003 01:12:36 +0000 Subject: [PATCH] better rounding (better behavior for negative numbers --- direct/src/extensions/Datagram-extensions.py | 32 ++++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/direct/src/extensions/Datagram-extensions.py b/direct/src/extensions/Datagram-extensions.py index dec008dc4f..7ab7d9c1d3 100644 --- a/direct/src/extensions/Datagram-extensions.py +++ b/direct/src/extensions/Datagram-extensions.py @@ -3,21 +3,21 @@ # Import the type numbers import DCSubatomicType if subatomicType == DCSubatomicType.STInt8: - self.addInt8(int(arg*divisor+0.5)) + self.addInt8(int(round(arg*divisor))) elif subatomicType == DCSubatomicType.STInt16: - self.addInt16(int(arg*divisor+0.5)) + self.addInt16(int(round(arg*divisor))) elif subatomicType == DCSubatomicType.STInt32: - self.addInt32(int(arg*divisor+0.5)) + self.addInt32(int(round(arg*divisor))) elif subatomicType == DCSubatomicType.STInt64: - self.addInt64(int(arg*divisor+0.5)) + self.addInt64(int(round(arg*divisor))) elif subatomicType == DCSubatomicType.STUint8: - self.addUint8(int(arg*divisor+0.5)) + self.addUint8(int(round(arg*divisor))) elif subatomicType == DCSubatomicType.STUint16: - self.addUint16(int(arg*divisor+0.5)) + self.addUint16(int(round(arg*divisor))) elif subatomicType == DCSubatomicType.STUint32: - self.addUint32(int(arg*divisor+0.5)) + self.addUint32(int(round(arg*divisor))) elif subatomicType == DCSubatomicType.STUint64: - self.addUint64(int(arg*divisor+0.5)) + self.addUint64(int(round(arg*divisor))) elif subatomicType == DCSubatomicType.STFloat64: self.addFloat64(arg) elif subatomicType == DCSubatomicType.STString: @@ -27,32 +27,32 @@ elif subatomicType == DCSubatomicType.STInt8array: self.addUint16(len(arg)) for i in arg: - self.addInt8(int(i*divisor+0.5)) + self.addInt8(int(round(i*divisor))) elif subatomicType == DCSubatomicType.STInt16array: self.addUint16(len(arg) << 1) for i in arg: - self.addInt16(int(i*divisor+0.5)) + self.addInt16(int(round(i*divisor))) elif subatomicType == DCSubatomicType.STInt32array: self.addUint16(len(arg) << 2) for i in arg: - self.addInt32(int(i*divisor+0.5)) + self.addInt32(int(round(i*divisor))) elif subatomicType == DCSubatomicType.STUint8array: self.addUint16(len(arg)) for i in arg: - self.addUint8(int(i*divisor+0.5)) + self.addUint8(int(round(i*divisor))) elif subatomicType == DCSubatomicType.STUint16array: self.addUint16(len(arg) << 1) for i in arg: - self.addUint16(int(i*divisor+0.5)) + self.addUint16(int(round(i*divisor))) elif subatomicType == DCSubatomicType.STUint32array: self.addUint16(len(arg) << 2) for i in arg: - self.addUint32(int(i*divisor+0.5)) + self.addUint32(int(round(i*divisor))) elif subatomicType == DCSubatomicType.STUint32uint8array: self.addUint16(len(arg) * 5) for i in arg: - self.addUint32(int(i[0]*divisor+0.5)) - self.addUint8(int(i[1]*divisor+0.5)) + self.addUint32(int(round(i[0]*divisor))) + self.addUint8(int(round(i[1]*divisor))) else: raise Exception("Error: No such type as: " + str(subatomicType)) return None