|
@@ -19,22 +19,16 @@
|
|
|
* @see SettingDescBase
|
|
|
*/
|
|
|
enum SettingDescType : byte {
|
|
|
/* 4 bytes allocated a maximum of 16 types for GenericType */
|
|
|
SDT_BEGIN = 0,
|
|
|
SDT_NUMX = 0, ///< any number-type
|
|
|
SDT_BOOLX = 1, ///< a boolean number
|
|
|
SDT_ONEOFMANY = 2, ///< bitmasked number where only ONE bit may be set
|
|
|
SDT_MANYOFMANY = 3, ///< bitmasked number where MULTIPLE bits may be set
|
|
|
SDT_INTLIST = 4, ///< list of integers separated by a comma ','
|
|
|
SDT_STDSTRING = 6, ///< \c std::string
|
|
|
SDT_END,
|
|
|
/* 9 more possible primitives */
|
|
|
};
|
|
|
|
|
|
|
|
|
enum SettingGuiFlag : uint16 {
|
|
|
/* 1 byte allocated for a maximum of 8 flags
|
|
|
* Flags directing saving/loading of a variable */
|
|
|
/* 2 bytes allocated for a maximum of 16 flags. */
|
|
|
SGF_NONE = 0,
|
|
|
SGF_0ISDISABLED = 1 << 0, ///< a value of zero means the feature is disabled
|
|
|
SGF_DISPLAY_ABS = 1 << 1, ///< display absolute value of the setting
|
|
@@ -114,15 +108,6 @@ struct SettingDesc {
|
|
|
SettingType GetType() const;
|
|
|
};
|
|
|
|
|
|
/* NOTE: The only difference between SettingDesc and SettingDescGlob is
|
|
|
* that one uses global variables as a source and the other offsets
|
|
|
* in a struct which are bound to a certain variable during runtime.
|
|
|
* The only way to differentiate between these two is to check if an object
|
|
|
* has been passed to the function or not. If not, then it is a global variable
|
|
|
* and save->variable has its address, otherwise save->variable only holds the
|
|
|
* offset in a certain struct */
|
|
|
typedef SettingDesc SettingDescGlobVarList;
|
|
|
|
|
|
const SettingDesc *GetSettingFromName(const char *name);
|
|
|
bool SetSettingValue(const SettingDesc *sd, int32 value, bool force_newgame = false);
|
|
|
bool SetSettingValue(const SettingDesc *sd, const char *value, bool force_newgame = false);
|