MAPA (File Format): Difference between revisions

Jump to navigation Jump to search
imported>Antidote
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The '''.MAPA file format''' defines the minimap models used in the Metroid Prime series. MAPA or '''MAP A'''rea consists of several sections: The header, Point Of Interest entries, Vertices, Primitive Headers, and the primitives.
The '''.MAPA file format''' defines the minimap models used in the Metroid Prime series. MAPA or '''MAP A'''rea consists of several sections: The header, Mappable Object entries, Vertices, Primitive Headers, and the primitives.


{{research|2|A few things are unknown in the header and POI Entries}}
{{research|2|A few things are unknown in the header and Mappable Object Entries}}


__TOC__
__TOC__
== Format ==
== Format ==
=== Header ===
=== Header ===
The header is very straight forward, and has some minor differences depending on version, the unknown values don't seem to do anything, however not much research has been put into them.
The header is very straightforward, and has some minor differences depending on version.
 


{| class="wikitable"
{| class="wikitable"
Line 29: Line 28:
|-
|-
|u32
|u32
|{{unknown|Unknown}}
|'''Type'''; unknown function in MP1/3, specifies whether the area appears on the Light (0) or Dark (1) map in MP2
|{{check}}
|{{check}}
|{{check}}
|{{check}}
Line 35: Line 34:
|-
|-
|u32
|u32
|{{unknown|Unknown}}
|'''Visibility Mode'''; <ol start=0><li>Always Visible (Map Universe Area)</li><li>Visible on Visit or Map Station (most MP1 areas)</li><li>Visible on Visit only (latter areas of Ruins and Phendrana)</li><li>Never Visible</li></ol>
|{{check}}
|{{check}}
|{{check}}
|{{check}}
|{{check}}
|{{check}}
|-
|-
|CAABox
|{{AABox}}
|'''Bounding Box'''
|'''Bounding Box'''
|{{check}}
|{{check}}
Line 46: Line 45:
|{{check}}
|{{check}}
|-
|-
|u32
|{{Vector3f}}
|{{unknown|Unknown}}
|'''Map Adjustment'''
|{{nocheck}}
|{{nocheck}}
|{{check}}
|{{check}}
Line 55: Line 54:
|{{unknown|Unknown}}
|{{unknown|Unknown}}
|{{nocheck}}
|{{nocheck}}
|{{check}}
|{{nocheck}}
|{{check}}
|{{check}}
|-
|-
|u32
|u32
|{{unknown|Unknown}}
|'''Mappable Object Count'''
|{{nocheck}}
|{{check}}
|{{check}}
|{{check}}
|{{check}}
|-
|u32
|{{unknown|Unknown}}
|{{nocheck}}
|{{nocheck}}
|{{check}}
|{{check}}
|-
|-
|u32
|u32
|'''POI Count'''
|'''Vertex Count'''
|{{check}}
|{{check}}
|{{check}}
|{{check}}
Line 77: Line 70:
|-
|-
|u32
|u32
|'''Vertex Count'''
|'''Primitive Count'''
|{{check}}
|{{check}}
|{{check}}
|{{check}}
Line 83: Line 76:
|-
|-
|u32
|u32
|'''Primitive Count'''
|'''Environment Variable Section Size'''
|{{check}}
|{{nocheck}}
|{{nocheck}}
|{{check}}
|{{check}}
|-
|u32
|'''Environment Variable Count'''
|{{nocheck}}
|{{nocheck}}
|{{check}}
|{{check}}
|-
| colspan=5 {{unknown|End of Header}}
|}
|}


Line 105: Line 106:
|}
|}


=== Point of Interest ===
=== Environment Variables ===
A Point of Interest in the Metroid Prime series can include: Mission Objectives, Elevators, Doors, Map Stations, and Missile Stations. Each Point of Interest entry consists of the following struct:
Only exists in Corruption; used for some areas with Landing Sites.
{|class="wikitable"
!Type
!Count
!Description
|-
|string
|Environment Variable Count
|'''Environment Variable'''
|-
| colspan=3 {{unknown|Pad to 4 bytes}}
|-
| colspan=3 {{unknown|End of Environment Variables}}
|}
 
