bool Entity::accumulateForce(vec3f steeringToAdd) { float forceUsed = mSteeringForce.getLength(); float forceRemaining = mMaxForce - forceUsed; if (forceRemaining <= 0) return false; float forceToAdd = steeringToAdd.getLength(); if (forceToAdd < forceRemaining) { mSteeringForce += steeringToAdd; } else { steeringToAdd.normalize(); mSteeringForce += steeringToAdd * forceRemaining; } return true; }