191 lines
6.0 KiB
Ruby
191 lines
6.0 KiB
Ruby
#==============================================================================
|
|
# ** Scene_Debug
|
|
#------------------------------------------------------------------------------
|
|
# This class performs debug screen processing.
|
|
#==============================================================================
|
|
|
|
class Scene_Debug
|
|
#--------------------------------------------------------------------------
|
|
# * Main Processing
|
|
#--------------------------------------------------------------------------
|
|
def main
|
|
# Make windows
|
|
@left_window = Window_DebugLeft.new
|
|
@right_window = Window_DebugRight.new
|
|
@help_window = Window_Base.new(192, 352, 448, 128)
|
|
@help_window.contents = Bitmap.new(406, 96)
|
|
# Restore previously selected item
|
|
@left_window.top_row = $game_temp.debug_top_row
|
|
@left_window.index = $game_temp.debug_index
|
|
@right_window.mode = @left_window.mode
|
|
@right_window.top_id = @left_window.top_id
|
|
# Execute transition
|
|
Graphics.transition
|
|
# Main loop
|
|
loop do
|
|
# Update game screen
|
|
Graphics.update
|
|
# Update input information
|
|
Input.update
|
|
# Frame update
|
|
update
|
|
# Abort loop if screen is changed
|
|
if $scene != self
|
|
break
|
|
end
|
|
end
|
|
# Refresh map
|
|
$game_map.refresh
|
|
# Prepare for transition
|
|
Graphics.freeze
|
|
# Dispose of windows
|
|
@left_window.dispose
|
|
@right_window.dispose
|
|
@help_window.dispose
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Frame Update
|
|
#--------------------------------------------------------------------------
|
|
def update
|
|
# Update windows
|
|
@right_window.mode = @left_window.mode
|
|
@right_window.top_id = @left_window.top_id
|
|
@left_window.update
|
|
@right_window.update
|
|
# Memorize selected item
|
|
$game_temp.debug_top_row = @left_window.top_row
|
|
$game_temp.debug_index = @left_window.index
|
|
# If left window is active: call update_left
|
|
if @left_window.active
|
|
update_left
|
|
return
|
|
end
|
|
# If right window is active: call update_right
|
|
if @right_window.active
|
|
update_right
|
|
return
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Frame Update (when left window is active)
|
|
#--------------------------------------------------------------------------
|
|
def update_left
|
|
# If B button was pressed
|
|
if Input.trigger?(Input::CANCEL)
|
|
# Play cancel SE
|
|
$game_system.se_play($data_system.cancel_se)
|
|
# Switch to map screen
|
|
$scene = Scene_Map.new
|
|
return
|
|
end
|
|
# If C button was pressed
|
|
if Input.trigger?(Input::ACTION)
|
|
# Play decision SE
|
|
$game_system.se_play($data_system.decision_se)
|
|
# Display help
|
|
if @left_window.mode == 0
|
|
text1 = "C (Enter) : ON / OFF"
|
|
@help_window.contents.draw_text(4, 0, 406, 32, text1)
|
|
else
|
|
text1 = "Left : -1 Right : +1"
|
|
text2 = "L (Pageup) : -10"
|
|
text3 = "R (Pagedown) : +10"
|
|
@help_window.contents.draw_text(4, 0, 406, 32, text1)
|
|
@help_window.contents.draw_text(4, 32, 406, 32, text2)
|
|
@help_window.contents.draw_text(4, 64, 406, 32, text3)
|
|
end
|
|
# Activate right window
|
|
@left_window.active = false
|
|
@right_window.active = true
|
|
@right_window.index = 0
|
|
return
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Frame Update (when right window is active)
|
|
#--------------------------------------------------------------------------
|
|
def update_right
|
|
# If B button was pressed
|
|
if Input.trigger?(Input::CANCEL)
|
|
# Play cancel SE
|
|
$game_system.se_play($data_system.cancel_se)
|
|
# Activate left window
|
|
@left_window.active = true
|
|
@right_window.active = false
|
|
@right_window.index = -1
|
|
# Erase help
|
|
@help_window.contents.clear
|
|
return
|
|
end
|
|
# Get selected switch / variable ID
|
|
current_id = @right_window.top_id + @right_window.index
|
|
# If switch
|
|
if @right_window.mode == 0
|
|
# If C button was pressed
|
|
if Input.trigger?(Input::ACTION)
|
|
# Play decision SE
|
|
$game_system.se_play($data_system.decision_se)
|
|
# Reverse ON / OFF
|
|
$game_switches[current_id] = (not $game_switches[current_id])
|
|
@right_window.refresh
|
|
return
|
|
end
|
|
end
|
|
# If variable
|
|
if @right_window.mode == 1
|
|
# If right button was pressed
|
|
if Input.repeat?(Input::RIGHT)
|
|
# Play cursor SE
|
|
$game_system.se_play($data_system.cursor_se)
|
|
# Increase variables by 1
|
|
$game_variables[current_id] += 1
|
|
# Maximum limit check
|
|
if $game_variables[current_id] > 99999999
|
|
$game_variables[current_id] = 99999999
|
|
end
|
|
@right_window.refresh
|
|
return
|
|
end
|
|
# If left button was pressed
|
|
if Input.repeat?(Input::LEFT)
|
|
# Play cursor SE
|
|
$game_system.se_play($data_system.cursor_se)
|
|
# Decrease variables by 1
|
|
$game_variables[current_id] -= 1
|
|
# Minimum limit check
|
|
if $game_variables[current_id] < -99999999
|
|
$game_variables[current_id] = -99999999
|
|
end
|
|
@right_window.refresh
|
|
return
|
|
end
|
|
# If R button was pressed
|
|
if Input.repeat?(Input::R)
|
|
# Play cursor SE
|
|
$game_system.se_play($data_system.cursor_se)
|
|
# Increase variables by 10
|
|
$game_variables[current_id] += 10
|
|
# Maximum limit check
|
|
if $game_variables[current_id] > 99999999
|
|
$game_variables[current_id] = 99999999
|
|
end
|
|
@right_window.refresh
|
|
return
|
|
end
|
|
# If L button was pressed
|
|
if Input.repeat?(Input::L)
|
|
# Play cursor SE
|
|
$game_system.se_play($data_system.cursor_se)
|
|
# Decrease variables by 10
|
|
$game_variables[current_id] -= 10
|
|
# Minimum limit check
|
|
if $game_variables[current_id] < -99999999
|
|
$game_variables[current_id] = -99999999
|
|
end
|
|
@right_window.refresh
|
|
return
|
|
end
|
|
end
|
|
end
|
|
end
|