Unit ServerOrSingle_CreatePlayerUnit(PlayerManager.ServerOrSingle_Player player) { SpawnPoint spawnPoint = SpawnPoint.GetDefaultSpawnPoint(); if (spawnPoint == null) { spawnPoint = SpawnPoint.GetFreeRandomSpawnPoint(); } if (spawnPoint == null) { return(null); } return(ServerOrSingle_CreatePlayerUnit(player, spawnPoint)); }
//original 1.32 code -- Incin private Unit ServerOrSingle_CreatePlayerUnit(PlayerManager.ServerOrSingle_Player player) { SpawnPoint spawnPoint = null; if (GameMap.Instance.GameType == GameMap.GameTypes.AssaultKnights) { List <SpawnPoint> instancePoints = SpawnPoint.Instances(); foreach (SpawnPoint sp in instancePoints) { if (sp == null || sp.Faction == null) //Incin -- additional check { return(null); } if (sp.Faction != player.Intellect.Faction) { continue; } if (sp.SpawnID != (SpawnPoint.SpawnId)player.User.SpawnId) { continue; } //spawnPoint = SpawnPoint.GetDefaultSpawnPoint(); spawnPoint = sp; if (spawnPoint != null) { return(ServerOrSingle_CreatePlayerUnit(player, spawnPoint)); } ////Other Game Modes //if (spawnPoint == null) // spawnPoint = SpawnPoint.GetDefaultSpawnPoint(); //if (spawnPoint == null) // spawnPoint = SpawnPoint.GetFreeRandomSpawnPoint(); if (spawnPoint == null) { return(null); } return(ServerOrSingle_CreatePlayerUnit(player, spawnPoint)); } } else { //Other Game Modes if (spawnPoint == null) { spawnPoint = SpawnPoint.GetDefaultSpawnPoint(); } if (spawnPoint == null) { spawnPoint = SpawnPoint.GetFreeRandomSpawnPoint(); } if (spawnPoint == null) { return(null); } return(ServerOrSingle_CreatePlayerUnit(player, spawnPoint)); } return(null); }