|
|
|
|
|
|
| Synopsis |
|
|
|
|
| Game Specific Data Types
|
|
| newtype Tag |
| The game uses 4 char tags to give everything in the file a type. Most documentation
on the file format refers to these items as simply types, but we use the term tags
to differentiate them from types in the haskell sense of the term.
| | Constructors | | Instances | |
|
|
| data ZString |
| The game uses Zero terminated strings extensively throughout its files.
The ZString wrapper allows us to easily read and write these strings.
| Instances | |
|
|
| mkZ :: String -> ZString |
| Wrap a string into a ZString.
|
|
| unZ :: ZString -> String |
| Unwrap a string from it's ZString wrapper.
|
|
| data PString |
| In some (rare) places the game uses Pascal style strings prefixed with a byte containing
their length and no zero terminator. The PString wrapper lets us read and write these
items of data.
| Instances | |
|
|
| mkP :: String -> PString |
| Wrap a string into a pascal style string.
|
|
| unP :: PString -> String |
| Unwrap a pascal style string.
|
|
| data FormID |
| Form IDs are used to uniquely refer to records in the file. The object index is used
to identify the object, while the modindex is used to indentify the mod it comes from
for a more thorough explanation, see: http://www.uesp.net/wiki/Tes4Mod:Formid
| Instances | |
|
|
| modIndex :: FormID -> Word8 |
| Get a FormID's mod index.
|
|
| objectIndex :: FormID -> Int |
| Get a FormID's object index.
|
|
| TES4 File Objects
|
|
| Subrecords
|
|
| data Subrecord |
|
|
| Records
|
|
| data Record |
|
|
| Group Headers
|
|
| data GroupHeader |
|
|
| File Nodes
|
|
| data FileNode |
| An esp (or esm) file consists of a forest of FileNodes. Each FileNode can either contain
a group header or a record.
| | Constructors | |
|
|
| Produced by Haddock version 2.3.0 |