From 7186f654d71e0fb40a7129bebaa557199246e97b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sun, 31 May 2015 09:43:35 +0200 Subject: [PATCH 1/3] avoid an unneeded loop --- OpenRA.Mods.Common/Lint/CheckPlayers.cs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/OpenRA.Mods.Common/Lint/CheckPlayers.cs b/OpenRA.Mods.Common/Lint/CheckPlayers.cs index 8d6a086125..89a1cb5466 100644 --- a/OpenRA.Mods.Common/Lint/CheckPlayers.cs +++ b/OpenRA.Mods.Common/Lint/CheckPlayers.cs @@ -22,22 +22,24 @@ namespace OpenRA.Mods.Common.Lint var players = new MapPlayers(map.PlayerDefinitions).Players; var playerNames = players.Values.Select(p => p.Name); - foreach (var player in players) - foreach (var ally in player.Value.Allies) + foreach (var player in players.Values) + { + foreach (var ally in player.Allies) if (!playerNames.Contains(ally)) emitError("Allies contains player {0} that is not in list.".F(ally)); - foreach (var player in players) - foreach (var enemy in player.Value.Enemies) + foreach (var enemy in player.Enemies) if (!playerNames.Contains(enemy)) emitError("Enemies contains player {0} that is not in list.".F(enemy)); + } + var worldActor = map.Rules.Actors["world"]; var races = worldActor.Traits.WithInterface().Select(c => c.Race); - foreach (var player in players) - if (!string.IsNullOrWhiteSpace(player.Value.Race) && player.Value.Race != "Random" && !races.Contains(player.Value.Race)) - emitError("Invalid race {0} chosen for player {1}.".F(player.Value.Race, player.Value.Name)); + foreach (var player in players.Values) + if (!string.IsNullOrWhiteSpace(player.Race) && player.Race != "Random" && !races.Contains(player.Race)) + emitError("Invalid race {0} chosen for player {1}.".F(player.Race, player.Name)); if (worldActor.Traits.Contains()) { From 3167ca48ff737d7256bd8f83d2bf173fdfab05fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sun, 31 May 2015 09:44:50 +0200 Subject: [PATCH 2/3] check if the neutral player is set up correctly --- OpenRA.Mods.Common/Lint/CheckPlayers.cs | 2 ++ mods/cnc/maps/gdi03/map.yaml | 1 - mods/cnc/maps/gdi04c/map.yaml | 1 - mods/cnc/maps/nod03a/map.yaml | 2 -- mods/cnc/maps/nod03b/map.yaml | 2 -- mods/cnc/maps/nod04a/map.yaml | 2 -- mods/cnc/maps/nod04b/map.yaml | 2 -- mods/cnc/maps/nod05/map.yaml | 2 -- mods/cnc/maps/nod06a/map.yaml | 1 - mods/cnc/maps/nod06b/map.yaml | 1 - mods/d2k/maps/shellmap/map.yaml | 1 - mods/ra/maps/allies-01/map.yaml | 3 +-- mods/ra/maps/desert-shellmap/map.yaml | 2 -- mods/ra/maps/monster-tank-madness/map.yaml | 3 +-- 14 files changed, 4 insertions(+), 21 deletions(-) diff --git a/OpenRA.Mods.Common/Lint/CheckPlayers.cs b/OpenRA.Mods.Common/Lint/CheckPlayers.cs index 89a1cb5466..b9617a7f7b 100644 --- a/OpenRA.Mods.Common/Lint/CheckPlayers.cs +++ b/OpenRA.Mods.Common/Lint/CheckPlayers.cs @@ -32,6 +32,8 @@ namespace OpenRA.Mods.Common.Lint if (!playerNames.Contains(enemy)) emitError("Enemies contains player {0} that is not in list.".F(enemy)); + if (player.OwnsWorld && (player.Enemies.Any() || player.Allies.Any())) + emitWarning("The player {0} owning the world should not have any allies or enemies.".F(player.Name)); } var worldActor = map.Rules.Actors["world"]; diff --git a/mods/cnc/maps/gdi03/map.yaml b/mods/cnc/maps/gdi03/map.yaml index 3701e0196a..add9dcbe93 100644 --- a/mods/cnc/maps/gdi03/map.yaml +++ b/mods/cnc/maps/gdi03/map.yaml @@ -47,7 +47,6 @@ Players: OwnsWorld: True NonCombatant: True Race: gdi - Enemies: Nod PlayerReference@GDI: Name: GDI Playable: True diff --git a/mods/cnc/maps/gdi04c/map.yaml b/mods/cnc/maps/gdi04c/map.yaml index 918919b764..510093acc9 100644 --- a/mods/cnc/maps/gdi04c/map.yaml +++ b/mods/cnc/maps/gdi04c/map.yaml @@ -42,7 +42,6 @@ Players: OwnsWorld: True NonCombatant: True Race: gdi - Enemies: Nod, GDI PlayerReference@Nod: Name: Nod Race: nod diff --git a/mods/cnc/maps/nod03a/map.yaml b/mods/cnc/maps/nod03a/map.yaml index 6b31f53ec8..dfb3ef6411 100644 --- a/mods/cnc/maps/nod03a/map.yaml +++ b/mods/cnc/maps/nod03a/map.yaml @@ -41,8 +41,6 @@ Players: OwnsWorld: True NonCombatant: True Race: gdi - Allies: GDI - Enemies: Nod PlayerReference@GDI: Name: GDI Race: gdi diff --git a/mods/cnc/maps/nod03b/map.yaml b/mods/cnc/maps/nod03b/map.yaml index bc972d4b3c..6e64d0d6b2 100644 --- a/mods/cnc/maps/nod03b/map.yaml +++ b/mods/cnc/maps/nod03b/map.yaml @@ -41,8 +41,6 @@ Players: OwnsWorld: True NonCombatant: True Race: gdi - Allies: GDI - Enemies: Nod PlayerReference@GDI: Name: GDI Race: gdi diff --git a/mods/cnc/maps/nod04a/map.yaml b/mods/cnc/maps/nod04a/map.yaml index cfdb3d1a7a..17eb11a634 100644 --- a/mods/cnc/maps/nod04a/map.yaml +++ b/mods/cnc/maps/nod04a/map.yaml @@ -40,8 +40,6 @@ Players: OwnsWorld: True NonCombatant: True Race: gdi - Allies: Nod - Enemies: GDI PlayerReference@NodSupporter: Name: NodSupporter NonCombatant: True diff --git a/mods/cnc/maps/nod04b/map.yaml b/mods/cnc/maps/nod04b/map.yaml index d790d4c13d..1a7af70e06 100644 --- a/mods/cnc/maps/nod04b/map.yaml +++ b/mods/cnc/maps/nod04b/map.yaml @@ -44,8 +44,6 @@ Players: OwnsWorld: True NonCombatant: True Race: gdi - Allies: GDI - Enemies: Nod PlayerReference@Nod: Name: Nod Playable: True diff --git a/mods/cnc/maps/nod05/map.yaml b/mods/cnc/maps/nod05/map.yaml index c1fc9eb776..0a9ed82d2b 100644 --- a/mods/cnc/maps/nod05/map.yaml +++ b/mods/cnc/maps/nod05/map.yaml @@ -48,8 +48,6 @@ Players: OwnsWorld: True NonCombatant: True Race: gdi - Allies: GDI - Enemies: Nod PlayerReference@Nod: Name: Nod Playable: True diff --git a/mods/cnc/maps/nod06a/map.yaml b/mods/cnc/maps/nod06a/map.yaml index 42c6891745..a3bd99b0cf 100644 --- a/mods/cnc/maps/nod06a/map.yaml +++ b/mods/cnc/maps/nod06a/map.yaml @@ -40,7 +40,6 @@ Players: OwnsWorld: True NonCombatant: True Race: gdi - Enemies: GDI, Nod PlayerReference@GDI: Name: GDI Playable: False diff --git a/mods/cnc/maps/nod06b/map.yaml b/mods/cnc/maps/nod06b/map.yaml index 77255941c9..a4578ab4a5 100644 --- a/mods/cnc/maps/nod06b/map.yaml +++ b/mods/cnc/maps/nod06b/map.yaml @@ -46,7 +46,6 @@ Players: OwnsWorld: True NonCombatant: True Race: gdi - Enemies: Nod, GDI PlayerReference@Civilians: Name: Civilians NonCombatant: True diff --git a/mods/d2k/maps/shellmap/map.yaml b/mods/d2k/maps/shellmap/map.yaml index 89f159d877..66506681b2 100644 --- a/mods/d2k/maps/shellmap/map.yaml +++ b/mods/d2k/maps/shellmap/map.yaml @@ -28,7 +28,6 @@ Players: OwnsWorld: True NonCombatant: True Race: atreides - Allies: Atreides PlayerReference@Atreides: Name: Atreides Race: atreides diff --git a/mods/ra/maps/allies-01/map.yaml b/mods/ra/maps/allies-01/map.yaml index 6bf78310b9..c8eeb5dd6f 100644 --- a/mods/ra/maps/allies-01/map.yaml +++ b/mods/ra/maps/allies-01/map.yaml @@ -45,7 +45,6 @@ Players: OwnsWorld: True NonCombatant: True Race: allies - Enemies: USSR, Greece, England PlayerReference@Greece: Name: Greece Playable: True @@ -58,7 +57,7 @@ Players: LockSpawn: True LockTeam: True Allies: England - Enemies: Neutral, USSR + Enemies: USSR PlayerReference@England: Name: England Race: allies diff --git a/mods/ra/maps/desert-shellmap/map.yaml b/mods/ra/maps/desert-shellmap/map.yaml index 17f11e28a8..6c6938f6d8 100644 --- a/mods/ra/maps/desert-shellmap/map.yaml +++ b/mods/ra/maps/desert-shellmap/map.yaml @@ -28,7 +28,6 @@ Players: OwnsWorld: True NonCombatant: True Race: allies - Allies: Allies PlayerReference@Creeps: Name: Creeps NonCombatant: True @@ -37,7 +36,6 @@ Players: Name: Allies Race: allies ColorRamp: 161,134,200 - Allies: Neutral Enemies: Soviets PlayerReference@Soviets: Name: Soviets diff --git a/mods/ra/maps/monster-tank-madness/map.yaml b/mods/ra/maps/monster-tank-madness/map.yaml index 0564df2837..f2fd732fc3 100644 --- a/mods/ra/maps/monster-tank-madness/map.yaml +++ b/mods/ra/maps/monster-tank-madness/map.yaml @@ -60,7 +60,6 @@ Players: OwnsWorld: True NonCombatant: True Race: allies - Enemies: Turkey PlayerReference@Ukraine: Name: Ukraine Race: soviet @@ -71,7 +70,7 @@ Players: Name: Turkey Race: soviet ColorRamp: 14,123,167 - Enemies: Greece, BadGuy, USSR, Ukraine, Neutral, Outpost + Enemies: Greece, BadGuy, USSR, Ukraine, Outpost PlayerReference@Outpost: Name: Outpost NonCombatant: True From 98afa922ac8d5f496380d02c29d14e4529da8f80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sun, 31 May 2015 20:33:29 +0200 Subject: [PATCH 3/3] Random is already in the race list --- OpenRA.Mods.Common/Lint/CheckPlayers.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Lint/CheckPlayers.cs b/OpenRA.Mods.Common/Lint/CheckPlayers.cs index b9617a7f7b..aef8eeeb2b 100644 --- a/OpenRA.Mods.Common/Lint/CheckPlayers.cs +++ b/OpenRA.Mods.Common/Lint/CheckPlayers.cs @@ -40,7 +40,7 @@ namespace OpenRA.Mods.Common.Lint var races = worldActor.Traits.WithInterface().Select(c => c.Race); foreach (var player in players.Values) - if (!string.IsNullOrWhiteSpace(player.Race) && player.Race != "Random" && !races.Contains(player.Race)) + if (!string.IsNullOrWhiteSpace(player.Race) && !races.Contains(player.Race)) emitError("Invalid race {0} chosen for player {1}.".F(player.Race, player.Name)); if (worldActor.Traits.Contains())