Record Store

From OpenMW Wiki
Revision as of 02:41, 8 August 2011 by Rhys (talk | contribs) (Created page with "__NOTOC__ The world model is split in two parts: An immutable part and a mutable part. The record store represents the immutable part. The esm/esp file format contains a list of...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The world model is split in two parts: An immutable part and a mutable part. The record store represents the immutable part.

The esm/esp file format contains a list of records, where each record is composed of a type ID and additional data. Our world model does mirror this structure.

For each type of record we have a struct in the ESM namespace: http://zinnschlag.github.com/openmw/namespaceESM.html

For each type of record we also have a separate list (there are some variations depending on the record type):

The record store is composed of these lists.

The class implementing the record store is named ESMStore (in the ESMS namespace), which is partially a misnomer. Currently this class is filled with the records from only one esm. But later multiple esms and esps will be merged into it.

A const reference to the current ESMStore can be obtained from the MWWorld::World class instance.

There are some record types that are handled differently:

Cell

A cell record consists of some header-type data fields and a collection of references. Of these only the header data is stored in the record store. The collection of references is mutable and as such needs to be treated separately.

Info

Land