mirror of
https://github.com/opentx/opentx.git
synced 2025-07-15 20:35:17 +03:00
Fix for negative gvars precision - inspired by #6446 thanks @ elecpower
This commit is contained in:
parent
d8a34dc195
commit
df113cda62
1 changed files with 3 additions and 9 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue