Repository navigation
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 |