diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index bd6924fc4d..77409a58af 100644 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -385,10 +385,6 @@ namespace OpenRA LoadMap(map); world.Queries = new World.AllQueries(world); - foreach (var p in world.players.Values) - foreach (var q in world.players.Values) - p.Stances[q] = ChooseInitialStance(p, q); - foreach (var gs in world.WorldActor.traits.WithInterface()) gs.GameStarted(world); orderManager.StartGame(); @@ -400,15 +396,6 @@ namespace OpenRA if (orderManager.GameStarted) return; chat.Reset(); - world.SetLocalPlayer(orderManager.Connection.LocalClientId); - - foreach (var c in LobbyInfo.Clients) - world.AddPlayer(new Player(world, c)); - - foreach (var p in world.players.Values) - foreach (var q in world.players.Values) - p.Stances[q] = ChooseInitialStance(p, q); - world.Queries = new World.AllQueries(world); foreach (var gs in world.WorldActor.traits.WithInterface()) @@ -418,7 +405,7 @@ namespace OpenRA orderManager.StartGame(); } - static Stance ChooseInitialStance(Player p, Player q) + public static Stance ChooseInitialStance(Player p, Player q) { if (p == q) return Stance.Ally; diff --git a/OpenRA.Game/World.cs b/OpenRA.Game/World.cs index 1906c026e3..cf8ccc5e7b 100644 --- a/OpenRA.Game/World.cs +++ b/OpenRA.Game/World.cs @@ -100,6 +100,16 @@ namespace OpenRA if (kv.Value.OwnsWorld) WorldActor.Owner = player; } + + // Add real players + SetLocalPlayer(Game.orderManager.Connection.LocalClientId); + + foreach (var c in Game.LobbyInfo.Clients) + AddPlayer(new Player(this, c)); + + foreach (var p in players.Values) + foreach (var q in players.Values) + p.Stances[q] = Game.ChooseInitialStance(p, q); Timer.Time( "worldActor: {0}" ); diff --git a/OpenRA.Mods.RA/DefaultShellmapScript.cs b/OpenRA.Mods.RA/DefaultShellmapScript.cs index f5f8a5fcfc..409293286f 100644 --- a/OpenRA.Mods.RA/DefaultShellmapScript.cs +++ b/OpenRA.Mods.RA/DefaultShellmapScript.cs @@ -21,6 +21,7 @@ using OpenRA.Mods.RA.Effects; using OpenRA.Traits; using OpenRA; +using System.Linq; namespace OpenRA.Mods.RA { @@ -34,7 +35,12 @@ namespace OpenRA.Mods.RA public void WorldLoaded(World w) { Game.MoveViewport((.5f * (w.Map.TopLeft + w.Map.BottomRight).ToFloat2()).ToInt2()); - Sound.PlayMusic("hell226m.aud"); + // Sound.PlayMusic("hell226m.aud"); + var goodguy = w.players.Values.Where(x => x.InternalName == "GoodGuy").FirstOrDefault(); + var greece = w.players.Values.Where(x => x.InternalName == "Greece").FirstOrDefault(); + goodguy.Stances[greece] = Stance.Enemy; + greece.Stances[goodguy] = Stance.Enemy; + } } }