Difference between revisions of "Objects"

From Terranigma Wiki
Jump to navigation Jump to search
(Objects introduction + Offset tables)
(No difference)

Revision as of 16:26, 22 February 2016

The game uses objects to store runtime information about sprites and scripts, e.g. size and position of a sprite, or the current script address. Each object has a handle in range 0x1000...0x1F80, in steps of 0x40, allowing for a maximum of 63 objects. Object data is stored in chunks of 0x1000 bytes at various places in RAM. Objects are created by declaration in the Map Object Header or by script command.

Object Data

Offsets must be added to the object handle to get the memory address.

Table at 7E1000
Offset Size Description
7E0000 2 X Position (signed)
7E0002 2 Y Position (signed)
7E0004 2 Flags
7E0006 2 Flags2
7E0008 2 Flags3
7E000A 3 Script Pointer, also used for reentry
7E000E 2 Reentry Delay in frames
7E0012 1 Bank for bounds data (used with ptr at 7F000A)
7E0016 2 Elevation level (sprites on different levels can't hit each other)
Table at 7F1000
Offset Size Description
7F000A 2 Pointer to Bounding Rect Table [ROM], used with bank at 7E0012
Bounding Rect Table
Offset Size Description
0 4 Map Collision Rect
4 4 Attack Collision Rect
8 4 Defense Collision Rect
Rect
Offset 0 1 2 3
Value Left Width Top Height

Values are signed 8 bit pixel coordinates, relative to the object's X and Y position.

7F0018 2 Movement dx
7F001A 2 Movement dy
Table at 7F2000
Offset Size Description
7F1022 2 Fighting Data Ptr [ROM], Bank: 8D
7F102A 2 Current HP