@@ -73,8 +73,6 @@ public class Game {
7373 private int randomSeed ;
7474 private int revision ;
7575 private boolean debug ;
76- private Player self ;
77- private Player enemy ;
7876 private Player neutral ;
7977 private boolean replay ;
8078 private boolean multiplayer ;
@@ -181,8 +179,6 @@ void init() {
181179
182180 revision = gameData .getRevision ();
183181 debug = gameData .isDebug ();
184- self = players [gameData .getSelf ()];
185- enemy = players [gameData .getEnemy ()];
186182 neutral = players [gameData .getNeutral ()];
187183 replay = gameData .isReplay ();
188184 multiplayer = gameData .isMultiplayer ();
@@ -255,15 +251,20 @@ void init() {
255251 mapPixelWidth = mapWidth * TilePosition .SIZE_IN_PIXELS ;
256252 mapPixelHeight = mapHeight * TilePosition .SIZE_IN_PIXELS ;
257253
254+ if (isReplay ()) {
255+ enemies = Collections .emptyList ();
256+ allies = Collections .emptyList ();
257+ observers = Collections .emptyList ();
258+ }
259+ else {
260+ enemies = playerSet .stream ().filter (p -> !p .equals (self ()) && self ().isEnemy (p ))
261+ .collect (Collectors .collectingAndThen (Collectors .toList (), Collections ::unmodifiableList ));
262+ allies = playerSet .stream ().filter (p -> !p .equals (self ()) && self ().isAlly (p ))
263+ .collect (Collectors .collectingAndThen (Collectors .toList (), Collections ::unmodifiableList ));
258264
259- enemies = playerSet .stream ().filter (p -> !p .equals (self ) && self .isEnemy (p ))
260- .collect (Collectors .collectingAndThen (Collectors .toList (), Collections ::unmodifiableList ));
261- allies = playerSet .stream ().filter (p -> !p .equals (self ) && self .isAlly (p ))
262- .collect (Collectors .collectingAndThen (Collectors .toList (), Collections ::unmodifiableList ));
263-
264- observers = playerSet .stream ().filter (p -> !p .equals (self ) && p .isObserver ())
265- .collect (Collectors .collectingAndThen (Collectors .toList (), Collections ::unmodifiableList ));
266-
265+ observers = playerSet .stream ().filter (p -> !p .equals (self ()) && p .isObserver ())
266+ .collect (Collectors .collectingAndThen (Collectors .toList (), Collections ::unmodifiableList ));
267+ }
267268 setLatCom (true );
268269 }
269270
@@ -1678,7 +1679,10 @@ public List<Unit> getSelectedUnits() {
16781679 * @return Player object representing the current player. null if the current game is a replay.
16791680 */
16801681 public Player self () {
1681- return self ;
1682+ if (isReplay ()) {
1683+ return null ;
1684+ }
1685+ return players [gameData .getSelf ()];
16821686 }
16831687
16841688 /**
@@ -1691,7 +1695,10 @@ public Player self() {
16911695 * @see #enemies
16921696 */
16931697 public Player enemy () {
1694- return enemy ;
1698+ if (isReplay ()) {
1699+ return null ;
1700+ }
1701+ return players [gameData .getEnemy ()];
16951702 }
16961703
16971704 /**
0 commit comments