diff -r 295db41d979091b4db0fbd6105520b657763e833 -r 5f677872a79bd00352c998b7a4bd5edb8379cc33 axios/Axios_settings.cs --- a/axios/Axios_settings.cs Tue Mar 20 21:44:43 2012 -0500 +++ b/axios/Axios_settings.cs Wed Mar 21 00:12:11 2012 -0500 @@ -41,6 +41,13 @@ * * 1.0.0.9 - 3/16/2012 * - Changeing the complex objects alot - now they are more like "chained" objects + * - Adding checks for if objects are getting deleted too fast + * + * 1.0.1.0 - 3/20/2012 + * - Taking out hard coded debug statements for the screen system + * - Adding field to allow/disallow automated mouse joints per object + * - Fixing bug with last screen not exiting if it is a background screen + * * */ diff -r 295db41d979091b4db0fbd6105520b657763e833 -r 5f677872a79bd00352c998b7a4bd5edb8379cc33 axios/ScreenSystem/GameScreen.cs --- a/axios/ScreenSystem/GameScreen.cs Tue Mar 20 21:44:43 2012 -0500 +++ b/axios/ScreenSystem/GameScreen.cs Wed Mar 21 00:12:11 2012 -0500 @@ -270,7 +270,7 @@ /// public virtual void ExitScreen() { - if (TransitionOffTime == TimeSpan.Zero) + if (TransitionOffTime == TimeSpan.Zero && this.TransitionPosition == 0 && this.TransitionAlpha == 1) { // If the screen has a zero transition time, remove it immediately. ScreenManager.RemoveScreen(this); diff -r 295db41d979091b4db0fbd6105520b657763e833 -r 5f677872a79bd00352c998b7a4bd5edb8379cc33 axios/ScreenSystem/MenuScreen.cs --- a/axios/ScreenSystem/MenuScreen.cs Tue Mar 20 21:44:43 2012 -0500 +++ b/axios/ScreenSystem/MenuScreen.cs Wed Mar 21 00:12:11 2012 -0500 @@ -189,12 +189,15 @@ } else if (input.IsMenuCancel()) { - if (this.ScreenState == SamplesFramework.ScreenState.Active) + if (this.ScreenState == SamplesFramework.ScreenState.Active && this.TransitionPosition == 0 && this.TransitionAlpha == 1) { - if (ScreenManager.GetScreens().Length == 2) - ScreenManager.Game.Exit(); - else - this.ExitScreen(); + //GameScreen[] screens = ScreenManager.GetScreens(); + //if (screens[screens.Length - 1] is BackgroundScreen ||| screens.Length ) + // ScreenManager.Game.Exit(); + //if (ScreenManager.GetScreens().Length == 2) + // ScreenManager.Game.Exit(); + //else + this.ExitScreen(); } //ScreenManager.Game.Exit(); } diff -r 295db41d979091b4db0fbd6105520b657763e833 -r 5f677872a79bd00352c998b7a4bd5edb8379cc33 axios/ScreenSystem/ScreenManagerComponent.cs --- a/axios/ScreenSystem/ScreenManagerComponent.cs Tue Mar 20 21:44:43 2012 -0500 +++ b/axios/ScreenSystem/ScreenManagerComponent.cs Wed Mar 21 00:12:11 2012 -0500 @@ -139,7 +139,7 @@ // the process of updating one screen adds or removes others. _screensToUpdate.Clear(); - if (_screens.Count == 0) + if (_screens.Count == 0 || (_screens.Count == 1 && _screens[0] is BackgroundScreen)) //I'm done, exit this.Game.Exit();