Changeset 1747 for code/trunk/src/core/ConfigValueIncludes.h
- Timestamp:
- Sep 9, 2008, 4:25:52 AM (17 years ago)
- Location:
- code/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk
- Property svn:mergeinfo changed
/code/branches/core3 (added) merged: 1573-1574,1583-1586,1591-1594,1596-1597,1603,1606-1607,1610-1611,1655,1658,1676-1679,1681-1685,1687,1716-1723,1725-1729,1736
- Property svn:mergeinfo changed
-
code/trunk/src/core/ConfigValueIncludes.h
r1543 r1747 47 47 @param defvalue The default-value of the variable 48 48 */ 49 #define SetConfigValue(varname, defvalue) \ 50 orxonox::ConfigValueContainer* container##varname = this->getIdentifier()->getConfigValueContainer(#varname); \ 49 #define SetConfigValueGeneric(type, varname, defvalue) \ 50 static orxonox::Identifier* identifier##varname = this->getIdentifier(); \ 51 orxonox::ConfigValueContainer* container##varname = identifier##varname->getConfigValueContainer(#varname); \ 51 52 if (!container##varname) \ 52 53 { \ 53 container##varname = new orxonox::ConfigValueContainer(CFT_Settings, this->getIdentifier(), #varname, varname = defvalue); \54 this->getIdentifier()->addConfigValueContainer(#varname, container##varname); \54 container##varname = new orxonox::ConfigValueContainer(CFT_Settings, identifier##varname, #varname, defvalue, varname); \ 55 identifier##varname->addConfigValueContainer(#varname, container##varname); \ 55 56 } \ 56 container##varname->getValue(&varname )57 container##varname->getValue(&varname, this) 57 58 58 /** 59 @brief Assigns the value, defined in the config-file, to the variable (or the default-value, if there is no entry in the file). 60 @param classname name in which the config value should be stored 61 @param varname The name of the variable 62 @param defvalue The default-value of the variable 63 */ 64 #define SetConfigValueGeneric(classname, varname, defvalue) \ 65 orxonox::ConfigValueContainer* container##varname = ClassIdentifier<classname>::getIdentifier()->getConfigValueContainer(#varname); \ 66 if (!container##varname) \ 67 { \ 68 container##varname = new orxonox::ConfigValueContainer(CFT_Settings, ClassIdentifier<classname>::getIdentifier(), #varname, varname = defvalue); \ 69 ClassIdentifier<classname>::getIdentifier()->addConfigValueContainer(#varname, container##varname); \ 70 } \ 71 container##varname->getValue(&varname) 59 #define SetConfigValue(varname, defvalue) SetConfigValueGeneric(CFT_Settings, varname, defvalue) 60 #define SetKeybindingValue(varname, defvalue) SetConfigValueGeneric(CFT_Keybindings, varname, defvalue) 61 72 62 73 63 /** … … 76 66 @param defvalue The default-value 77 67 */ 78 #define SetConfigValueVector(varname, defvalue) \ 79 orxonox::ConfigValueContainer* container##varname = this->getIdentifier()->getConfigValueContainer(#varname); \ 68 #define SetConfigValueVectorGeneric(type, varname, defvalue) \ 69 static orxonox::Identifier* identifier##varname = this->getIdentifier(); \ 70 orxonox::ConfigValueContainer* container##varname = identifier##varname->getConfigValueContainer(#varname); \ 80 71 if (!container##varname) \ 81 72 { \ 82 std::vector<MultiTypeMath> temp; \ 83 for (unsigned int i = 0; i < defvalue.size(); i++) \ 84 temp.push_back(MultiTypeMath(defvalue[i])); \ 85 container##varname = new orxonox::ConfigValueContainer(CFT_Settings, this->getIdentifier(), #varname, temp); \ 86 container##varname->setVectorType(varname); \ 87 this->getIdentifier()->addConfigValueContainer(#varname, container##varname); \ 73 container##varname = new orxonox::ConfigValueContainer(CFT_Settings, identifier##varname, #varname, defvalue); \ 74 identifier##varname->addConfigValueContainer(#varname, container##varname); \ 88 75 } \ 89 container##varname->getValue(&varname) 76 container##varname->getValue(&varname, this) 77 78 #define SetConfigValueVector(varname, defvalue) SetConfigValueVectorGeneric(CFT_Settings, varname, defvalue) 79 #define SetKeybindingValueVector(varname, defvalue) SetConfigValueVectorGeneric(CFT_Keybindings, varname, defvalue) 80 90 81 91 82 /** … … 98 89 { \ 99 90 container##varname##reset->reset(); \ 100 container##varname##reset->getValue(&varname ); \91 container##varname##reset->getValue(&varname, this); \ 101 92 } \ 102 93 else \ … … 104 95 COUT(2) << "Warning: Couldn't reset config-value '" << #varname << "', corresponding container doesn't exist." << std::endl; \ 105 96 } 97 106 98 107 99 /** … … 115 107 { \ 116 108 container##varname##modify##modifier->modifier(__VA_ARGS__); \ 117 container##varname##modify##modifier->getValue(&varname ); \109 container##varname##modify##modifier->getValue(&varname, this); \ 118 110 } \ 119 111 else \
Note: See TracChangeset
for help on using the changeset viewer.