# HG changeset patch # User smxx # Date 1271438263 0 # Node ID 3fd3f116f2fcc94b49d72affba558dae6fff3f36 # Parent 5cd02aafc612cdcbe39db851ab0cfef2a72f8bae Engine: * Allow player to play piano tunes using slot keys (default: F1..F9) while it's dropping (no sounds defined yet) diff -r 5cd02aafc612 -r 3fd3f116f2fc hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Fri Apr 16 16:04:41 2010 +0000 +++ b/hedgewars/GSHandlers.inc Fri Apr 16 17:17:43 2010 +0000 @@ -3054,7 +3054,26 @@ begin AllInactive:= false; doStepFallingGear(Gear); -if (Gear^.State and gstCollision) <> 0 then +if (CurrentHedgehog <> nil) and (CurrentHedgehog^.Gear <> nil) and ((CurrentHedgehog^.Gear^.Message and gm_Slot) <> 0) then + begin + case CurrentHedgehog^.Gear^.MsgParam of + 0: PlaySound(sndPiano0); + 1: PlaySound(sndPiano1); + 2: PlaySound(sndPiano2); + 3: PlaySound(sndPiano3); + 4: PlaySound(sndPiano4); + 5: PlaySound(sndPiano5); + 6: PlaySound(sndPiano6); + 7: PlaySound(sndPiano7); + else PlaySound(sndPiano8); + end; + CurrentHedgehog^.Gear^.MsgParam:= 0; + CurrentHedgehog^.Gear^.Message:= CurrentHedgehog^.Gear^.Message and not gm_Slot; + end; + +if (Gear^.State and gstDrowning) <> 0 then + ResumeMusic +else if (Gear^.State and gstCollision) <> 0 then begin r0:= GetRandom(21); r1:= GetRandom(21); diff -r 5cd02aafc612 -r 3fd3f116f2fc hedgewars/HHHandlers.inc --- a/hedgewars/HHHandlers.inc Fri Apr 16 16:04:41 2010 +0000 +++ b/hedgewars/HHHandlers.inc Fri Apr 16 17:17:43 2010 +0000 @@ -205,7 +205,10 @@ amExtraTime: TurnTimeLeft:= TurnTimeLeft + 30000; amLaserSight: cLaserSighting:= true; amVampiric: cVampiric:= true; - amPiano: FollowGear:= AddGear(TargetPoint.X, 0, gtPiano, 0, _0, _0, 0); + amPiano: begin + FollowGear:= AddGear(TargetPoint.X, 0, gtPiano, 0, _0, _0, 0); + PauseMusic + end; end; uStats.AmmoUsed(Ammo^[CurSlot, CurAmmo].AmmoType); diff -r 5cd02aafc612 -r 3fd3f116f2fc hedgewars/uConsts.pas --- a/hedgewars/uConsts.pas Fri Apr 16 16:04:41 2010 +0000 +++ b/hedgewars/uConsts.pas Fri Apr 16 17:17:43 2010 +0000 @@ -112,7 +112,8 @@ sndSwitchHog, sndVictory, sndSniperReload, sndSteps, sndLowGravity, sndHellishImpact1, sndHellishImpact2, sndHellishImpact3, sndHellishImpact4, sndMelonImpact, sndDroplet1, sndDroplet2, sndDroplet3, sndEggBreak, sndDrillRocket, - sndPoisonCough, sndPoisonMoan, sndBirdyLay, sndWhistle, sndBeeWater); + sndPoisonCough, sndPoisonMoan, sndBirdyLay, sndWhistle, sndBeeWater, + sndPiano0, sndPiano1, sndPiano2, sndPiano3, sndPiano4, sndPiano5, sndPiano6, sndPiano7, sndPiano8); TAmmoType = (amNothing, amGrenade, amClusterBomb, amBazooka, amBee, amShotgun, amPickHammer, amSkip, amRope, amMine, amDEagle, amDynamite, amFirePunch, amWhip, @@ -848,7 +849,16 @@ (FileName: 'PoisonMoan.ogg'; Path: ptVoices),// sndPoisonMoan (FileName: 'BirdyLay.ogg'; Path: ptSounds),// sndBirdyLay (FileName: 'Whistle.ogg'; Path: ptSounds),// sndWhistle - (FileName: 'beewater.ogg'; Path: ptSounds) // sndBeeWater + (FileName: 'beewater.ogg'; Path: ptSounds),// sndBeeWater + (FileName: 'egg.ogg'; Path: ptSounds),// sndPiano0 + (FileName: 'egg.ogg'; Path: ptSounds),// sndPiano1 + (FileName: 'egg.ogg'; Path: ptSounds),// sndPiano2 + (FileName: 'egg.ogg'; Path: ptSounds),// sndPiano3 + (FileName: 'egg.ogg'; Path: ptSounds),// sndPiano4 + (FileName: 'egg.ogg'; Path: ptSounds),// sndPiano5 + (FileName: 'egg.ogg'; Path: ptSounds),// sndPiano6 + (FileName: 'egg.ogg'; Path: ptSounds),// sndPiano7 + (FileName: 'egg.ogg'; Path: ptSounds) // sndPiano8 ); Ammoz: array [TAmmoType] of record