Once I get that upgrade to 36-hour days, I will tackle that. – Mychaeel
Legacy:PlayInfo
Collects information about Info classes for the web admin interface.
GameInfo, GameReplicationInfo, AccessControl and all loaded Mutator classes get the opportunity to add their user-editable properties to the PlayInfo object. The web admin interface displays all those properties and allows users to modify them interactively.
Class | Function |
GameInfo | FillPlayInfo (static) |
GameReplicationInfo | FillPlayInfo (static) |
AccessControl | FillPlayInfo (static) |
Mutator | MutatorFillPlayInfo |
The implementation of MutatorFillPlayInfo in Mutator was a little buggy in earlier versions of UT2003, so the mutator configuration options aren't registered reliably for the web admin interface. In version 2186 and later this has been fixed and you can implement it like in one of the following examples
Either directly overwrite MutatorFillPlayInfo...
function MutatorFillPlayInfo(PlayInfo PlayInfo) { // add current class to stack PlayInfo.AddClass(Class); // now register any mutator settings PlayInfo.AddSetting("Mutators", "bMyFirstSetting", "First mutator setting", 0, 0, "Check"); PlayInfo.AddSetting("Mutators", "bMySecondSetting", "Second mutator setting", 0, 0, "Check"); // remove mutator class from class stack PlayInfo.PopClass(); // call default implementation if (NextMutator != None) NextMutator.MutatorFillPlayInfo(PlayInfo); }
...or FillPlayInfo.
static function FillPlayInfo(PlayInfo PlayInfo) { // call superclass implementation, which adds the mutator class to the stack Super.FillPlayInfo(PlayInfo); // now register any mutator settings PlayInfo.AddSetting("Mutators", "bMyFirstSetting", "First mutator setting", 0, 0, "Check"); PlayInfo.AddSetting("Mutators", "bMySecondSetting", "Second mutator setting", 0, 0, "Check"); // remove mutator class from class stack PlayInfo.PopClass(); }
Properties[edit]
- array<PlayInfoData> Settings (const)
- array<class<Info> > InfoClasses (const)
- array<int> ClassStack (const)
- array<string> Groups (const)
- string LastError (const)
Structs[edit]
PlayInfoData[edit]
struct PlayInfoData { var const Property ThisProp; // Pointer to property var const class<Info> ClassFrom; // Which class was this Property from var const string SettingName; // Name of the class member var const string DisplayName; // Display Name of the control (from .INT/.INI File ?) var const string RenderType; // Type of rendered control var const string Grouping; // Grouping for this parameter var const string Data; // Extra Data (like Gore Level Texts) var const string ExtraPriv; // Extra Privileges Required to set this parameter var const byte SecLevel; // Sec Level Required to set this param. (Read from Ini file afterwards) var const byte Weight; // Importance of the setting compared to others in its group var const bool bGlobal; // GlobalConfig Property ? (Set by native function) var const string Value; // Value of the setting };
Methods[edit]
All PlayInfo methods are native and final with the exception of Init() which is only final.
- Clear()
- Clears the
Settings
array.
- AddClass(class<Info> Class)
- Prepares the PlayInfo object for subsequent AddSetting calls relating to the given class.
- PopClass()
- Removes the last class added to the class stack with the AddClass method, thus returning to the previously added class.
- AddSetting(string Group, string PropertyName, string Description, byte SecLevel, byte Weight, string RenderType, optional string Extras, optional string ExtraPrivs)
- Validates the given data and adds an entry to the
Settings
array. The given PropertyName must correspond to an existing config variable in the current class. (Existing entries can be changed with the StoreSetting function.)
- bool SaveSettings()
- Saves stored settings to an .ini file.
- bool StoreSetting(int index, coerce string NewVal, optional string RangeData)
- Validates the given data and sets an element of the
Settings
array.
- int FindIndex(string SettingName)
- Returns an index into the
Settings
array corresponding to the given property name.
- SplitStringToArray(out array<string> AStr, string Str, string Divider)
- Splits the given string into an array of elements that were separated by the given divider substring (for instance, a comma).
- Init()
- Prints a list of all currently stored settings to the log.
RenderType[edit]
This is an explaination of the render types. Render types tell WebAdmin which HTML widget to display for the variable.
- Check
- Checkbox. This is associated with variable with a boolean type. Whether it's checked, or not, is based on the value of the variable.
- Text
Input field used for strings and numeric data. This render type can use the optional Extras parameter in AddSetting to determine the length of the field, and for the valid value range.
"Length;Min Value:Max Value" // for numerics "Length" // for alphanumerics
For example, "3;0:200" would create an input field of length 3 and only accept values between 0 and 200. Values outside the range will default to closest minimum or maximum value.
For alphanumeric fields you can specify a maximum length or leave this out completely, which will most likely make the imput field too small.
- Select
Drop down select box: This render type requires the optional Extras parameter in AddSetting for the selection list. The parameter is structured as follows:
"Value1;Text1;Value2;Text2; ... ValueN;TextN"
For example, if I had three items with unique ids the parameter might look like this.
"0;Unreal Rifle Sound;1;UT Rifle Sound;2;Lightning Gun Sound"
The value of the variable will determine which item is selected as the default.