Fixed structure impact damage sounds. Character colliders caused the impact sounds to be triggered almost constantly, but the sounds were not played at the world position of the structure, causing them to only be heard inside ruins (whose positions are the same as worldpositions).
This commit is contained in:
@@ -513,21 +513,15 @@ namespace Barotrauma
|
|||||||
Vector2 pos = ConvertUnits.ToDisplayUnits(f2.Body.Position);
|
Vector2 pos = ConvertUnits.ToDisplayUnits(f2.Body.Position);
|
||||||
|
|
||||||
int section = FindSectionIndex(pos);
|
int section = FindSectionIndex(pos);
|
||||||
if (section > 0)
|
if (section > -1)
|
||||||
{
|
{
|
||||||
Vector2 normal = contact.Manifold.LocalNormal;
|
Vector2 normal = contact.Manifold.LocalNormal;
|
||||||
|
|
||||||
float impact = Vector2.Dot(f2.Body.LinearVelocity, -normal)*f2.Body.Mass*0.1f;
|
float impact = Vector2.Dot(f2.Body.LinearVelocity, -normal) * f2.Body.Mass * 0.1f;
|
||||||
|
|
||||||
#if CLIENT
|
|
||||||
SoundPlayer.PlayDamageSound("StructureBlunt", impact,
|
|
||||||
new Vector2(
|
|
||||||
sections[section].rect.X + sections[section].rect.Width / 2,
|
|
||||||
sections[section].rect.Y - sections[section].rect.Height / 2), tags: Tags);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (impact < 10.0f) return true;
|
if (impact < 10.0f) return true;
|
||||||
|
#if CLIENT
|
||||||
|
SoundPlayer.PlayDamageSound("StructureBlunt", impact, SectionPosition(section, true), tags: Tags);
|
||||||
|
#endif
|
||||||
AddDamage(section, impact);
|
AddDamage(section, impact);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user