From 4fec45be25c294e61b1ce4f8032b82f957821620 Mon Sep 17 00:00:00 2001 From: mshirt Date: Tue, 13 Dec 2016 04:42:45 -0600 Subject: [PATCH] Fixed softlock when opening menu If you opened the fast travel or the item menu right before touching a touch-run event, it would soft-lock you if the event changed niko's move-route, since niko was unable to move due to his update function being unreached. --- scripts/Game_Player.rb | 4 ++-- scripts/Game_Temp.rb | 2 ++ scripts/Scene_Map.rb | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/Game_Player.rb b/scripts/Game_Player.rb index ca8993a..522859b 100644 --- a/scripts/Game_Player.rb +++ b/scripts/Game_Player.rb @@ -175,7 +175,7 @@ class Game_Player < Game_Character # If moving, event running, move route forcing, and message window # display are all not occurring unless $game_system.map_interpreter.running? or @move_route_forcing or - $game_temp.message_window_showing + $game_temp.message_window_showing or $game_temp.menus_visible # Adjust move speed @move_speed = Input.press?(Input::RUN) ? 4 : 3 unless moving? @@ -235,7 +235,7 @@ class Game_Player < Game_Character end end # If not moving - unless moving? + unless moving? or $game_temp.menus_visible # If player was moving last time if last_moving # Event determinant is via touch of same position event diff --git a/scripts/Game_Temp.rb b/scripts/Game_Temp.rb index c074a4e..b2d2cd6 100644 --- a/scripts/Game_Temp.rb +++ b/scripts/Game_Temp.rb @@ -63,6 +63,7 @@ class Game_Temp attr_accessor :footstep_sfx # current footstep sfx array attr_accessor :filmsprite # film puzzle sprite attr_accessor :prompt_wait # wait for delay caused by prompt + attr_accessor :menus_visible #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- @@ -119,6 +120,7 @@ class Game_Temp @footstep_sfx = nil @filmsprite = nil @prompt_wait = 0 + @menus_visible = false end def bgm_fadein(game_system) diff --git a/scripts/Scene_Map.rb b/scripts/Scene_Map.rb index 8fcbeca..5f91e55 100644 --- a/scripts/Scene_Map.rb +++ b/scripts/Scene_Map.rb @@ -118,7 +118,8 @@ class Scene_Map return end $game_system.map_interpreter.update - $game_player.update if !@menu.visible && !@item_menu.visible && !@fast_travel.visible + $game_temp.menus_visible = @menu.visible || @item_menu.visible || @fast_travel.visible + $game_player.update $game_followers.each{|f| f.update} # Update system (timer), screen $game_system.update