module OpenRAReplay::Binary
Public Instance Methods
decode_u32(string)
click to toggle source
# File lib/openrareplay/binary.rb, line 55 def decode_u32(string) string.unpack('_L').first end
decode_u8(string)
click to toggle source
# File lib/openrareplay/binary.rb, line 59 def decode_u8(string) string.unpack('C').first end
decode_uleb128_io(input, hash = {})
click to toggle source
# File lib/openrareplay/binary.rb, line 35 def decode_uleb128_io(input, hash = {}) val = 0 shift = 0 read_bytes = ''.force_encoding('ASCII-8BIT') loop do byte = input.read 1 read_bytes += byte if hash[:output_read] byte = byte.ord val |= (byte & 0x7F) << shift break if (byte >> 7).zero? shift += 7 end return [val, read_bytes] if hash[:output_read] val end
encode_u32(integer)
click to toggle source
# File lib/openrareplay/binary.rb, line 51 def encode_u32(integer) [integer].pack('_L') end
encode_uleb128(val)
click to toggle source
# File lib/openrareplay/binary.rb, line 23 def encode_uleb128(val) bytes = ''.force_encoding('ASCII-8BIT') loop do byte = val & 0x7F val >>= 7 byte |= 0x80 unless val.zero? bytes += byte.chr break if val.zero? end bytes end