Skip to content

Object Fields

Dude McDude edited this page May 26, 2015 · 23 revisions

The game objects in ToEE are based on a generic object model that uses a field list. Each field has a numeric index. Those indices are documented here. The first 40-50 fields or so are mixed up and we are still trying to figure out why.

Confirmed fields:

Field Name Index Remarks
obj_f_location 1 DLL erroneously says obj_f_current_aid; field type is 4 (64bit) so it matches location (locy:locx); also from PyObj GetAttr
obj_f_offset_x 2 DLL erroneously says obj_f_location; field type is 0xF (float) so it matches offset_x; also from PyObj GetAttr
obj_f_offset_y 3 DLL erroneously says obj_f_offset_x; field type is 0xF (float) so it matches offset_y; also from PyObj GetAttr
obj_f_2D_shadow_art 4 From WorldBuilder
obj_f_blit_flags 5 From WorldBuilder
obj_f_blit_color 6 From WorldBuilder
obj_f_transparency 7 From WorldBuilder
obj_f_model_scale 8 From WorldBuilder
obj_f_light_flags 9 From WorldBuilder
obj_f_light_material 10 From WorldBuilder
obj_f_light_color 11 From WorldBuilder
obj_f_light_radius 12 From WorldBuilder
obj_f_light_angle_start 13 From WorldBuilder
obj_f_light_angle_end 14 From WorldBuilder
obj_f_light_type 15 From WorldBuilder
obj_f_light_facing_X 16 From WorldBuilder
obj_f_light_facing_Y 17 From WorldBuilder
obj_f_light_facing_Z 18 From WorldBuilder
obj_f_light_offset_X 19 From WorldBuilder
obj_f_light_offset_Y 20 From WorldBuilder
obj_f_light_offset_Z 21 From WorldBuilder
obj_f_flags 22 From debug msgs; as opposed to 19 in the DLL names list
obj_f_spell_flags 23 From .data:102AD760 thru .data:102AD768
obj_f_name 24 From PyObject GetAttr
(was obj_f_aid by the DLL)
obj_f_description 25 Deduced from Agetian's WorldBuilder in conjunction with the above
(was obj_f_destroyed_aid according to the DLL)
from here on seems to be true to the DLL specifications
obj_f_size 26 From .data:102AD7A8
From here on it seems the fields are correct
obj_f_hp_damage 29 confirmed by scripting etc.
obj_f_rotation 34 From PyObj GetAttr rotation attrib
obj_f_speed_run 36 We manipulate this via script all the time for testing purposes (speedup() from batch.py)
obj_f_radius 39 From the PyObj GetAttr for 'radius' (inside the function there)
obj_f_height 40 From PyObj GetAttr height attrib
obj_f_dispatcher 45 Used all over the place
obj_f_critter_pad_i_4 320 is actually a hashcode of the LevelupTab entry name (see 0x1003ACC0 ParseProtoLevelupScheme)
obj_f_critter_pad_i_5 321 sub_100F37C0, set at sub_100F3870 (contains last class code Idx in the LevelupTab spec)
obj_f_npc_pad_i_3 379 This actually stores joinable NPCs' loot behavior type

Clone this wiki locally