EGMC (File Format): Difference between revisions

m
>Aruki
(Created page with "The '''EGMC''' file format is in Metroid Prime 2 and 3. Its extension stands for '''''E'''ditor Object to Static '''G'''eometry '''M'''ap '''C'''ooked''. It's a simplistic for...")
 
>Aruki
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
The '''EGMC''' file format is in Metroid Prime 2 and 3. Its extension stands for '''''E'''ditor Object to Static '''G'''eometry '''M'''ap '''C'''ooked''. It's a simplistic format whose main responsibility is mapping PointOfInterest script objects to static world geometry, which allows world meshes to be scanned. The same POI can be mapped to multiple meshes, and likewise, the same mesh can be mapped to multiple POIs (which can be toggled on or off via script connections so only one POI is active at a time).
The '''EGMC''' file format is in Metroid Prime 2 and 3. Its extension stands for '''''E'''ditor Object to Static '''G'''eometry '''M'''ap '''C'''ooked''. It's a simplistic format whose main responsibility is mapping PointOfInterest script objects to static world geometry, which allows world meshes to be scanned. The same POI can be mapped to multiple meshes, and likewise, the same mesh can be mapped to multiple POIs (which can be toggled on or off via script connections so only one POI is active at a time).
{{research|minor|Determine exactly how the mesh indices work.}}


__TOC__
__TOC__
Line 7: Line 5:
== Format ==
== Format ==


The first value in the file is a 32-bit count, and the rest is an array of a small struct mapping a mesh index to a POI.
This is an extremely simple format; it's just an array of a small struct mapping a surface group ID to a PointOfInterest instance.
 
{| class="wikitable"
! Offset
! Type
! Count
! Name
|-
| 0x0
| u32
| 1
| '''Mapping Count'''
|-
| 0x4
| [[#Mapping|Mapping]]
| ''Mapping Count''
| '''Mapping Array'''
|-
| colspan=4 {{unknown|End of file}}
|}
 
=== Mapping ===


{| class="wikitable"
{| class="wikitable"
! Offset
! Offset
! Type
! Type
! Description
! Name
! Notes
|-
|-
| 0x00
| 0x00
| u32
| u32
| '''Mesh index'''
| '''Surface Group ID'''
| Area-relative surface group ID.
|-
|-
| 0x04
| 0x04
| u32
| u32
| '''PointOfInterest instance ID'''
| '''PointOfInterest Instance ID'''
|
|-
|-
| 0x08
| 0x08
| colspan=2 {{unknown|End of struct}}
| colspan=3 {{unknown|End of mapping}}
|}
|}


Anonymous user