lib/RGSS.rb in fusionpacker-0.1.2 vs lib/RGSS.rb in fusionpacker-0.1.3

- old
+ new

@@ -41,36 +41,36 @@ stride = @x < 2 ? (@y < 2 ? @z : @y) : @x rows = @data.each_slice(stride).to_a if MAX_ROW_LENGTH != -1 && stride > MAX_ROW_LENGTH block_length = (stride + MAX_ROW_LENGTH - 1) / MAX_ROW_LENGTH row_length = (stride + block_length - 1) / block_length - rows = rows.collect{|x| x.each_slice(row_length).to_a}.flatten(1) + rows = rows.collect { |x| x.each_slice(row_length).to_a }.flatten(1) end - rows = rows.collect{|x| x.collect{|y| "%04x" % y}.join(" ")} - coder['data'] = rows + rows = rows.collect { |x| x.collect { |y| "%04x" % y }.join(" ") } + coder['data'] = rows else coder['data'] = [] - end + end end def init_with(coder) @dim = coder['dim'] @x = coder['x'] @y = coder['y'] @z = coder['z'] - @data = coder['data'].collect{|x| x.split(" ").collect{|y| y.hex}}.flatten + @data = coder['data'].collect { |x| x.split(" ").collect { |y| y.hex } }.flatten items = @x * @y * @z raise "Size mismatch loading Table from YAML" unless items == @data.length end def _dump(*ignored) return [@dim, @x, @y, @z, @x * @y * @z, *@data].pack('L5 S*') end def self._load(bytes) Table.new(bytes) - end + end end class Color def initialize(bytes, g = nil, b = nil) # massive hack to support triple param color @@ -87,11 +87,11 @@ def _dump(*ignored) return [@r, @g, @b, @a].pack('D4') end def self._load(bytes) - Color.new(bytes) + Color.new(bytes) end end class Tone def initialize(bytes) @@ -171,82 +171,81 @@ # require 'infinitefusion/fusion' # Object.const_set(:PokemonDataBox, PokemonDataBox) unless Object.const_defined?(name, false) # other classes that don't need definitions - [ # RGSS data structures - [:RPG, :Actor], [:RPG, :Animation], [:RPG, :Animation, :Frame], - [:RPG, :Animation, :Timing], [:RPG, :Area], [:RPG, :Armor], [:RPG, :AudioFile], - [:RPG, :BaseItem], [:RPG, :BaseItem, :Feature], [:RPG, :BGM], [:RPG, :BGS], - [:RPG, :Class], [:RPG, :Class, :Learning], [:RPG, :CommonEvent], [:RPG, :Enemy], - [:RPG, :Enemy, :Action], [:RPG, :Enemy, :DropItem], [:RPG, :EquipItem], - [:RPG, :Event], [:RPG, :Event, :Page], [:RPG, :Event, :Page, :Condition], - [:RPG, :Event, :Page, :Graphic], [:RPG, :Item], [:RPG, :Map], - [:RPG, :Map, :Encounter], [:RPG, :MapInfo], [:RPG, :ME], [:RPG, :MoveCommand], - [:RPG, :MoveRoute], [:RPG, :SE], [:RPG, :Skill], [:RPG, :State], - [:RPG, :System, :Terms], [:RPG, :System, :TestBattler], [:RPG, :System, :Vehicle], - [:RPG, :System, :Words], [:RPG, :Tileset], [:RPG, :Troop], [:RPG, :Troop, :Member], - [:RPG, :Troop, :Page], [:RPG, :Troop, :Page, :Condition], [:RPG, :UsableItem], - [:RPG, :UsableItem, :Damage], [:RPG, :UsableItem, :Effect], [:RPG, :Weapon], - # Script classes serialized in save game files - [:Game_ActionResult], [:Game_Actor], [:Game_Actors], [:Game_BaseItem], - [:Game_BattleAction], [:Game_CommonEvent], [:Game_Enemy], [:Game_Event], - [:Game_Follower], [:Game_Followers], [:Game_Interpreter], [:Game_Map], - [:Game_Message], [:Game_Party], [:Game_Picture], [:Game_Pictures], [:Game_Player], - [:Game_System], [:Game_Timer], [:Game_Troop], [:Game_Screen], [:Game_Vehicle], - [:Interpreter], - [:PokemonDataCopy], - [:PBAnimations] - # coughing up classes for fusion - # [:PokemonDataBox, :Graphic] - ].each {|x| process(Object, *x)} + [# RGSS data structures + [:RPG, :Actor], [:RPG, :Animation], [:RPG, :Animation, :Frame], + [:RPG, :Animation, :Timing], [:RPG, :Area], [:RPG, :Armor], [:RPG, :AudioFile], + [:RPG, :BaseItem], [:RPG, :BaseItem, :Feature], [:RPG, :BGM], [:RPG, :BGS], + [:RPG, :Class], [:RPG, :Class, :Learning], [:RPG, :CommonEvent], [:RPG, :Enemy], + [:RPG, :Enemy, :Action], [:RPG, :Enemy, :DropItem], [:RPG, :EquipItem], + [:RPG, :Event], [:RPG, :Event, :Page], [:RPG, :Event, :Page, :Condition], + [:RPG, :Event, :Page, :Graphic], [:RPG, :Item], [:RPG, :Map], + [:RPG, :Map, :Encounter], [:RPG, :MapInfo], [:RPG, :ME], [:RPG, :MoveCommand], + [:RPG, :MoveRoute], [:RPG, :SE], [:RPG, :Skill], [:RPG, :State], + [:RPG, :System, :Terms], [:RPG, :System, :TestBattler], [:RPG, :System, :Vehicle], + [:RPG, :System, :Words], [:RPG, :Tileset], [:RPG, :Troop], [:RPG, :Troop, :Member], + [:RPG, :Troop, :Page], [:RPG, :Troop, :Page, :Condition], [:RPG, :UsableItem], + [:RPG, :UsableItem, :Damage], [:RPG, :UsableItem, :Effect], [:RPG, :Weapon], + # Script classes serialized in save game files + [:Game_ActionResult], [:Game_Actor], [:Game_Actors], [:Game_BaseItem], + [:Game_BattleAction], [:Game_CommonEvent], [:Game_Enemy], [:Game_Event], + [:Game_Follower], [:Game_Followers], [:Game_Interpreter], [:Game_Map], + [:Game_Message], [:Game_Party], [:Game_Picture], [:Game_Pictures], [:Game_Player], + [:Game_System], [:Game_Timer], [:Game_Troop], [:Game_Screen], [:Game_Vehicle], + [:Interpreter], + [:PokemonDataCopy], + [:PBAnimations] + # coughing up classes for fusion + # [:PokemonDataBox, :Graphic] + ].each { |x| process(Object, *x) } - def self.setup_system(version, options) # convert variable and switch name arrays to a hash when serialized # if round_trip isn't set change version_id to fixed number if options[:round_trip] iso = ->(val) { return val } reset_method(RPG::System, :reduce_string, iso) reset_method(RPG::System, :map_version, iso) reset_method(Game_System, :map_version, iso) else reset_method(RPG::System, :reduce_string, ->(str) { - return nil if str.nil? - stripped = str.strip - return stripped.empty? ? nil : stripped - }) + return nil if str.nil? + stripped = str.strip + return stripped.empty? ? nil : stripped + }) # These magic numbers should be different. If they are the same, the saved version # of the map in save files will be used instead of any updated version of the map reset_method(RPG::System, :map_version, ->(ignored) { return 12345678 }) reset_method(Game_System, :map_version, ->(ignored) { return 87654321 }) end end def self.setup_interpreter(version) # Game_Interpreter is marshalled differently in VX Ace if version == :ace - reset_method(Game_Interpreter, :marshal_dump, ->{ - return @data - }) + reset_method(Game_Interpreter, :marshal_dump, -> { + return @data + }) reset_method(Game_Interpreter, :marshal_load, ->(obj) { - @data = obj - }) + @data = obj + }) else - remove_defined_method(Game_Interpreter, :marshal_dump) + remove_defined_method(Game_Interpreter, :marshal_dump) remove_defined_method(Game_Interpreter, :marshal_load) end end def self.setup_event_command(version, options) # format event commands to flow style for the event codes that aren't move commands if options[:round_trip] - reset_method(RPG::EventCommand, :clean, ->{}) + reset_method(RPG::EventCommand, :clean, -> {}) else - reset_method(RPG::EventCommand, :clean, ->{ - @parameters[0].rstrip! if @code == 401 - }) + reset_method(RPG::EventCommand, :clean, -> { + @parameters[0].rstrip! if @code == 401 + }) end reset_const(RPG::EventCommand, :MOVE_LIST_CODE, version == :xp ? 209 : 205) end def self.setup_classes(version, options) @@ -259,17 +258,17 @@ FLOW_CLASSES = [Color, Tone, RPG::BGM, RPG::BGS, RPG::MoveCommand, RPG::SE] SCRIPTS_BASE = 'Scripts' ACE_DATA_EXT = '.rvdata2' - VX_DATA_EXT = '.rvdata' - XP_DATA_EXT = '.rxdata' - YAML_EXT = '.yaml' - RUBY_EXT = '.rb' + VX_DATA_EXT = '.rvdata' + XP_DATA_EXT = '.rxdata' + YAML_EXT = '.yaml' + RUBY_EXT = '.rb' - def self.get_data_directory(base) - return File.join(base, 'Data') + def self.get_data_directory(base, files) + return files && base || File.join(base, 'Data') end def self.get_yaml_directory(base) return File.join(base, 'YAML') end @@ -304,20 +303,20 @@ class Game_SelfSwitches include RGSS::BasicCoder def encode(name, value) - return Hash[value.collect {|pair| - key, value = pair - next ["%03d %03d %s" % key, value] - }] + return Hash[value.collect { |pair| + key, value = pair + next ["%03d %03d %s" % key, value] + }] end def decode(name, value) - return Hash[value.collect {|pair| - key, value = pair - next [key.scanf("%d %d %s"), value] - }] + return Hash[value.collect { |pair| + key, value = pair + next [key.scanf("%d %d %s"), value] + }] end end class Game_System include RGSS::BasicCoder