App::IPropManager class

A manager that stores all the property lists in the game, used for most configurations.

Property lists (.prop files) are simple instances of the class PropertyList that contains properties. This is used for configuring most objects and things in the game.

A property manager can also contain definitions for properties, which are stored in the Properties.txt and AppProperties.txt files.

Derived classes

class cPropManager
The implementation of IPropManager; this should only be used for extending and detouring.

Public static functions

static auto Get() -> IPropManager*
Returns the object that is the currently active property manager.

Public functions

auto AddRef() -> int pure virtual
auto Release() -> int pure virtual
auto SetDevMode(bool value) -> void pure virtual
auto Initialize() -> bool pure virtual
auto PreloadPropertyLists() -> void pure virtual
auto Dispose() -> bool pure virtual
auto GetIDFromName(const char* propertyName, uint32_t& result) -> bool pure virtual
Gets the ID that corresponds to the given property name.
auto GetNameFromID(uint32_t propertyID) -> const char* pure virtual
Gets the name that is mapped to the given propertyID.
auto GetPropertyGroupIDFromName(const char* name, uint32_t& result) -> bool pure virtual
auto GetNameFromPropertyGroupID(uint32_t propertyGroupID) -> const char* pure virtual
Gets the name assigned to the given property group ID.
auto HasPropertyList(uint32_t instanceID, uint32_t groupID) -> bool pure virtual
Tells whether a PropertyList with the given instanceID and groupID is contained in this manager.
auto GetPropertyList(uint32_t instanceID, uint32_t groupID, PropertyListPtr& pDst) -> bool pure virtual
Gets the PropertyList stored in the given group and with the given instanceID.
auto GetGlobalPropertyList(uint32_t instanceID, PropertyListPtr& pDst) -> bool pure virtual
Gets the PropertyList stored in the global (0x00000000) folder and with the given instanceID.
auto AddPropertyList(PropertyList* pList, uint32_t instanceID, uint32_t groupID) -> void pure virtual
Adds this property list with the given instance and group ID, or replaces the existing one.
auto RemovePropertyList(PropertyList* pList) -> void pure virtual
auto RemovePropertyLists(int count, const ResourceKey* keys) -> void pure virtual
auto RemovePropertyLists2(uint32_t groupID, int count, uint32_t* instanceIDs) -> void pure virtual
auto AreAnyPropertyListsReferenced(int count, const ResourceKey* keys) -> bool pure virtual
auto GetPropertyListIDs(uint32_t groupID, eastl::vector<uint32_t>& result) -> bool pure virtual
Gets the instance IDs of all the PropertyList objects contained in the specified group.
auto func4Ch(int arg_0, int arg_4) -> void* pure virtual
auto GetPropertyDefinition(uint32_t propertyID) -> const Property* pure virtual
Gets the property definition of the property with the given ID.
auto GetPropertyGroupsCount() -> size_t pure virtual
Gets the number of property groups contained in this manager.
auto GetPropertyGroupIDAt(size_t index, uint32_t& dst) -> bool pure virtual
Gets the ID of the property group at the given index.

Function documentation

bool App::IPropManager::GetIDFromName(const char* propertyName, uint32_t& result) pure virtual

Gets the ID that corresponds to the given property name.

Parameters
propertyName The name of the property.
result out The uint32_t that will receive the ID.
Returns Whether the name was found or not.

This function will only work for those names that are mapped in this manager.

const char* App::IPropManager::GetNameFromID(uint32_t propertyID) pure virtual

Gets the name that is mapped to the given propertyID.

Parameters
propertyID The ID of the property.
Returns The name of the property, or nullptr if it is not mapped.

This function will only work for those names that are mapped in this manager.

const char* App::IPropManager::GetNameFromPropertyGroupID(uint32_t propertyGroupID) pure virtual

Gets the name assigned to the given property group ID.

Parameters
propertyGroupID The ID of the property group.
Returns The name of the group, or nullptr if it is not mapped.

This function will only work if that group is mapped in this manager.

bool App::IPropManager::HasPropertyList(uint32_t instanceID, uint32_t groupID) pure virtual

Tells whether a PropertyList with the given instanceID and groupID is contained in this manager.

Parameters
instanceID The instance ID of the list.
groupID The group ID of the list.
Returns True if the list exists, false otherwise.

bool App::IPropManager::GetPropertyList(uint32_t instanceID, uint32_t groupID, PropertyListPtr& pDst) pure virtual

Gets the PropertyList stored in the given group and with the given instanceID.

Parameters
instanceID The instance ID of the list.
groupID The group ID of the list.
pDst A PropertyListPtr that will receive the list. It must not be initialized or contain nullptr; the previous pointer won't be released.
Returns Whether the list was found or not.

bool App::IPropManager::GetGlobalPropertyList(uint32_t instanceID, PropertyListPtr& pDst) pure virtual

Gets the PropertyList stored in the global (0x00000000) folder and with the given instanceID.

Parameters
instanceID The instance ID of the list.
pDst An PropertyListPtr that will receive the list. It must not be initialized or contain nullptr; the previous pointer won't be released.
Returns Whether the list was found or not.

void App::IPropManager::AddPropertyList(PropertyList* pList, uint32_t instanceID, uint32_t groupID) pure virtual

Adds this property list with the given instance and group ID, or replaces the existing one.

Parameters
pList The new PropertyList.
instanceID The instance ID of the property list.
groupID The group ID of the property list.

bool App::IPropManager::GetPropertyListIDs(uint32_t groupID, eastl::vector<uint32_t>& result) pure virtual

Gets the instance IDs of all the PropertyList objects contained in the specified group.

Parameters
groupID The ID of the group where the lists are (i.e. the folder)
result out A uint32_t vector that will receive the instance IDs.

const Property* App::IPropManager::GetPropertyDefinition(uint32_t propertyID) pure virtual

Gets the property definition of the property with the given ID.

Parameters
propertyID The ID of the property.
Returns The Property that contains the type and default value, or nullptr if there is no definition for that property.

The definition is a Property object that contains the type and default value of the property. Definitions are stored in the Properties.txt, AppProperties.txt, etc files.

bool App::IPropManager::GetPropertyGroupIDAt(size_t index, uint32_t& dst) pure virtual

Gets the ID of the property group at the given index.

Parameters
index The index of the group inside this manager.
dst out The uint32_t that will receive the ID.
Returns Whether the index was valid or not.