1
0
Fork 0

Handle "double" type fields correctly for ascii input data. Previously double

data was being down-cast to float and the loss of precision impacted data types like lon/lat positions dramatically, preventing smooth replay of data.
This commit is contained in:
curt 2009-09-10 18:12:33 +00:00 committed by Tim Moore
parent d09c0ec8b9
commit bf423ef0ca

View file

@ -378,9 +378,13 @@ bool FGGeneric::parse_message_ascii() {
case FG_FIXED: case FG_FIXED:
case FG_FLOAT: case FG_FLOAT:
val = _in_message[i].offset + strtof(p1, 0) * _in_message[i].factor;
_in_message[i].prop->setFloatValue((float)val);
break;
case FG_DOUBLE: case FG_DOUBLE:
val = _in_message[i].offset + strtod(p1, 0) * _in_message[i].factor; val = _in_message[i].offset + strtod(p1, 0) * _in_message[i].factor;
_in_message[i].prop->setFloatValue((float)val); _in_message[i].prop->setDoubleValue(val);
break; break;
default: // SG_STRING default: // SG_STRING