=== Mappable Objects ===
A Mappable Object in the Metroid Prime series can include: Elevators, Doors, and Save/Missile Stations. Each Mappable Object entry consists of the following struct:
{|class="wikitable"
{|class="wikitable"
!Type
!Type
Line 114: Line 131:
|-
|-
|u32
|u32
|{{unknown|Unknown}}
|'''Type'''; See table below for MP1 types
|{{nocheck}}
|{{check}}
|{{check}}
|{{check}}
|-
|-
|u32
|u32
|'''Type'''; All valid values are not currently known
|'''Visibility Mode'''; <ol start=0><li>Always Visible</li><li>Visible on Map Station or Area Visit</li><li>Visible on Door Visit</li><li>Never Visible</li><li>Visible on Map Station or Area Visit</li></ol>
|{{check}}
|{{check}}
|{{check}}
|{{check}}
|-
|-
|u32
|u32
|{{unknown|Unknown}}
|'''Editor ID'''; Same ID format as SCLY, indicates associated world object
|{{check}}
|{{check}}
|-
|u16
|{{unknown|Unknown}}
|{{check}}
|{{check}}
|{{nocheck}}
|-
|u16
|'''ID'''; Which door, elevator etc.
|{{check}}
|{{check}}
|{{nocheck}}
|-
|-
|CVector4f
|[[GUID]]
|{{unknown|Unknown}}
|'''Saved State ID'''
|{{nocheck}}
|{{nocheck}}
|{{check}}
|{{check}}
|-
|-
|u32
|u32
|'''Padding'''; always -1
|{{unknown|Unknown}}
|{{check}}
|{{check}}
|{{check}}
|{{check}}
|-
|-
|CTransform4f
|{{Transform4f}}
|'''Tranform Matrix''' The Point of Interest's position in '''world''' space.
|'''Transform Matrix''' The Mappable Object's position in '''world''' space.
|{{check}}
|{{check}}
|{{check}}
|{{check}}
|-
|-
|u32 * 4
|u32 * 4
|'''Padding'''; four values of -1
|{{unknown|Unknown}}
|{{check}}
|{{check}}
|{{check}}
|{{check}}
|-
| colspan=4 {{unknown|End of Mappable Object}}
|}
==== MP1 Types ====
{|class="wikitable"
!Type
!Description
|-
|0
|Normal Door
|-
|1
|Shield Door
|-
|2
|Ice Door
|-
|3
|Wave Door
|-
|4
|Plasma Door
|-
|5
|Big Door
|-
|6
|Big Door 2
|-
|7
|Ice Door Ceiling
|-
|8
|Ice Door Floor
|-
|9
|Wave Door Ceiling
|-
|10
|Wave Door Floor
|-
|11
|Plasma Door Ceiling
|-
|12
|Plasma Door Floor
|-
|13
|Ice Door Floor 2
|-
|14
|Wave Door Floor 2
|-
|15
|Plasma Door Floor 2
|-
|27
|Down Arrow Yellow (Maintenance Tunnel)
|-
|28
|Up Arrow Yellow (Phazon Processing Center)
|-
|29
|Down Arrow Green (Elevator A)
|-
|30
|Up Arrow Green (Elite Control Access)
|-
|31
|Down Arrow Red (Elevator B)
|-
|32
|Up Arrow Red (Fungal Hall Access)
|-
|33
|Elevator
|-
|34
|Save Station
|-
|37
|Missile Station
|}
|}


Line 171: Line 261:
!Description
!Description
|-
|-
|CVector3f
|{{Vector3f}}
|'''Normal'''
|'''Normal'''
|-
|-
|CVector3f
|{{Vector3f}}
|'''Center of Mass'''
|'''Center of Mass'''
|-
|-
|u32
|u32
|'''Primitive Table Start'''; relative to the end of this header
|'''Primitive Table Start'''; relative to the end of the header
|-
|-
|u32
|u32
|'''Primitive Table End'''; relative to the end of this header
|'''Border Table Start'''; relative to the end of the header
|}
|}


Navigation menu