Remove flawed RateLimit implementation.

This commit is contained in:
Paul Chote
2019-02-12 11:49:24 +00:00
parent dc9c758f12
commit ea05e8aae5
5 changed files with 3 additions and 37 deletions

View File

@@ -33,7 +33,7 @@ namespace OpenRA.GameRules
{ {
FieldLoader.Load(this, y); FieldLoader.Load(this, y);
VoicePools = Exts.Lazy(() => Voices.ToDictionary(a => a.Key, a => new SoundPool(0, 1f, a.Value))); VoicePools = Exts.Lazy(() => Voices.ToDictionary(a => a.Key, a => new SoundPool(1f, a.Value)));
NotificationsPools = Exts.Lazy(() => ParseSoundPool(y, "Notifications")); NotificationsPools = Exts.Lazy(() => ParseSoundPool(y, "Notifications"));
} }
@@ -43,18 +43,13 @@ namespace OpenRA.GameRules
var classifiction = y.Nodes.First(x => x.Key == key); var classifiction = y.Nodes.First(x => x.Key == key);
foreach (var t in classifiction.Value.Nodes) foreach (var t in classifiction.Value.Nodes)
{ {
var rateLimit = 0;
var rateLimitNode = t.Value.Nodes.FirstOrDefault(x => x.Key == "RateLimit");
if (rateLimitNode != null)
rateLimit = FieldLoader.GetValue<int>(rateLimitNode.Key, rateLimitNode.Value.Value);
var volumeModifier = 1f; var volumeModifier = 1f;
var volumeModifierNode = t.Value.Nodes.FirstOrDefault(x => x.Key == "VolumeModifier"); var volumeModifierNode = t.Value.Nodes.FirstOrDefault(x => x.Key == "VolumeModifier");
if (volumeModifierNode != null) if (volumeModifierNode != null)
volumeModifier = FieldLoader.GetValue<float>(volumeModifierNode.Key, volumeModifierNode.Value.Value); volumeModifier = FieldLoader.GetValue<float>(volumeModifierNode.Key, volumeModifierNode.Value.Value);
var names = FieldLoader.GetValue<string[]>(t.Key, t.Value.Value); var names = FieldLoader.GetValue<string[]>(t.Key, t.Value.Value);
var sp = new SoundPool(rateLimit, volumeModifier, names); var sp = new SoundPool(volumeModifier, names);
ret.Add(t.Key, sp); ret.Add(t.Key, sp);
} }
@@ -66,15 +61,12 @@ namespace OpenRA.GameRules
{ {
public readonly float VolumeModifier; public readonly float VolumeModifier;
readonly string[] clips; readonly string[] clips;
readonly int rateLimit;
readonly List<string> liveclips = new List<string>(); readonly List<string> liveclips = new List<string>();
long lastPlayed = 0;
public SoundPool(int rateLimit, float volumeModifier, params string[] clips) public SoundPool(float volumeModifier, params string[] clips)
{ {
VolumeModifier = volumeModifier; VolumeModifier = volumeModifier;
this.clips = clips; this.clips = clips;
this.rateLimit = rateLimit;
} }
public string GetNext() public string GetNext()
@@ -86,16 +78,6 @@ namespace OpenRA.GameRules
if (liveclips.Count == 0) if (liveclips.Count == 0)
return null; return null;
// Perform rate limiting if necessary
if (rateLimit != 0)
{
var now = Game.RunTime;
if (lastPlayed != 0 && now < lastPlayed + rateLimit)
return null;
lastPlayed = now;
}
var i = Game.CosmeticRandom.Next(liveclips.Count); var i = Game.CosmeticRandom.Next(liveclips.Count);
var s = liveclips[i]; var s = liveclips[i];
liveclips.RemoveAt(i); liveclips.RemoveAt(i);

View File

@@ -6,13 +6,11 @@ Speech:
AirstrikeReady: airredy1 AirstrikeReady: airredy1
BaseAttack: baseatk1 BaseAttack: baseatk1
Building: bldging1 Building: bldging1
RateLimit: 600
BuildingCannotPlaceAudio: deploy1 BuildingCannotPlaceAudio: deploy1
BuildingCaptured: capt1 BuildingCaptured: capt1
BuildingInProgress: bldg1 BuildingInProgress: bldg1
BuildingLost: strclost BuildingLost: strclost
Cancelled: cancel1 Cancelled: cancel1
RateLimit: 500
CivilianBuildingCaptured: civcapt1 CivilianBuildingCaptured: civcapt1
CivilianKilled: civdead1 CivilianKilled: civdead1
ConstructionComplete: constru1 ConstructionComplete: constru1
@@ -43,11 +41,9 @@ Speech:
SilosNeeded: silos1 SilosNeeded: silos1
StartGame: StartGame:
Training: bldging1 Training: bldging1
RateLimit: 800
UnitDestroyed: dead1 UnitDestroyed: dead1
UnitLost: unitlost UnitLost: unitlost
UnitReady: unitredy UnitReady: unitredy
RateLimit: 900
Win: accom1 Win: accom1
DisablePrefixes: AbilityInsufficientPower, BaseAttack, Building, BuildingCannotPlaceAudio, BuildingInProgress, BuildingLost, Cancelled, CivilianBuildingCaptured, CivilianKilled, ConstructionComplete, EnemyUnitsApproaching, EnemyStructureDestroyed, EnemyPlanesApproaching, HarvesterAttack, InsufficientPower, IonCannonCharging, IonCannonReady, Leave, Lose, LowPower, MissionAccomplished, MissionFailed, NewOptions, NoBuild, NodStructureDestroyed, NotReady, NuclearWarheadApproaching, NuclearWeaponAvailable, NuclearWeaponLaunched, OnHold, PrimaryBuildingSelected, Reinforce, Repairing, SelectTarget, SilosNeeded, Training, UnitLost, UnitReady, Win DisablePrefixes: AbilityInsufficientPower, BaseAttack, Building, BuildingCannotPlaceAudio, BuildingInProgress, BuildingLost, Cancelled, CivilianBuildingCaptured, CivilianKilled, ConstructionComplete, EnemyUnitsApproaching, EnemyStructureDestroyed, EnemyPlanesApproaching, HarvesterAttack, InsufficientPower, IonCannonCharging, IonCannonReady, Leave, Lose, LowPower, MissionAccomplished, MissionFailed, NewOptions, NoBuild, NodStructureDestroyed, NotReady, NuclearWarheadApproaching, NuclearWeaponAvailable, NuclearWeaponLaunched, OnHold, PrimaryBuildingSelected, Reinforce, Repairing, SelectTarget, SilosNeeded, Training, UnitLost, UnitReady, Win

View File

@@ -13,13 +13,11 @@ Speech:
Notifications: Notifications:
BaseAttack: ATACK BaseAttack: ATACK
Building: BUILD Building: BUILD
RateLimit: 600
BuildingCannotPlaceAudio: PLACE BuildingCannotPlaceAudio: PLACE
BuildingCaptured: CAPT BuildingCaptured: CAPT
BuildingLost: BLOST BuildingLost: BLOST
BuildingReady: BDRDY BuildingReady: BDRDY
Cancelled: CANCL Cancelled: CANCL
RateLimit: 500
CannotDeploy: DPLOY CannotDeploy: DPLOY
DeathHandMissilePrepping: PREP DeathHandMissilePrepping: PREP
DeathHandMissileReady: DHRDY DeathHandMissileReady: DHRDY
@@ -52,10 +50,8 @@ Speech:
TMinusThree: 3MIN TMinusThree: 3MIN
TMinusTwo: 2MIN TMinusTwo: 2MIN
Training: TRAIN Training: TRAIN
RateLimit: 800
UnitLost: ULOST UnitLost: ULOST
UnitReady: UNRDY UnitReady: UNRDY
RateLimit: 900
UnitRepaired: GANEW UnitRepaired: GANEW
UpgradeOptions: UPGOP UpgradeOptions: UPGOP
Upgrading: UPGRD Upgrading: UPGRD

View File

@@ -17,14 +17,12 @@ Speech:
AtomBombPrepping: atprep1 AtomBombPrepping: atprep1
BaseAttack: baseatk1 BaseAttack: baseatk1
Building: abldgin1 Building: abldgin1
RateLimit: 600
BuildingCannotPlaceAudio: nodeply1 BuildingCannotPlaceAudio: nodeply1
BuildingCaptured: strucap1 BuildingCaptured: strucap1
BuildingInfiltrated: bldginf1 BuildingInfiltrated: bldginf1
BuildingInProgress: progres1 BuildingInProgress: progres1
BuildingProgress: bldgprg1 BuildingProgress: bldgprg1
Cancelled: cancld1 Cancelled: cancld1
RateLimit: 500
ChronosphereCharging: chrochr1 ChronosphereCharging: chrochr1
ChronosphereReady: chrordy1 ChronosphereReady: chrordy1
ChronosphereTestSuccessful: chroyes1 ChronosphereTestSuccessful: chroyes1
@@ -99,14 +97,12 @@ Speech:
TimerStarted: timergo1 TimerStarted: timergo1
TimerStopped: timerno1 TimerStopped: timerno1
Training: train1 Training: train1
RateLimit: 800
TwentyMinutesRemaining: 20minr TwentyMinutesRemaining: 20minr
UnitArmorUpgraded: armorup1 UnitArmorUpgraded: armorup1
UnitFirepowerUpgraded: firepo1 UnitFirepowerUpgraded: firepo1
UnitFull: unitful1 UnitFull: unitful1
UnitLost: unitlst1 UnitLost: unitlst1
UnitReady: unitrdy1 UnitReady: unitrdy1
RateLimit: 900
UnitRepaired: unitrep1 UnitRepaired: unitrep1
UnitSold: unitsld1 UnitSold: unitsld1
UnitSpeedUpgraded: unitspd1 UnitSpeedUpgraded: unitspd1

View File

@@ -14,12 +14,10 @@ Speech:
BridgeRepaired2: 00-n128 BridgeRepaired2: 00-n128
BridgeRepaired: 00-i118 BridgeRepaired: 00-i118
Building: 00-i216 Building: 00-i216
RateLimit: 600
BuildingCannotPlaceAudio: 00-i016 #CannotDeployHere BuildingCannotPlaceAudio: 00-i016 #CannotDeployHere
BuildingCaptured: 00-i056 BuildingCaptured: 00-i056
BuildingInfiltrated: 00-i014 BuildingInfiltrated: 00-i014
Cancelled: 00-i220 Cancelled: 00-i220
RateLimit: 500
ChemicalMissileReady: 00-i152 ChemicalMissileReady: 00-i152
CivilianKilled: 00-n018 CivilianKilled: 00-n018
CloakedUnitDetected: 00-i172 CloakedUnitDetected: 00-i172
@@ -73,12 +71,10 @@ Speech:
TiberiumMissileReady2: 01-n194 TiberiumMissileReady2: 01-n194
TiberiumMissileReady: 01-n176 TiberiumMissileReady: 01-n176
Training: 00-i062 Training: 00-i062
RateLimit: 800
UnitArmourUpgraded: 00-i068 UnitArmourUpgraded: 00-i068
UnitFirepowerUpgraded: 00-i070 UnitFirepowerUpgraded: 00-i070
UnitLost: 00-i074 UnitLost: 00-i074
UnitReady: 00-i076 UnitReady: 00-i076
RateLimit: 900
UnitRepaired: 00-i078 UnitRepaired: 00-i078
UnitSold: 00-i226 UnitSold: 00-i226
UnitSpeedUpgraded: 00-i080 UnitSpeedUpgraded: 00-i080