(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