1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-15 04:15:26 +03:00

Fix for negative gvars precision - inspired by #6446 thanks @ elecpower

This commit is contained in:
Bertrand Songis 2019-05-25 10:16:05 +02:00
parent d8a34dc195
commit df113cda62
No known key found for this signature in database
GPG key ID: F189F79290FEC50F

View file

@ -48,18 +48,12 @@ int16_t getGVarValue(int8_t gv, int8_t fm)
int32_t getGVarValuePrec1(int8_t gv, int8_t fm)
{
int8_t mul;
uint8_t prec = g_model.gvars[abs((int)gv)].prec; // explicit cast to `int` needed, othervise gv is promoted to double!
if (prec == 0)
mul = 10;
else
mul = 1;
int8_t idx = (gv >= 0 ? gv : -idx - 1);
int8_t mul = (g_model.gvars[idx].prec == 0 ? 10 : 1); // explicit cast to `int` needed, othervise gv is promoted to double!
if (gv < 0) {
gv = -1-gv;
mul = -mul;
}
return GVAR_VALUE(gv, getGVarFlightMode(fm, gv)) * mul;
return GVAR_VALUE(idx, getGVarFlightMode(fm, idx)) * mul;
}
void setGVarValue(uint8_t gv, int16_t value, int8_t fm)