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; 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) inline bool ObjectHasPowerCell(CObject* object)
{ {
return object->Implements(ObjectInterfaceType::Powered) && return object->Implements(ObjectInterfaceType::Powered) &&

View File

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