Fixed OrgaShooter bug

master
krzys-h 2015-08-13 21:27:18 +02:00
parent c399e5e246
commit 8bff64ae3e
2 changed files with 17 additions and 1 deletions

View File

@ -66,6 +66,22 @@ inline float GetObjectEnergy(CObject* object)
return energy;
}
inline float GetObjectEnergyLevel(CObject* object)
{
float energy = 0.0f;
if (object->Implements(ObjectInterfaceType::Powered))
{
CObject* power = dynamic_cast<CPoweredObject*>(object)->GetPower();
if (power != nullptr && power->Implements(ObjectInterfaceType::PowerContainer))
{
energy = dynamic_cast<CPowerContainerObject*>(power)->GetEnergyLevel();
}
}
return energy;
}
inline bool ObjectHasPowerCell(CObject* object)
{
return object->Implements(ObjectInterfaceType::Powered) &&

View File

@ -1791,7 +1791,7 @@ bool CMotionVehicle::EventFrameCanoni(const Event &event)
bOnBoard = true;
}
float energy = GetObjectEnergy(m_object);
float energy = GetObjectEnergyLevel(m_object);
if (energy == 0.0f) return true;
factor = 0.5f+energy*0.5f;