# HG changeset patch # User unc0rr # Date 1231973602 0 # Node ID c8deca7b1e3c46fdd8c9cc33d1d681ea86ea320a # Parent 0655bb13af013407cad66f05192c65ea9aa5a7a2 Fix voicepacks diff -r 0655bb13af01 -r c8deca7b1e3c hedgewars/uStats.pas --- a/hedgewars/uStats.pas Wed Jan 14 21:59:11 2009 +0000 +++ b/hedgewars/uStats.pas Wed Jan 14 22:53:22 2009 +0000 @@ -45,20 +45,29 @@ implementation uses uTeams, uSound, uMisc; var DamageGiven : Longword = 0; - DamageClan : Longword = 0; - DamageTotal : Longword = 0; - KillsClan : LongWord = 0; - Kills : LongWord = 0; - KillsTotal : LongWord = 0; - AmmoUsedCount : Longword = 0; - AmmoDamagingUsed : boolean = false; - SkippedTurns: LongWord = 0; - isTurnSkipped: boolean = false; + DamageClan : Longword = 0; + DamageTotal : Longword = 0; + KillsClan : LongWord = 0; + Kills : LongWord = 0; + KillsTotal : LongWord = 0; + AmmoUsedCount : Longword = 0; + AmmoDamagingUsed : boolean = false; + SkippedTurns: LongWord = 0; + isTurnSkipped: boolean = false; + vpHurtSameClan: PVoicepack = nil; + vpHurtEnemy: PVoicepack = nil; procedure HedgehogDamaged(Gear: PGear); begin +if CurrentHedgehog^.Team^.Clan = PHedgehog(Gear^.Hedgehog)^.Team^.Clan then + vpHurtSameClan:= CurrentHedgehog^.Team^.voicepack +else + vpHurtEnemy:= CurrentHedgehog^.Team^.voicepack; + if bBetweenTurns then exit; +////////////////////////// + if Gear <> CurrentHedgehog^.Gear then inc(CurrentHedgehog^.stats.StepDamageGiven, Gear^.Damage); @@ -97,34 +106,34 @@ PlaySound(sndFirstBlood, false, CurrentTeam^.voicepack) else if CurrentHedgehog^.stats.StepDamageRecv > 0 then - PlaySound(sndStupid, false, CurrentTeam^.voicepack) + PlaySound(sndStupid, false, PreviousTeam^.voicepack) else if DamageClan <> 0 then if DamageTotal > DamageClan then if random(2) = 0 then PlaySound(sndNutter, false, CurrentTeam^.voicepack) else - PlaySound(sndWatchIt, false, CurrentTeam^.voicepack) + PlaySound(sndWatchIt, false, vpHurtSameClan) else if random(2) = 0 then - PlaySound(sndSameTeam, false, CurrentTeam^.voicepack) + PlaySound(sndSameTeam, false, vpHurtSameClan) else - PlaySound(sndTraitor, false, CurrentTeam^.voicepack) + PlaySound(sndTraitor, false, vpHurtSameClan) else if DamageGiven <> 0 then if Kills > 0 then PlaySound(sndEnemyDown, false, CurrentTeam^.voicepack) else - PlaySound(sndRegret, false, CurrentTeam^.voicepack) + PlaySound(sndRegret, false, vpHurtEnemy) else if AmmoDamagingUsed then - PlaySound(sndMissed, false, CurrentTeam^.voicepack) + PlaySound(sndMissed, false, PreviousTeam^.voicepack) else if (AmmoUsedCount > 0) and not isTurnSkipped then // nothing ? else if isTurnSkipped then - PlaySound(sndBoring, false, CurrentTeam^.voicepack) + PlaySound(sndBoring, false, PreviousTeam^.voicepack) else - PlaySound(sndCoward, false, CurrentTeam^.voicepack); + PlaySound(sndCoward, false, PreviousTeam^.voicepack); end; diff -r 0655bb13af01 -r c8deca7b1e3c hedgewars/uTeams.pas --- a/hedgewars/uTeams.pas Wed Jan 14 21:59:11 2009 +0000 +++ b/hedgewars/uTeams.pas Wed Jan 14 22:53:22 2009 +0000 @@ -80,6 +80,7 @@ end; var CurrentTeam: PTeam = nil; + PreviousTeam: PTeam = nil; CurrentHedgehog: PHedgehog = nil; TeamsArray: array[0..Pred(cMaxTeams)] of PTeam; TeamsCount: Longword = 0; @@ -155,6 +156,7 @@ FreeActionsList; TargetPoint.X:= NoPointX; TryDo(CurrentTeam <> nil, 'nil Team', true); +PreviousTeam:= CurrentTeam; with CurrentHedgehog^ do if Gear <> nil then