Fix extinguishing depth, add smoke density

This commit is contained in:
Lwmte 2022-11-30 15:43:47 +02:00
parent ff2ec04c70
commit 0072ec93cf

View file

@ -1646,7 +1646,7 @@ void ProcessEffects(ItemInfo* item)
break; break;
case EffectType::Smoke: case EffectType::Smoke:
if (TestProbability(1 / 64.0f)) if (TestProbability(1 / 32.0f))
TriggerRocketSmoke(pos.x, pos.y, pos.z, 0); TriggerRocketSmoke(pos.x, pos.y, pos.z, 0);
break; break;
} }
@ -1690,13 +1690,16 @@ void ProcessEffects(ItemInfo* item)
} }
} }
int waterHeight = GetWaterHeight(item->Pose.Position.x, item->Pose.Position.y, item->Pose.Position.z, item->RoomNumber); if (item->Effect.Type != EffectType::Sparks && item->Effect.Type != EffectType::Smoke)
if (item->Effect.Type != EffectType::Sparks && item->Effect.Type != EffectType::Smoke &&
(waterHeight != NO_HEIGHT && item->Pose.Position.y > waterHeight))
{ {
item->Effect.Type = EffectType::Smoke; int waterHeight = GetWaterHeight(item);
item->Effect.Count = 10; int itemLevel = item->Pose.Position.y - GameBoundingBox(item).GetHeight() / 3;
if (waterHeight != NO_HEIGHT && itemLevel > waterHeight)
{
item->Effect.Type = EffectType::Smoke;
item->Effect.Count = 1 * FPS;
}
} }
if (item->IsLara() && GetLaraInfo(item)->Control.WaterStatus == WaterStatus::FlyCheat) if (item->IsLara() && GetLaraInfo(item)->Control.WaterStatus == WaterStatus::FlyCheat)