112 lines
6.0 KiB
Markdown
112 lines
6.0 KiB
Markdown
# 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 -->
|