World

Game World/State Pointer @ 0x7fe944

Object size: 0x225c bytes

Constructor Address: 0x479870

Points to World struct

OffsetTypeDescription
0x0000void**Virtual Method Table
0x0004uint32_tSlots in Entity Hashtable
0x0008void**Pointer to Entity Hashtable
0x00B0??Pointer to Ground Object (?)
0x0288pyEntity*UsrEntity_0
0x028CpyEntity*UsrEntity_1
0x0290pyEntity*UsrEntity_2
0x0294pyEntity*UsrEntity_3
0x0298uint32_tSlots in Model Hashtable
0x029Cvoid**Pointer to Model Hashtable
0x02B8uint32_tSlots in Entity lists Hashtable
0x02BCvoid**Pointer to Entity list Hashtable
0x0330float[3]Time (why 3 times?)
0x1C6CfloatAlarm level
0x1C68floatAlarm Grow Level
0x2158floatUsed in World_Init
0x2170???Used in World_Init
0x2180floatUsed in World_Init
0x2188void*Used in World_Init
0x218Cvoid*Used in World_Init
0x2190floatUsed in World_Init
0x2198void*Used in World_Init
0x219Cvoid*Used in World_Init
0x21A0void**Used in World_Init (VTable pointer?)
0x21B4void**Used in World_Init (VTable pointer?)
0x21C8???Used in World_Init
0x2204uint32_t or uint16_tUsed in World_Init
0x2230floatUsed in World_Init
0x2238???Used in World_Init
0x2254floatUsed in World_Init

cPyEntity structure

OffsetTypeDescription
0x0000void**Virtual Method Table
0x0004char*Name
0x0008void*???

Entity Hash Table

Hash-function used: PJW (Same parameters as the example implementation)

Entry format:

struct HT_Entry {
  void* data;
  const char* key;
  HT_Entry* next;
}

Data format:

OffsetTypeDescription
0x0void**Virtual Method Table (?)
0x4const char*name as string
0x14void*pointer to self (why?)
0x28float[3]Position in Game World

EntityList Hash Table

Attributes:

  • Near
  • First
  • Num
  • OnDeath
  • OnDamage
  • ...