Fix Condition bugs

This commit is contained in:
BenCat07 2020-05-18 12:12:34 +02:00
parent 6f7360ef2b
commit 310ba43d1c
2 changed files with 8 additions and 11 deletions

View File

@ -202,8 +202,7 @@ template <condition cond> inline bool CondBitCheck(condition_data_s &data)
}
if (cond < 32)
{
if (data.cond_0)
return data.cond_0 & (1u << (cond));
return data.cond_0 & (1u << (cond));
}
return false;
}
@ -231,20 +230,19 @@ template <condition cond, bool state> inline void CondBitSet(condition_data_s &d
{
if (cond > 32 * 3)
{
data.cond_3 |= (1 << (cond % 32));
data.cond_3 |= (1u << (cond % 32));
}
else if (cond > 32 * 2)
{
data.cond_2 |= (1 << (cond % 32));
data.cond_2 |= (1u << (cond % 32));
}
else if (cond > 32 * 1)
{
data.cond_1 |= (1 << (cond % 32));
data.cond_1 |= (1u << (cond % 32));
}
else
{
if (data.cond_0)
data.cond_0 |= (1 << (cond));
data.cond_0 |= (1u << (cond));
}
}
else
@ -263,8 +261,7 @@ template <condition cond, bool state> inline void CondBitSet(condition_data_s &d
}
else
{
if (data.cond_0)
data.cond_0 &= ~(1u << (cond));
data.cond_0 &= ~(1u << (cond));
}
}
}

View File

@ -31,7 +31,7 @@ public:
CachedEntity *owner_ce = ENTITY(owner->entindex());
if (HasCondition<TFCond_Charging>(owner_ce))
{
RemoveCondition<TFCond_Charging>(owner_ce);
CondBitSet<TFCond_Charging, false>(CE_VAR(owner_ce, netvar.iCond, condition_data_s));
add_charging = true;
}
}
@ -41,7 +41,7 @@ public:
if (add_charging)
{
CachedEntity *owner_ce = ENTITY(owner->entindex());
AddCondition<TFCond_Charging>(owner_ce);
CondBitSet<TFCond_Charging, true>(CE_VAR(owner_ce, netvar.iCond, condition_data_s));
}
return return_value;
}