diff --git a/OpenRA.Game/Actor.cs b/OpenRA.Game/Actor.cs index 26f53aac3a..ef5a6e6d7f 100644 --- a/OpenRA.Game/Actor.cs +++ b/OpenRA.Game/Actor.cs @@ -38,7 +38,7 @@ namespace OpenRA public readonly uint ActorID; - public Player Owner { get; set; } + public Player Owner { get; internal set; } public bool IsInWorld { get; internal set; } public bool Disposed { get; private set; } diff --git a/OpenRA.Game/World.cs b/OpenRA.Game/World.cs index e83c9d4027..f9608dfd77 100644 --- a/OpenRA.Game/World.cs +++ b/OpenRA.Game/World.cs @@ -240,6 +240,11 @@ namespace OpenRA rc.Metadata = new ReplayMetadata(gameInfo); } + public void SetWorldOwner(Player p) + { + WorldActor.Owner = p; + } + public Actor CreateActor(string name, TypeDictionary initDict) { return CreateActor(true, name, initDict); diff --git a/OpenRA.Mods.Common/Traits/World/CreateMPPlayers.cs b/OpenRA.Mods.Common/Traits/World/CreateMPPlayers.cs index 5842aa14ba..0150892904 100644 --- a/OpenRA.Mods.Common/Traits/World/CreateMPPlayers.cs +++ b/OpenRA.Mods.Common/Traits/World/CreateMPPlayers.cs @@ -32,7 +32,7 @@ namespace OpenRA.Mods.Common.Traits var player = new Player(w, null, kv.Value); worldPlayers.Add(player); if (kv.Value.OwnsWorld) - w.WorldActor.Owner = player; + w.SetWorldOwner(player); } Player localPlayer = null; diff --git a/OpenRA.Mods.Common/Traits/World/EditorActorLayer.cs b/OpenRA.Mods.Common/Traits/World/EditorActorLayer.cs index 563ae72598..63ec4dad20 100644 --- a/OpenRA.Mods.Common/Traits/World/EditorActorLayer.cs +++ b/OpenRA.Mods.Common/Traits/World/EditorActorLayer.cs @@ -53,7 +53,7 @@ namespace OpenRA.Mods.Common.Traits Players = new MapPlayers(w.Map.PlayerDefinitions); var worldOwner = Players.Players.Select(kvp => kvp.Value).First(p => !p.Playable && p.OwnsWorld); - w.WorldActor.Owner = new Player(w, null, worldOwner); + w.SetWorldOwner(new Player(w, null, worldOwner)); } public void WorldLoaded(World world, WorldRenderer wr)