class WolfRpg::CommonEvents::Event

Constants

MAGIC_NUMBER

Attributes

commands[RW]
id[RW]
name[RW]

Public Class Methods

new(coder) click to toggle source
# File lib/wolfrpg/common_events.rb, line 46
def initialize(coder)
  if (indicator = coder.read_byte) != 0x8E
    raise "CommonEvent header indicator not 0x8E (got 0x#{indicator.to_s(16)})"
  end
  @id = coder.read_int
  @unknown1 = coder.read_int
  @unknown2 = coder.read(7)
  @name = coder.read_string
  @commands = Array.new(coder.read_int)
  @commands.each_index do |i|
    @commands[i] = Command.create(coder)
  end
  @unknown11 = coder.read_string
  @description = coder.read_string
  if (indicator = coder.read_byte) != 0x8F
    raise "CommonEvent data indicator not 0x8F (got 0x#{indicator.to_s(16)})"
  end
  coder.verify(MAGIC_NUMBER)
  @unknown3 = Array.new(10)
  @unknown3.each_index do |i|
    @unknown3[i] = coder.read_string
  end
  coder.verify(MAGIC_NUMBER)
  @unknown4 = Array.new(10)
  @unknown4.each_index do |i|
    @unknown4[i] = coder.read_byte
  end
  coder.verify(MAGIC_NUMBER)
  @unknown5 = Array.new(10)
  @unknown5.each_index do |i|
    @unknown5[i] = Array.new(coder.read_int)
    @unknown5[i].each_index do |j|
      @unknown5[i][j] = coder.read_string
    end
  end
  coder.verify(MAGIC_NUMBER)
  @unknown6 = Array.new(10)
  @unknown6.each_index do |i|
    @unknown6[i] = Array.new(coder.read_int)
    @unknown6[i].each_index do |j|
      @unknown6[i][j] = coder.read_int
    end
  end
  @unknown7 = coder.read(0x1D)
  @unknown8 = Array.new(100)
  @unknown8.each_index do |i|
    @unknown8[i] = coder.read_string
  end
  if (indicator = coder.read_byte) != 0x91
    raise "expected 0x91, got 0x#{indicator.to_s(16)}"
  end
  @unknown9 = coder.read_string
  return if (indicator = coder.read_byte) == 0x91
  unless indicator == 0x92
    raise "expected 0x92, got 0x#{indicator.to_s(16)}"
  end
  @unknown10 = coder.read_string
  @unknown12 = coder.read_int
  if (indicator = coder.read_byte) != 0x92
    raise "expected 0x92, got 0x#{indicator.to_s(16)}"
  end
end

Public Instance Methods

dump(coder) click to toggle source
# File lib/wolfrpg/common_events.rb, line 109
def dump(coder)
  coder.write_byte(0x8E)
  coder.write_int(@id)
  coder.write_int(@unknown1)
  coder.write(@unknown2)
  coder.write_string(@name)
  coder.write_int(@commands.size)
  @commands.each do |cmd|
    cmd.dump(coder)
  end
  coder.write_string(@unknown11)
  coder.write_string(@description)
  coder.write_byte(0x8F)
  coder.write(MAGIC_NUMBER)
  @unknown3.each do |i|
    coder.write_string(i)
  end
  coder.write(MAGIC_NUMBER)
  @unknown4.each do |i|
    coder.write_byte(i)
  end
  coder.write(MAGIC_NUMBER)
  @unknown5.each do |i|
    coder.write_int(i.size)
    i.each do |j|
      coder.write_string(j)
    end
  end
  coder.write(MAGIC_NUMBER)
  @unknown6.each do |i|
    coder.write_int(i.size)
    i.each do |j|
      coder.write_int(j)
    end
  end
  coder.write(@unknown7)
  @unknown8.each do |i|
    coder.write_string(i)
  end
  coder.write_byte(0x91)
  coder.write_string(@unknown9)
  if @unknown10
    coder.write_byte(0x92)
    coder.write_string(@unknown10)
    coder.write_int(@unknown12)
    coder.write_byte(0x92)
  else
    coder.write_byte(0x91)
  end
end
each_filename() { |fn| ... } click to toggle source
# File lib/wolfrpg/common_events.rb, line 160
def each_filename
  @commands.each do |command|
    command.each_filename do |fn|
      yield fn
    end
  end
end