(svn r3547) - [Patches]: do some general cleanup, commentarization before starting actual work. This patch contains no functional changes (I hope). It might break GPMI-builds though when trying to join a trunk/ network game or vice versa. To solve, you can change the order of the first 8 enums in SettingDescType. I think that'll work.
This commit is contained in:
61
settings.h
61
settings.h
@@ -3,33 +3,46 @@
|
||||
#ifndef SETTINGS_H
|
||||
#define SETTINGS_H
|
||||
|
||||
/* Convention/Type of settings. This will be merged mostly with the SaveLoad
|
||||
* SLE_ enums. So it looks a bit strange. The layout is as follows:
|
||||
* bits 0-7: the type (size) of the variable. Eg int8, uint8, bool, etc. Same as VarTypes
|
||||
* bits 8-15: the generic variable type. Eg string, oneofmany, number, intlist
|
||||
* bits 16-31: the size of a string, an intlist (which is an implicit array). */
|
||||
/* XXX - the GenericType will NOT be shifted in the final implementation, just for compatility */
|
||||
enum SettingDescType {
|
||||
SDT_INTX, // must be 0
|
||||
SDT_ONEOFMANY,
|
||||
SDT_MANYOFMANY,
|
||||
SDT_BOOLX,
|
||||
SDT_STRING,
|
||||
SDT_STRINGBUF,
|
||||
SDT_INTLIST,
|
||||
SDT_STRINGQUOT, // string with quotation marks around it
|
||||
SDT_CHAR,
|
||||
/* 4 bytes allocated a maximum of 16 types for GenericType */
|
||||
SDT_NUMX = 0 << 8, // value must be 0!!, refers to any number-type
|
||||
SDT_BOOLX = 1 << 8, // a boolean number
|
||||
SDT_ONEOFMANY = 2 << 8, // bitmasked number where only ONE bit may be set
|
||||
SDT_MANYOFMANY = 3 << 8, // bitmasked number where MULTIPLE bits may be set
|
||||
SDT_INTLIST = 4 << 8, // list of integers seperated by a comma ','
|
||||
SDT_STRING = 5 << 8, // string which is only a pointer, so needs dynamic allocation
|
||||
SDT_STRINGBUF = 6 << 8, // string with a fixed length, preset buffer
|
||||
SDT_STRINGQUOT = 7 << 8, // string with quotation marks around it (enables spaces in string)
|
||||
SDT_CHAR = 8 << 8, // single character
|
||||
/* 7 more possible primitives */
|
||||
|
||||
SDT_INT8 = 0 << 4,
|
||||
SDT_UINT8 = 1 << 4,
|
||||
SDT_INT16 = 2 << 4,
|
||||
SDT_UINT16 = 3 << 4,
|
||||
SDT_INT32 = 4 << 4,
|
||||
SDT_UINT32 = 5 << 4,
|
||||
SDT_CALLBX = 6 << 4,
|
||||
|
||||
SDT_UINT = SDT_UINT32,
|
||||
SDT_INT = SDT_INT32,
|
||||
|
||||
SDT_NOSAVE = 1 << 8,
|
||||
|
||||
SDT_CALLB = SDT_INTX | SDT_CALLBX,
|
||||
/* 4 bytes allocated a maximum of 16 types for NumberType */
|
||||
SDT_INT8 = 0 << 4,
|
||||
SDT_UINT8 = 1 << 4,
|
||||
SDT_INT16 = 2 << 4,
|
||||
SDT_UINT16 = 3 << 4,
|
||||
SDT_INT32 = 4 << 4,
|
||||
SDT_UINT32 = 5 << 4,
|
||||
SDT_INT64 = 6 << 4,
|
||||
SDT_UINT64 = 7 << 4,
|
||||
/* 8 more possible primitives */
|
||||
|
||||
/* Shortcut values */
|
||||
SDT_BOOL = SDT_BOOLX | SDT_UINT8,
|
||||
SDT_UINT = SDT_UINT32,
|
||||
SDT_INT = SDT_INT32,
|
||||
SDT_STR = SDT_STRING,
|
||||
SDT_STRB = SDT_STRINGBUF,
|
||||
SDT_STRQ = SDT_STRINGQUOT,
|
||||
|
||||
/* The value is read from the configuration file but not saved */
|
||||
SDT_NOSAVE = 1 << 31,
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
@@ -42,7 +55,7 @@ typedef struct SettingDesc {
|
||||
int flags;
|
||||
const void *def;
|
||||
void *ptr;
|
||||
const void *b;
|
||||
const void *many;
|
||||
} SettingDesc;
|
||||
|
||||
void IConsoleSetPatchSetting(const char *name, const char *value);
|
||||
|
||||
Reference in New Issue
Block a user