Skip to content

Commit

Permalink
fix: invites after disconnecting from game
Browse files Browse the repository at this point in the history
  • Loading branch information
olavim committed Jul 17, 2021
1 parent 0b572b3 commit 3594b4a
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 19 deletions.
20 changes: 1 addition & 19 deletions RoundsWithFriends/PrivateRoomHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,28 +48,13 @@ public bool IsOpen
}
}

private static void OnSceneLoad(Scene scene, LoadSceneMode mode)
{
// Map changes also cause scene loads. We don't want to open the lobby during those...
if (scene.name == "Main")
{
SceneManager.sceneLoaded -= PrivateRoomHandler.OnSceneLoad;
PrivateRoomHandler.instance.Open();

if (PhotonNetwork.IsMasterClient)
{
PrivateRoomHandler.RestoreSettings();
}
}
}

private static void SaveSettings()
{
PrivateRoomHandler.PrevHandlerID = GameModeManager.CurrentHandlerID;
PrivateRoomHandler.PrevSettings = GameModeManager.CurrentHandler.Settings;
}

private static void RestoreSettings()
public static void RestoreSettings()
{
PrivateRoomHandler.instance.SyncMethod(nameof(PrivateRoomHandler.SetGameSettings), null, PrivateRoomHandler.PrevHandlerID, PrivateRoomHandler.PrevSettings);
PrivateRoomHandler.PrevHandlerID = null;
Expand Down Expand Up @@ -624,9 +609,6 @@ public static void StartGame()
PrivateRoomHandler.SaveSettings();
}

// The main scene is reloaded after the game. After the reload is done, we want to reopen the lobby.
SceneManager.sceneLoaded += PrivateRoomHandler.OnSceneLoad;

PhotonNetwork.LocalPlayer.SetProperty("ready", false);
PhotonNetwork.LocalPlayer.SetProperty("readyOrder", -1);

Expand Down
17 changes: 17 additions & 0 deletions RoundsWithFriends/RoundEndHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -145,10 +145,27 @@ public static void Exit()
}
}

// Reopen lobby after main scene is loaded
SceneManager.sceneLoaded += RoundEndHandler.OnSceneLoad;

gm.GameMode.StopAllCoroutines();
SceneManager.LoadScene(SceneManager.GetActiveScene().name);

RoundEndHandler.instance.waitingForHost = false;
}

private static void OnSceneLoad(Scene scene, LoadSceneMode mode)
{
if (scene.name == "Main")
{
SceneManager.sceneLoaded -= RoundEndHandler.OnSceneLoad;
PrivateRoomHandler.instance.Open();

if (PhotonNetwork.IsMasterClient)
{
PrivateRoomHandler.RestoreSettings();
}
}
}
}
}

0 comments on commit 3594b4a

Please sign in to comment.