Pp

Revision as of 19:16, 12 April 2024 by Dt12345 (talk | contribs) (added enum maps)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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