Method: Gruesome::Z::ObjectTable#object_properties

Defined in:
lib/gruesome/z/object_table.rb

#object_properties(index) ⇒ Object



348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
# File 'lib/gruesome/z/object_table.rb', line 348

def object_properties(index)
  entry = object_entry(index)
  prop_address = entry[:properties_address]

  # get the length of the string in bytes
  text_len = @memory.force_readb(prop_address) * 2
  prop_address += 1

  prop_address += text_len

  properties = {}

  while true do
     = object_get_size_and_number(prop_address)

    if  == nil
      break
    end

    # regardless of version, we now have the property size and the number

    properties[[:property_number]] = {:size => [:size], :property_data_address => [:property_data_address]}
    prop_address = [:property_data_address] + [:size]
  end

  properties
end