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:
Joonas Rikkonen
2018-01-26 17:25:22 +02:00
parent d4e0cbbf02
commit 98d0f42510
@@ -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);
} }
} }