Browse Source

Added the network session game tear down when quitting game.

Kenneth Pouncey 13 years ago
parent
commit
d0be9223bb

+ 1 - 0
Samples/MacOS/CatapultNetWars/Screens/GameplayScreen.cs

@@ -162,6 +162,7 @@ namespace CatapultGame
 					playerTwo.Initialize ();
 					playerTwo.Name = "Player 2";
 					IsNetworking = false;
+					NetworkSession.Dispose();
 					NetworkSession = null;
 				}
 			} else {

+ 10 - 0
Samples/MacOS/CatapultNetWars/Screens/PauseScreen.cs

@@ -14,6 +14,7 @@ using System.Linq;
 using System.Text;
 using GameStateManagement;
 using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Net;
 #endregion
 
 namespace CatapultGame
@@ -108,6 +109,15 @@ namespace CatapultGame
         /// 
         protected override void OnCancel(PlayerIndex playerIndex)
         {
+		// Tear down our network session
+		NetworkSession session = ScreenManager.Game.Services.GetService (typeof(NetworkSession)) as NetworkSession;
+		if (session != null) {
+			if (session.AllGamers.Count == 1) {
+				session.EndGame();
+			}
+			session.Dispose();
+			ScreenManager.Game.Services.RemoveService(typeof(NetworkSession));
+		}
             AudioManager.StopSounds();
             ScreenManager.AddScreen(new MainMenuScreen(), null);
             ExitScreen();