Pp: Difference between revisions
(Draft an outline of the non-rsdb parts of the library) |
(added enum maps) |
||
Line 23: | Line 23: | ||
=== PropMap === | === PropMap === | ||
Extends Composite. A tree of property values. | Extends Composite. A tree of property values. | ||
=== PropEnumMap === | |||
Extends Composite. | |||
=== TypedParamBuffer === | === TypedParamBuffer === | ||
Line 29: | Line 32: | ||
=== TypedParamMap === | === TypedParamMap === | ||
Extends Composite. A tree of TypedParams. | Extends Composite. A tree of TypedParams. | ||
=== TypedParamEnumMap === | |||
Extends Composite. | |||
=== TypedParam === | === TypedParam === |
Latest revision as of 19:16, 12 April 2024
pp is Nintendo's parameter library. It provides an address table, resource databases, and most notably, Documents containing TypedParams.
Backend
GeneralFormatMgr
Manages a tree of documents. Houses the GfMgrCallback and HashRequestQueue.
GfMgrCallback
Applications can use GfMgrCallback to integrate Document management with their resource system, providing load and release options.
HashRequestQueue
A queue of pending document release requests.
Document
Meta-data for a TypedParam.
Composite
This is the base class for composite types. Allows initializing with the values of a ByamlIter, initializing with default values, resolving the composite's parent type, finalizing the composite, searching the composite for another composite, and creating a format string.
PropBuffer
Extends Composite. An array of property values.
PropMap
Extends Composite. A tree of property values.
PropEnumMap
Extends Composite.
TypedParamBuffer
Extends Composite. An array of TypedParams.
TypedParamMap
Extends Composite. A tree of TypedParams.
TypedParamEnumMap
Extends Composite.
TypedParam
Extends Composite. Base class for application source auto-generated TypedParam derived classes. On initialize loops all property, embedded, and composite fields of the class to initialize them through either a ByamlIter or static default values baked into the derived class. Properties are basic data types readable from a byaml. Embeds are TypedParams that are embedded into the TypedParam. Composites are for container classes, arrays or maps of TypedParams or properties, but also Embeds. Each field in a TypedParam has an index that appears to correspond to it's initialize order, but this index does not line up with the order of fields in the structure layout.
Controllers
DocumentBinder (unofficial)
An raii wrapper around a Document reference. Allows loading, releasing, and safely acquiring a TypedParam of a certain type from a Document.
TypedParam Derivitives
All TypedParam derivatives have auto-generated getter functions for reading a property or accessing a composite.
CombinationDataTable
Extends TypedParam. Contains a map of CombinationDataCells set up as a 2d table with a key for the column and a key for the row, not dissimilar to a labeled Excel spreadsheet.
CombinationDataCellBase
Extends TypedParam. Base class for data found in a CombinationDataTable. Contains a strings for a RowKey and ColumnKey.
CellIter (unofficial)
Helper for looping the TypedParams of a CombinationDataTable by row or by column.
ComponentListBase
Extends TypedParam.
Type | Name | Description |
---|---|---|
String | Label | A label, likely for external tools |
String | Category | A category, likely for external tools |
PropMap<sead::SafeStringBase<char>> | Components | A simple map of Key:Values |
Extenti
Extends TypedParam.
Type | Name | Description |
---|---|---|
S32 | Min | Minimum value |
S32 | Max | Maximum value |
Extentf
Extends TypedParam.
Type | Name | Description |
---|---|---|
Float | Min | Minimum value |
Float | Max | Maximum value |