Prevent mod code from changing Actor.Owner directly.
This commit is contained in:
@@ -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; }
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user