diff --git a/DXRModules/DeusEx/Classes/DXRFlagsNGPMaxRando.uc b/DXRModules/DeusEx/Classes/DXRFlagsNGPMaxRando.uc index 531c50bdb..d2b00b85e 100644 --- a/DXRModules/DeusEx/Classes/DXRFlagsNGPMaxRando.uc +++ b/DXRModules/DeusEx/Classes/DXRFlagsNGPMaxRando.uc @@ -1,6 +1,5 @@ class DXRFlagsNGPMaxRando extends DXRFlagsBase transient; - simulated function ExecMaxRando() { // set local seed @@ -223,9 +222,6 @@ function NewGamePlus() p.DeleteAllNotes(); p.DeleteAllGoals(); p.ResetConversationHistory(); - p.SetInHandPending(None); - p.SetInHand(None); - p.bInHandTransition = False; p.RestoreAllHealth(); ClearDataVaultImages(); @@ -242,7 +238,7 @@ function NewGamePlus() if( augs != None ) augs.RemoveRandomAug(p); - // TODO: do this in the intro instead of in the credits? + ClearInHand(p); RemoveRandomWeapon(p); //Should you actually get fresh augs and credits on a NG+ non-vanilla start map? @@ -261,6 +257,17 @@ function NewGamePlus() Level.Game.SendPlayer(p, "00_intro"); } +simulated function ClearInHand(#var(PlayerPawn) p) +{ + p.SetInHand(None); + p.SetInHandPending(None); + p.bInHandTransition = False; + p.LastinHand = None; + p.ClientinHandPending = None; + p.inHandPending = None; + p.inHand = None; +} + simulated function RemoveRandomWeapon(#var(PlayerPawn) p) { local Inventory i, next; diff --git a/GUI/DeusEx/Classes/DXRMenuScreenNewGame.uc b/GUI/DeusEx/Classes/DXRMenuScreenNewGame.uc index 2f4627f0d..549f6fa0d 100644 --- a/GUI/DeusEx/Classes/DXRMenuScreenNewGame.uc +++ b/GUI/DeusEx/Classes/DXRMenuScreenNewGame.uc @@ -167,6 +167,7 @@ function SaveSettings() i.Destroy(); } player.Inventory = None; + dxr.flags.ClearInHand(#var(PlayerPawn)(player)); player.RestoreAllHealth(); if (DeusExRootWindow(player.rootWindow) != None) DeusExRootWindow(player.rootWindow).ResetFlags(); @@ -235,7 +236,7 @@ function ProcessAction(String actionKey) else { SaveSettings(); - AddTimer(0.1, false, 0, 'Timer');// timer to wait for items to be destroyed (issue #426) + AddTimer(0.11, false, 0, 'Timer');// timer to wait for items to be destroyed (issue #426), deletes happen every 100ms? probably don't need this anymore with our new ClearInHand() function } } else