Maraiah/doc/data/2-data.md

112 lines
6.0 KiB
Markdown
Raw Permalink Normal View History

2019-07-24 19:14:02 -07:00
# DATA FORMATS ################################################################
## Wad ##
Wad files are used for scenario data, images such as those in terminals and the
main menu, and physics files. Here is a listing of all chunks used within them.
Map tags:
| Name | Description |
| ---- | ----------- |
| `Minf` | Static Map Info structure |
| `PNTS` | Array of Point |
| `EPNT` | Array of Endpoint |
| `LINS` | Array of Line |
| `SIDS` | Array of Side |
| `POLY` | Array of Polygon |
| `LITE` | Array of Light |
| `NOTE` | Array of Annotation |
| `OBJS` | Array of Object |
| `plac` | Array of Object Frequency |
| `plat` | Array of Platform Data |
| `medi` | Array of Media Data |
| `ambi` | Array of Ambient Sound |
| `bonk` | Array of Random Sound |
| `term` | Array of Terminal |
| `NAME` | NTBS containing map name |
| `påth` | Unused, supposed to be guardpaths (å is $8C) |
| `door` | Unused, supposed to be extra door data |
Map files can be identified by the `Minf` chunk.
Maps will always have either a `PNTS` or `EPNT` chunk, depending on what the map
(and editor) use. `PNTS` are plain and have no more information than the actual
position, while `EPNT` can be loaded directly into memory by the engine. `EPNT`
also tells the engine that the map is preprocessed and that `iidx` and `PLAT`
chunks also exist. With `DataVersion` as `DataM1`, the format must always be
preprocessed.
Physics tags:
| Name | Description |
| ---- | ----------- |
| `FXpx` | Array of Effect Definition |
| `MNpx` | Array of Monster Definition |
| `PRpx` | Array of Projectile Definition |
| `PXpx` | Array of Physics Definition |
| `WPpx` | Array of Weapon Definition |
Physics definitions may be embedded into a map in Infinity and Aleph One, so the
only reliable way to check if something is a pure physics file is by checking
that there are no chunks other than `**px` chunks.
Image tags:
| Name | Description |
| ---- | ----------- |
| `PICT` | Picture Resource |
| `clut` | Banished to the shadow realm |
Images can be identified by the `PICT` chunk.
Save file tags:
| Name | Description |
| ---- | ----------- |
| `plyr` | Not analyzed (saved player data) |
| `dwol` | Not analyzed (saved dynamic world data) |
| `mobj` | Not analyzed (saved object data) |
| `iidx` | Not analyzed (saved map indices) |
| `alin` | Not analyzed (saved automap lines) |
| `apol` | Not analyzed (saved automap polygons) |
| `mOns` | Not analyzed (saved monsters) |
| `fx ` | Not analyzed (saved effects) |
| `bang` | Not analyzed (saved projectiles) |
| `PLAT` | Not analyzed (saved platform data) |
| `weap` | Not analyzed (saved weapon state) |
| `cint` | Not analyzed (saved terminal state) |
Preferences tags:
| Name | Description |
| ---- | ----------- |
| `graf` | Not analyzed (graphics prefs) |
| `serl` | Not analyzed (serial code) |
| `netw` | Not analyzed (network prefs) |
| `plyr` | Not analyzed (player prefs) |
| `inpu` | Not analyzed (input prefs) |
| `snd ` | Not analyzed (sound prefs) |
| `envr` | Not analyzed (environment prefs) |
Aleph One tags:
| Name | Description |
| ---- | ----------- |
| `ShPa` | Not analyzed (shapes) |
| `MMLS` | Not analyzed (MML scripts) |
| `LUAS` | Not analyzed (Lua scripts) |
## Marathon 2 Shapes (`.shpA`) ##
The Shapes file is used for storing animation, sprite, sky and texture data. It
uses a fixed, offset-based format for everything, with sprites sorted into
collections along with frames and sequences.
## Marathon 2 Sounds (`.sndA`) ##
The Sounds file is used for storing information about sounds as well as the
actual PCM data.
<!-- EOF -->