Position data is a table linking objects with their positions in the stage. In a US ROM (NGEE), this starts at 80079C38. A pointer to the first entry can be found at 80069C20, and the number of permanent entries is kept at 80069C24.

Temporary entries for automatically-generated objects are also stored at the end of this table. Temporary entries are used for gunshot impact images, autogenerated hats and weapons, as well as spawned guards.

Each entry below gives the hexadecimal offset to the data in the entry, as well as its size and function when known. Each entry is 0x34 bytes in length.

Type of Object Edit

Offset 0x0, 1 byte. Roughly, the type of object that can be expected. The known types are listed here.

  • 01 Normal objects
  • 02 Doors
  • 03 Guards
  • 04 Collectibles, such as weapons
  • 06 Players

Current State of Object Edit

Offset 0x1, 1 byte. These bitflags indicate the object's current state. If the object has not been loaded, this value remains 0.

  • 01 Special function is activated
  • 02 Is currently displayed on-screen
  • 04 For dropped weapons, indicates to use position data given here

Unknown Edit

Offset 0x2, 2 bytes.

Pointer to Object Data Edit

Offset 0x4, 4 bytes. This is a pointer to the object's data in the setup file, or in the case of characters a pointer to their Guard Data. Note that in solo games, this pointer is not filled for player data.

X Position Edit

Offset 0x8, 4 bytes. A four-byte floating-point number. This indicates the x position of the object.

Y Position Edit

Offset 0xC, 4 bytes. A four-byte floating-point number. This indicates the y position, or elevation, of the object.

Z Position Edit

Offset 0x10, 4 bytes. A four-byte floating-point number. This indicates the z position of the object.

Room Pointer Edit

Offset 0x14, 4 bytes. This indicates the address of a tile of clipping that the object is set to. The tile denotes which room the object belongs in.

Rotation Edit

Offset 0x18, 4 bytes. A four-byte floating-point number. This indicates the lateral rotation of the object.

Unknown Edit

Offset 0x1C, 4 bytes.

Unknown Edit

Offset 0x20, 4 bytes.

Previous Entry Pointer Edit

Offset 0x24, 4 bytes. A pointer to the previous position data entry. In the first entry, this valus is blank.

Next Entry Pointer Edit

Offset 0x28, 4 bytes. A pointer to the following position data entry. In the final entry, this value points to the first entry.

Room Number List Edit

Offset 0x2C, 8 bytes. This is a list of rooms, ending with 0xFF, that either contain the object or can see the object. Up to seven room numbers may be listed.