From fe462826b67bdf497214bc45f929c232f62adba8 Mon Sep 17 00:00:00 2001 From: jaynus Date: Fri, 15 May 2015 22:10:47 -0700 Subject: [PATCH] Fix floating point precision problems. --- addons/vehicledamage/functions/fnc_getAnimationStates.sqf | 2 +- extensions/common/arguments.hpp | 2 +- extensions/common/simulation/object.hpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/vehicledamage/functions/fnc_getAnimationStates.sqf b/addons/vehicledamage/functions/fnc_getAnimationStates.sqf index 15f22510b1..cfb7824348 100644 --- a/addons/vehicledamage/functions/fnc_getAnimationStates.sqf +++ b/addons/vehicledamage/functions/fnc_getAnimationStates.sqf @@ -35,7 +35,7 @@ if(_sendToExtension) then { _cmd = format["set_animation_state:%1,", (_vehicle getVariable[QGVAR(id), -1])]; { - _cmd = _cmd + format["%1,%2,", (_x select 0), ([(_x select 1)] call CBA_fnc_formatNumber)]; + _cmd = _cmd + format["%1,%2,", (_x select 0), (_x select 1)]; } forEach _animationResults; _cmd call FUNC(callExtension); diff --git a/extensions/common/arguments.hpp b/extensions/common/arguments.hpp index 70e942a241..3540ff2f8b 100644 --- a/extensions/common/arguments.hpp +++ b/extensions/common/arguments.hpp @@ -14,7 +14,7 @@ namespace ace { const std::string & as_string() const { return _args[_index]; } operator const std::string &() const { return as_string(); } - float as_float() const { return atof(_args[_index].c_str()); } + float as_float() const { float res = 0.0f; std::istringstream iss(_args[_index]); iss >> res; return res; } operator float() const { return as_float(); } int as_int() const { return atoi(_args[_index].c_str()); } diff --git a/extensions/common/simulation/object.hpp b/extensions/common/simulation/object.hpp index 77f9b7a37b..0a7c414b80 100644 --- a/extensions/common/simulation/object.hpp +++ b/extensions/common/simulation/object.hpp @@ -111,7 +111,7 @@ namespace ace { lod(const ace::p3d::lod_p, const ace::p3d::model_p); ~lod(); uint32_t id; - float type; + uint32_t type; vertex_table vertices; ace::vector3 autocenter_pos; std::map selections;