# HG changeset patch # User Wuzzy # Date 1562819043 -7200 # Node ID 4576e41c0692f9b7a41c4f4c0360e15e4212ea2d # Parent b9686895651436962848dbe74f34cdcd5985571c Add air plane underwater sound and add water splashes diff -r b96868956514 -r 4576e41c0692 ChangeLog.txt --- a/ChangeLog.txt Thu Jul 11 05:44:43 2019 +0200 +++ b/ChangeLog.txt Thu Jul 11 06:24:03 2019 +0200 @@ -109,6 +109,7 @@ + Animate drill rockets + New idle shoryuken animation + Scatter molotov cocktail pieces + + Add water effects for air plane * Fix speech bubbles overlapping in the wrong order * Fix wrong ice beam angle if it goes diagonally up out of map through world wrap * Fix double water splash when flying saucer drowns @@ -165,6 +166,7 @@ + sndYoohoo has been split to sndYoohoo and sndKiss + Voice files sndPoisonCough and sndPoisonMoan are now optional (fall back to Default voicepack) + Add taunt: sndFlyAway / Flyaway.ogg: When hedgehog flies off the map + + Add underwater sound for airplane + Tweak some taunts: sndFirstBlood, sndLeaveMeAlone, sndCutItOut * Fix English voicepack selection of team being overwritten when playing in non-English locale diff -r b96868956514 -r 4576e41c0692 hedgewars/uGearsHandlersMess.pas --- a/hedgewars/uGearsHandlersMess.pas Thu Jul 11 05:44:43 2019 +0200 +++ b/hedgewars/uGearsHandlersMess.pas Thu Jul 11 06:24:03 2019 +0200 @@ -3079,6 +3079,8 @@ //////////////////////////////////////////////////////////////////////////////// procedure doStepAirAttackWork(Gear: PGear); +var uw, nuw: boolean; + tmpFloat: hwFloat; begin AllInactive := false; Gear^.X := Gear^.X + cAirPlaneSpeed * Gear^.Tag; @@ -3095,7 +3097,7 @@ Gear^.dX := Gear^.dX + int2hwFloat(Gear^.Damage * Gear^.Tag); if CheckCoordInWater(hwRound(Gear^.X), hwRound(Gear^.Y)) then FollowGear^.State:= FollowGear^.State or gstSubmersible; - if (Gear^.SoundChannel <> -1) then + if (Gear^.SoundChannel <> -1) and (WorldEdge <> weSea) then begin StopSoundChan(Gear^.SoundChannel, 4000); Gear^.SoundChannel := -1; @@ -3118,8 +3120,35 @@ StopSoundChan(Gear^.SoundChannel); Gear^.SoundChannel := -1; end; - DeleteGear(Gear) - end + DeleteGear(Gear); + exit; + end; + + uw := (Gear^.Karma <> 0); // Was plane underwater last tick? + nuw := CheckCoordInWater(hwRound(Gear^.X) + Gear^.Radius * Gear^.Tag, hwRound(Gear^.Y)); // Is plane underwater now? + + // if water entered or left + if nuw <> uw then + begin + tmpFloat:= Gear^.dX; + Gear^.dX := cAirPlaneSpeed * Gear^.Tag; + AddSplashForGear(Gear, false); + Gear^.dX := tmpFloat; + StopSoundChan(Gear^.SoundChannel); + if nuw then + begin + Gear^.SoundChannel := LoopSound(sndPlaneWater); + StopSoundChan(Gear^.SoundChannel, 4000); + Gear^.SoundChannel := -1; + Gear^.Karma := 1; + end + else + begin + Gear^.SoundChannel := LoopSound(sndPlane); + Gear^.Karma := 0; + end; + end; + end; procedure doStepAirAttack(Gear: PGear); @@ -3158,7 +3187,17 @@ cGravity) * Gear^.Tag; Gear^.doStep := @doStepAirAttackWork; - Gear^.SoundChannel := LoopSound(sndPlane, 4000); + + if (WorldEdge = weSea) then + begin + Gear^.SoundChannel := LoopSound(sndPlaneWater, 4000); + Gear^.Karma := 1; + end + else + begin + Gear^.SoundChannel := LoopSound(sndPlane, 4000); + Gear^.Karma := 0; + end; end; @@ -3473,6 +3512,7 @@ exit end; + // particles if (GameTicks and $3F) = 0 then AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace); end; diff -r b96868956514 -r 4576e41c0692 hedgewars/uGearsList.pas --- a/hedgewars/uGearsList.pas Thu Jul 11 05:44:43 2019 +0200 +++ b/hedgewars/uGearsList.pas Thu Jul 11 06:24:03 2019 +0200 @@ -607,6 +607,9 @@ gear^.Health:= 6; gear^.Damage:= 30; gear^.Z:= cHHZ+2; + gear^.Karma:= 0; // for sound effect: 0 = normal, 1 = underwater + gear^.Radius:= 150; + gear^.Density:= _19; gear^.Tint:= gear^.Hedgehog^.Team^.Clan^.Color shl 8 or $FF end; gtAirBomb: begin diff -r b96868956514 -r 4576e41c0692 hedgewars/uSound.pas --- a/hedgewars/uSound.pas Thu Jul 11 05:44:43 2019 +0200 +++ b/hedgewars/uSound.pas Thu Jul 11 06:24:03 2019 +0200 @@ -331,7 +331,8 @@ (FileName: 'Ouch.ogg'; Path: ptVoices; AltPath: ptNone),// sndOuch (FileName: 'Hmm.ogg'; Path: ptVoices; AltPath: ptNone),// sndHmm (FileName: 'Kiss.ogg'; Path: ptSounds; AltPath: ptNone),// sndKiss - (FileName: 'Flyaway.ogg'; Path: ptVoices; AltPath: ptNone) // sndFlyAway + (FileName: 'Flyaway.ogg'; Path: ptVoices; AltPath: ptNone),// sndFlyAway + (FileName: 'planewater.ogg'; Path: ptSounds; AltPath: ptNone) // sndPlaneWater ); diff -r b96868956514 -r 4576e41c0692 hedgewars/uTypes.pas --- a/hedgewars/uTypes.pas Thu Jul 11 05:44:43 2019 +0200 +++ b/hedgewars/uTypes.pas Thu Jul 11 06:24:03 2019 +0200 @@ -158,7 +158,7 @@ sndLandGun, sndCaseImpact, sndExtraDamage, sndFirePunchHit, sndGrenade, sndThisOneIsMine, sndWhatThe, sndSoLong, sndOhDear, sndGonnaGetYou, sndDrat, sndBugger, sndAmazing, sndBrilliant, sndExcellent, sndFire, sndWatchThis, sndRunAway, sndRevenge, sndCutItOut, - sndLeaveMeAlone, sndOuch, sndHmm, sndKiss, sndFlyAway); + sndLeaveMeAlone, sndOuch, sndHmm, sndKiss, sndFlyAway, sndPlaneWater); // Available ammo types to be used by hedgehogs TAmmoType = (amNothing, amGrenade, amClusterBomb, amBazooka, amBee, amShotgun, amPickHammer, // 6 diff -r b96868956514 -r 4576e41c0692 share/hedgewars/Data/Sounds/planewater.ogg Binary file share/hedgewars/Data/Sounds/planewater.ogg has changed