Sha256: dcacde670eb407200bbcf8e05bf9e9f89bea6c5c3bd9dbdf0181b0cbedd1a34d

Contents?: true

Size: 1.33 KB

Versions: 5

Compression:

Stored size: 1.33 KB

Contents

require 'RGSS'
module RPG
  class System
    include RGSS::BasicCoder
    HASHED_VARS = ['variables', 'switches']
  end

  def self.array_to_hash(arr, &block)
    h = {}
    arr.each_with_index do |val, index|
      r = block_given? ? block.call(val) : val
      h[index] = r unless r.nil?
    end
    if arr.length > 0
      last = arr.length - 1
      h[last] = nil unless h.has_key?(last)
    end
    return h
  end

  def encode(name, value)
    if HASHED_VARS.include?(name)
      return array_to_hash(value) {|val| reduce_string(val)}
    elsif name == 'version_id'
      return map_version(value)
    else
      return value
    end
  end

  def decode(name, value)
    if HASHED_VARS.include?(name)
      return hash_to_array(value)
    else
      return value
    end
  end

  class EventCommand
    def encode_with(coder)
      raise 'Unexpected number of instance variables' if instance_variables.length != 3
      clean

      case @code
      when MOVE_LIST_CODE # move list
        coder.style = Psych::Nodes::Mapping::BLOCK
      else
        coder.style = Psych::Nodes::Mapping::FLOW
      end
      coder['i'], coder['c'], coder['p'] = @indent, @code, @parameters
    end

    def init_with(coder)
      @indent, @code, @parameters = coder['i'], coder['c'], coder['p']
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
fusionpacker-0.1.3 lib/RPG.rb
fusionpacker-0.1.2 lib/RPG.rb
fusionpacker-0.1.1 lib/RPG.rb
rvpacker-1.2.0 lib/RPG.rb
rvpacker-1.0.0 lib/RPG.rb