Line 500:
Line 500:
| 0x24
| 0x24
| 0x4
| 0x4
−
| Start address of collision floating points
+
| Start address of collision data
|-
|-
| 0x28
| 0x28
| 0x4
| 0x4
−
| End address of collision floating points
+
| End address of collision data
|-
|-
| 0x2C
| 0x2C
Line 532:
Line 532:
| 0x80 + 2 * (w * h)
| 0x80 + 2 * (w * h)
|
|
−
| Collision floating points
+
| [[#Collision data|Collision data]]
|}
|}
Line 772:
Line 772:
| 0x1C
| 0x1C
| 0x4
| 0x4
−
| Start address of collision floating points
+
| Start address of collision data
|-
|-
| 0x20
| 0x20
| 0x4
| 0x4
−
| End address of collision floating points
+
| End address of collision data
|-
|-
| 0x24
| 0x24
Line 800:
Line 800:
| 0x80 + (w * h)
| 0x80 + (w * h)
|
|
−
| Collision floating points
+
| [[#Collision data|Collision data]]
|}
|}
Line 866:
Line 866:
| 0x34
| 0x34
| 0x4
| 0x4
−
| Start address of collision floating points
+
| Start address of collision data
|-
|-
| 0x38
| 0x38
| 0x4
| 0x4
−
| End address of collision floating points (stuck at 0x45XX, but correct value works)
+
| End address of collision data (stuck at 0x45XX, but correct value works)
|-
|-
| 0x3C
| 0x3C
Line 942:
Line 942:
|
|
|
|
−
| Collision floating points
+
| [[#Collision data|Collision data]]
|}
|}
Line 1,031:
Line 1,031:
# Unknown
# Unknown
# Unknown
# Unknown
+
+
== Collision data ==
+
The collision of an object is defined by a set of polygons combined together.
+
+
The polygons are represented using the vertices of each polygon, and those vertices are represented using their coordinates according to the in game image resolution.
+
+
{| class="wikitable"
+
|-
+
! Offset
+
! Size
+
! Description
+
|-
+
| 0x0
+
| 0x4
+
| Number of polygons
+
|-
+
| 0x4
+
| 0x44
+
| Polygon data
+
|-
+
|
+
| 0x44
+
| Additional polygons data
+
|}
+
+
=== Polygon data ===
+
The data of a polygon starts with the number of vertices. The coordinates of each vertice are then stored as float32 values on an allocated 0x40 byte section.
+
+
If the coordinates don't fill the 0x40 byte section, the remaining data is set to null bytes.
+
+
{| class="wikitable"
+
|-
+
! Offset
+
! Size
+
! Description
+
|-
+
| 0x0
+
| 0x4
+
| Number of vertices
+
|-
+
| 0x4
+
| 0x4
+
| X coordinate of vertice
+
|-
+
| 0x8
+
| 0x4
+
| Y coordinate of vertice
+
|-
+
|
+
| 0x4
+
| X coordinate of additional vertices
+
|-
+
|
+
| 0x4
+
| Y coordinate of additional vertices
+
|}