=begin
Switchless Common Events v1.1
by PK8
Created: 5/6/2012
Modified: 5/27/2012
──────────────────────────────────────────────────────────────────────────────
■ Author's Notes
This was a fairly quick script I wrote. It was an idea I had in my head
for a little while.
──────────────────────────────────────────────────────────────────────────────
■ Introduction
Remember how in RPG Maker 2000 and 2003, you didn't need to rely on switches
in order for your common events to run on parallel process and autorun? Well,
it's back. This script lets you set which common events are going to run in
either parallel processing or automatically, without the use of conditional
switches.
──────────────────────────────────────────────────────────────────────────────
■ Features
o Set which common events are going to use autorun or parallel process
triggering without a conditional switch.
──────────────────────────────────────────────────────────────────────────────
■ Methods Aliased
Scene_Title.command_new_game
Interpreter.setup_starting_event
Game_CommonEvent.refresh
──────────────────────────────────────────────────────────────────────────────
■ Changelog
v1 (05/06/2012): Initial Release
v1.1 (05/27/2012): Removed Custom Conditionals feature because it was
unnecessary and could easily be accomplished through
conditional branches. I also reduced a lot of code.
=end
#==============================================================================
# ** Configuration
#==============================================================================
module PK8
class Switchless_CommonEvents
#--------------------------------------------------------------------------
# * Do not modify
#--------------------------------------------------------------------------
Autorun, Parallel = [], []
#--------------------------------------------------------------------------
# * Decide which common events would autorun/process without a switch.
# Autorun/Parallel = [Common Event IDs]
#--------------------------------------------------------------------------
#Autorun = [10, 9]
#Parallel = [8, 7]
end
end
#==============================================================================
# ** Scene_Title
#------------------------------------------------------------------------------
# This class performs title screen processing.
#==============================================================================
class Scene_Title
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
unless method_defined?(:pk8_sce_command_new_game)
alias_method(:pk8_sce_command_new_game, :command_new_game)
end
#--------------------------------------------------------------------------
# * Command: New Game
#--------------------------------------------------------------------------
def command_new_game
pk8_sce_command_new_game
PK8::Switchless_CommonEvents::Autorun.each { | id |
ceid = $data_common_events[id]; ceid.trigger, ceid.switch_id = 0, 0 }
PK8::Switchless_CommonEvents::Parallel.each { | id |
ceid = $data_common_events[id]; ceid.trigger, ceid.switch_id = 0, 0 }
end
end
#==============================================================================
# ** Interpreter
#------------------------------------------------------------------------------
# This interpreter runs event commands. This class is used within the
# Game_System class and the Game_Event class.
#==============================================================================
class Interpreter
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
unless method_defined?(:pk8_sce_setup_starting_event)
alias_method(:pk8_sce_setup_starting_event, :setup_starting_event)
end
#--------------------------------------------------------------------------
# * Starting Event Setup
#--------------------------------------------------------------------------
def setup_starting_event
pk8_sce_setup_starting_event
$data_common_events.compact.each { | ce | setup(ce.list, 0) if (
PK8::Switchless_CommonEvents::Autorun.include?(ce.id)) }
end
end
#==============================================================================
# ** Game_CommonEvent
#------------------------------------------------------------------------------
# This class handles common events. It includes execution of parallel process
# event. This class is used within the Game_Map class ($game_map).
#==============================================================================
class Game_CommonEvent
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
unless method_defined?(:pk8_sce_refresh)
alias_method(:pk8_sce_refresh, :refresh)
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
pk8_sce_refresh
if PK8::Switchless_CommonEvents::Parallel.include?(@common_event_id)
@interpreter = Interpreter.new if @interpreter == nil
end
end
end