From d45db9eb9c1e827909819528f68323ba4b92e8a3 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sat, 29 Jan 2011 12:58:56 +1300 Subject: [PATCH] Shift production audio onto ProductionQueue. --- OpenRA.Game/Traits/Player/EvaAlerts.cs | 8 ---- OpenRA.Mods.RA/Player/ProductionQueue.cs | 14 +++++-- OpenRA.Mods.RA/Widgets/BuildPaletteWidget.cs | 11 ++---- mods/cnc/rules/structures.yaml | 39 +++++++++++++++++--- mods/cnc/rules/system.yaml | 6 --- mods/ra/rules/system.yaml | 4 ++ 6 files changed, 50 insertions(+), 32 deletions(-) diff --git a/OpenRA.Game/Traits/Player/EvaAlerts.cs b/OpenRA.Game/Traits/Player/EvaAlerts.cs index 4369ca8a95..4e9d90321d 100644 --- a/OpenRA.Game/Traits/Player/EvaAlerts.cs +++ b/OpenRA.Game/Traits/Player/EvaAlerts.cs @@ -20,15 +20,7 @@ namespace OpenRA.Traits public readonly string CashTickDown = "cashdn1.aud"; // Build Palette - public readonly string BuildingSelectAudio = "abldgin1.aud"; - public readonly string BuildingReadyAudio = "conscmp1.aud"; public readonly string BuildingCannotPlaceAudio = "nodeply1.aud"; - public readonly string UnitSelectAudio = "train1.aud"; - public readonly string UnitReadyAudio = "unitrdy1.aud"; - public readonly string UnitReadyBlockedAudio = "nobuild1.aud"; - - public readonly string OnHoldAudio = "onhold1.aud"; - public readonly string CancelledAudio = "cancld1.aud"; public readonly string NewOptions = "newopt1.aud"; // For manual powerup/down in ra-ng diff --git a/OpenRA.Mods.RA/Player/ProductionQueue.cs b/OpenRA.Mods.RA/Player/ProductionQueue.cs index 5629d5ec8f..af1f51644b 100755 --- a/OpenRA.Mods.RA/Player/ProductionQueue.cs +++ b/OpenRA.Mods.RA/Player/ProductionQueue.cs @@ -21,6 +21,13 @@ namespace OpenRA.Mods.RA public readonly string Type = null; public float BuildSpeed = 0.4f; public readonly int LowPowerSlowdown = 3; + + public readonly string ReadyAudio = "unitrdy1.aud"; + public readonly string BlockedAudio = "nobuild1.aud"; + public readonly string QueuedAudio = "train1.aud"; + public readonly string OnHoldAudio = "onhold1.aud"; + public readonly string CancelledAudio = "cancld1.aud"; + public virtual object Create(ActorInitializer init) { return new ProductionQueue(init.self, init.self.Owner.PlayerActor, this); } } @@ -153,20 +160,19 @@ namespace OpenRA.Mods.RA _ => { var isBuilding = unit.Traits.Contains(); - var eva = self.World.WorldActor.Info.Traits.Get(); if (isBuilding && !hasPlayedSound) { - Sound.PlayToPlayer(order.Player, eva.BuildingReadyAudio); + Sound.PlayToPlayer(order.Player, Info.ReadyAudio); hasPlayedSound = true; } else if (!isBuilding) { if (BuildUnit(order.TargetString)) - Sound.PlayToPlayer(order.Player, eva.UnitReadyAudio); + Sound.PlayToPlayer(order.Player, Info.ReadyAudio); else if (!hasPlayedSound && time > 0) { - Sound.PlayToPlayer(order.Player, eva.UnitReadyBlockedAudio); + Sound.PlayToPlayer(order.Player, Info.BlockedAudio); hasPlayedSound = true; } } diff --git a/OpenRA.Mods.RA/Widgets/BuildPaletteWidget.cs b/OpenRA.Mods.RA/Widgets/BuildPaletteWidget.cs index a45339c7b7..938ef3d9ee 100755 --- a/OpenRA.Mods.RA/Widgets/BuildPaletteWidget.cs +++ b/OpenRA.Mods.RA/Widgets/BuildPaletteWidget.cs @@ -333,7 +333,6 @@ namespace OpenRA.Mods.RA.Widgets void HandleBuildPalette( World world, string item, bool isLmb ) { var unit = Rules.Info[item]; - var eva = world.WorldActor.Info.Traits.Get(); var producing = CurrentQueue.AllQueued().FirstOrDefault( a => a.Item == item ); if (isLmb) @@ -365,7 +364,7 @@ namespace OpenRA.Mods.RA.Widgets // instant cancel of things we havent really started yet, and things that are finished if (producing.Paused || producing.Done || producing.TotalCost == producing.RemainingCost) { - Sound.Play(eva.CancelledAudio); + Sound.Play(CurrentQueue.Info.CancelledAudio); int numberToCancel = Game.GetModifierKeys().HasModifier(Modifiers.Shift) ? 5 : 1; if (Game.GetModifierKeys().HasModifier(Modifiers.Shift) && Game.GetModifierKeys().HasModifier(Modifiers.Ctrl)) @@ -376,7 +375,7 @@ namespace OpenRA.Mods.RA.Widgets } else { - Sound.Play(eva.OnHoldAudio); + Sound.Play(CurrentQueue.Info.OnHoldAudio); world.IssueOrder(Order.PauseProduction(CurrentQueue.self, item, true)); } } @@ -385,11 +384,7 @@ namespace OpenRA.Mods.RA.Widgets void StartProduction( World world, string item ) { - var eva = world.WorldActor.Info.Traits.Get(); - var unit = Rules.Info[item]; - - Sound.Play(unit.Traits.Contains() ? eva.BuildingSelectAudio : eva.UnitSelectAudio); - + Sound.Play(CurrentQueue.Info.QueuedAudio); world.IssueOrder(Order.StartProduction(CurrentQueue.self, item, Game.GetModifierKeys().HasModifier(Modifiers.Shift) ? 5 : 1)); } diff --git a/mods/cnc/rules/structures.yaml b/mods/cnc/rules/structures.yaml index 1af547138c..0b6adb705f 100644 --- a/mods/cnc/rules/structures.yaml +++ b/mods/cnc/rules/structures.yaml @@ -28,10 +28,18 @@ FACT: Type: Building BuildSpeed: .4 LowPowerSlowdown: 3 + QueuedAudio: bldging1.aud + ReadyAudio: constru1.aud + OnHoldAudio: onhold1.aud + CancelledAudio: cancel1.aud ProductionQueue@Defense: Type: Defense BuildSpeed: .4 LowPowerSlowdown: 3 + QueuedAudio: bldging1.aud + ReadyAudio: constru1.aud + OnHoldAudio: onhold1.aud + CancelledAudio: cancel1.aud BaseBuilding: NUKE: @@ -158,7 +166,10 @@ PYLE: Type: Infantry BuildSpeed: .4 LowPowerSlowdown: 3 - + QueuedAudio: bldging1.aud + ReadyAudio: unitredy.aud + OnHoldAudio: onhold1.aud + CancelledAudio: cancel1.aud HAND: Inherits: ^Building Valued: @@ -188,10 +199,14 @@ HAND: ExitCell: 1,2 Production: Produces: Infantry - ProductionQueue@Infantry: + ProductionQueue: Type: Infantry BuildSpeed: .4 LowPowerSlowdown: 3 + QueuedAudio: bldging1.aud + ReadyAudio: unitredy.aud + OnHoldAudio: onhold1.aud + CancelledAudio: cancel1.aud AFLD: Inherits: ^Building @@ -226,10 +241,14 @@ AFLD: ExitCell: 3,1 ProductionAirdrop: Produces: Vehicle - ProductionQueue@Vehicle: + ProductionQueue: Type: Vehicle BuildSpeed: .4 LowPowerSlowdown: 3 + QueuedAudio: bldging1.aud + ReadyAudio: unitredy.aud + OnHoldAudio: onhold1.aud + CancelledAudio: cancel1.aud WEAP: Inherits: ^Building @@ -265,10 +284,14 @@ WEAP: ExitCell: 0,2 Production: Produces: Vehicle - ProductionQueue@Vehicle: + ProductionQueue: Type: Vehicle BuildSpeed: .4 LowPowerSlowdown: 3 + QueuedAudio: bldging1.aud + ReadyAudio: unitredy.aud + OnHoldAudio: onhold1.aud + CancelledAudio: cancel1.aud HQ: RequiresPower: @@ -387,11 +410,15 @@ HPAD: Reservable: RepairsUnits: RallyPoint: - ProductionQueue@Plane: + ProductionQueue: Type: Plane BuildSpeed: .4 LowPowerSlowdown: 3 - + QueuedAudio: bldging1.aud + ReadyAudio: unitredy.aud + OnHoldAudio: onhold1.aud + CancelledAudio: cancel1.aud + EYE: RequiresPower: CanPowerDown: diff --git a/mods/cnc/rules/system.yaml b/mods/cnc/rules/system.yaml index ab2f31f944..f9b24ec590 100644 --- a/mods/cnc/rules/system.yaml +++ b/mods/cnc/rules/system.yaml @@ -131,13 +131,7 @@ World: EvaAlerts: RadarUp: comcntr1.aud RadarDown: powrdn1.aud - BuildingSelectAudio: bldging1.aud - BuildingReadyAudio: constru1.aud BuildingCannotPlaceAudio: deploy1.aud - UnitSelectAudio: bldging1.aud - UnitReadyAudio: unitredy.aud - OnHoldAudio: onhold1.aud - CancelledAudio: cancel1.aud CashTickUp: CashTickDown: LowPower: lopower1.aud diff --git a/mods/ra/rules/system.yaml b/mods/ra/rules/system.yaml index 012105bcc0..00a61bae55 100644 --- a/mods/ra/rules/system.yaml +++ b/mods/ra/rules/system.yaml @@ -4,10 +4,14 @@ Player: Type: Building BuildSpeed: .4 LowPowerSlowdown: 3 + QueuedAudio: abldgin1.aud + ReadyAudio: conscmp1.aud ClassicProductionQueue@Defense: Type: Defense BuildSpeed: .4 LowPowerSlowdown: 3 + QueuedAudio: abldgin1.aud + ReadyAudio: conscmp1.aud ClassicProductionQueue@Vehicle: Type: Vehicle BuildSpeed: .4