Changeset 3257 for code/branches/core4/src
- Timestamp:
- Jun 30, 2009, 3:14:45 PM (15 years ago)
- Location:
- code/branches/core4/src
- Files:
-
- 97 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/core4/src/core/CommandEvaluation.cc
r3250 r3257 39 39 { 40 40 this->initialize(""); 41 this->state_ = C S_Uninitialized;41 this->state_ = CommandState::Uninitialized; 42 42 } 43 43 … … 64 64 65 65 this->errorMessage_ = ""; 66 this->state_ = C S_Empty;66 this->state_ = CommandState::Empty; 67 67 } 68 68 … … 104 104 switch (this->state_) 105 105 { 106 case C S_Uninitialized:107 break; 108 case C S_Empty:109 break; 110 case C S_ShortcutOrIdentifier:106 case CommandState::Uninitialized: 107 break; 108 case CommandState::Empty: 109 break; 110 case CommandState::ShortcutOrIdentifier: 111 111 if (this->function_) 112 112 { … … 119 119 return (this->command_ = this->functionclass_->getName() + " "); 120 120 break; 121 case C S_Function:121 case CommandState::Function: 122 122 if (this->function_) 123 123 { … … 128 128 } 129 129 break; 130 case C S_ParamPreparation:131 case C S_Params:130 case CommandState::ParamPreparation: 131 case CommandState::Params: 132 132 { 133 133 if (this->argument_ == "" && this->possibleArgument_ == "") … … 149 149 break; 150 150 } 151 case C S_Finished:152 break; 153 case C S_Error:151 case CommandState::Finished: 152 break; 153 case CommandState::Error: 154 154 break; 155 155 } … … 163 163 switch (this->state_) 164 164 { 165 case C S_Uninitialized:166 break; 167 case C S_Empty:168 case C S_ShortcutOrIdentifier:165 case CommandState::Uninitialized: 166 break; 167 case CommandState::Empty: 168 case CommandState::ShortcutOrIdentifier: 169 169 if (this->listOfPossibleFunctions_.size() == 0) 170 170 return CommandEvaluation::dump(this->listOfPossibleIdentifiers_); … … 174 174 return (CommandEvaluation::dump(this->listOfPossibleFunctions_) + "\n" + CommandEvaluation::dump(this->listOfPossibleIdentifiers_)); 175 175 break; 176 case C S_Function:176 case CommandState::Function: 177 177 return CommandEvaluation::dump(this->listOfPossibleFunctions_); 178 178 break; 179 case C S_ParamPreparation:180 case C S_Params:179 case CommandState::ParamPreparation: 180 case CommandState::Params: 181 181 if (this->listOfPossibleArguments_.size() > 0) 182 182 return CommandEvaluation::dump(this->listOfPossibleArguments_); 183 183 else 184 184 return CommandEvaluation::dump(this->function_); 185 case C S_Finished:185 case CommandState::Finished: 186 186 if (this->function_) 187 187 return CommandEvaluation::dump(this->function_); 188 188 break; 189 case C S_Error:189 case CommandState::Error: 190 190 return this->errorMessage_; 191 191 break; … … 200 200 201 201 for (unsigned int i = 0; i < MAX_FUNCTOR_ARGUMENTS; i++) 202 this->param_[i] = MT_ null;202 this->param_[i] = MT_Type::Null; 203 203 204 204 if (!this->isValid()) … … 230 230 return this->param_[index]; 231 231 232 return MT_ null;232 return MT_Type::Null; 233 233 } 234 234 … … 238 238 return this->function_->hasReturnvalue(); 239 239 240 return MT_ null;240 return MT_Type::Null; 241 241 } 242 242 -
code/branches/core4/src/core/CommandEvaluation.h
r1747 r3257 41 41 namespace orxonox 42 42 { 43 enumCommandState43 namespace CommandState 44 44 { 45 CS_Uninitialized, 46 CS_Empty, 47 CS_ShortcutOrIdentifier, 48 CS_Function, 49 CS_ParamPreparation, 50 CS_Params, 51 CS_Finished, 52 CS_Error 53 }; 45 enum Value 46 { 47 Uninitialized, 48 Empty, 49 ShortcutOrIdentifier, 50 Function, 51 ParamPreparation, 52 Params, 53 Finished, 54 Error 55 }; 56 } 54 57 55 58 class _CoreExport CommandEvaluation … … 112 115 113 116 std::string errorMessage_; 114 CommandState state_;117 CommandState::Value state_; 115 118 116 119 bool bEvaluatedParams_; -
code/branches/core4/src/core/CommandExecutor.cc
r3250 r3257 141 141 void CommandExecutor::parseIfNeeded(const std::string& command) 142 142 { 143 if (CommandExecutor::getEvaluation().state_ == C S_Uninitialized)143 if (CommandExecutor::getEvaluation().state_ == CommandState::Uninitialized) 144 144 { 145 145 CommandExecutor::parse(command); … … 169 169 switch (CommandExecutor::getEvaluation().state_) 170 170 { 171 case C S_Uninitialized:171 case CommandState::Uninitialized: 172 172 { 173 173 // Impossible 174 174 break; 175 175 } 176 case C S_Empty:176 case CommandState::Empty: 177 177 { 178 178 if (CommandExecutor::argumentsGiven() == 0) … … 184 184 else 185 185 { 186 CommandExecutor::getEvaluation().state_ = C S_ShortcutOrIdentifier;186 CommandExecutor::getEvaluation().state_ = CommandState::ShortcutOrIdentifier; 187 187 // Move on to next case 188 188 } 189 189 } 190 case C S_ShortcutOrIdentifier:190 case CommandState::ShortcutOrIdentifier: 191 191 { 192 192 if (CommandExecutor::argumentsGiven() > 1) … … 199 199 { 200 200 // It's a shortcut 201 CommandExecutor::getEvaluation().state_ = C S_ParamPreparation;201 CommandExecutor::getEvaluation().state_ = CommandState::ParamPreparation; 202 202 CommandExecutor::getEvaluation().functionclass_ = 0; 203 203 // Move on to next case … … 206 206 { 207 207 // It's a functionname 208 CommandExecutor::getEvaluation().state_ = C S_Function;208 CommandExecutor::getEvaluation().state_ = CommandState::Function; 209 209 CommandExecutor::getEvaluation().function_ = 0; 210 210 // Move on to next case … … 213 213 { 214 214 // The first argument is bad 215 CommandExecutor::getEvaluation().state_ = C S_Error;215 CommandExecutor::getEvaluation().state_ = CommandState::Error; 216 216 AddLanguageEntry("commandexecutorunknownfirstargument", "is not a shortcut nor a classname"); 217 217 CommandExecutor::getEvaluation().errorMessage_ = "Error: " + CommandExecutor::getArgument(0) + " " + GetLocalisation("commandexecutorunknownfirstargument") + "."; … … 238 238 CommandExecutor::getEvaluation().bCommandChanged_ = true; 239 239 } 240 CommandExecutor::getEvaluation().state_ = C S_ParamPreparation;240 CommandExecutor::getEvaluation().state_ = CommandState::ParamPreparation; 241 241 CommandExecutor::getEvaluation().functionclass_ = 0; 242 242 CommandExecutor::getEvaluation().command_ = CommandExecutor::getEvaluation().function_->getName(); … … 258 258 CommandExecutor::getEvaluation().bCommandChanged_ = true; 259 259 } 260 CommandExecutor::getEvaluation().state_ = C S_Function;260 CommandExecutor::getEvaluation().state_ = CommandState::Function; 261 261 CommandExecutor::getEvaluation().function_ = 0; 262 262 CommandExecutor::getEvaluation().command_ = CommandExecutor::getEvaluation().functionclass_->getName() + " "; … … 266 266 { 267 267 // No possibilities 268 CommandExecutor::getEvaluation().state_ = C S_Error;268 CommandExecutor::getEvaluation().state_ = CommandState::Error; 269 269 AddLanguageEntry("commandexecutorunknownfirstargumentstart", "There is no command or classname starting with"); 270 270 CommandExecutor::getEvaluation().errorMessage_ = "Error: " + GetLocalisation("commandexecutorunknownfirstargumentstart") + " " + CommandExecutor::getArgument(0) + "."; … … 285 285 } 286 286 } 287 case C S_Function:287 case CommandState::Function: 288 288 { 289 289 if (CommandExecutor::getEvaluation().functionclass_) … … 298 298 { 299 299 // It's a function 300 CommandExecutor::getEvaluation().state_ = C S_ParamPreparation;300 CommandExecutor::getEvaluation().state_ = CommandState::ParamPreparation; 301 301 // Move on to next case 302 302 } … … 304 304 { 305 305 // The second argument is bad 306 CommandExecutor::getEvaluation().state_ = C S_Error;306 CommandExecutor::getEvaluation().state_ = CommandState::Error; 307 307 AddLanguageEntry("commandexecutorunknownsecondargument", "is not a function of"); 308 308 CommandExecutor::getEvaluation().errorMessage_ = "Error: " + CommandExecutor::getArgument(1) + " " + GetLocalisation("commandexecutorunknownsecondargument") + " " + CommandExecutor::getEvaluation().functionclass_->getName() + "."; … … 326 326 CommandExecutor::getEvaluation().bCommandChanged_ = true; 327 327 } 328 CommandExecutor::getEvaluation().state_ = C S_ParamPreparation;328 CommandExecutor::getEvaluation().state_ = CommandState::ParamPreparation; 329 329 CommandExecutor::getEvaluation().command_ = CommandExecutor::getEvaluation().functionclass_->getName() + " " + CommandExecutor::getEvaluation().function_->getName(); 330 330 if (CommandExecutor::getEvaluation().function_->getParamCount() > 0) … … 338 338 { 339 339 // No possibilities 340 CommandExecutor::getEvaluation().state_ = C S_Error;340 CommandExecutor::getEvaluation().state_ = CommandState::Error; 341 341 AddLanguageEntry("commandexecutorunknownsecondargumentstart", "has no function starting with"); 342 342 CommandExecutor::getEvaluation().errorMessage_ = "Error: " + CommandExecutor::getEvaluation().functionclass_->getName() + " " + GetLocalisation("commandexecutorunknownsecondargumentstart") + " " + CommandExecutor::getArgument(1) + "."; … … 355 355 else 356 356 { 357 // There is no classname - move on to C S_ParamPreparation358 } 359 } 360 case C S_ParamPreparation:357 // There is no classname - move on to CommandState::ParamPreparation 358 } 359 } 360 case CommandState::ParamPreparation: 361 361 { 362 362 if (CommandExecutor::getEvaluation().function_->getParamCount() == 0 || CommandExecutor::enoughArgumentsGiven(CommandExecutor::getEvaluation().function_)) 363 363 { 364 CommandExecutor::getEvaluation().state_ = C S_Finished;364 CommandExecutor::getEvaluation().state_ = CommandState::Finished; 365 365 return; 366 366 } … … 372 372 373 373 CommandExecutor::createListOfPossibleArguments(CommandExecutor::getLastArgument(), CommandExecutor::getEvaluation().function_, argumentNumber); 374 CommandExecutor::getEvaluation().state_ = C S_Params;374 CommandExecutor::getEvaluation().state_ = CommandState::Params; 375 375 376 376 if (CommandExecutor::getEvaluation().bCommandChanged_) … … 381 381 } 382 382 } 383 case C S_Params:383 case CommandState::Params: 384 384 { 385 385 if (CommandExecutor::getEvaluation().listOfPossibleArguments_.size() == 1) … … 388 388 CommandExecutor::getEvaluation().argument_ = (*CommandExecutor::getEvaluation().listOfPossibleArguments_.begin()).getString(); 389 389 CommandExecutor::getEvaluation().possibleArgument_ = (*CommandExecutor::getEvaluation().listOfPossibleArguments_.begin()).getString(); 390 CommandExecutor::getEvaluation().state_ = C S_ParamPreparation;390 CommandExecutor::getEvaluation().state_ = CommandState::ParamPreparation; 391 391 return; 392 392 } … … 394 394 { 395 395 // The user tries something new - we let him do 396 CommandExecutor::getEvaluation().state_ = C S_ParamPreparation;396 CommandExecutor::getEvaluation().state_ = CommandState::ParamPreparation; 397 397 CommandExecutor::getEvaluation().argument_ = CommandExecutor::getLastArgument(); 398 398 return; … … 409 409 CommandExecutor::getEvaluation().argument_ = CommandExecutor::getCommonBegin(CommandExecutor::getEvaluation().listOfPossibleArguments_); 410 410 CommandExecutor::getEvaluation().possibleArgument_ = CommandExecutor::getPossibleArgument(CommandExecutor::getLastArgument(), CommandExecutor::getEvaluation().function_, argumentNumber); 411 CommandExecutor::getEvaluation().state_ = C S_ParamPreparation;411 CommandExecutor::getEvaluation().state_ = CommandState::ParamPreparation; 412 412 return; 413 413 } 414 414 } 415 case C S_Finished:415 case CommandState::Finished: 416 416 { 417 417 // Nothing more to do 418 418 break; 419 419 } 420 case C S_Error:420 case CommandState::Error: 421 421 { 422 422 // Bad, very bad -
code/branches/core4/src/core/CommandLine.cc
r3255 r3257 54 54 if (bParsingFile && this->bCommandLineOnly_) 55 55 ThrowException(Argument, "Command line argument '" + getName() + "' is not allowed in files."); 56 if (value_.getType() == MT_ bool)56 if (value_.getType() == MT_Type::Bool) 57 57 { 58 58 // simulate command line switch … … 295 295 infoStr << " "; 296 296 infoStr << "--" << it->second->getName() << " "; 297 if (it->second->getValue().getType() != MT_ bool)297 if (it->second->getValue().getType() != MT_Type::Bool) 298 298 infoStr << "ARG "; 299 299 else -
code/branches/core4/src/core/CommandLine.h
r3255 r3257 213 213 OrxAssert(!_getInstance().existsArgument(name), 214 214 "Cannot add a command line argument with name '" + name + "' twice."); 215 OrxAssert(MultiType(defaultValue).getType() != MT_ bool || MultiType(defaultValue).getBool() != true,215 OrxAssert(MultiType(defaultValue).getType() != MT_Type::Bool || MultiType(defaultValue).getBool() != true, 216 216 "Boolean command line arguments with positive default values are not supported." << std::endl 217 217 << "Please use SetCommandLineSwitch and adjust your argument: " << name); -
code/branches/core4/src/core/ConfigValueContainer.cc
r3196 r3257 78 78 for (unsigned int i = 0; i < this->valueVector_.size(); i++) 79 79 { 80 ConfigFileManager::getInstance().getValue(this->type_, this->sectionname_, this->varname_, i, this->valueVector_[i], this->value_.isType(MT_ string));80 ConfigFileManager::getInstance().getValue(this->type_, this->sectionname_, this->varname_, i, this->valueVector_[i], this->value_.isType(MT_Type::String)); 81 81 this->defvalueStringVector_.push_back(this->valueVector_[i]); 82 82 } … … 109 109 if (this->tset(input)) 110 110 { 111 ConfigFileManager::getInstance().setValue(this->type_, this->sectionname_, this->varname_, input, this->value_.isType(MT_ string));111 ConfigFileManager::getInstance().setValue(this->type_, this->sectionname_, this->varname_, input, this->value_.isType(MT_Type::String)); 112 112 return true; 113 113 } … … 128 128 if (this->tset(index, input)) 129 129 { 130 ConfigFileManager::getInstance().setValue(this->type_, this->sectionname_, this->varname_, index, input, this->value_.isType(MT_ string));130 ConfigFileManager::getInstance().setValue(this->type_, this->sectionname_, this->varname_, index, input, this->value_.isType(MT_Type::String)); 131 131 return true; 132 132 } … … 228 228 this->valueVector_.erase(this->valueVector_.begin() + index); 229 229 for (unsigned int i = index; i < this->valueVector_.size(); i++) 230 ConfigFileManager::getInstance().setValue(this->type_, this->sectionname_, this->varname_, i, this->valueVector_[i], this->value_.isType(MT_ string));230 ConfigFileManager::getInstance().setValue(this->type_, this->sectionname_, this->varname_, i, this->valueVector_[i], this->value_.isType(MT_Type::String)); 231 231 ConfigFileManager::getInstance().deleteVectorEntries(this->type_, this->sectionname_, this->varname_, this->valueVector_.size()); 232 232 … … 264 264 { 265 265 if (!this->bIsVector_) 266 this->value_ = ConfigFileManager::getInstance().getValue(this->type_, this->sectionname_, this->varname_, this->defvalueString_, this->value_.isType(MT_ string));266 this->value_ = ConfigFileManager::getInstance().getValue(this->type_, this->sectionname_, this->varname_, this->defvalueString_, this->value_.isType(MT_Type::String)); 267 267 else 268 268 { … … 273 273 if (i < this->defvalueStringVector_.size()) 274 274 { 275 this->value_ = ConfigFileManager::getInstance().getValue(this->type_, this->sectionname_, this->varname_, i, this->defvalueStringVector_[i], this->value_.isType(MT_ string));275 this->value_ = ConfigFileManager::getInstance().getValue(this->type_, this->sectionname_, this->varname_, i, this->defvalueStringVector_[i], this->value_.isType(MT_Type::String)); 276 276 } 277 277 else 278 278 { 279 this->value_ = ConfigFileManager::getInstance().getValue(this->type_, this->sectionname_, this->varname_, i, MultiType(), this->value_.isType(MT_ string));279 this->value_ = ConfigFileManager::getInstance().getValue(this->type_, this->sectionname_, this->varname_, i, MultiType(), this->value_.isType(MT_Type::String)); 280 280 } 281 281 -
code/branches/core4/src/core/ConsoleCommand.h
r3196 r3257 71 71 namespace AccessLevel 72 72 { 73 enum Level73 enum Value 74 74 { 75 75 None, … … 106 106 { this->Executor::setDefaultValue(index, param); return (*this); } 107 107 108 inline ConsoleCommand& accessLevel(AccessLevel:: Levellevel)108 inline ConsoleCommand& accessLevel(AccessLevel::Value level) 109 109 { this->accessLevel_ = level; return (*this); } 110 inline AccessLevel:: LevelgetAccessLevel() const110 inline AccessLevel::Value getAccessLevel() const 111 111 { return this->accessLevel_; } 112 112 … … 130 130 } 131 131 132 inline ConsoleCommand& keybindMode(KeybindMode:: Enummode)132 inline ConsoleCommand& keybindMode(KeybindMode::Value mode) 133 133 { this->keybindMode_ = mode; return *this; } 134 inline KeybindMode:: EnumgetKeybindMode() const134 inline KeybindMode::Value getKeybindMode() const 135 135 { return this->keybindMode_; } 136 136 … … 141 141 142 142 private: 143 AccessLevel:: LevelaccessLevel_;143 AccessLevel::Value accessLevel_; 144 144 ArgumentCompleter* argumentCompleter_[5]; 145 145 ArgumentCompletionList argumentList_; 146 146 147 KeybindMode:: EnumkeybindMode_;147 KeybindMode::Value keybindMode_; 148 148 int inputConfiguredParam_; 149 149 }; -
code/branches/core4/src/core/CorePrereqs.h
r3243 r3257 74 74 namespace KeybindMode 75 75 { 76 enum Enum76 enum Value 77 77 { 78 78 OnPress, -
code/branches/core4/src/core/Executor.h
r3250 r3257 175 175 inline bool hasReturnvalue() const 176 176 { return this->functor_->hasReturnvalue(); } 177 inline FunctionType getType() const177 inline FunctionType::Value getType() const 178 178 { return this->functor_->getType(); } 179 179 inline const MultiType& getReturnvalue() const … … 201 201 return this->defaultValue_[index]; 202 202 203 return MT_ null;203 return MT_Type::Null; 204 204 } 205 205 -
code/branches/core4/src/core/Functor.h
r3250 r3257 41 41 const unsigned int MAX_FUNCTOR_ARGUMENTS = 5; 42 42 43 enumFunctionType43 namespace FunctionType 44 44 { 45 FT_MEMBER, 46 FT_CONSTMEMBER, 47 FT_STATIC 48 }; 45 enum Value 46 { 47 Member, 48 ConstMember, 49 Static 50 }; 51 } 49 52 50 53 … … 98 101 virtual ~Functor() {} 99 102 100 virtual void operator()(const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) = 0;103 virtual void operator()(const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) = 0; 101 104 102 105 inline unsigned int getParamCount() const { return this->numParams_; } 103 106 inline bool hasReturnvalue() const { return this->hasReturnValue_; } 104 inline FunctionType getType() const { return this->type_; }107 inline FunctionType::Value getType() const { return this->type_; } 105 108 inline const MultiType& getReturnvalue() const { return this->returnedValue_; } 106 109 … … 113 116 unsigned int numParams_; 114 117 bool hasReturnValue_; 115 FunctionType type_;118 FunctionType::Value type_; 116 119 MultiType returnedValue_; 117 120 … … 124 127 public: 125 128 virtual ~FunctorStatic() {} 126 virtual void operator()(const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) = 0;129 virtual void operator()(const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) = 0; 127 130 }; 128 131 … … 139 142 virtual ~FunctorMember() {} 140 143 141 virtual void operator()(T* object, const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) = 0;142 virtual void operator()(const T* object, const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) = 0;143 144 virtual void operator()(const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null)144 virtual void operator()(T* object, const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) = 0; 145 virtual void operator()(const T* object, const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) = 0; 146 147 virtual void operator()(const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) 145 148 { 146 149 if (this->bConstObject_) … … 322 325 this->numParams_ = numparams; \ 323 326 this->hasReturnValue_ = returnvalue; \ 324 this->type_ = F T_STATIC; \327 this->type_ = FunctionType::Static; \ 325 328 this->functionPointer_ = functionPointer; \ 326 329 \ … … 329 332 } \ 330 333 \ 331 void operator()(const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) \334 void operator()(const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) \ 332 335 { \ 333 336 FUNCTOR_STORE_RETURNVALUE(returnvalue, (*this->functionPointer_)(FUNCTOR_FUNCTION_CALL(numparams))); \ … … 363 366 this->numParams_ = numparams; \ 364 367 this->hasReturnValue_ = returnvalue; \ 365 this->type_ = F T_MEMBER; \368 this->type_ = FunctionType::Member; \ 366 369 this->functionPointer_ = functionPointer; \ 367 370 } \ 368 371 \ 369 void operator()(T* object, const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) \372 void operator()(T* object, const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) \ 370 373 { \ 371 374 FUNCTOR_STORE_RETURNVALUE(returnvalue, (*object.*this->functionPointer_)(FUNCTOR_FUNCTION_CALL(numparams))); \ 372 375 } \ 373 376 \ 374 void operator()(const T* object, const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) \377 void operator()(const T* object, const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) \ 375 378 { \ 376 379 COUT(1) << "An error occurred in Functor.h:" << std::endl; \ … … 396 399 this->numParams_ = numparams; \ 397 400 this->hasReturnValue_ = returnvalue; \ 398 this->type_ = F T_CONSTMEMBER; \401 this->type_ = FunctionType::ConstMember; \ 399 402 this->functionPointer_ = functionPointer; \ 400 403 } \ 401 404 \ 402 void operator()(T* object, const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) \405 void operator()(T* object, const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) \ 403 406 { \ 404 407 FUNCTOR_STORE_RETURNVALUE(returnvalue, (*object.*this->functionPointer_)(FUNCTOR_FUNCTION_CALL(numparams))); \ 405 408 } \ 406 409 \ 407 void operator()(const T* object, const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) \410 void operator()(const T* object, const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) \ 408 411 { \ 409 412 FUNCTOR_STORE_RETURNVALUE(returnvalue, (*object.*this->functionPointer_)(FUNCTOR_FUNCTION_CALL(numparams))); \ -
code/branches/core4/src/core/input/Button.cc
r3250 r3257 127 127 '\\', false, '"', false, '(', ')', false, '\0'); 128 128 129 KeybindMode:: Enummode = KeybindMode::None;129 KeybindMode::Value mode = KeybindMode::None; 130 130 float paramModifier = 1.0f; 131 131 std::string commandStr = ""; -
code/branches/core4/src/core/input/Button.h
r2662 r3257 54 54 void parse(); 55 55 void readConfigValue(ConfigFileType configFile); 56 bool execute(KeybindMode:: Enummode, float abs = 1.0f, float rel = 1.0f);56 bool execute(KeybindMode::Value mode, float abs = 1.0f, float rel = 1.0f); 57 57 58 58 //! Container to allow for better configValue support … … 79 79 }; 80 80 81 inline bool Button::execute(KeybindMode:: Enummode, float abs, float rel)81 inline bool Button::execute(KeybindMode::Value mode, float abs, float rel) 82 82 { 83 83 // execute all the parsed commands in the string -
code/branches/core4/src/network/NetworkPrereqs.h
r3214 r3257 132 132 namespace PacketFlag 133 133 { 134 enum Enum134 enum Value 135 135 { 136 136 Reliable = 1, -
code/branches/core4/src/network/packet/Acknowledgement.cc
r3214 r3257 37 37 #define PACKET_FLAGS_ACK 0 38 38 #define _PACKETID 0 39 #define _ACKID _PACKETID + sizeof(packet:: ENUM::Type)39 #define _ACKID _PACKETID + sizeof(packet::Type::Value) 40 40 41 41 Acknowledgement::Acknowledgement( unsigned int id, unsigned int clientID ) … … 44 44 flags_ = flags_ | PACKET_FLAGS_ACK; 45 45 data_=new uint8_t[ getSize() ]; 46 *( ENUM::Type *)(data_ + _PACKETID ) = ENUM::Acknowledgement;46 *(Type::Value *)(data_ + _PACKETID ) = Type::Acknowledgement; 47 47 *(uint32_t *)(data_ + _ACKID ) = id; 48 48 clientID_=clientID; -
code/branches/core4/src/network/packet/Chat.cc
r3214 r3257 38 38 #define PACKET_FLAGS_CHAT PacketFlag::Reliable 39 39 #define _PACKETID 0 40 const int _PLAYERID = _PACKETID + sizeof( ENUM::Type);40 const int _PLAYERID = _PACKETID + sizeof(Type::Value); 41 41 #define _MESSAGELENGTH _PLAYERID + sizeof(uint32_t) 42 42 #define _MESSAGE _MESSAGELENGTH + sizeof(uint32_t) … … 48 48 messageLength_ = message.length()+1; 49 49 data_=new unsigned char[ getSize() ]; 50 *( ENUM::Type *)(data_ + _PACKETID ) = ENUM::Chat;50 *(Type::Value *)(data_ + _PACKETID ) = Type::Chat; 51 51 *(unsigned int *)(data_ + _PLAYERID ) = playerID; 52 52 *(unsigned int *)(data_ + _MESSAGELENGTH ) = messageLength_; -
code/branches/core4/src/network/packet/ClassID.cc
r3214 r3257 74 74 //set the appropriate packet id 75 75 assert(this->data_); 76 *( ENUM::Type *)(this->data_ + _PACKETID ) = ENUM::ClassID;76 *(Type::Value *)(this->data_ + _PACKETID ) = Type::ClassID; 77 77 78 78 uint8_t *temp=data_+sizeof(uint32_t); -
code/branches/core4/src/network/packet/DeleteObjects.cc
r3214 r3257 39 39 #define PACKET_FLAG_DELETE PacketFlag::Reliable 40 40 #define _PACKETID 0 41 #define _QUANTITY _PACKETID + sizeof( ENUM::Type)41 #define _QUANTITY _PACKETID + sizeof(Type::Value) 42 42 #define _OBJECTIDS _QUANTITY + sizeof(uint32_t) 43 43 … … 62 62 return false; 63 63 COUT(4) << "sending DeleteObjects: "; 64 unsigned int size = sizeof( ENUM::Type) + sizeof(uint32_t)*(number+1);64 unsigned int size = sizeof(Type::Value) + sizeof(uint32_t)*(number+1); 65 65 data_ = new uint8_t[size]; 66 66 uint8_t *tdata = data_; 67 *reinterpret_cast< ENUM::Type*>(tdata) = ENUM::DeleteObjects;68 tdata += sizeof( ENUM::Type);67 *reinterpret_cast<Type::Value*>(tdata) = Type::DeleteObjects; 68 tdata += sizeof(Type::Value); 69 69 *(uint32_t *)tdata = number; 70 70 tdata += sizeof(uint32_t); -
code/branches/core4/src/network/packet/FunctionCalls.cc
r3214 r3257 49 49 currentMemBlocks_ = 1; 50 50 data_=new uint8_t[ FUNCTIONCALLS_MEM_ALLOCATION ]; 51 *( ENUM::Type *)(data_ + _PACKETID ) = ENUM::FunctionCalls;51 *(Type::Value *)(data_ + _PACKETID ) = Type::FunctionCalls; 52 52 *(uint32_t*)(data_+sizeof(uint32_t)) = 0; // set nrOfCalls to 0 53 53 } -
code/branches/core4/src/network/packet/FunctionIDs.cc
r3214 r3257 68 68 //set the appropriate packet id 69 69 assert(this->data_); 70 *( ENUM::Type *)(this->data_ + _PACKETID ) = ENUM::FunctionIDs;70 *(Type::Value *)(this->data_ + _PACKETID ) = Type::FunctionIDs; 71 71 72 72 uint8_t *temp=data_+sizeof(uint32_t); -
code/branches/core4/src/network/packet/Gamestate.h
r3214 r3257 47 47 class _NetworkExport GamestateHeader{ 48 48 public: 49 GamestateHeader(uint8_t *data){ assert(data); data_ = data; *(uint32_t*)data_ = ENUM::Gamestate; }49 GamestateHeader(uint8_t *data){ assert(data); data_ = data; *(uint32_t*)data_ = Type::Gamestate; } 50 50 GamestateHeader(uint8_t *data, GamestateHeader* h) 51 51 { assert(data); data_=data; memcpy(data_, h->data_, getSize()); } -
code/branches/core4/src/network/packet/Packet.cc
r3214 r3257 63 63 Packet::Packet(){ 64 64 flags_ = PACKET_FLAG_DEFAULT; 65 packetDirection_ = ENUM::Outgoing;65 packetDirection_ = Direction::Outgoing; 66 66 clientID_=0; 67 67 data_=0; … … 76 76 Packet::Packet(uint8_t *data, unsigned int clientID){ 77 77 flags_ = PACKET_FLAG_DEFAULT; 78 packetDirection_ = ENUM::Incoming;78 packetDirection_ = Direction::Incoming; 79 79 clientID_=clientID; 80 80 data_=data; … … 125 125 126 126 bool Packet::send(){ 127 if(packetDirection_ != ENUM::Outgoing && packetDirection_ != ENUM::Bidirectional ){127 if(packetDirection_ != Direction::Outgoing && packetDirection_ != Direction::Bidirectional ){ 128 128 assert(0); 129 129 return false; … … 147 147 } 148 148 #ifndef NDEBUG 149 switch( *( ENUM::Type *)(data_ + _PACKETID) )149 switch( *(Type::Value *)(data_ + _PACKETID) ) 150 150 { 151 case ENUM::Acknowledgement:152 case ENUM::Chat:153 case ENUM::ClassID:154 case ENUM::Gamestate:155 case ENUM::Welcome:156 case ENUM::DeleteObjects:157 case ENUM::FunctionIDs:158 case ENUM::FunctionCalls:151 case Type::Acknowledgement: 152 case Type::Chat: 153 case Type::ClassID: 154 case Type::Gamestate: 155 case Type::Welcome: 156 case Type::DeleteObjects: 157 case Type::FunctionIDs: 158 case Type::FunctionCalls: 159 159 break; 160 160 default: … … 175 175 unsigned int clientID = ClientInformation::findClient(&peer->address)->getID(); 176 176 Packet *p = 0; 177 COUT(6) << "packet type: " << *( ENUM::Type *)&data[_PACKETID] << std::endl;178 switch( *( ENUM::Type *)(data + _PACKETID) )177 COUT(6) << "packet type: " << *(Type::Value *)&data[_PACKETID] << std::endl; 178 switch( *(Type::Value *)(data + _PACKETID) ) 179 179 { 180 case ENUM::Acknowledgement:180 case Type::Acknowledgement: 181 181 COUT(5) << "ack" << std::endl; 182 182 p = new Acknowledgement( data, clientID ); 183 183 break; 184 case ENUM::Chat:184 case Type::Chat: 185 185 COUT(5) << "chat" << std::endl; 186 186 p = new Chat( data, clientID ); 187 187 break; 188 case ENUM::ClassID:188 case Type::ClassID: 189 189 COUT(5) << "classid" << std::endl; 190 190 p = new ClassID( data, clientID ); 191 191 break; 192 case ENUM::Gamestate:192 case Type::Gamestate: 193 193 COUT(5) << "gamestate" << std::endl; 194 194 // TODO: remove brackets 195 195 p = new Gamestate( data, clientID ); 196 196 break; 197 case ENUM::Welcome:197 case Type::Welcome: 198 198 COUT(5) << "welcome" << std::endl; 199 199 p = new Welcome( data, clientID ); 200 200 break; 201 case ENUM::DeleteObjects:201 case Type::DeleteObjects: 202 202 COUT(5) << "deleteobjects" << std::endl; 203 203 p = new DeleteObjects( data, clientID ); 204 204 break; 205 case ENUM::FunctionCalls:205 case Type::FunctionCalls: 206 206 COUT(5) << "functionCalls" << std::endl; 207 207 p = new FunctionCalls( data, clientID ); 208 208 break; 209 case ENUM::FunctionIDs:209 case Type::FunctionIDs: 210 210 COUT(5) << "functionIDs" << std::endl; 211 211 p = new FunctionIDs( data, clientID ); -
code/branches/core4/src/network/packet/Packet.h
r3214 r3257 36 36 namespace packet{ 37 37 38 namespace ENUM{39 enum Direction{38 namespace Direction{ 39 enum Value{ 40 40 Incoming, 41 41 Outgoing, 42 42 Bidirectional 43 43 }; 44 enum Type{ 44 } 45 namespace Type{ 46 enum Value{ 45 47 Acknowledgement, 46 48 Chat, … … 84 86 uint32_t flags_; 85 87 unsigned int clientID_; 86 ENUM::DirectionpacketDirection_;88 Direction::Value packetDirection_; 87 89 /** Pointer to the data. Be careful when deleting it because it might 88 90 point to a location that was allocated by ENet. -
code/branches/core4/src/network/packet/Welcome.cc
r3214 r3257 41 41 #define PACKET_FLAGS_CLASSID PacketFlag::Reliable 42 42 #define _PACKETID 0 43 #define _CLIENTID _PACKETID + sizeof( ENUM::Type)43 #define _CLIENTID _PACKETID + sizeof(Type::Value) 44 44 #define _ENDIANTEST _CLIENTID + sizeof(uint32_t) 45 45 … … 51 51 data_=new uint8_t[ getSize() ]; 52 52 assert(data_); 53 *(packet:: ENUM::Type *)(data_ + _PACKETID ) = packet::ENUM::Welcome;53 *(packet::Type::Value *)(data_ + _PACKETID ) = packet::Type::Welcome; 54 54 *(uint32_t *)(data_ + _CLIENTID ) = static_cast<uint32_t>(clientID); 55 55 *(uint32_t *)(data_ + _ENDIANTEST ) = 0xFEDC4321; … … 70 70 71 71 unsigned int Welcome::getSize() const{ 72 return sizeof(packet:: ENUM::Type) + 2*sizeof(uint32_t);72 return sizeof(packet::Type::Value) + 2*sizeof(uint32_t); 73 73 } 74 74 -
code/branches/core4/src/network/synchronisable/Synchronisable.cc
r3239 r3257 65 65 this->dataSize_ = 0; 66 66 // set standard priority 67 this->setPriority( priority::normal );67 this->setPriority( Priority::Normal ); 68 68 69 69 // get creator id -
code/branches/core4/src/network/synchronisable/Synchronisable.h
r3214 r3257 51 51 { 52 52 53 namespace objectDirection{54 enum objectdirection{55 toclient=0x1,56 toserver=0x2,57 bidirectional=0x353 namespace ObjectDirection{ 54 enum Value{ 55 ToClient=0x1, 56 ToServer=0x2, 57 Bidirectional=0x3 58 58 }; 59 59 } 60 60 61 namespace priority{62 enum prio{63 very_high= -100,64 high = -15,65 normal = 0,66 low = 15,67 very_low= 10061 namespace Priority{ 62 enum Value{ 63 VeryHigh = -100, 64 High = -15, 65 Normal = 0, 66 Low = 15, 67 VeryLow = 100 68 68 }; 69 69 } -
code/branches/core4/src/network/synchronisable/SynchronisableVariable.h
r3214 r3257 41 41 namespace orxonox{ 42 42 43 namespace variableDirection{44 enum syncdirection{45 toclient=0x1,46 toserver=0x243 namespace VariableDirection{ 44 enum Value{ 45 ToClient=0x1, 46 ToServer=0x2 47 47 }; 48 enum bidirectional{ 49 serverMaster=0x1, 50 clientMaster=0x2 48 } 49 namespace Bidirectionality{ 50 enum Value{ 51 ServerMaster=0x1, 52 ClientMaster=0x2 51 53 }; 52 54 } … … 69 71 { 70 72 public: 71 SynchronisableVariable(T& variable, uint8_t syncDirection= variableDirection::toclient, NetworkCallbackBase *cb=0);73 SynchronisableVariable(T& variable, uint8_t syncDirection=VariableDirection::ToClient, NetworkCallbackBase *cb=0); 72 74 virtual ~SynchronisableVariable(); 73 75 … … 88 90 { 89 91 public: 90 SynchronisableVariableBidirectional(T& variable, uint8_t master= variableDirection::serverMaster, NetworkCallbackBase *cb=0);92 SynchronisableVariableBidirectional(T& variable, uint8_t master=Bidirectionality::ServerMaster, NetworkCallbackBase *cb=0); 91 93 virtual ~SynchronisableVariableBidirectional(); 92 94 -
code/branches/core4/src/orxonox/OrxonoxPrereqs.h
r3196 r3257 65 65 namespace LODParticle 66 66 { 67 enum LOD67 enum Value 68 68 { 69 off = 0,70 low = 1,71 normal = 2,72 high = 369 Off = 0, 70 Low = 1, 71 Normal = 2, 72 High = 3 73 73 }; 74 74 } -
code/branches/core4/src/orxonox/objects/GlobalShader.cc
r3196 r3257 66 66 void GlobalShader::registerVariables() 67 67 { 68 registerVariable(this->bVisible_, variableDirection::toclient, new NetworkCallback<GlobalShader>(this, &GlobalShader::changedVisibility));69 registerVariable(const_cast<std::string&>(this->shader_.getCompositor()), variableDirection::toclient, new NetworkCallback<Shader>(&this->shader_, &Shader::changedCompositor));68 registerVariable(this->bVisible_, VariableDirection::ToClient, new NetworkCallback<GlobalShader>(this, &GlobalShader::changedVisibility)); 69 registerVariable(const_cast<std::string&>(this->shader_.getCompositor()), VariableDirection::ToClient, new NetworkCallback<Shader>(&this->shader_, &Shader::changedCompositor)); 70 70 } 71 71 -
code/branches/core4/src/orxonox/objects/Level.cc
r3239 r3257 87 87 void Level::registerVariables() 88 88 { 89 registerVariable(this->xmlfilename_, variableDirection::toclient, new NetworkCallback<Level>(this, &Level::networkcallback_applyXMLFile));90 registerVariable(this->name_, variableDirection::toclient, new NetworkCallback<Level>(this, &Level::changedName));91 registerVariable(this->description_, variableDirection::toclient);89 registerVariable(this->xmlfilename_, VariableDirection::ToClient, new NetworkCallback<Level>(this, &Level::networkcallback_applyXMLFile)); 90 registerVariable(this->name_, VariableDirection::ToClient, new NetworkCallback<Level>(this, &Level::changedName)); 91 registerVariable(this->description_, VariableDirection::ToClient); 92 92 } 93 93 -
code/branches/core4/src/orxonox/objects/Scene.cc
r3239 r3257 115 115 void Scene::registerVariables() 116 116 { 117 registerVariable(this->skybox_, variableDirection::toclient, new NetworkCallback<Scene>(this, &Scene::networkcallback_applySkybox));118 registerVariable(this->ambientLight_, variableDirection::toclient, new NetworkCallback<Scene>(this, &Scene::networkcallback_applyAmbientLight));119 registerVariable(this->negativeWorldRange_, variableDirection::toclient, new NetworkCallback<Scene>(this, &Scene::networkcallback_negativeWorldRange));120 registerVariable(this->positiveWorldRange_, variableDirection::toclient, new NetworkCallback<Scene>(this, &Scene::networkcallback_positiveWorldRange));121 registerVariable(this->gravity_, variableDirection::toclient, new NetworkCallback<Scene>(this, &Scene::networkcallback_gravity));122 registerVariable(this->bHasPhysics_, variableDirection::toclient, new NetworkCallback<Scene>(this, &Scene::networkcallback_hasPhysics));123 registerVariable(this->bShadows_, variableDirection::toclient, new NetworkCallback<Scene>(this, &Scene::networkcallback_applyShadows));117 registerVariable(this->skybox_, VariableDirection::ToClient, new NetworkCallback<Scene>(this, &Scene::networkcallback_applySkybox)); 118 registerVariable(this->ambientLight_, VariableDirection::ToClient, new NetworkCallback<Scene>(this, &Scene::networkcallback_applyAmbientLight)); 119 registerVariable(this->negativeWorldRange_, VariableDirection::ToClient, new NetworkCallback<Scene>(this, &Scene::networkcallback_negativeWorldRange)); 120 registerVariable(this->positiveWorldRange_, VariableDirection::ToClient, new NetworkCallback<Scene>(this, &Scene::networkcallback_positiveWorldRange)); 121 registerVariable(this->gravity_, VariableDirection::ToClient, new NetworkCallback<Scene>(this, &Scene::networkcallback_gravity)); 122 registerVariable(this->bHasPhysics_, VariableDirection::ToClient, new NetworkCallback<Scene>(this, &Scene::networkcallback_hasPhysics)); 123 registerVariable(this->bShadows_, VariableDirection::ToClient, new NetworkCallback<Scene>(this, &Scene::networkcallback_applyShadows)); 124 124 } 125 125 -
code/branches/core4/src/orxonox/objects/collisionshapes/BoxCollisionShape.cc
r3196 r3257 57 57 void BoxCollisionShape::registerVariables() 58 58 { 59 registerVariable(this->halfExtents_, variableDirection::toclient, new NetworkCallback<CollisionShape>(this, &CollisionShape::updateShape));59 registerVariable(this->halfExtents_, VariableDirection::ToClient, new NetworkCallback<CollisionShape>(this, &CollisionShape::updateShape)); 60 60 } 61 61 -
code/branches/core4/src/orxonox/objects/collisionshapes/CollisionShape.cc
r3239 r3257 77 77 void CollisionShape::registerVariables() 78 78 { 79 registerVariable(this->parentID_, variableDirection::toclient, new NetworkCallback<CollisionShape>(this, &CollisionShape::parentChanged));79 registerVariable(this->parentID_, VariableDirection::ToClient, new NetworkCallback<CollisionShape>(this, &CollisionShape::parentChanged)); 80 80 } 81 81 -
code/branches/core4/src/orxonox/objects/collisionshapes/ConeCollisionShape.cc
r3196 r3257 57 57 void ConeCollisionShape::registerVariables() 58 58 { 59 registerVariable(this->radius_, variableDirection::toclient, new NetworkCallback<CollisionShape>(this, &CollisionShape::updateShape));60 registerVariable(this->height_, variableDirection::toclient, new NetworkCallback<CollisionShape>(this, &CollisionShape::updateShape));59 registerVariable(this->radius_, VariableDirection::ToClient, new NetworkCallback<CollisionShape>(this, &CollisionShape::updateShape)); 60 registerVariable(this->height_, VariableDirection::ToClient, new NetworkCallback<CollisionShape>(this, &CollisionShape::updateShape)); 61 61 } 62 62 -
code/branches/core4/src/orxonox/objects/collisionshapes/PlaneCollisionShape.cc
r3196 r3257 58 58 void PlaneCollisionShape::registerVariables() 59 59 { 60 registerVariable(this->normal_, variableDirection::toclient, new NetworkCallback<CollisionShape>(this, &CollisionShape::updateShape));61 registerVariable(this->offset_, variableDirection::toclient, new NetworkCallback<CollisionShape>(this, &CollisionShape::updateShape));60 registerVariable(this->normal_, VariableDirection::ToClient, new NetworkCallback<CollisionShape>(this, &CollisionShape::updateShape)); 61 registerVariable(this->offset_, VariableDirection::ToClient, new NetworkCallback<CollisionShape>(this, &CollisionShape::updateShape)); 62 62 } 63 63 -
code/branches/core4/src/orxonox/objects/collisionshapes/SphereCollisionShape.cc
r3196 r3257 56 56 void SphereCollisionShape::registerVariables() 57 57 { 58 registerVariable(this->radius_, variableDirection::toclient, new NetworkCallback<CollisionShape>(this, &CollisionShape::updateShape));58 registerVariable(this->radius_, VariableDirection::ToClient, new NetworkCallback<CollisionShape>(this, &CollisionShape::updateShape)); 59 59 } 60 60 -
code/branches/core4/src/orxonox/objects/controllers/ArtificialController.cc
r3239 r3257 208 208 switch (base->getState()) 209 209 { 210 case BaseState:: controlTeam1:210 case BaseState::ControlTeam1: 211 211 team1 = 0; 212 212 break; 213 case BaseState:: controlTeam2:213 case BaseState::ControlTeam2: 214 214 team1 = 1; 215 215 break; 216 case BaseState:: uncontrolled:216 case BaseState::Uncontrolled: 217 217 default: 218 218 team1 = -1; … … 224 224 switch (base->getState()) 225 225 { 226 case BaseState:: controlTeam1:226 case BaseState::ControlTeam1: 227 227 team2 = 0; 228 228 break; 229 case BaseState:: controlTeam2:229 case BaseState::ControlTeam2: 230 230 team2 = 1; 231 231 break; 232 case BaseState:: uncontrolled:232 case BaseState::Uncontrolled: 233 233 default: 234 234 team2 = -1; -
code/branches/core4/src/orxonox/objects/gametypes/Gametype.h
r3196 r3257 45 45 namespace PlayerState 46 46 { 47 enum Enum47 enum Value 48 48 { 49 49 Uninitialized, … … 57 57 { 58 58 PlayerInfo* info_; 59 PlayerState:: Enumstate_;59 PlayerState::Value state_; 60 60 int frags_; 61 61 int killed_; -
code/branches/core4/src/orxonox/objects/gametypes/TeamBaseMatch.cc
r3239 r3257 66 66 if (teamnr == 0) 67 67 { 68 base->setState(BaseState:: controlTeam1);68 base->setState(BaseState::ControlTeam1); 69 69 this->gtinfo_.sendAnnounceMessage("The red team captured a base"); 70 70 } 71 71 if (teamnr == 1) 72 72 { 73 base->setState(BaseState:: controlTeam2);73 base->setState(BaseState::ControlTeam2); 74 74 this->gtinfo_.sendAnnounceMessage("The blue team captured a base"); 75 75 } … … 107 107 switch (base->getState()) 108 108 { 109 case BaseState:: controlTeam1:109 case BaseState::ControlTeam1: 110 110 teamnrbase = 0; 111 111 break; 112 case BaseState:: controlTeam2:112 case BaseState::ControlTeam2: 113 113 teamnrbase = 1; 114 114 break; 115 case BaseState:: uncontrolled:115 case BaseState::Uncontrolled: 116 116 default: 117 117 teamnrbase = -1; … … 155 155 for (std::set<TeamBaseMatchBase*>::const_iterator it = this->bases_.begin(); it != this->bases_.end(); ++it) 156 156 { 157 if((*it)->getState() == BaseState:: controlTeam1)157 if((*it)->getState() == BaseState::ControlTeam1) 158 158 { 159 159 amountControlled++; 160 160 } 161 if((*it)->getState() == BaseState:: controlTeam2)161 if((*it)->getState() == BaseState::ControlTeam2) 162 162 { 163 163 amountControlled2++; … … 241 241 for (std::set<TeamBaseMatchBase*>::const_iterator it = this->bases_.begin(); it != this->bases_.end(); ++it) 242 242 { 243 if ((*it)->getState() == BaseState:: controlTeam1 && team == 0)243 if ((*it)->getState() == BaseState::ControlTeam1 && team == 0) 244 244 count++; 245 if ((*it)->getState() == BaseState:: controlTeam2 && team == 1)245 if ((*it)->getState() == BaseState::ControlTeam2 && team == 1) 246 246 count++; 247 247 } … … 253 253 { 254 254 this->bases_.insert(base); 255 base->setState(BaseState:: uncontrolled);255 base->setState(BaseState::Uncontrolled); 256 256 } 257 257 -
code/branches/core4/src/orxonox/objects/infos/GametypeInfo.cc
r3196 r3257 61 61 void GametypeInfo::registerVariables() 62 62 { 63 registerVariable(this->bStarted_, variableDirection::toclient);64 registerVariable(this->bEnded_, variableDirection::toclient);65 registerVariable(this->startCountdown_, variableDirection::toclient);66 registerVariable(this->bStartCountdownRunning_, variableDirection::toclient);67 registerVariable(this->hudtemplate_, variableDirection::toclient);63 registerVariable(this->bStarted_, VariableDirection::ToClient); 64 registerVariable(this->bEnded_, VariableDirection::ToClient); 65 registerVariable(this->startCountdown_, VariableDirection::ToClient); 66 registerVariable(this->bStartCountdownRunning_, VariableDirection::ToClient); 67 registerVariable(this->hudtemplate_, VariableDirection::ToClient); 68 68 } 69 69 -
code/branches/core4/src/orxonox/objects/infos/HumanPlayer.cc
r3196 r3257 79 79 void HumanPlayer::registerVariables() 80 80 { 81 registerVariable(this->synchronize_nick_, variableDirection::toserver, new NetworkCallback<HumanPlayer>(this, &HumanPlayer::networkcallback_changednick));81 registerVariable(this->synchronize_nick_, VariableDirection::ToServer, new NetworkCallback<HumanPlayer>(this, &HumanPlayer::networkcallback_changednick)); 82 82 83 registerVariable(this->clientID_, variableDirection::toclient, new NetworkCallback<HumanPlayer>(this, &HumanPlayer::networkcallback_clientIDchanged));84 registerVariable(this->server_initialized_, variableDirection::toclient, new NetworkCallback<HumanPlayer>(this, &HumanPlayer::networkcallback_server_initialized));85 registerVariable(this->client_initialized_, variableDirection::toserver, new NetworkCallback<HumanPlayer>(this, &HumanPlayer::networkcallback_client_initialized));83 registerVariable(this->clientID_, VariableDirection::ToClient, new NetworkCallback<HumanPlayer>(this, &HumanPlayer::networkcallback_clientIDchanged)); 84 registerVariable(this->server_initialized_, VariableDirection::ToClient, new NetworkCallback<HumanPlayer>(this, &HumanPlayer::networkcallback_server_initialized)); 85 registerVariable(this->client_initialized_, VariableDirection::ToServer, new NetworkCallback<HumanPlayer>(this, &HumanPlayer::networkcallback_client_initialized)); 86 86 } 87 87 … … 116 116 117 117 if (!GameMode::isMaster()) 118 this->setObjectMode( objectDirection::bidirectional);118 this->setObjectMode(ObjectDirection::Bidirectional); 119 119 else 120 120 this->setName(this->nick_); -
code/branches/core4/src/orxonox/objects/infos/PlayerInfo.cc
r3239 r3257 77 77 void PlayerInfo::registerVariables() 78 78 { 79 registerVariable(this->name_, variableDirection::toclient, new NetworkCallback<PlayerInfo>(this, &PlayerInfo::changedName));80 registerVariable(this->controllableEntityID_, variableDirection::toclient, new NetworkCallback<PlayerInfo>(this, &PlayerInfo::networkcallback_changedcontrollableentityID));81 registerVariable(this->bReadyToSpawn_, variableDirection::toserver);82 registerVariable(this->gtinfoID_, variableDirection::toclient, new NetworkCallback<PlayerInfo>(this, &PlayerInfo::networkcallback_changedgtinfoID));79 registerVariable(this->name_, VariableDirection::ToClient, new NetworkCallback<PlayerInfo>(this, &PlayerInfo::changedName)); 80 registerVariable(this->controllableEntityID_, VariableDirection::ToClient, new NetworkCallback<PlayerInfo>(this, &PlayerInfo::networkcallback_changedcontrollableentityID)); 81 registerVariable(this->bReadyToSpawn_, VariableDirection::ToServer); 82 registerVariable(this->gtinfoID_, VariableDirection::ToClient, new NetworkCallback<PlayerInfo>(this, &PlayerInfo::networkcallback_changedgtinfoID)); 83 83 } 84 84 -
code/branches/core4/src/orxonox/objects/items/Engine.cc
r3239 r3257 113 113 void Engine::registerVariables() 114 114 { 115 registerVariable(this->shipID_, variableDirection::toclient, new NetworkCallback<Engine>(this, &Engine::networkcallback_shipID));116 117 registerVariable(this->speedFactor_, variableDirection::toclient);118 registerVariable(this->boostFactor_, variableDirection::toclient);119 120 registerVariable(this->maxSpeedFront_, variableDirection::toclient);121 registerVariable(this->maxSpeedBack_, variableDirection::toclient);122 registerVariable(this->maxSpeedLeftRight_, variableDirection::toclient);123 registerVariable(this->maxSpeedUpDown_, variableDirection::toclient);124 125 registerVariable(this->accelerationFront_, variableDirection::toclient);126 registerVariable(this->accelerationBrake_, variableDirection::toclient);127 registerVariable(this->accelerationBack_, variableDirection::toclient);128 registerVariable(this->accelerationLeftRight_, variableDirection::toclient);129 registerVariable(this->accelerationUpDown_, variableDirection::toclient);115 registerVariable(this->shipID_, VariableDirection::ToClient, new NetworkCallback<Engine>(this, &Engine::networkcallback_shipID)); 116 117 registerVariable(this->speedFactor_, VariableDirection::ToClient); 118 registerVariable(this->boostFactor_, VariableDirection::ToClient); 119 120 registerVariable(this->maxSpeedFront_, VariableDirection::ToClient); 121 registerVariable(this->maxSpeedBack_, VariableDirection::ToClient); 122 registerVariable(this->maxSpeedLeftRight_, VariableDirection::ToClient); 123 registerVariable(this->maxSpeedUpDown_, VariableDirection::ToClient); 124 125 registerVariable(this->accelerationFront_, VariableDirection::ToClient); 126 registerVariable(this->accelerationBrake_, VariableDirection::ToClient); 127 registerVariable(this->accelerationBack_, VariableDirection::ToClient); 128 registerVariable(this->accelerationLeftRight_, VariableDirection::ToClient); 129 registerVariable(this->accelerationUpDown_, VariableDirection::ToClient); 130 130 } 131 131 -
code/branches/core4/src/orxonox/objects/items/MultiStateEngine.cc
r3196 r3257 82 82 void MultiStateEngine::registerVariables() 83 83 { 84 registerVariable(this->state_, variableDirection::toserver);84 registerVariable(this->state_, VariableDirection::ToServer); 85 85 } 86 86 … … 91 91 if (this->getShip()->hasLocalController()) 92 92 { 93 this->setObjectMode( objectDirection::bidirectional);93 this->setObjectMode(ObjectDirection::Bidirectional); 94 94 95 95 const Vector3& direction = this->getDirection(); -
code/branches/core4/src/orxonox/objects/pickup/ModifierPickup.cc
r3196 r3257 87 87 if (this->addTo(pawn)) 88 88 { 89 std::map<ModifierType:: Enum, float>::iterator it;89 std::map<ModifierType::Value, float>::iterator it; 90 90 91 91 for (it = this->additiveModifiers_.begin(); it != this->additiveModifiers_.end(); it++) … … 124 124 if (this->removeFrom(pawn)) 125 125 { 126 std::map<ModifierType:: Enum, float>::iterator it;126 std::map<ModifierType::Value, float>::iterator it; 127 127 128 128 for (it = this->additiveModifiers_.begin(); it != this->additiveModifiers_.end(); it++) … … 158 158 @return Returns the additive modifier for type (or 0 if not exists). 159 159 */ 160 float ModifierPickup::getAdditiveModifier(ModifierType:: Enumtype) const161 { 162 std::map<ModifierType:: Enum, float>::const_iterator it = this->additiveModifiers_.find(type);160 float ModifierPickup::getAdditiveModifier(ModifierType::Value type) const 161 { 162 std::map<ModifierType::Value, float>::const_iterator it = this->additiveModifiers_.find(type); 163 163 if (it != this->additiveModifiers_.end()) 164 164 return (*it).second; … … 171 171 @return Returns the multiplicative modifier for type (or 1 if not exists). 172 172 */ 173 float ModifierPickup::getMultiplicativeModifier(ModifierType:: Enumtype) const174 { 175 std::map<ModifierType:: Enum, float>::const_iterator it = this->multiplicativeModifiers_.find(type);173 float ModifierPickup::getMultiplicativeModifier(ModifierType::Value type) const 174 { 175 std::map<ModifierType::Value, float>::const_iterator it = this->multiplicativeModifiers_.find(type); 176 176 if (it != this->multiplicativeModifiers_.end()) 177 177 return (*it).second; … … 184 184 @param value The new additive modifier for type. 185 185 */ 186 void ModifierPickup::setAdditiveModifier(ModifierType:: Enumtype, float value)186 void ModifierPickup::setAdditiveModifier(ModifierType::Value type, float value) 187 187 { 188 188 if (this->additiveModifiers_.find(type) == this->additiveModifiers_.end()) 189 this->additiveModifiers_.insert( std::pair<ModifierType:: Enum, float>(type, value) );189 this->additiveModifiers_.insert( std::pair<ModifierType::Value, float>(type, value) ); 190 190 else 191 191 this->additiveModifiers_[type] = value; … … 196 196 @param value The new multiplicative modifier for type. 197 197 */ 198 void ModifierPickup::setMultiplicativeModifier(ModifierType:: Enumtype, float value)198 void ModifierPickup::setMultiplicativeModifier(ModifierType::Value type, float value) 199 199 { 200 200 if (this->multiplicativeModifiers_.find(type) == this->multiplicativeModifiers_.end()) 201 this->multiplicativeModifiers_.insert( std::pair<ModifierType:: Enum, float>(type, value) );201 this->multiplicativeModifiers_.insert( std::pair<ModifierType::Value, float>(type, value) ); 202 202 else 203 203 this->multiplicativeModifiers_[type] = value; -
code/branches/core4/src/orxonox/objects/pickup/ModifierPickup.h
r3196 r3257 130 130 void timerCallback(Pawn* pawn); //!< Method called when the timer runs out. 131 131 private: 132 float getAdditiveModifier(ModifierType:: Enumtype) const; //!< Get the additive modifier for a given ModifierType.133 float getMultiplicativeModifier(ModifierType:: Enumtype) const; //!< Get the multiplicative modifier for a given ModifierType.134 void setAdditiveModifier(ModifierType:: Enumtype, float value); //!< Set the additive modifier for a given ModifierType.135 void setMultiplicativeModifier(ModifierType:: Enumtype, float value); //!< Set the multiplicative modifier for a given ModifierType132 float getAdditiveModifier(ModifierType::Value type) const; //!< Get the additive modifier for a given ModifierType. 133 float getMultiplicativeModifier(ModifierType::Value type) const; //!< Get the multiplicative modifier for a given ModifierType. 134 void setAdditiveModifier(ModifierType::Value type, float value); //!< Set the additive modifier for a given ModifierType. 135 void setMultiplicativeModifier(ModifierType::Value type, float value); //!< Set the multiplicative modifier for a given ModifierType 136 136 137 std::map<ModifierType:: Enum, float> additiveModifiers_; //!< Map of additive modifiers, indexed by ModifierType.138 std::map<ModifierType:: Enum, float> multiplicativeModifiers_; //!< Map of multiplicative modifiers, indexed by ModifierType.137 std::map<ModifierType::Value, float> additiveModifiers_; //!< Map of additive modifiers, indexed by ModifierType. 138 std::map<ModifierType::Value, float> multiplicativeModifiers_; //!< Map of multiplicative modifiers, indexed by ModifierType. 139 139 140 140 float duration_; //!< Duration of this pickup's effect (0 for unlimited). -
code/branches/core4/src/orxonox/objects/pickup/ModifierType.h
r3196 r3257 44 44 @brief Gives the available types for modifiers. 45 45 */ 46 enum Enum46 enum Value 47 47 { 48 48 Unknown = 0, -
code/branches/core4/src/orxonox/objects/pickup/PickupCollection.cc
r3239 r3257 42 42 { 43 43 typedef std::pair<std::multimap<std::string, BaseItem*>::iterator, std::multimap<std::string, BaseItem*>::iterator> item_range; 44 typedef std::pair<std::multimap<ModifierType:: Enum, float>::iterator, std::multimap<ModifierType::Enum, float>::iterator> modifier_range;44 typedef std::pair<std::multimap<ModifierType::Value, float>::iterator, std::multimap<ModifierType::Value, float>::iterator> modifier_range; 45 45 46 46 //! Constructor … … 200 200 @param value Value for the modifier. 201 201 */ 202 void PickupCollection::addAdditiveModifier(ModifierType:: Enumtype, float value)203 { 204 this->additiveModifiers_.insert( std::pair<ModifierType:: Enum, float>(type, value) );202 void PickupCollection::addAdditiveModifier(ModifierType::Value type, float value) 203 { 204 this->additiveModifiers_.insert( std::pair<ModifierType::Value, float>(type, value) ); 205 205 } 206 206 /** … … 209 209 @return Returns the sum of the additive modifiers of the type. 210 210 */ 211 float PickupCollection::getAdditiveModifier(ModifierType:: Enumtype)211 float PickupCollection::getAdditiveModifier(ModifierType::Value type) 212 212 { 213 213 float v = 0.0f; … … 215 215 modifier_range range = this->additiveModifiers_.equal_range(type); 216 216 217 for (std::multimap<ModifierType:: Enum, float>::iterator it = range.first; it != range.second && it != this->additiveModifiers_.end(); it++)217 for (std::multimap<ModifierType::Value, float>::iterator it = range.first; it != range.second && it != this->additiveModifiers_.end(); it++) 218 218 { 219 219 v += (*it).second; … … 227 227 @param value Value which is to be removed. 228 228 */ 229 void PickupCollection::removeAdditiveModifier(ModifierType:: Enumtype, float value)229 void PickupCollection::removeAdditiveModifier(ModifierType::Value type, float value) 230 230 { 231 231 modifier_range range = this->additiveModifiers_.equal_range(type); 232 for (std::multimap<ModifierType:: Enum, float>::iterator it = range.first; it != range.second && it != this->additiveModifiers_.end(); it++)232 for (std::multimap<ModifierType::Value, float>::iterator it = range.first; it != range.second && it != this->additiveModifiers_.end(); it++) 233 233 { 234 234 if ((*it).second == value) … … 244 244 @param value Value for the modifier. 245 245 */ 246 void PickupCollection::addMultiplicativeModifier(ModifierType:: Enumtype, float value)247 { 248 this->multiplicativeModifiers_.insert( std::pair<ModifierType:: Enum, float>(type, value) );246 void PickupCollection::addMultiplicativeModifier(ModifierType::Value type, float value) 247 { 248 this->multiplicativeModifiers_.insert( std::pair<ModifierType::Value, float>(type, value) ); 249 249 } 250 250 /** … … 253 253 @return Returns the product of the multiplicative modifiers of the type. 254 254 */ 255 float PickupCollection::getMultiplicativeModifier(ModifierType:: Enumtype)255 float PickupCollection::getMultiplicativeModifier(ModifierType::Value type) 256 256 { 257 257 float v = 1.0f; 258 258 259 259 modifier_range range = this->multiplicativeModifiers_.equal_range(type); 260 for (std::multimap<ModifierType:: Enum, float>::iterator it = range.first; it != range.second && it != this->multiplicativeModifiers_.end(); it++)260 for (std::multimap<ModifierType::Value, float>::iterator it = range.first; it != range.second && it != this->multiplicativeModifiers_.end(); it++) 261 261 { 262 262 v *= (*it).second; … … 270 270 @param value Value which is to be removed. 271 271 */ 272 void PickupCollection::removeMultiplicativeModifier(ModifierType:: Enumtype, float value)272 void PickupCollection::removeMultiplicativeModifier(ModifierType::Value type, float value) 273 273 { 274 274 modifier_range range = this->multiplicativeModifiers_.equal_range(type); 275 for (std::multimap<ModifierType:: Enum, float>::iterator it = range.first; it != range.second && it != this->multiplicativeModifiers_.end(); it++)275 for (std::multimap<ModifierType::Value, float>::iterator it = range.first; it != range.second && it != this->multiplicativeModifiers_.end(); it++) 276 276 { 277 277 if ((*it).second == value) … … 289 289 @return Returns the value after being processed. 290 290 */ 291 float PickupCollection::processModifiers(ModifierType:: Enumtype, float inputValue, bool addBeforeMultiplication)291 float PickupCollection::processModifiers(ModifierType::Value type, float inputValue, bool addBeforeMultiplication) 292 292 { 293 293 float outputValue = inputValue; … … 310 310 @return Returns the value after being processed. 311 311 */ 312 Vector3 PickupCollection::processModifiers(ModifierType:: Enumtype, Vector3 inputValue, bool addBeforeMultiplication)312 Vector3 PickupCollection::processModifiers(ModifierType::Value type, Vector3 inputValue, bool addBeforeMultiplication) 313 313 { 314 314 Vector3 outputValue = inputValue; -
code/branches/core4/src/orxonox/objects/pickup/PickupCollection.h
r3196 r3257 67 67 void useItem(UsableItem* item); //!< Use a usable item. 68 68 69 void addAdditiveModifier(ModifierType:: Enumtype, float value); //!< Add an additive modifier.70 void addMultiplicativeModifier(ModifierType:: Enumtype, float value); //!< Add a multiplicative modifier.69 void addAdditiveModifier(ModifierType::Value type, float value); //!< Add an additive modifier. 70 void addMultiplicativeModifier(ModifierType::Value type, float value); //!< Add a multiplicative modifier. 71 71 72 float getAdditiveModifier(ModifierType:: Enumtype); //!< Get total additive modifier.73 float getMultiplicativeModifier(ModifierType:: Enumtype); //!< Get total multiplicative modifier.72 float getAdditiveModifier(ModifierType::Value type); //!< Get total additive modifier. 73 float getMultiplicativeModifier(ModifierType::Value type); //!< Get total multiplicative modifier. 74 74 75 void removeAdditiveModifier(ModifierType:: Enumtype, float value); //!< Remove an additive modifier.76 void removeMultiplicativeModifier(ModifierType:: Enumtype, float value); //!< Remove a multiplicative modifier.75 void removeAdditiveModifier(ModifierType::Value type, float value); //!< Remove an additive modifier. 76 void removeMultiplicativeModifier(ModifierType::Value type, float value); //!< Remove a multiplicative modifier. 77 77 78 float processModifiers(ModifierType:: Enumtype, float inputValue, bool addBeforeMultiplication = false); //!< Apply the modifiers to a float.79 Vector3 processModifiers(ModifierType:: Enumtype, Vector3 inputValue, bool addBeforeMultiplication = false); //!< Apply the modifiers to a Vector3.78 float processModifiers(ModifierType::Value type, float inputValue, bool addBeforeMultiplication = false); //!< Apply the modifiers to a float. 79 Vector3 processModifiers(ModifierType::Value type, Vector3 inputValue, bool addBeforeMultiplication = false); //!< Apply the modifiers to a Vector3. 80 80 81 81 /** … … 113 113 bool bBlockRemovals_; //!< Whether to block direct removals through remove(). 114 114 115 std::multimap<ModifierType:: Enum, float> additiveModifiers_; //!< Contains additive modifiers (indexed by ModifierType).116 std::multimap<ModifierType:: Enum, float> multiplicativeModifiers_; //!< Contains multiplicative modifiers (indexed by ModifierType).115 std::multimap<ModifierType::Value, float> additiveModifiers_; //!< Contains additive modifiers (indexed by ModifierType). 116 std::multimap<ModifierType::Value, float> multiplicativeModifiers_; //!< Contains multiplicative modifiers (indexed by ModifierType). 117 117 118 118 std::multimap<std::string, BaseItem*> items_; //!< Map of items in the collection (indexed by pickupIdentifier of the items). -
code/branches/core4/src/orxonox/objects/quest/GlobalQuest.cc
r3196 r3257 147 147 return false; 148 148 } 149 return (this->isInactive(player) && !(this->status_ == questStatus::completed || this->status_ == questStatus::failed));149 return (this->isInactive(player) && !(this->status_ == QuestStatus::Completed || this->status_ == QuestStatus::Failed)); 150 150 } 151 151 … … 189 189 Throws an Exception if player is NULL. 190 190 */ 191 questStatus::EnumGlobalQuest::getStatus(const PlayerInfo* player) const191 QuestStatus::Value GlobalQuest::getStatus(const PlayerInfo* player) const 192 192 { 193 193 if(player == NULL) //!< We don't want NULL-Pointers! … … 203 203 } 204 204 205 return questStatus::inactive;205 return QuestStatus::Inactive; 206 206 } 207 207 … … 217 217 Returns false if player is NULL. 218 218 */ 219 bool GlobalQuest::setStatus(PlayerInfo* player, const questStatus::Enum& status)219 bool GlobalQuest::setStatus(PlayerInfo* player, const QuestStatus::Value & status) 220 220 { 221 221 if(player == NULL) //!< We don't want NULL-Pointers! -
code/branches/core4/src/orxonox/objects/quest/GlobalQuest.h
r3196 r3257 97 97 virtual bool isCompletable(const PlayerInfo* player) const; //!< Checks whether the Quest can be completed. 98 98 99 virtual questStatus::EnumgetStatus(const PlayerInfo* player) const; //!< Returns the status of the Quest for a specific player.99 virtual QuestStatus::Value getStatus(const PlayerInfo* player) const; //!< Returns the status of the Quest for a specific player. 100 100 101 virtual bool setStatus(PlayerInfo* player, const questStatus::Enum& status); //!< Sets the status for a specific player.101 virtual bool setStatus(PlayerInfo* player, const QuestStatus::Value & status); //!< Sets the status for a specific player. 102 102 103 103 private: 104 104 std::set<PlayerInfo*> players_; //!< The set of players which possess this Quest. 105 questStatus::Enumstatus_; //!< The status of this Quest.105 QuestStatus::Value status_; //!< The status of this Quest. 106 106 std::list<QuestEffect*> rewards_; //!< Reward QuestEffects only invoked on the player completing the Quest. 107 107 -
code/branches/core4/src/orxonox/objects/quest/LocalQuest.cc
r3196 r3257 176 176 Throws an Exception if player is NULL. 177 177 */ 178 questStatus::EnumLocalQuest::getStatus(const PlayerInfo* player) const178 QuestStatus::Value LocalQuest::getStatus(const PlayerInfo* player) const 179 179 { 180 180 if(player == NULL) //!< No player has no defined status. … … 183 183 } 184 184 185 std::map<const PlayerInfo*, questStatus::Enum>::const_iterator it = this->playerStatus_.find(player);185 std::map<const PlayerInfo*, QuestStatus::Value>::const_iterator it = this->playerStatus_.find(player); 186 186 if (it != this->playerStatus_.end()) //!< If there is a player in the map. 187 187 { … … 189 189 } 190 190 191 return questStatus::inactive; //!< If the player is not yet in the map, that means the status of the quest form him is 'inactive'.191 return QuestStatus::Inactive; //!< If the player is not yet in the map, that means the status of the quest form him is 'inactive'. 192 192 } 193 193 … … 203 203 Returns false if player is NULL. 204 204 */ 205 bool LocalQuest::setStatus(PlayerInfo* player, const questStatus::Enum& status)205 bool LocalQuest::setStatus(PlayerInfo* player, const QuestStatus::Value & status) 206 206 { 207 207 if(player == NULL) //!< We can't set a status for no player. -
code/branches/core4/src/orxonox/objects/quest/LocalQuest.h
r3196 r3257 91 91 virtual bool isCompletable(const PlayerInfo* player) const; //!< Checks whether the Quest can be completed. 92 92 93 virtual questStatus::EnumgetStatus(const PlayerInfo* player) const; //!< Returns the status of the Quest for a specific player.94 virtual bool setStatus(PlayerInfo* player, const questStatus::Enum& status); //!< Sets the status for a specific player.93 virtual QuestStatus::Value getStatus(const PlayerInfo* player) const; //!< Returns the status of the Quest for a specific player. 94 virtual bool setStatus(PlayerInfo* player, const QuestStatus::Value & status); //!< Sets the status for a specific player. 95 95 96 96 private: 97 std::map<const PlayerInfo*, questStatus::Enum> playerStatus_; //!< List of the status for each player, with the Player-pointer as key.97 std::map<const PlayerInfo*, QuestStatus::Value> playerStatus_; //!< List of the status for each player, with the Player-pointer as key. 98 98 99 99 }; -
code/branches/core4/src/orxonox/objects/quest/Quest.cc
r3196 r3257 302 302 bool Quest::isInactive(const PlayerInfo* player) const 303 303 { 304 return this->getStatus(player) == questStatus::inactive;304 return this->getStatus(player) == QuestStatus::Inactive; 305 305 } 306 306 … … 318 318 { 319 319 320 return this->getStatus(player) == questStatus::active;320 return this->getStatus(player) == QuestStatus::Active; 321 321 } 322 322 … … 333 333 bool Quest::isFailed(const PlayerInfo* player) const 334 334 { 335 return this->getStatus(player) == questStatus::failed;335 return this->getStatus(player) == QuestStatus::Failed; 336 336 } 337 337 … … 348 348 bool Quest::isCompleted(const PlayerInfo* player) const 349 349 { 350 return this->getStatus(player) == questStatus::completed;350 return this->getStatus(player) == QuestStatus::Completed; 351 351 } 352 352 … … 362 362 { 363 363 QuestListener::advertiseStatusChange(this->listeners_, "fail"); //!< Tells the QuestListeners, that the status has changed to failed. 364 this->setStatus(player, questStatus::failed);364 this->setStatus(player, QuestStatus::Failed); 365 365 366 366 COUT(4) << "Quest {" << this->getId() << "} is failed for player: " << player << " ." <<std::endl; … … 381 381 { 382 382 QuestListener::advertiseStatusChange(this->listeners_, "complete"); //!< Tells the QuestListeners, that the status has changed to completed. 383 this->setStatus(player, questStatus::completed);383 this->setStatus(player, QuestStatus::Completed); 384 384 385 385 COUT(4) << "Quest {" << this->getId() << "} is completed for player: " << player << " ." <<std::endl; … … 409 409 QuestListener::advertiseStatusChange(this->listeners_, "start"); //!< Tells the QuestListeners, that the status has changed to active. 410 410 411 this->setStatus(player, questStatus::active);411 this->setStatus(player, QuestStatus::Active); 412 412 413 413 this->getDescription()->sendAddQuestNotification(); -
code/branches/core4/src/orxonox/objects/quest/Quest.h
r3196 r3257 43 43 namespace orxonox 44 44 { 45 namespace questStatus45 namespace QuestStatus 46 46 { 47 48 47 //!Different states of a Quest. 49 enum Enum48 enum Value 50 49 { 51 inactive,52 active,53 failed,54 completed50 Inactive, 51 Active, 52 Failed, 53 Completed 55 54 }; 56 57 55 } 58 56 … … 133 131 { return this->completeEffects_; } 134 132 135 virtual questStatus::EnumgetStatus(const PlayerInfo* player) const = 0; //!< Returns the status of the Quest for a specific player.136 virtual bool setStatus(PlayerInfo* player, const questStatus::Enum& status) = 0; //!< Changes the status for a specific player.133 virtual QuestStatus::Value getStatus(const PlayerInfo* player) const = 0; //!< Returns the status of the Quest for a specific player. 134 virtual bool setStatus(PlayerInfo* player, const QuestStatus::Value & status) = 0; //!< Changes the status for a specific player. 137 135 138 136 private: -
code/branches/core4/src/orxonox/objects/quest/QuestEffectBeacon.cc
r3196 r3257 53 53 RegisterObject(QuestEffectBeacon); 54 54 55 this->status_ = QuestEffectBeaconStatus:: active;55 this->status_ = QuestEffectBeaconStatus::Active; 56 56 this->times_ = INFINITE_TIME; 57 57 } … … 162 162 if(activate) 163 163 { 164 this->status_ = QuestEffectBeaconStatus:: active;165 return true; 166 } 167 168 this->status_ = QuestEffectBeaconStatus:: inactive;164 this->status_ = QuestEffectBeaconStatus::Active; 165 return true; 166 } 167 168 this->status_ = QuestEffectBeaconStatus::Inactive; 169 169 return true; 170 170 } … … 190 190 if(this->getTimes() == 0) //!< Set the QuestEffectBeacon to inactive when the number of times it can be executed is reduced to 0. 191 191 { 192 this->status_ = QuestEffectBeaconStatus:: inactive;192 this->status_ = QuestEffectBeaconStatus::Inactive; 193 193 } 194 194 -
code/branches/core4/src/orxonox/objects/quest/QuestEffectBeacon.h
r3196 r3257 44 44 namespace QuestEffectBeaconStatus 45 45 { 46 47 46 //! The status of the beacon, can be either active or inactive. 48 enum Enum47 enum Value 49 48 { 50 inactive,51 active49 Inactive, 50 Active 52 51 }; 53 54 52 } 55 53 … … 98 96 */ 99 97 inline bool isActive(void) 100 { return this->status_ == QuestEffectBeaconStatus:: active; }98 { return this->status_ == QuestEffectBeaconStatus::Active; } 101 99 102 100 bool setActive(bool activate); //!< Set the status of the QuestEffectBeacon. … … 117 115 std::list<QuestEffect*> effects_; //!< The list of QuestEffects to be invoked on the executing player. 118 116 int times_; //!< Number of times the beacon can be exectued. 119 QuestEffectBeaconStatus:: Enumstatus_; //!< The status of the QUestEffectBeacon, Can be eighter active or inactive.117 QuestEffectBeaconStatus::Value status_; //!< The status of the QUestEffectBeacon, Can be eighter active or inactive. 120 118 121 119 bool setTimes(const int & n); //!< Set the number of times the QuestEffectBeacon can be executed. -
code/branches/core4/src/orxonox/objects/quest/QuestHint.cc
r3196 r3257 95 95 96 96 //! Find the player. 97 std::map<const PlayerInfo*, questHintStatus::Enum>::const_iterator it = this->playerStatus_.find(player);97 std::map<const PlayerInfo*, QuestHintStatus::Value>::const_iterator it = this->playerStatus_.find(player); 98 98 if (it != this->playerStatus_.end()) //!< If the player is in the map. 99 99 { … … 101 101 } 102 102 103 return questStatus::inactive;103 return QuestStatus::Inactive; 104 104 } 105 105 … … 118 118 if(!(this->isActive(player))) //!< If the hint is already active, activation is pointless. 119 119 { 120 this->playerStatus_[player] = questHintStatus::active;120 this->playerStatus_[player] = QuestHintStatus::Active; 121 121 122 122 this->getDescription()->sendAddHintNotification(); -
code/branches/core4/src/orxonox/objects/quest/QuestHint.h
r3196 r3257 42 42 namespace orxonox 43 43 { 44 namespace questHintStatus44 namespace QuestHintStatus 45 45 { 46 47 46 //! The state of the hint. 48 enum Enum47 enum Value 49 48 { 50 inactive,51 active49 Inactive, 50 Active 52 51 }; 53 54 52 } 55 53 … … 91 89 private: 92 90 Quest* quest_; //!< The Quest the QuestHint belongs to. 93 std::map<const PlayerInfo*, questHintStatus::Enum> playerStatus_; //!< List of the states for each player, with the Player-pointer as key.91 std::map<const PlayerInfo*, QuestHintStatus::Value> playerStatus_; //!< List of the states for each player, with the Player-pointer as key. 94 92 95 93 }; -
code/branches/core4/src/orxonox/objects/quest/QuestListener.cc
r3196 r3257 51 51 RegisterObject(QuestListener); 52 52 53 this->mode_ = questListenerMode::all;53 this->mode_ = QuestListenerMode::All; 54 54 this->quest_ = NULL; 55 55 } … … 132 132 if(mode == "all") 133 133 { 134 this->mode_ = questListenerMode::all;134 this->mode_ = QuestListenerMode::All; 135 135 } 136 136 else if(mode == "start") 137 137 { 138 this->mode_ = questListenerMode::start;138 this->mode_ = QuestListenerMode::Start; 139 139 } 140 140 else if(mode == "fail") 141 141 { 142 this->mode_ = questListenerMode::fail;142 this->mode_ = QuestListenerMode::Fail; 143 143 } 144 144 else if(mode == "complete") 145 145 { 146 this->mode_ = questListenerMode::complete;146 this->mode_ = QuestListenerMode::Complete; 147 147 } 148 148 else 149 149 { 150 150 COUT(2) << "QuestListener with invalid mode '" << mode << "' created. Mode set to 'all'." << std::endl; 151 this->mode_ = questListenerMode::all;151 this->mode_ = QuestListenerMode::All; 152 152 return false; 153 153 } … … 164 164 std::string QuestListener::getMode(void) 165 165 { 166 if(this->mode_ == questListenerMode::all)166 if(this->mode_ == QuestListenerMode::All) 167 167 { 168 168 return "all"; 169 169 } 170 else if(this->mode_ == questListenerMode::start)170 else if(this->mode_ == QuestListenerMode::Start) 171 171 { 172 172 return "start"; 173 173 } 174 else if(this->mode_ == questListenerMode::fail)174 else if(this->mode_ == QuestListenerMode::Fail) 175 175 { 176 176 return "fail"; 177 177 } 178 else if(this->mode_ == questListenerMode::complete)178 else if(this->mode_ == QuestListenerMode::Complete) 179 179 { 180 180 return "complete"; -
code/branches/core4/src/orxonox/objects/quest/QuestListener.h
r3196 r3257 43 43 namespace orxonox 44 44 { 45 namespace questListenerMode45 namespace QuestListenerMode 46 46 { 47 48 47 //! The mode of the QuestListener. 49 enum Enum48 enum Value 50 49 { 51 all,52 start,53 fail,54 complete50 All, 51 Start, 52 Fail, 53 Complete 55 54 }; 56 57 55 } 58 56 … … 93 91 94 92 private: 95 questListenerMode::Enummode_; //!< The mode of the QuestListener.93 QuestListenerMode::Value mode_; //!< The mode of the QuestListener. 96 94 Quest* quest_; //!< A pointer to the Quest the QuestListener is reacting to. 97 95 -
code/branches/core4/src/orxonox/objects/weaponsystem/projectiles/ParticleProjectile.cc
r3196 r3257 44 44 if (GameMode::showsGraphics()) 45 45 { 46 this->particles_ = new ParticleInterface(this->getScene()->getSceneManager(), "Orxonox/shot3_small", LODParticle:: normal);46 this->particles_ = new ParticleInterface(this->getScene()->getSceneManager(), "Orxonox/shot3_small", LODParticle::Normal); 47 47 this->attachOgreObject(this->particles_->getParticleSystem()); 48 48 this->particles_->setKeepParticlesInLocalSpace(0); -
code/branches/core4/src/orxonox/objects/worldentities/Backlight.cc
r3196 r3257 108 108 void Backlight::registerVariables() 109 109 { 110 registerVariable(this->width_, variableDirection::toclient, new NetworkCallback<Backlight>(this, &Backlight::update_width));111 registerVariable(this->lifetime_, variableDirection::toclient, new NetworkCallback<Backlight>(this, &Backlight::update_lifetime));112 registerVariable(this->length_, variableDirection::toclient, new NetworkCallback<Backlight>(this, &Backlight::update_length));113 registerVariable(this->maxelements_, variableDirection::toclient, new NetworkCallback<Backlight>(this, &Backlight::update_maxelements));114 registerVariable(this->trailmaterial_, variableDirection::toclient, new NetworkCallback<Backlight>(this, &Backlight::update_trailmaterial));110 registerVariable(this->width_, VariableDirection::ToClient, new NetworkCallback<Backlight>(this, &Backlight::update_width)); 111 registerVariable(this->lifetime_, VariableDirection::ToClient, new NetworkCallback<Backlight>(this, &Backlight::update_lifetime)); 112 registerVariable(this->length_, VariableDirection::ToClient, new NetworkCallback<Backlight>(this, &Backlight::update_length)); 113 registerVariable(this->maxelements_, VariableDirection::ToClient, new NetworkCallback<Backlight>(this, &Backlight::update_maxelements)); 114 registerVariable(this->trailmaterial_, VariableDirection::ToClient, new NetworkCallback<Backlight>(this, &Backlight::update_trailmaterial)); 115 115 } 116 116 -
code/branches/core4/src/orxonox/objects/worldentities/BigExplosion.cc
r3239 r3257 56 56 */ 57 57 this->bStop_ = false; 58 this->LOD_ = LODParticle:: normal;58 this->LOD_ = LODParticle::Normal; 59 59 60 60 /* this->stf_ = "setTimeFactor "; … … 307 307 void BigExplosion::registerVariables() 308 308 { 309 registerVariable((int&)(this->LOD_), variableDirection::toclient, new NetworkCallback<BigExplosion>(this, &BigExplosion::LODchanged));310 registerVariable(this->bStop_, variableDirection::toclient, new NetworkCallback<BigExplosion>(this, &BigExplosion::checkStop));309 registerVariable((int&)(this->LOD_), VariableDirection::ToClient, new NetworkCallback<BigExplosion>(this, &BigExplosion::LODchanged)); 310 registerVariable(this->bStop_, VariableDirection::ToClient, new NetworkCallback<BigExplosion>(this, &BigExplosion::checkStop)); 311 311 } 312 312 -
code/branches/core4/src/orxonox/objects/worldentities/BigExplosion.h
r3196 r3257 47 47 void registerVariables(); 48 48 49 inline void setLOD(LODParticle:: LODlevel)49 inline void setLOD(LODParticle::Value level) 50 50 { this->LOD_ = level; this->LODchanged(); } 51 inline LODParticle:: LODgetLOD() const51 inline LODParticle::Value getLOD() const 52 52 { return this->LOD_; } 53 53 … … 98 98 ParticleInterface* explosionFire_; 99 99 100 LODParticle:: LODLOD_;100 LODParticle::Value LOD_; 101 101 Timer<BigExplosion> destroyTimer_; 102 102 }; -
code/branches/core4/src/orxonox/objects/worldentities/Billboard.cc
r3196 r3257 69 69 void Billboard::registerVariables() 70 70 { 71 registerVariable(this->material_, variableDirection::toclient, new NetworkCallback<Billboard>(this, &Billboard::changedMaterial));72 registerVariable(this->colour_, variableDirection::toclient, new NetworkCallback<Billboard>(this, &Billboard::changedColour));73 // registerVariable(this->rotation_, variableDirection::toclient, new NetworkCallback<Billboard>(this, &Billboard::changedRotation));71 registerVariable(this->material_, VariableDirection::ToClient, new NetworkCallback<Billboard>(this, &Billboard::changedMaterial)); 72 registerVariable(this->colour_, VariableDirection::ToClient, new NetworkCallback<Billboard>(this, &Billboard::changedColour)); 73 // registerVariable(this->rotation_, VariableDirection::ToClient, new NetworkCallback<Billboard>(this, &Billboard::changedRotation)); 74 74 } 75 75 -
code/branches/core4/src/orxonox/objects/worldentities/BlinkingBillboard.cc
r3196 r3257 66 66 void BlinkingBillboard::registerVariables() 67 67 { 68 // registerVariable(this->amplitude_, variableDirection::toclient);69 // registerVariable(this->frequency_, variableDirection::toclient);70 // registerVariable(this->phase_, variableDirection::toclient);68 // registerVariable(this->amplitude_, VariableDirection::ToClient); 69 // registerVariable(this->frequency_, VariableDirection::ToClient); 70 // registerVariable(this->phase_, VariableDirection::ToClient); 71 71 } 72 72 -
code/branches/core4/src/orxonox/objects/worldentities/ControllableEntity.cc
r3239 r3257 79 79 80 80 this->setConfigValues(); 81 this->setPriority( priority::very_high );81 this->setPriority( Priority::VeryHigh ); 82 82 this->registerVariables(); 83 83 } … … 238 238 { 239 239 this->client_overwrite_ = this->server_overwrite_; 240 this->setObjectMode( objectDirection::bidirectional);240 this->setObjectMode(ObjectDirection::Bidirectional); 241 241 } 242 242 } … … 254 254 this->bHasLocalController_ = false; 255 255 this->bHasHumanController_ = false; 256 this->setObjectMode( objectDirection::toclient);256 this->setObjectMode(ObjectDirection::ToClient); 257 257 258 258 this->changedPlayer(); … … 368 368 void ControllableEntity::registerVariables() 369 369 { 370 registerVariable(this->cameraPositionTemplate_, variableDirection::toclient);371 registerVariable(this->hudtemplate_, variableDirection::toclient);372 373 registerVariable(this->server_position_, variableDirection::toclient, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processServerPosition));374 registerVariable(this->server_linear_velocity_, variableDirection::toclient, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processServerLinearVelocity));375 registerVariable(this->server_orientation_, variableDirection::toclient, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processServerOrientation));376 registerVariable(this->server_angular_velocity_, variableDirection::toclient, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processServerAngularVelocity));377 378 registerVariable(this->server_overwrite_, variableDirection::toclient, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processOverwrite));379 registerVariable(this->client_overwrite_, variableDirection::toserver);380 381 registerVariable(this->client_position_, variableDirection::toserver, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processClientPosition));382 registerVariable(this->client_linear_velocity_, variableDirection::toserver, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processClientLinearVelocity));383 registerVariable(this->client_orientation_, variableDirection::toserver, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processClientOrientation));384 registerVariable(this->client_angular_velocity_, variableDirection::toserver, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processClientAngularVelocity));370 registerVariable(this->cameraPositionTemplate_, VariableDirection::ToClient); 371 registerVariable(this->hudtemplate_, VariableDirection::ToClient); 372 373 registerVariable(this->server_position_, VariableDirection::ToClient, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processServerPosition)); 374 registerVariable(this->server_linear_velocity_, VariableDirection::ToClient, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processServerLinearVelocity)); 375 registerVariable(this->server_orientation_, VariableDirection::ToClient, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processServerOrientation)); 376 registerVariable(this->server_angular_velocity_, VariableDirection::ToClient, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processServerAngularVelocity)); 377 378 registerVariable(this->server_overwrite_, VariableDirection::ToClient, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processOverwrite)); 379 registerVariable(this->client_overwrite_, VariableDirection::ToServer); 380 381 registerVariable(this->client_position_, VariableDirection::ToServer, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processClientPosition)); 382 registerVariable(this->client_linear_velocity_, VariableDirection::ToServer, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processClientLinearVelocity)); 383 registerVariable(this->client_orientation_, VariableDirection::ToServer, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processClientOrientation)); 384 registerVariable(this->client_angular_velocity_, VariableDirection::ToServer, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::processClientAngularVelocity)); 385 385 386 386 387 registerVariable(this->playerID_, variableDirection::toclient, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::networkcallback_changedplayerID));387 registerVariable(this->playerID_, VariableDirection::ToClient, new NetworkCallback<ControllableEntity>(this, &ControllableEntity::networkcallback_changedplayerID)); 388 388 } 389 389 -
code/branches/core4/src/orxonox/objects/worldentities/ExplosionChunk.cc
r3196 r3257 48 48 49 49 this->bStop_ = false; 50 this->LOD_ = LODParticle:: normal;50 this->LOD_ = LODParticle::Normal; 51 51 52 52 if ( GameMode::showsGraphics() ) … … 104 104 void ExplosionChunk::registerVariables() 105 105 { 106 registerVariable((int&)(this->LOD_), variableDirection::toclient, new NetworkCallback<ExplosionChunk>(this, &ExplosionChunk::LODchanged));107 registerVariable(this->bStop_, variableDirection::toclient, new NetworkCallback<ExplosionChunk>(this, &ExplosionChunk::checkStop));106 registerVariable((int&)(this->LOD_), VariableDirection::ToClient, new NetworkCallback<ExplosionChunk>(this, &ExplosionChunk::LODchanged)); 107 registerVariable(this->bStop_, VariableDirection::ToClient, new NetworkCallback<ExplosionChunk>(this, &ExplosionChunk::checkStop)); 108 108 } 109 109 -
code/branches/core4/src/orxonox/objects/worldentities/ExplosionChunk.h
r3196 r3257 46 46 void registerVariables(); 47 47 48 inline void setLOD(LODParticle:: LODlevel)48 inline void setLOD(LODParticle::Value level) 49 49 { this->LOD_ = level; this->LODchanged(); } 50 inline LODParticle:: LODgetLOD() const50 inline LODParticle::Value getLOD() const 51 51 { return this->LOD_; } 52 52 … … 60 60 ParticleInterface* fire_; 61 61 ParticleInterface* smoke_; 62 LODParticle:: LODLOD_;62 LODParticle::Value LOD_; 63 63 Timer<ExplosionChunk> destroyTimer_; 64 64 }; -
code/branches/core4/src/orxonox/objects/worldentities/FadingBillboard.cc
r3196 r3257 64 64 void FadingBillboard::registerVariables() 65 65 { 66 registerVariable(this->turnontime_, variableDirection::toclient);67 registerVariable(this->turnofftime_, variableDirection::toclient);66 registerVariable(this->turnontime_, VariableDirection::ToClient); 67 registerVariable(this->turnofftime_, VariableDirection::ToClient); 68 68 } 69 69 -
code/branches/core4/src/orxonox/objects/worldentities/Light.cc
r3250 r3257 45 45 46 46 // Be sure we don't do bad conversions 47 BOOST_STATIC_ASSERT((int)Ogre::Light::LT_POINT == (int)Light:: LT_POINT);48 BOOST_STATIC_ASSERT((int)Ogre::Light::LT_DIRECTIONAL == (int)Light:: LT_DIRECTIONAL);49 BOOST_STATIC_ASSERT((int)Ogre::Light::LT_SPOTLIGHT == (int)Light:: LT_SPOTLIGHT);47 BOOST_STATIC_ASSERT((int)Ogre::Light::LT_POINT == (int)Light::Point); 48 BOOST_STATIC_ASSERT((int)Ogre::Light::LT_DIRECTIONAL == (int)Light::Directional); 49 BOOST_STATIC_ASSERT((int)Ogre::Light::LT_SPOTLIGHT == (int)Light::Spotlight); 50 50 51 51 Light::Light(BaseObject* creator) : StaticEntity(creator) … … 56 56 this->diffuse_ = ColourValue::White; 57 57 this->specular_ = ColourValue::White; 58 this->type_ = Light:: LT_POINT;58 this->type_ = Light::Point; 59 59 this->attenuation_ = Vector4(100000, 1, 0, 0); 60 60 this->spotlightRange_ = Vector3(40.0f, 30.0f, 1.0f); … … 106 106 void Light::registerVariables() 107 107 { 108 registerVariable((int&)this->type_, variableDirection::toclient, new NetworkCallback<Light>(this, &Light::updateType));109 registerVariable(this->diffuse_, variableDirection::toclient, new NetworkCallback<Light>(this, &Light::updateDiffuseColour));110 registerVariable(this->specular_, variableDirection::toclient, new NetworkCallback<Light>(this, &Light::updateSpecularColour));111 registerVariable(this->attenuation_, variableDirection::toclient, new NetworkCallback<Light>(this, &Light::updateAttenuation));112 registerVariable(this->spotlightRange_, variableDirection::toclient, new NetworkCallback<Light>(this, &Light::updateSpotlightRange));108 registerVariable((int&)this->type_, VariableDirection::ToClient, new NetworkCallback<Light>(this, &Light::updateType)); 109 registerVariable(this->diffuse_, VariableDirection::ToClient, new NetworkCallback<Light>(this, &Light::updateDiffuseColour)); 110 registerVariable(this->specular_, VariableDirection::ToClient, new NetworkCallback<Light>(this, &Light::updateSpecularColour)); 111 registerVariable(this->attenuation_, VariableDirection::ToClient, new NetworkCallback<Light>(this, &Light::updateAttenuation)); 112 registerVariable(this->spotlightRange_, VariableDirection::ToClient, new NetworkCallback<Light>(this, &Light::updateSpotlightRange)); 113 113 } 114 114 … … 127 127 void Light::updateAttenuation() 128 128 { 129 if (this->light_ && this->type_ != Light:: LT_DIRECTIONAL)129 if (this->light_ && this->type_ != Light::Directional) 130 130 this->light_->setAttenuation(this->attenuation_.x, this->attenuation_.y, this->attenuation_.z, this->attenuation_.w); 131 131 } … … 133 133 void Light::updateSpotlightRange() 134 134 { 135 if (this->light_ && this->type_ == Light:: LT_SPOTLIGHT)135 if (this->light_ && this->type_ == Light::Spotlight) 136 136 this->light_->setSpotlightRange(Degree(this->spotlightRange_.x), Degree(this->spotlightRange_.y), this->spotlightRange_.z); 137 137 } … … 140 140 { 141 141 if (type == "point") 142 this->setType(Light:: LT_POINT);142 this->setType(Light::Point); 143 143 else if (type == "directional") 144 this->setType(Light:: LT_DIRECTIONAL);144 this->setType(Light::Directional); 145 145 else if (type == "spotlight") 146 this->setType(Light:: LT_SPOTLIGHT);146 this->setType(Light::Spotlight); 147 147 else 148 this->setType(Light:: LT_POINT);148 this->setType(Light::Point); 149 149 } 150 150 … … 153 153 switch (this->type_) 154 154 { 155 case Light:: LT_DIRECTIONAL:155 case Light::Directional: 156 156 return "directional"; 157 case Light:: LT_SPOTLIGHT:157 case Light::Spotlight: 158 158 return "spotlight"; 159 case Light:: LT_POINT:159 case Light::Point: 160 160 default: 161 161 return "point"; … … 169 169 this->light_->setType(static_cast<Ogre::Light::LightTypes>(this->type_)); 170 170 171 if (this->type_ != Light:: LT_DIRECTIONAL)171 if (this->type_ != Light::Directional) 172 172 this->updateAttenuation(); 173 if (this->type_ == Light:: LT_SPOTLIGHT)173 if (this->type_ == Light::Spotlight) 174 174 this->updateSpotlightRange(); 175 175 } -
code/branches/core4/src/orxonox/objects/worldentities/Light.h
r3196 r3257 45 45 { 46 46 /// Point light sources give off light equally in all directions, so require only position not direction 47 LT_POINT,47 Point, 48 48 /// Directional lights simulate parallel light beams from a distant source, hence have direction but no position 49 LT_DIRECTIONAL,49 Directional, 50 50 /// Spotlights simulate a cone of light from a source so require position and direction, plus extra values for falloff 51 LT_SPOTLIGHT51 Spotlight 52 52 }; 53 53 -
code/branches/core4/src/orxonox/objects/worldentities/Model.cc
r3196 r3257 65 65 void Model::registerVariables() 66 66 { 67 registerVariable(this->meshSrc_, variableDirection::toclient, new NetworkCallback<Model>(this, &Model::changedMesh));68 registerVariable(this->bCastShadows_, variableDirection::toclient, new NetworkCallback<Model>(this, &Model::changedShadows));67 registerVariable(this->meshSrc_, VariableDirection::ToClient, new NetworkCallback<Model>(this, &Model::changedMesh)); 68 registerVariable(this->bCastShadows_, VariableDirection::ToClient, new NetworkCallback<Model>(this, &Model::changedShadows)); 69 69 } 70 70 -
code/branches/core4/src/orxonox/objects/worldentities/MovableEntity.cc
r3239 r3257 52 52 this->continuousResynchroTimer_ = 0; 53 53 54 this->setPriority( priority::low);54 this->setPriority(Priority::Low); 55 55 56 56 this->registerVariables(); … … 89 89 void MovableEntity::registerVariables() 90 90 { 91 registerVariable(this->linearVelocity_, variableDirection::toclient, new NetworkCallback<MovableEntity>(this, &MovableEntity::processLinearVelocity));92 registerVariable(this->angularVelocity_, variableDirection::toclient, new NetworkCallback<MovableEntity>(this, &MovableEntity::processAngularVelocity));91 registerVariable(this->linearVelocity_, VariableDirection::ToClient, new NetworkCallback<MovableEntity>(this, &MovableEntity::processLinearVelocity)); 92 registerVariable(this->angularVelocity_, VariableDirection::ToClient, new NetworkCallback<MovableEntity>(this, &MovableEntity::processAngularVelocity)); 93 93 94 registerVariable(this->overwrite_position_, variableDirection::toclient, new NetworkCallback<MovableEntity>(this, &MovableEntity::overwritePosition));95 registerVariable(this->overwrite_orientation_, variableDirection::toclient, new NetworkCallback<MovableEntity>(this, &MovableEntity::overwriteOrientation));94 registerVariable(this->overwrite_position_, VariableDirection::ToClient, new NetworkCallback<MovableEntity>(this, &MovableEntity::overwritePosition)); 95 registerVariable(this->overwrite_orientation_, VariableDirection::ToClient, new NetworkCallback<MovableEntity>(this, &MovableEntity::overwriteOrientation)); 96 96 } 97 97 -
code/branches/core4/src/orxonox/objects/worldentities/ParticleEmitter.cc
r3196 r3257 53 53 54 54 this->particles_ = 0; 55 this->LOD_ = LODParticle:: normal;55 this->LOD_ = LODParticle::Normal; 56 56 57 57 this->registerVariables(); … … 71 71 SUPER(ParticleEmitter, XMLPort, xmlelement, mode); 72 72 73 XMLPortParam(ParticleEmitter, "lod", setLODxml, getLODxml, xmlelement, mode).defaultValues(LODParticle:: normal);73 XMLPortParam(ParticleEmitter, "lod", setLODxml, getLODxml, xmlelement, mode).defaultValues(LODParticle::Normal); 74 74 XMLPortParam(ParticleEmitter, "source", setSource, getSource, xmlelement, mode); 75 75 } … … 77 77 void ParticleEmitter::registerVariables() 78 78 { 79 registerVariable(this->source_, variableDirection::toclient, new NetworkCallback<ParticleEmitter>(this, &ParticleEmitter::sourceChanged));80 registerVariable((int&)(this->LOD_), variableDirection::toclient, new NetworkCallback<ParticleEmitter>(this, &ParticleEmitter::LODchanged));79 registerVariable(this->source_, VariableDirection::ToClient, new NetworkCallback<ParticleEmitter>(this, &ParticleEmitter::sourceChanged)); 80 registerVariable((int&)(this->LOD_), VariableDirection::ToClient, new NetworkCallback<ParticleEmitter>(this, &ParticleEmitter::LODchanged)); 81 81 } 82 82 -
code/branches/core4/src/orxonox/objects/worldentities/ParticleEmitter.h
r3196 r3257 57 57 { return this->source_; } 58 58 59 inline void setLOD(LODParticle:: LODlevel)59 inline void setLOD(LODParticle::Value level) 60 60 { this->LOD_ = level; this->LODchanged(); } 61 inline LODParticle:: LODgetLOD() const61 inline LODParticle::Value getLOD() const 62 62 { return this->LOD_; } 63 63 64 64 protected: 65 65 inline void setLODxml(unsigned int level) 66 { this->LOD_ = (LODParticle:: LOD)level; this->LODchanged(); }66 { this->LOD_ = (LODParticle::Value)level; this->LODchanged(); } 67 67 inline unsigned int getLODxml() const 68 68 { return (unsigned int)this->LOD_; } … … 73 73 ParticleInterface* particles_; 74 74 std::string source_; 75 LODParticle:: LODLOD_;75 LODParticle::Value LOD_; 76 76 }; 77 77 } -
code/branches/core4/src/orxonox/objects/worldentities/Planet.cc
r3196 r3257 157 157 void Planet::registerVariables() 158 158 { 159 registerVariable(this->atmosphere_, variableDirection::toclient);160 registerVariable(this->meshSrc_, variableDirection::toclient, new NetworkCallback<Planet>(this, &Planet::changedMesh));161 registerVariable(this->bCastShadows_, variableDirection::toclient, new NetworkCallback<Planet>(this, &Planet::changedShadows));162 registerVariable(this->atmosphereSize, variableDirection::toclient);163 registerVariable(this->imageSize, variableDirection::toclient);159 registerVariable(this->atmosphere_, VariableDirection::ToClient); 160 registerVariable(this->meshSrc_, VariableDirection::ToClient, new NetworkCallback<Planet>(this, &Planet::changedMesh)); 161 registerVariable(this->bCastShadows_, VariableDirection::ToClient, new NetworkCallback<Planet>(this, &Planet::changedShadows)); 162 registerVariable(this->atmosphereSize, VariableDirection::ToClient); 163 registerVariable(this->imageSize, VariableDirection::ToClient); 164 164 } 165 165 -
code/branches/core4/src/orxonox/objects/worldentities/PongBall.cc
r3239 r3257 72 72 registerVariable( this->relMercyOffset_ ); 73 73 registerVariable( this->batID_[0] ); 74 registerVariable( this->batID_[1], variableDirection::toclient, new NetworkCallback<PongBall>( this, &PongBall::applyBats) );74 registerVariable( this->batID_[1], VariableDirection::ToClient, new NetworkCallback<PongBall>( this, &PongBall::applyBats) ); 75 75 } 76 76 -
code/branches/core4/src/orxonox/objects/worldentities/StaticEntity.cc
r3196 r3257 43 43 RegisterObject(StaticEntity); 44 44 45 this->setPriority( priority::very_low);45 this->setPriority(Priority::VeryLow); 46 46 47 47 this->registerVariables(); … … 54 54 void StaticEntity::registerVariables() 55 55 { 56 registerVariable(this->getPosition(), variableDirection::toclient, new NetworkCallback<StaticEntity>(this, &StaticEntity::positionChanged));57 registerVariable(this->getOrientation(), variableDirection::toclient, new NetworkCallback<StaticEntity>(this, &StaticEntity::orientationChanged));56 registerVariable(this->getPosition(), VariableDirection::ToClient, new NetworkCallback<StaticEntity>(this, &StaticEntity::positionChanged)); 57 registerVariable(this->getOrientation(), VariableDirection::ToClient, new NetworkCallback<StaticEntity>(this, &StaticEntity::orientationChanged)); 58 58 } 59 59 -
code/branches/core4/src/orxonox/objects/worldentities/WorldEntity.cc
r3239 r3257 175 175 void WorldEntity::registerVariables() 176 176 { 177 registerVariable(this->mainStateName_, variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::changedMainState));178 179 registerVariable(this->bActive_, variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::changedActivity));180 registerVariable(this->bVisible_, variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::changedVisibility));181 182 registerVariable(this->getScale3D(), variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::scaleChanged));177 registerVariable(this->mainStateName_, VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::changedMainState)); 178 179 registerVariable(this->bActive_, VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::changedActivity)); 180 registerVariable(this->bVisible_, VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::changedVisibility)); 181 182 registerVariable(this->getScale3D(), VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::scaleChanged)); 183 183 184 184 // Physics stuff 185 registerVariable(this->mass_, variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::massChanged));186 registerVariable(this->restitution_, variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::restitutionChanged));187 registerVariable(this->angularFactor_, variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::angularFactorChanged));188 registerVariable(this->linearDamping_, variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::linearDampingChanged));189 registerVariable(this->angularDamping_, variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::angularDampingChanged));190 registerVariable(this->friction_, variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::frictionChanged));185 registerVariable(this->mass_, VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::massChanged)); 186 registerVariable(this->restitution_, VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::restitutionChanged)); 187 registerVariable(this->angularFactor_, VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::angularFactorChanged)); 188 registerVariable(this->linearDamping_, VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::linearDampingChanged)); 189 registerVariable(this->angularDamping_, VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::angularDampingChanged)); 190 registerVariable(this->friction_, VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::frictionChanged)); 191 191 registerVariable(this->bCollisionCallbackActive_, 192 variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::collisionCallbackActivityChanged));192 VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::collisionCallbackActivityChanged)); 193 193 registerVariable(this->bCollisionResponseActive_, 194 variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::collisionResponseActivityChanged));194 VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::collisionResponseActivityChanged)); 195 195 registerVariable((int&)this->collisionTypeSynchronised_, 196 variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::collisionTypeChanged));196 VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::collisionTypeChanged)); 197 197 registerVariable(this->bPhysicsActiveSynchronised_, 198 variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::physicsActivityChanged));198 VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::physicsActivityChanged)); 199 199 200 200 // Attach to parent if necessary 201 registerVariable(this->parentID_, variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::networkcallback_parentChanged));201 registerVariable(this->parentID_, VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::networkcallback_parentChanged)); 202 202 } 203 203 -
code/branches/core4/src/orxonox/objects/worldentities/pawns/Pawn.cc
r3214 r3257 117 117 void Pawn::registerVariables() 118 118 { 119 registerVariable(this->bAlive_, variableDirection::toclient);120 registerVariable(this->health_, variableDirection::toclient);121 registerVariable(this->initialHealth_, variableDirection::toclient);122 registerVariable(this->bReload_, variableDirection::toserver);119 registerVariable(this->bAlive_, VariableDirection::ToClient); 120 registerVariable(this->health_, VariableDirection::ToClient); 121 registerVariable(this->initialHealth_, VariableDirection::ToClient); 122 registerVariable(this->bReload_, VariableDirection::ToServer); 123 123 } 124 124 -
code/branches/core4/src/orxonox/objects/worldentities/pawns/SpaceShip.cc
r3239 r3257 90 90 void SpaceShip::registerVariables() 91 91 { 92 registerVariable(this->primaryThrust_, variableDirection::toclient);93 registerVariable(this->auxilaryThrust_, variableDirection::toclient);94 registerVariable(this->rotationThrust_, variableDirection::toclient);92 registerVariable(this->primaryThrust_, VariableDirection::ToClient); 93 registerVariable(this->auxilaryThrust_, VariableDirection::ToClient); 94 registerVariable(this->rotationThrust_, VariableDirection::ToClient); 95 95 } 96 96 -
code/branches/core4/src/orxonox/objects/worldentities/pawns/Spectator.cc
r3196 r3257 93 93 void Spectator::registerVariables() 94 94 { 95 registerVariable(this->bGreetingFlareVisible_, variableDirection::toclient, new NetworkCallback<Spectator>(this, &Spectator::changedFlareVisibility));96 registerVariable(this->bGreeting_, variableDirection::toserver, new NetworkCallback<Spectator>(this, &Spectator::changedGreeting));95 registerVariable(this->bGreetingFlareVisible_, VariableDirection::ToClient, new NetworkCallback<Spectator>(this, &Spectator::changedFlareVisibility)); 96 registerVariable(this->bGreeting_, VariableDirection::ToServer, new NetworkCallback<Spectator>(this, &Spectator::changedGreeting)); 97 97 } 98 98 … … 145 145 ControllableEntity::setPlayer(player); 146 146 147 // this->setObjectMode( objectDirection::toclient);147 // this->setObjectMode(ObjectDirection::ToClient); 148 148 } 149 149 -
code/branches/core4/src/orxonox/objects/worldentities/pawns/TeamBaseMatchBase.cc
r3239 r3257 43 43 RegisterObject(TeamBaseMatchBase); 44 44 45 this->state_ = BaseState:: uncontrolled;45 this->state_ = BaseState::Uncontrolled; 46 46 47 47 TeamBaseMatch* gametype = orxonox_cast<TeamBaseMatch*>(this->getGametype()); … … 66 66 switch (this->state_) 67 67 { 68 case BaseState:: controlTeam1:68 case BaseState::ControlTeam1: 69 69 colour = gametype->getTeamColour(0); 70 70 break; 71 case BaseState:: controlTeam2:71 case BaseState::ControlTeam2: 72 72 colour = gametype->getTeamColour(1); 73 73 break; 74 case BaseState:: uncontrolled:74 case BaseState::Uncontrolled: 75 75 default: 76 76 colour = ColourValue(0.5, 0.5, 0.5, 1.0); -
code/branches/core4/src/orxonox/objects/worldentities/pawns/TeamBaseMatchBase.h
r3196 r3257 38 38 namespace BaseState 39 39 { 40 enum Enum40 enum Value 41 41 { 42 uncontrolled,43 controlTeam1,44 controlTeam2,42 Uncontrolled, 43 ControlTeam1, 44 ControlTeam2, 45 45 }; 46 46 } … … 58 58 59 59 // Set the state of a base to whatever the argument of the function is 60 void setState(BaseState:: Enumstate)60 void setState(BaseState::Value state) 61 61 { 62 62 this->state_ = state; … … 66 66 67 67 // Get the state of a base as a return value 68 BaseState:: EnumgetState() const68 BaseState::Value getState() const 69 69 { 70 70 return this->state_; … … 75 75 void changeTeamColour(); 76 76 77 BaseState:: Enumstate_;77 BaseState::Value state_; 78 78 }; 79 79 } -
code/branches/core4/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc
r3239 r3257 141 141 } 142 142 143 bool DistanceTrigger::isTriggered(TriggerMode mode)143 bool DistanceTrigger::isTriggered(TriggerMode::Value mode) 144 144 { 145 145 if (Trigger::isTriggered(mode)) -
code/branches/core4/src/orxonox/objects/worldentities/triggers/DistanceTrigger.h
r3196 r3257 59 59 60 60 protected: 61 virtual bool isTriggered(TriggerMode mode);61 virtual bool isTriggered(TriggerMode::Value mode); 62 62 virtual void notifyMaskUpdate() {} 63 63 -
code/branches/core4/src/orxonox/objects/worldentities/triggers/EventTrigger.cc
r3196 r3257 54 54 } 55 55 56 bool EventTrigger::isTriggered(TriggerMode mode)56 bool EventTrigger::isTriggered(TriggerMode::Value mode) 57 57 { 58 58 if (Trigger::isTriggered(mode)) -
code/branches/core4/src/orxonox/objects/worldentities/triggers/EventTrigger.h
r3196 r3257 47 47 48 48 protected: 49 virtual bool isTriggered(TriggerMode mode);49 virtual bool isTriggered(TriggerMode::Value mode); 50 50 51 51 private: -
code/branches/core4/src/orxonox/objects/worldentities/triggers/PlayerTrigger.h
r3196 r3257 70 70 71 71 protected: 72 virtual bool isTriggered(TriggerMode mode) = 0;72 virtual bool isTriggered(TriggerMode::Value mode) = 0; 73 73 74 74 /** -
code/branches/core4/src/orxonox/objects/worldentities/triggers/Trigger.cc
r3196 r3257 46 46 RegisterObject(Trigger); 47 47 48 this->mode_ = T M_EventTriggerAND;48 this->mode_ = TriggerMode::EventTriggerAND; 49 49 50 50 this->bFirstTick_ = true; … … 163 163 } 164 164 165 bool Trigger::isTriggered(TriggerMode mode)165 bool Trigger::isTriggered(TriggerMode::Value mode) 166 166 { 167 167 // if (this->bUpdating_) … … 175 175 switch (mode) 176 176 { 177 case T M_EventTriggerAND:177 case TriggerMode::EventTriggerAND: 178 178 returnval = checkAnd(); 179 179 break; 180 case T M_EventTriggerOR:180 case TriggerMode::EventTriggerOR: 181 181 returnval = checkOr(); 182 182 break; 183 case T M_EventTriggerXOR:183 case TriggerMode::EventTriggerXOR: 184 184 returnval = checkXor(); 185 185 break; … … 270 270 { 271 271 if (modeName == "and") 272 this->setMode(T M_EventTriggerAND);272 this->setMode(TriggerMode::EventTriggerAND); 273 273 else if (modeName == "or") 274 this->setMode(T M_EventTriggerOR);274 this->setMode(TriggerMode::EventTriggerOR); 275 275 else if (modeName == "xor") 276 this->setMode(T M_EventTriggerXOR);276 this->setMode(TriggerMode::EventTriggerXOR); 277 277 } 278 278 279 279 std::string Trigger::getModeString() const 280 280 { 281 if (this->mode_ == T M_EventTriggerAND)281 if (this->mode_ == TriggerMode::EventTriggerAND) 282 282 return std::string("and"); 283 else if (this->mode_ == T M_EventTriggerOR)283 else if (this->mode_ == TriggerMode::EventTriggerOR) 284 284 return std::string("or"); 285 else if (this->mode_ == T M_EventTriggerXOR)285 else if (this->mode_ == TriggerMode::EventTriggerXOR) 286 286 return std::string("xor"); 287 287 else -
code/branches/core4/src/orxonox/objects/worldentities/triggers/Trigger.h
r3196 r3257 41 41 namespace orxonox 42 42 { 43 enumTriggerMode43 namespace TriggerMode 44 44 { 45 TM_EventTriggerAND, 46 TM_EventTriggerOR, 47 TM_EventTriggerXOR, 48 }; 45 enum Value 46 { 47 EventTriggerAND, 48 EventTriggerOR, 49 EventTriggerXOR, 50 }; 51 } 49 52 50 53 class _OrxonoxExport Trigger : public StaticEntity, public Tickable … … 64 67 65 68 void setMode(const std::string& modeName); 66 inline void setMode(TriggerMode mode)69 inline void setMode(TriggerMode::Value mode) 67 70 { this->mode_ = mode; } 68 inline TriggerMode getMode() const71 inline TriggerMode::Value getMode() const 69 72 { return mode_; } 70 73 … … 103 106 protected: 104 107 inline bool isTriggered() { return this->isTriggered(this->mode_); } 105 virtual bool isTriggered(TriggerMode mode);108 virtual bool isTriggered(TriggerMode::Value mode); 106 109 virtual void triggered(bool bIsTriggered); 107 110 … … 118 121 bool bFirstTick_; 119 122 120 TriggerMode mode_;123 TriggerMode::Value mode_; 121 124 bool bInvertMode_; 122 125 bool bSwitch_; -
code/branches/core4/src/orxonox/tools/ParticleInterface.cc
r3196 r3257 51 51 ParticleInterface* ParticleInterface::currentParticleInterface_s = 0; 52 52 53 ParticleInterface::ParticleInterface(Ogre::SceneManager* scenemanager, const std::string& templateName, LODParticle:: LODdetaillevel)53 ParticleInterface::ParticleInterface(Ogre::SceneManager* scenemanager, const std::string& templateName, LODParticle::Value detaillevel) 54 54 { 55 55 RegisterObject(ParticleInterface); -
code/branches/core4/src/orxonox/tools/ParticleInterface.h
r3196 r3257 45 45 { 46 46 public: 47 ParticleInterface(Ogre::SceneManager* scenemanager, const std::string& templateName, LODParticle:: LODdetaillevel);47 ParticleInterface(Ogre::SceneManager* scenemanager, const std::string& templateName, LODParticle::Value detaillevel); 48 48 virtual ~ParticleInterface(); 49 49 -
code/branches/core4/src/util/MultiType.cc
r3196 r3257 41 41 @param type The type 42 42 */ 43 bool MultiType::convert(MT_Type type)43 bool MultiType::convert(MT_Type::Value type) 44 44 { 45 45 switch (type) 46 46 { 47 case MT_ null:47 case MT_Type::Null: 48 48 this->reset(); return true; 49 case MT_ char:49 case MT_Type::Char: 50 50 return this->convert<char>(); break; 51 case MT_ uchar:51 case MT_Type::UnsignedChar: 52 52 return this->convert<unsigned char>(); break; 53 case MT_ short:53 case MT_Type::Short: 54 54 return this->convert<short>(); break; 55 case MT_ ushort:55 case MT_Type::UnsignedShort: 56 56 return this->convert<unsigned short>(); break; 57 case MT_ int:57 case MT_Type::Int: 58 58 return this->convert<int>(); break; 59 case MT_ uint:59 case MT_Type::UnsignedInt: 60 60 return this->convert<unsigned int>(); break; 61 case MT_ long:61 case MT_Type::Long: 62 62 return this->convert<long>(); break; 63 case MT_ ulong:63 case MT_Type::UnsignedLong: 64 64 return this->convert<unsigned long>(); break; 65 case MT_ longlong:65 case MT_Type::LongLong: 66 66 return this->convert<long long>(); break; 67 case MT_ ulonglong:67 case MT_Type::UnsignedLongLong: 68 68 return this->convert<unsigned long long>(); break; 69 case MT_ float:69 case MT_Type::Float: 70 70 return this->convert<float>(); break; 71 case MT_ double:71 case MT_Type::Double: 72 72 return this->convert<double>(); break; 73 case MT_ longdouble:73 case MT_Type::LongDouble: 74 74 return this->convert<long double>(); break; 75 case MT_ bool:75 case MT_Type::Bool: 76 76 return this->convert<bool>(); break; 77 case MT_ void:77 case MT_Type::VoidPointer: 78 78 return this->convert<void*>(); break; 79 case MT_ string:79 case MT_Type::String: 80 80 return this->convert<std::string>(); break; 81 case MT_ vector2:81 case MT_Type::Vector2: 82 82 return this->convert<orxonox::Vector2>(); break; 83 case MT_ vector3:83 case MT_Type::Vector3: 84 84 return this->convert<orxonox::Vector3>(); break; 85 case MT_ vector4:85 case MT_Type::Vector4: 86 86 return this->convert<orxonox::Vector4>(); break; 87 case MT_ colourvalue:87 case MT_Type::ColourValue: 88 88 return this->convert<orxonox::ColourValue>(); break; 89 case MT_ quaternion:89 case MT_Type::Quaternion: 90 90 return this->convert<orxonox::Quaternion>(); break; 91 case MT_ radian:91 case MT_Type::Radian: 92 92 return this->convert<orxonox::Radian>(); break; 93 case MT_ degree:93 case MT_Type::Degree: 94 94 return this->convert<orxonox::Degree>(); break; 95 95 default: … … 104 104 std::string MultiType::getTypename() const 105 105 { 106 MT_Type type = (this->value_) ? this->value_->type_ : MT_null;106 MT_Type::Value type = (this->value_) ? this->value_->type_ : MT_Type::Null; 107 107 108 108 switch (type) 109 109 { 110 case MT_ char:110 case MT_Type::Char: 111 111 return "char"; break; 112 case MT_ uchar:112 case MT_Type::UnsignedChar: 113 113 return "unsigned char"; break; 114 case MT_ short:114 case MT_Type::Short: 115 115 return "short"; break; 116 case MT_ ushort:116 case MT_Type::UnsignedShort: 117 117 return "unsigned short"; break; 118 case MT_ int:118 case MT_Type::Int: 119 119 return "int"; break; 120 case MT_ uint:120 case MT_Type::UnsignedInt: 121 121 return "unsigned int"; break; 122 case MT_ long:122 case MT_Type::Long: 123 123 return "long"; break; 124 case MT_ ulong:124 case MT_Type::UnsignedLong: 125 125 return "unsigned long"; break; 126 case MT_ longlong:126 case MT_Type::LongLong: 127 127 return "long long"; break; 128 case MT_ ulonglong:128 case MT_Type::UnsignedLongLong: 129 129 return "unsigned long long"; break; 130 case MT_ float:130 case MT_Type::Float: 131 131 return "float"; break; 132 case MT_ double:132 case MT_Type::Double: 133 133 return "double"; break; 134 case MT_ longdouble:134 case MT_Type::LongDouble: 135 135 return "long double"; break; 136 case MT_ bool:136 case MT_Type::Bool: 137 137 return "bool"; break; 138 case MT_ void:138 case MT_Type::VoidPointer: 139 139 return "void*"; break; 140 case MT_ string:140 case MT_Type::String: 141 141 return "std::string"; break; 142 case MT_ vector2:142 case MT_Type::Vector2: 143 143 return "orxonox::Vector2"; break; 144 case MT_ vector3:144 case MT_Type::Vector3: 145 145 return "orxonox::Vector3"; break; 146 case MT_ vector4:146 case MT_Type::Vector4: 147 147 return "orxonox::Vector4"; break; 148 case MT_ colourvalue:148 case MT_Type::ColourValue: 149 149 return "orxonox::ColourValue"; break; 150 case MT_ quaternion:150 case MT_Type::Quaternion: 151 151 return "orxonox::Quaternion"; break; 152 case MT_ radian:152 case MT_Type::Radian: 153 153 return "orxonox::Radian"; break; 154 case MT_ degree:154 case MT_Type::Degree: 155 155 return "orxonox::Degree"; break; 156 156 default: … … 159 159 } 160 160 161 MultiType::operator char() const { return (this->value_) ? ((this->value_->type_ == MT_ char) ? (static_cast<MT_Value<char> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */162 MultiType::operator unsigned char() const { return (this->value_) ? ((this->value_->type_ == MT_ uchar) ? (static_cast<MT_Value<unsigned char> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */163 MultiType::operator short() const { return (this->value_) ? ((this->value_->type_ == MT_ short) ? (static_cast<MT_Value<short> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */164 MultiType::operator unsigned short() const { return (this->value_) ? ((this->value_->type_ == MT_ ushort) ? (static_cast<MT_Value<unsigned short> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */165 MultiType::operator int() const { return (this->value_) ? ((this->value_->type_ == MT_ int) ? (static_cast<MT_Value<int> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */166 MultiType::operator unsigned int() const { return (this->value_) ? ((this->value_->type_ == MT_ uint) ? (static_cast<MT_Value<unsigned int> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */167 MultiType::operator long() const { return (this->value_) ? ((this->value_->type_ == MT_ long) ? (static_cast<MT_Value<long> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */168 MultiType::operator unsigned long() const { return (this->value_) ? ((this->value_->type_ == MT_ ulong) ? (static_cast<MT_Value<unsigned long> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */169 MultiType::operator long long() const { return (this->value_) ? ((this->value_->type_ == MT_ longlong) ? (static_cast<MT_Value<long long> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */170 MultiType::operator unsigned long long() const { return (this->value_) ? ((this->value_->type_ == MT_ ulonglong) ? (static_cast<MT_Value<unsigned long long> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */171 MultiType::operator float() const { return (this->value_) ? ((this->value_->type_ == MT_ float) ? (static_cast<MT_Value<float> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */172 MultiType::operator double() const { return (this->value_) ? ((this->value_->type_ == MT_ double) ? (static_cast<MT_Value<double> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */173 MultiType::operator long double() const { return (this->value_) ? ((this->value_->type_ == MT_ longdouble) ? (static_cast<MT_Value<long double> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */174 MultiType::operator bool() const { return (this->value_) ? ((this->value_->type_ == MT_ bool) ? (static_cast<MT_Value<bool> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */175 MultiType::operator void*() const { return (this->value_) ? ((this->value_->type_ == MT_ void) ? (static_cast<MT_Value<void*> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */176 MultiType::operator std::string() const { return (this->value_) ? ((this->value_->type_ == MT_ string) ? (static_cast<MT_Value<std::string> *>(this->value_))->value_ : (*this->value_)) : NilValue<std::string>(); } /** @brief Returns the current value, converted to the requested type. */177 MultiType::operator orxonox::Vector2() const { return (this->value_) ? ((this->value_->type_ == MT_ vector2) ? (static_cast<MT_Value<orxonox::Vector2> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Vector2>(); } /** @brief Returns the current value, converted to the requested type. */178 MultiType::operator orxonox::Vector3() const { return (this->value_) ? ((this->value_->type_ == MT_ vector3) ? (static_cast<MT_Value<orxonox::Vector3> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Vector3>(); } /** @brief Returns the current value, converted to the requested type. */179 MultiType::operator orxonox::Vector4() const { return (this->value_) ? ((this->value_->type_ == MT_ vector4) ? (static_cast<MT_Value<orxonox::Vector4> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Vector4>(); } /** @brief Returns the current value, converted to the requested type. */180 MultiType::operator orxonox::ColourValue() const { return (this->value_) ? ((this->value_->type_ == MT_ colourvalue) ? (static_cast<MT_Value<orxonox::ColourValue>*>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::ColourValue>(); } /** @brief Returns the current value, converted to the requested type. */181 MultiType::operator orxonox::Quaternion() const { return (this->value_) ? ((this->value_->type_ == MT_ quaternion) ? (static_cast<MT_Value<orxonox::Quaternion> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Quaternion>(); } /** @brief Returns the current value, converted to the requested type. */182 MultiType::operator orxonox::Radian() const { return (this->value_) ? ((this->value_->type_ == MT_ radian) ? (static_cast<MT_Value<orxonox::Radian> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Radian>(); } /** @brief Returns the current value, converted to the requested type. */183 MultiType::operator orxonox::Degree() const { return (this->value_) ? ((this->value_->type_ == MT_ degree) ? (static_cast<MT_Value<orxonox::Degree> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Degree>(); } /** @brief Returns the current value, converted to the requested type. */184 185 template <> void MultiType::createNewValueContainer(const char& value) { this->value_ = new MT_Value<char> (value, MT_ char); } /** @brief Creates a new value container for the given type. */186 template <> void MultiType::createNewValueContainer(const unsigned char& value) { this->value_ = new MT_Value<unsigned char> (value, MT_ uchar); } /** @brief Creates a new value container for the given type. */187 template <> void MultiType::createNewValueContainer(const short& value) { this->value_ = new MT_Value<short> (value, MT_ short); } /** @brief Creates a new value container for the given type. */188 template <> void MultiType::createNewValueContainer(const unsigned short& value) { this->value_ = new MT_Value<unsigned short> (value, MT_ ushort); } /** @brief Creates a new value container for the given type. */189 template <> void MultiType::createNewValueContainer(const int& value) { this->value_ = new MT_Value<int> (value, MT_ int); } /** @brief Creates a new value container for the given type. */190 template <> void MultiType::createNewValueContainer(const unsigned int& value) { this->value_ = new MT_Value<unsigned int> (value, MT_ uint); } /** @brief Creates a new value container for the given type. */191 template <> void MultiType::createNewValueContainer(const long& value) { this->value_ = new MT_Value<long> (value, MT_ long); } /** @brief Creates a new value container for the given type. */192 template <> void MultiType::createNewValueContainer(const unsigned long& value) { this->value_ = new MT_Value<unsigned long> (value, MT_ ulong); } /** @brief Creates a new value container for the given type. */193 template <> void MultiType::createNewValueContainer(const long long& value) { this->value_ = new MT_Value<long long> (value, MT_ longlong); } /** @brief Creates a new value container for the given type. */194 template <> void MultiType::createNewValueContainer(const unsigned long long& value) { this->value_ = new MT_Value<unsigned long long> (value, MT_ ulonglong); } /** @brief Creates a new value container for the given type. */195 template <> void MultiType::createNewValueContainer(const float& value) { this->value_ = new MT_Value<float> (value, MT_ float); } /** @brief Creates a new value container for the given type. */196 template <> void MultiType::createNewValueContainer(const double& value) { this->value_ = new MT_Value<double> (value, MT_ double); } /** @brief Creates a new value container for the given type. */197 template <> void MultiType::createNewValueContainer(const long double& value) { this->value_ = new MT_Value<long double> (value, MT_ longdouble); } /** @brief Creates a new value container for the given type. */198 template <> void MultiType::createNewValueContainer(const bool& value) { this->value_ = new MT_Value<bool> (value, MT_ bool); } /** @brief Creates a new value container for the given type. */199 template <> void MultiType::createNewValueContainer( void* const& value) { this->value_ = new MT_Value<void*> (value, MT_ void); } /** @brief Creates a new value container for the given type. */200 template <> void MultiType::createNewValueContainer(const std::string& value) { this->value_ = new MT_Value<std::string> (value, MT_ string); } /** @brief Creates a new value container for the given type. */201 template <> void MultiType::createNewValueContainer(const orxonox::Vector2& value) { this->value_ = new MT_Value<orxonox::Vector2> (value, MT_ vector2); } /** @brief Creates a new value container for the given type. */202 template <> void MultiType::createNewValueContainer(const orxonox::Vector3& value) { this->value_ = new MT_Value<orxonox::Vector3> (value, MT_ vector3); } /** @brief Creates a new value container for the given type. */203 template <> void MultiType::createNewValueContainer(const orxonox::Vector4& value) { this->value_ = new MT_Value<orxonox::Vector4> (value, MT_ vector4); } /** @brief Creates a new value container for the given type. */204 template <> void MultiType::createNewValueContainer(const orxonox::ColourValue& value) { this->value_ = new MT_Value<orxonox::ColourValue>(value, MT_ colourvalue); } /** @brief Creates a new value container for the given type. */205 template <> void MultiType::createNewValueContainer(const orxonox::Quaternion& value) { this->value_ = new MT_Value<orxonox::Quaternion> (value, MT_ quaternion); } /** @brief Creates a new value container for the given type. */206 template <> void MultiType::createNewValueContainer(const orxonox::Radian& value) { this->value_ = new MT_Value<orxonox::Radian> (value, MT_ radian); } /** @brief Creates a new value container for the given type. */207 template <> void MultiType::createNewValueContainer(const orxonox::Degree& value) { this->value_ = new MT_Value<orxonox::Degree> (value, MT_ degree); } /** @brief Creates a new value container for the given type. */161 MultiType::operator char() const { return (this->value_) ? ((this->value_->type_ == MT_Type::Char ) ? (static_cast<MT_Value<char> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */ 162 MultiType::operator unsigned char() const { return (this->value_) ? ((this->value_->type_ == MT_Type::UnsignedChar ) ? (static_cast<MT_Value<unsigned char> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */ 163 MultiType::operator short() const { return (this->value_) ? ((this->value_->type_ == MT_Type::Short ) ? (static_cast<MT_Value<short> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */ 164 MultiType::operator unsigned short() const { return (this->value_) ? ((this->value_->type_ == MT_Type::UnsignedShort ) ? (static_cast<MT_Value<unsigned short> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */ 165 MultiType::operator int() const { return (this->value_) ? ((this->value_->type_ == MT_Type::Int ) ? (static_cast<MT_Value<int> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */ 166 MultiType::operator unsigned int() const { return (this->value_) ? ((this->value_->type_ == MT_Type::UnsignedInt ) ? (static_cast<MT_Value<unsigned int> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */ 167 MultiType::operator long() const { return (this->value_) ? ((this->value_->type_ == MT_Type::Long ) ? (static_cast<MT_Value<long> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */ 168 MultiType::operator unsigned long() const { return (this->value_) ? ((this->value_->type_ == MT_Type::UnsignedLong ) ? (static_cast<MT_Value<unsigned long> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */ 169 MultiType::operator long long() const { return (this->value_) ? ((this->value_->type_ == MT_Type::LongLong ) ? (static_cast<MT_Value<long long> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */ 170 MultiType::operator unsigned long long() const { return (this->value_) ? ((this->value_->type_ == MT_Type::UnsignedLongLong) ? (static_cast<MT_Value<unsigned long long> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */ 171 MultiType::operator float() const { return (this->value_) ? ((this->value_->type_ == MT_Type::Float ) ? (static_cast<MT_Value<float> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */ 172 MultiType::operator double() const { return (this->value_) ? ((this->value_->type_ == MT_Type::Double ) ? (static_cast<MT_Value<double> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */ 173 MultiType::operator long double() const { return (this->value_) ? ((this->value_->type_ == MT_Type::LongDouble ) ? (static_cast<MT_Value<long double> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */ 174 MultiType::operator bool() const { return (this->value_) ? ((this->value_->type_ == MT_Type::Bool ) ? (static_cast<MT_Value<bool> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */ 175 MultiType::operator void*() const { return (this->value_) ? ((this->value_->type_ == MT_Type::VoidPointer ) ? (static_cast<MT_Value<void*> *>(this->value_))->value_ : (*this->value_)) : 0; } /** @brief Returns the current value, converted to the requested type. */ 176 MultiType::operator std::string() const { return (this->value_) ? ((this->value_->type_ == MT_Type::String ) ? (static_cast<MT_Value<std::string> *>(this->value_))->value_ : (*this->value_)) : NilValue<std::string>(); } /** @brief Returns the current value, converted to the requested type. */ 177 MultiType::operator orxonox::Vector2() const { return (this->value_) ? ((this->value_->type_ == MT_Type::Vector2 ) ? (static_cast<MT_Value<orxonox::Vector2> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Vector2>(); } /** @brief Returns the current value, converted to the requested type. */ 178 MultiType::operator orxonox::Vector3() const { return (this->value_) ? ((this->value_->type_ == MT_Type::Vector3 ) ? (static_cast<MT_Value<orxonox::Vector3> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Vector3>(); } /** @brief Returns the current value, converted to the requested type. */ 179 MultiType::operator orxonox::Vector4() const { return (this->value_) ? ((this->value_->type_ == MT_Type::Vector4 ) ? (static_cast<MT_Value<orxonox::Vector4> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Vector4>(); } /** @brief Returns the current value, converted to the requested type. */ 180 MultiType::operator orxonox::ColourValue() const { return (this->value_) ? ((this->value_->type_ == MT_Type::ColourValue ) ? (static_cast<MT_Value<orxonox::ColourValue>*>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::ColourValue>(); } /** @brief Returns the current value, converted to the requested type. */ 181 MultiType::operator orxonox::Quaternion() const { return (this->value_) ? ((this->value_->type_ == MT_Type::Quaternion ) ? (static_cast<MT_Value<orxonox::Quaternion> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Quaternion>(); } /** @brief Returns the current value, converted to the requested type. */ 182 MultiType::operator orxonox::Radian() const { return (this->value_) ? ((this->value_->type_ == MT_Type::Radian ) ? (static_cast<MT_Value<orxonox::Radian> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Radian>(); } /** @brief Returns the current value, converted to the requested type. */ 183 MultiType::operator orxonox::Degree() const { return (this->value_) ? ((this->value_->type_ == MT_Type::Degree ) ? (static_cast<MT_Value<orxonox::Degree> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Degree>(); } /** @brief Returns the current value, converted to the requested type. */ 184 185 template <> void MultiType::createNewValueContainer(const char& value) { this->value_ = new MT_Value<char> (value, MT_Type::Char ); } /** @brief Creates a new value container for the given type. */ 186 template <> void MultiType::createNewValueContainer(const unsigned char& value) { this->value_ = new MT_Value<unsigned char> (value, MT_Type::UnsignedChar ); } /** @brief Creates a new value container for the given type. */ 187 template <> void MultiType::createNewValueContainer(const short& value) { this->value_ = new MT_Value<short> (value, MT_Type::Short ); } /** @brief Creates a new value container for the given type. */ 188 template <> void MultiType::createNewValueContainer(const unsigned short& value) { this->value_ = new MT_Value<unsigned short> (value, MT_Type::UnsignedShort ); } /** @brief Creates a new value container for the given type. */ 189 template <> void MultiType::createNewValueContainer(const int& value) { this->value_ = new MT_Value<int> (value, MT_Type::Int ); } /** @brief Creates a new value container for the given type. */ 190 template <> void MultiType::createNewValueContainer(const unsigned int& value) { this->value_ = new MT_Value<unsigned int> (value, MT_Type::UnsignedInt ); } /** @brief Creates a new value container for the given type. */ 191 template <> void MultiType::createNewValueContainer(const long& value) { this->value_ = new MT_Value<long> (value, MT_Type::Long ); } /** @brief Creates a new value container for the given type. */ 192 template <> void MultiType::createNewValueContainer(const unsigned long& value) { this->value_ = new MT_Value<unsigned long> (value, MT_Type::UnsignedLong ); } /** @brief Creates a new value container for the given type. */ 193 template <> void MultiType::createNewValueContainer(const long long& value) { this->value_ = new MT_Value<long long> (value, MT_Type::LongLong ); } /** @brief Creates a new value container for the given type. */ 194 template <> void MultiType::createNewValueContainer(const unsigned long long& value) { this->value_ = new MT_Value<unsigned long long> (value, MT_Type::UnsignedLongLong); } /** @brief Creates a new value container for the given type. */ 195 template <> void MultiType::createNewValueContainer(const float& value) { this->value_ = new MT_Value<float> (value, MT_Type::Float ); } /** @brief Creates a new value container for the given type. */ 196 template <> void MultiType::createNewValueContainer(const double& value) { this->value_ = new MT_Value<double> (value, MT_Type::Double ); } /** @brief Creates a new value container for the given type. */ 197 template <> void MultiType::createNewValueContainer(const long double& value) { this->value_ = new MT_Value<long double> (value, MT_Type::LongDouble ); } /** @brief Creates a new value container for the given type. */ 198 template <> void MultiType::createNewValueContainer(const bool& value) { this->value_ = new MT_Value<bool> (value, MT_Type::Bool ); } /** @brief Creates a new value container for the given type. */ 199 template <> void MultiType::createNewValueContainer( void* const& value) { this->value_ = new MT_Value<void*> (value, MT_Type::VoidPointer ); } /** @brief Creates a new value container for the given type. */ 200 template <> void MultiType::createNewValueContainer(const std::string& value) { this->value_ = new MT_Value<std::string> (value, MT_Type::String ); } /** @brief Creates a new value container for the given type. */ 201 template <> void MultiType::createNewValueContainer(const orxonox::Vector2& value) { this->value_ = new MT_Value<orxonox::Vector2> (value, MT_Type::Vector2 ); } /** @brief Creates a new value container for the given type. */ 202 template <> void MultiType::createNewValueContainer(const orxonox::Vector3& value) { this->value_ = new MT_Value<orxonox::Vector3> (value, MT_Type::Vector3 ); } /** @brief Creates a new value container for the given type. */ 203 template <> void MultiType::createNewValueContainer(const orxonox::Vector4& value) { this->value_ = new MT_Value<orxonox::Vector4> (value, MT_Type::Vector4 ); } /** @brief Creates a new value container for the given type. */ 204 template <> void MultiType::createNewValueContainer(const orxonox::ColourValue& value) { this->value_ = new MT_Value<orxonox::ColourValue>(value, MT_Type::ColourValue ); } /** @brief Creates a new value container for the given type. */ 205 template <> void MultiType::createNewValueContainer(const orxonox::Quaternion& value) { this->value_ = new MT_Value<orxonox::Quaternion> (value, MT_Type::Quaternion ); } /** @brief Creates a new value container for the given type. */ 206 template <> void MultiType::createNewValueContainer(const orxonox::Radian& value) { this->value_ = new MT_Value<orxonox::Radian> (value, MT_Type::Radian ); } /** @brief Creates a new value container for the given type. */ 207 template <> void MultiType::createNewValueContainer(const orxonox::Degree& value) { this->value_ = new MT_Value<orxonox::Degree> (value, MT_Type::Degree ); } /** @brief Creates a new value container for the given type. */ 208 208 } -
code/branches/core4/src/util/MultiType.h
r3196 r3257 82 82 @brief Enum of all possible types of a MultiType. 83 83 */ 84 enumMT_Type84 namespace MT_Type 85 85 { 86 MT_null=0, 87 MT_char=1, 88 MT_uchar=2, 89 MT_short=3, 90 MT_ushort=4, 91 MT_int=5, 92 MT_uint=6, 93 MT_long=7, 94 MT_ulong=8, 95 MT_longlong=9, 96 MT_ulonglong=10, 97 MT_float=11, 98 MT_double=12, 99 MT_longdouble=13, 100 MT_bool=14, 101 MT_void=15, 102 MT_string=16, 103 MT_vector2=17, 104 MT_vector3=18, 105 MT_vector4=19, 106 MT_colourvalue=20, 107 MT_quaternion=21, 108 MT_radian=22, 109 MT_degree=23 110 }; 86 enum Value 87 { 88 Null, 89 Char, 90 UnsignedChar, 91 Short, 92 UnsignedShort, 93 Int, 94 UnsignedInt, 95 Long, 96 UnsignedLong, 97 LongLong, 98 UnsignedLongLong, 99 Float, 100 Double, 101 LongDouble, 102 Bool, 103 VoidPointer, 104 String, 105 Vector2, 106 Vector3, 107 Vector4, 108 ColourValue, 109 Quaternion, 110 Radian, 111 Degree 112 }; 113 } 111 114 112 115 /** … … 140 143 { 141 144 public: 142 MT_ValueBase(MT_Type type) : type_(type), bHasDefaultValue_(false) {}145 MT_ValueBase(MT_Type::Value type) : type_(type), bHasDefaultValue_(false) {} 143 146 virtual ~MT_ValueBase() {} 144 147 … … 149 152 150 153 /** @brief Returns the type of the current value. */ 151 const MT_Type & getType() const { return this->type_; }154 const MT_Type::Value& getType() const { return this->type_; } 152 155 153 156 /** @brief Checks whether the value is a default one. */ … … 232 235 virtual uint8_t getSize() const=0; 233 236 234 MT_Type type_;//!< The type of the current value237 MT_Type::Value type_; //!< The type of the current value 235 238 bool bHasDefaultValue_; //!< True if the last conversion wasn't successful 236 239 }; … … 263 266 inline MultiType(const char* value) : value_(0) { this->setValue(std::string(value)); } /** @brief Constructor: Converts the char array to a std::string, assigns the value and sets the type. */ 264 267 inline MultiType(const MultiType& other) : value_(0) { this->setValue(other); } /** @brief Copyconstructor: Assigns value and type of the other MultiType. */ 265 inline MultiType(MT_Type type): value_(0) { this->setType(type); } /** @brief Constructor: Sets the type, the next assignment will determine the value. */268 inline MultiType(MT_Type::Value type) : value_(0) { this->setType(type); } /** @brief Constructor: Sets the type, the next assignment will determine the value. */ 266 269 267 270 /** @brief Destructor: Deletes the MT_Value. */ … … 271 274 template <typename V> inline const MultiType& operator=(V* value) { this->setValue(value); return (*this); } /** @brief Assigns a pointer. */ 272 275 inline const MultiType& operator=(const MultiType& other) { this->setValue(other); return (*this); } /** @brief Assigns the value of the other MultiType and converts it to the current type of the MultiType. */ 273 inline const MultiType& operator=(MT_Type type){ this->setType(type); return (*this); } /** @brief Resets the value and changes the type. */276 inline const MultiType& operator=(MT_Type::Value type) { this->setType(type); return (*this); } /** @brief Resets the value and changes the type. */ 274 277 275 278 inline bool setValue(const char& value); … … 310 313 template <typename T> inline bool convert() { return this->setValue<T>((T)(*this)); } /** @brief Converts the current value to type T. */ 311 314 inline bool convert(const MultiType& other) { return this->convert(other.getType()); } /** @brief Converts the current value to the type of the other MultiType. */ 312 bool convert(MT_Type type);313 314 /** @brief Current content gets deleted. New type is MT_ null */315 bool convert(MT_Type::Value type); 316 317 /** @brief Current content gets deleted. New type is MT_Type::Null */ 315 318 inline void reset() { if (this->value_) delete this->value_; this->value_ = 0; } 316 319 /** @brief Current content gets overridden with default zero value */ … … 319 322 template <typename T> inline void setType() { this->assignValue(T()); } /** @brief Resets the value and changes the internal type to T. */ 320 323 inline void setType(const MultiType& other) { this->setType(other.getType()); } /** @brief Resets the value and changes the internal type to the type of the other MultiType. */ 321 inline void setType(MT_Type type){ this->reset(); this->convert(type); this->resetValue(); } /** @brief Resets the value and changes the internal type to the given type. */324 inline void setType(MT_Type::Value type) { this->reset(); this->convert(type); this->resetValue(); } /** @brief Resets the value and changes the internal type to the given type. */ 322 325 323 326 /** @brief Returns the current type. */ 324 inline MT_Type getType() const { return (this->value_) ? this->value_->type_ : MT_null; }327 inline MT_Type::Value getType() const { return (this->value_) ? this->value_->type_ : MT_Type::Null; } 325 328 /** @brief Returns true if the current type equals the given type. */ 326 inline bool isType(MT_Type type) const { return (this->value_) ? (this->value_->type_ == type) : (type == MT_null); }329 inline bool isType(MT_Type::Value type) const { return (this->value_) ? (this->value_->type_ == type) : (type == MT_Type::Null); } 327 330 /** @brief Returns true if the current type is T. */ 328 template <typename T> inline bool isType() const { return false; } // Only works for specialized values - see below329 std::string getTypename() const;331 template <typename T> inline bool isType() const { return false; } // Only works for specialized values - see below 332 std::string getTypename() const; 330 333 331 334 /** @brief Saves the value of the MT to a bytestream (pointed at by mem) and increases mem pointer by size of MT */ 332 inline void exportData(uint8_t*& mem) const { assert(sizeof(MT_Type )<=8); *(uint8_t*)(mem) = this->getType(); mem+=sizeof(uint8_t); this->value_->exportData(mem); }335 inline void exportData(uint8_t*& mem) const { assert(sizeof(MT_Type::Value)<=8); *(uint8_t*)(mem) = this->getType(); mem+=sizeof(uint8_t); this->value_->exportData(mem); } 333 336 /** @brief Loads the value of the MT from a bytestream (pointed at by mem) and increases mem pointer by size of MT */ 334 inline void importData(uint8_t*& mem) { assert(sizeof(MT_Type )<=8); this->setType(static_cast<MT_Type>(*(uint8_t*)mem)); mem+=sizeof(uint8_t); this->value_->importData(mem); }337 inline void importData(uint8_t*& mem) { assert(sizeof(MT_Type::Value)<=8); this->setType(static_cast<MT_Type::Value>(*(uint8_t*)mem)); mem+=sizeof(uint8_t); this->value_->importData(mem); } 335 338 /** @brief Saves the value of the MT to a bytestream and increases pointer to bytestream by size of MT */ 336 339 inline uint8_t*& operator << (uint8_t*& mem) { importData(mem); return mem; } … … 418 421 419 422 private: 420 inline bool assignValue(const char& value) { if (this->value_ && this->value_->type_ == MT_ char){ return this->value_->setValue(value); } else { this->changeValueContainer<char>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */421 inline bool assignValue(const unsigned char& value) { if (this->value_ && this->value_->type_ == MT_ uchar){ return this->value_->setValue(value); } else { this->changeValueContainer<unsigned char>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */422 inline bool assignValue(const short& value) { if (this->value_ && this->value_->type_ == MT_ short){ return this->value_->setValue(value); } else { this->changeValueContainer<short>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */423 inline bool assignValue(const unsigned short& value) { if (this->value_ && this->value_->type_ == MT_ ushort){ return this->value_->setValue(value); } else { this->changeValueContainer<unsigned short>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */424 inline bool assignValue(const int& value) { if (this->value_ && this->value_->type_ == MT_ int){ return this->value_->setValue(value); } else { this->changeValueContainer<int>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */425 inline bool assignValue(const unsigned int& value) { if (this->value_ && this->value_->type_ == MT_ uint){ return this->value_->setValue(value); } else { this->changeValueContainer<unsigned int>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */426 inline bool assignValue(const long& value) { if (this->value_ && this->value_->type_ == MT_ long){ return this->value_->setValue(value); } else { this->changeValueContainer<long>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */427 inline bool assignValue(const unsigned long& value) { if (this->value_ && this->value_->type_ == MT_ ulong){ return this->value_->setValue(value); } else { this->changeValueContainer<unsigned long>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */428 inline bool assignValue(const long long& value) { if (this->value_ && this->value_->type_ == MT_ longlong){ return this->value_->setValue(value); } else { this->changeValueContainer<long long>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */429 inline bool assignValue(const unsigned long long& value) { if (this->value_ && this->value_->type_ == MT_ ulonglong){ return this->value_->setValue(value); } else { this->changeValueContainer<unsigned long long>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */430 inline bool assignValue(const float& value) { if (this->value_ && this->value_->type_ == MT_ float){ return this->value_->setValue(value); } else { this->changeValueContainer<float>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */431 inline bool assignValue(const double& value) { if (this->value_ && this->value_->type_ == MT_ double){ return this->value_->setValue(value); } else { this->changeValueContainer<double>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */432 inline bool assignValue(const long double& value) { if (this->value_ && this->value_->type_ == MT_ longdouble){ return this->value_->setValue(value); } else { this->changeValueContainer<long double>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */433 inline bool assignValue(const bool& value) { if (this->value_ && this->value_->type_ == MT_ bool){ return this->value_->setValue(value); } else { this->changeValueContainer<bool>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */434 inline bool assignValue( void* const& value) { if (this->value_ && this->value_->type_ == MT_ void){ return this->value_->setValue(value); } else { this->changeValueContainer<void*>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */435 inline bool assignValue(const std::string& value) { if (this->value_ && this->value_->type_ == MT_ string){ return this->value_->setValue(value); } else { this->changeValueContainer<std::string>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */436 inline bool assignValue(const orxonox::Vector2& value) { if (this->value_ && this->value_->type_ == MT_ vector2){ return this->value_->setValue(value); } else { this->changeValueContainer<orxonox::Vector2>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */437 inline bool assignValue(const orxonox::Vector3& value) { if (this->value_ && this->value_->type_ == MT_ vector3){ return this->value_->setValue(value); } else { this->changeValueContainer<orxonox::Vector3>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */438 inline bool assignValue(const orxonox::Vector4& value) { if (this->value_ && this->value_->type_ == MT_ vector4){ return this->value_->setValue(value); } else { this->changeValueContainer<orxonox::Vector4>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */439 inline bool assignValue(const orxonox::ColourValue& value) { if (this->value_ && this->value_->type_ == MT_ colourvalue){ return this->value_->setValue(value); } else { this->changeValueContainer<orxonox::ColourValue>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */440 inline bool assignValue(const orxonox::Quaternion& value) { if (this->value_ && this->value_->type_ == MT_ quaternion){ return this->value_->setValue(value); } else { this->changeValueContainer<orxonox::Quaternion>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */441 inline bool assignValue(const orxonox::Radian& value) { if (this->value_ && this->value_->type_ == MT_ radian){ return this->value_->setValue(value); } else { this->changeValueContainer<orxonox::Radian>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */442 inline bool assignValue(const orxonox::Degree& value) { if (this->value_ && this->value_->type_ == MT_ degree){ return this->value_->setValue(value); } else { this->changeValueContainer<orxonox::Degree>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */423 inline bool assignValue(const char& value) { if (this->value_ && this->value_->type_ == MT_Type::Char) { return this->value_->setValue(value); } else { this->changeValueContainer<char>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 424 inline bool assignValue(const unsigned char& value) { if (this->value_ && this->value_->type_ == MT_Type::UnsignedChar) { return this->value_->setValue(value); } else { this->changeValueContainer<unsigned char>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 425 inline bool assignValue(const short& value) { if (this->value_ && this->value_->type_ == MT_Type::Short) { return this->value_->setValue(value); } else { this->changeValueContainer<short>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 426 inline bool assignValue(const unsigned short& value) { if (this->value_ && this->value_->type_ == MT_Type::UnsignedShort) { return this->value_->setValue(value); } else { this->changeValueContainer<unsigned short>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 427 inline bool assignValue(const int& value) { if (this->value_ && this->value_->type_ == MT_Type::Int) { return this->value_->setValue(value); } else { this->changeValueContainer<int>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 428 inline bool assignValue(const unsigned int& value) { if (this->value_ && this->value_->type_ == MT_Type::UnsignedInt) { return this->value_->setValue(value); } else { this->changeValueContainer<unsigned int>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 429 inline bool assignValue(const long& value) { if (this->value_ && this->value_->type_ == MT_Type::Long) { return this->value_->setValue(value); } else { this->changeValueContainer<long>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 430 inline bool assignValue(const unsigned long& value) { if (this->value_ && this->value_->type_ == MT_Type::UnsignedLong) { return this->value_->setValue(value); } else { this->changeValueContainer<unsigned long>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 431 inline bool assignValue(const long long& value) { if (this->value_ && this->value_->type_ == MT_Type::LongLong) { return this->value_->setValue(value); } else { this->changeValueContainer<long long>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 432 inline bool assignValue(const unsigned long long& value) { if (this->value_ && this->value_->type_ == MT_Type::UnsignedLongLong) { return this->value_->setValue(value); } else { this->changeValueContainer<unsigned long long>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 433 inline bool assignValue(const float& value) { if (this->value_ && this->value_->type_ == MT_Type::Float) { return this->value_->setValue(value); } else { this->changeValueContainer<float>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 434 inline bool assignValue(const double& value) { if (this->value_ && this->value_->type_ == MT_Type::Double) { return this->value_->setValue(value); } else { this->changeValueContainer<double>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 435 inline bool assignValue(const long double& value) { if (this->value_ && this->value_->type_ == MT_Type::LongDouble) { return this->value_->setValue(value); } else { this->changeValueContainer<long double>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 436 inline bool assignValue(const bool& value) { if (this->value_ && this->value_->type_ == MT_Type::Bool) { return this->value_->setValue(value); } else { this->changeValueContainer<bool>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 437 inline bool assignValue( void* const& value) { if (this->value_ && this->value_->type_ == MT_Type::VoidPointer) { return this->value_->setValue(value); } else { this->changeValueContainer<void*>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 438 inline bool assignValue(const std::string& value) { if (this->value_ && this->value_->type_ == MT_Type::String) { return this->value_->setValue(value); } else { this->changeValueContainer<std::string>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 439 inline bool assignValue(const orxonox::Vector2& value) { if (this->value_ && this->value_->type_ == MT_Type::Vector2) { return this->value_->setValue(value); } else { this->changeValueContainer<orxonox::Vector2>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 440 inline bool assignValue(const orxonox::Vector3& value) { if (this->value_ && this->value_->type_ == MT_Type::Vector3) { return this->value_->setValue(value); } else { this->changeValueContainer<orxonox::Vector3>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 441 inline bool assignValue(const orxonox::Vector4& value) { if (this->value_ && this->value_->type_ == MT_Type::Vector4) { return this->value_->setValue(value); } else { this->changeValueContainer<orxonox::Vector4>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 442 inline bool assignValue(const orxonox::ColourValue& value) { if (this->value_ && this->value_->type_ == MT_Type::ColourValue) { return this->value_->setValue(value); } else { this->changeValueContainer<orxonox::ColourValue>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 443 inline bool assignValue(const orxonox::Quaternion& value) { if (this->value_ && this->value_->type_ == MT_Type::Quaternion) { return this->value_->setValue(value); } else { this->changeValueContainer<orxonox::Quaternion>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 444 inline bool assignValue(const orxonox::Radian& value) { if (this->value_ && this->value_->type_ == MT_Type::Radian) { return this->value_->setValue(value); } else { this->changeValueContainer<orxonox::Radian>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 445 inline bool assignValue(const orxonox::Degree& value) { if (this->value_ && this->value_->type_ == MT_Type::Degree) { return this->value_->setValue(value); } else { this->changeValueContainer<orxonox::Degree>(value); return true; } } /** @brief Assigns a new value by changing type and creating a new container. */ 443 446 444 447 /** @brief Changes the value container. */ … … 453 456 _UtilExport inline std::ostream& operator<<(std::ostream& outstream, const MultiType& mt) { if (mt.value_) { mt.value_->toString(outstream); } return outstream; } 454 457 455 template <> inline bool MultiType::isType<char>() const { return (this->value_ && this->value_->type_ == MT_ char);} /** @brief Returns true if the current type equals the given type. */456 template <> inline bool MultiType::isType<unsigned char>() const { return (this->value_ && this->value_->type_ == MT_ uchar);} /** @brief Returns true if the current type equals the given type. */457 template <> inline bool MultiType::isType<short>() const { return (this->value_ && this->value_->type_ == MT_ short);} /** @brief Returns true if the current type equals the given type. */458 template <> inline bool MultiType::isType<unsigned short>() const { return (this->value_ && this->value_->type_ == MT_ ushort);} /** @brief Returns true if the current type equals the given type. */459 template <> inline bool MultiType::isType<int>() const { return (this->value_ && this->value_->type_ == MT_ int);} /** @brief Returns true if the current type equals the given type. */460 template <> inline bool MultiType::isType<unsigned int>() const { return (this->value_ && this->value_->type_ == MT_ uint);} /** @brief Returns true if the current type equals the given type. */461 template <> inline bool MultiType::isType<long>() const { return (this->value_ && this->value_->type_ == MT_ long);} /** @brief Returns true if the current type equals the given type. */462 template <> inline bool MultiType::isType<unsigned long>() const { return (this->value_ && this->value_->type_ == MT_ ulong);} /** @brief Returns true if the current type equals the given type. */463 template <> inline bool MultiType::isType<long long>() const { return (this->value_ && this->value_->type_ == MT_ longlong);} /** @brief Returns true if the current type equals the given type. */464 template <> inline bool MultiType::isType<unsigned long long>() const { return (this->value_ && this->value_->type_ == MT_ ulonglong);} /** @brief Returns true if the current type equals the given type. */465 template <> inline bool MultiType::isType<float>() const { return (this->value_ && this->value_->type_ == MT_ float);} /** @brief Returns true if the current type equals the given type. */466 template <> inline bool MultiType::isType<double>() const { return (this->value_ && this->value_->type_ == MT_ double);} /** @brief Returns true if the current type equals the given type. */467 template <> inline bool MultiType::isType<long double>() const { return (this->value_ && this->value_->type_ == MT_ longdouble);} /** @brief Returns true if the current type equals the given type. */468 template <> inline bool MultiType::isType<bool>() const { return (this->value_ && this->value_->type_ == MT_ bool);} /** @brief Returns true if the current type equals the given type. */469 template <> inline bool MultiType::isType<void*>() const { return (this->value_ && this->value_->type_ == MT_ void);} /** @brief Returns true if the current type equals the given type. */470 template <> inline bool MultiType::isType<std::string>() const { return (this->value_ && this->value_->type_ == MT_ string);} /** @brief Returns true if the current type equals the given type. */471 template <> inline bool MultiType::isType<orxonox::Vector2>() const { return (this->value_ && this->value_->type_ == MT_ vector2);} /** @brief Returns true if the current type equals the given type. */472 template <> inline bool MultiType::isType<orxonox::Vector3>() const { return (this->value_ && this->value_->type_ == MT_ vector3);} /** @brief Returns true if the current type equals the given type. */473 template <> inline bool MultiType::isType<orxonox::Vector4>() const { return (this->value_ && this->value_->type_ == MT_ vector4);} /** @brief Returns true if the current type equals the given type. */474 template <> inline bool MultiType::isType<orxonox::ColourValue>() const { return (this->value_ && this->value_->type_ == MT_ colourvalue);} /** @brief Returns true if the current type equals the given type. */475 template <> inline bool MultiType::isType<orxonox::Quaternion>() const { return (this->value_ && this->value_->type_ == MT_ quaternion);} /** @brief Returns true if the current type equals the given type. */476 template <> inline bool MultiType::isType<orxonox::Radian>() const { return (this->value_ && this->value_->type_ == MT_ radian);} /** @brief Returns true if the current type equals the given type. */477 template <> inline bool MultiType::isType<orxonox::Degree>() const { return (this->value_ && this->value_->type_ == MT_ degree);} /** @brief Returns true if the current type equals the given type. */458 template <> inline bool MultiType::isType<char>() const { return (this->value_ && this->value_->type_ == MT_Type::Char); } /** @brief Returns true if the current type equals the given type. */ 459 template <> inline bool MultiType::isType<unsigned char>() const { return (this->value_ && this->value_->type_ == MT_Type::UnsignedChar); } /** @brief Returns true if the current type equals the given type. */ 460 template <> inline bool MultiType::isType<short>() const { return (this->value_ && this->value_->type_ == MT_Type::Short); } /** @brief Returns true if the current type equals the given type. */ 461 template <> inline bool MultiType::isType<unsigned short>() const { return (this->value_ && this->value_->type_ == MT_Type::UnsignedShort); } /** @brief Returns true if the current type equals the given type. */ 462 template <> inline bool MultiType::isType<int>() const { return (this->value_ && this->value_->type_ == MT_Type::Int); } /** @brief Returns true if the current type equals the given type. */ 463 template <> inline bool MultiType::isType<unsigned int>() const { return (this->value_ && this->value_->type_ == MT_Type::UnsignedInt); } /** @brief Returns true if the current type equals the given type. */ 464 template <> inline bool MultiType::isType<long>() const { return (this->value_ && this->value_->type_ == MT_Type::Long); } /** @brief Returns true if the current type equals the given type. */ 465 template <> inline bool MultiType::isType<unsigned long>() const { return (this->value_ && this->value_->type_ == MT_Type::UnsignedLong); } /** @brief Returns true if the current type equals the given type. */ 466 template <> inline bool MultiType::isType<long long>() const { return (this->value_ && this->value_->type_ == MT_Type::LongLong); } /** @brief Returns true if the current type equals the given type. */ 467 template <> inline bool MultiType::isType<unsigned long long>() const { return (this->value_ && this->value_->type_ == MT_Type::UnsignedLongLong); } /** @brief Returns true if the current type equals the given type. */ 468 template <> inline bool MultiType::isType<float>() const { return (this->value_ && this->value_->type_ == MT_Type::Float); } /** @brief Returns true if the current type equals the given type. */ 469 template <> inline bool MultiType::isType<double>() const { return (this->value_ && this->value_->type_ == MT_Type::Double); } /** @brief Returns true if the current type equals the given type. */ 470 template <> inline bool MultiType::isType<long double>() const { return (this->value_ && this->value_->type_ == MT_Type::LongDouble); } /** @brief Returns true if the current type equals the given type. */ 471 template <> inline bool MultiType::isType<bool>() const { return (this->value_ && this->value_->type_ == MT_Type::Bool); } /** @brief Returns true if the current type equals the given type. */ 472 template <> inline bool MultiType::isType<void*>() const { return (this->value_ && this->value_->type_ == MT_Type::VoidPointer); } /** @brief Returns true if the current type equals the given type. */ 473 template <> inline bool MultiType::isType<std::string>() const { return (this->value_ && this->value_->type_ == MT_Type::String); } /** @brief Returns true if the current type equals the given type. */ 474 template <> inline bool MultiType::isType<orxonox::Vector2>() const { return (this->value_ && this->value_->type_ == MT_Type::Vector2); } /** @brief Returns true if the current type equals the given type. */ 475 template <> inline bool MultiType::isType<orxonox::Vector3>() const { return (this->value_ && this->value_->type_ == MT_Type::Vector3); } /** @brief Returns true if the current type equals the given type. */ 476 template <> inline bool MultiType::isType<orxonox::Vector4>() const { return (this->value_ && this->value_->type_ == MT_Type::Vector4); } /** @brief Returns true if the current type equals the given type. */ 477 template <> inline bool MultiType::isType<orxonox::ColourValue>() const { return (this->value_ && this->value_->type_ == MT_Type::ColourValue); } /** @brief Returns true if the current type equals the given type. */ 478 template <> inline bool MultiType::isType<orxonox::Quaternion>() const { return (this->value_ && this->value_->type_ == MT_Type::Quaternion); } /** @brief Returns true if the current type equals the given type. */ 479 template <> inline bool MultiType::isType<orxonox::Radian>() const { return (this->value_ && this->value_->type_ == MT_Type::Radian); } /** @brief Returns true if the current type equals the given type. */ 480 template <> inline bool MultiType::isType<orxonox::Degree>() const { return (this->value_ && this->value_->type_ == MT_Type::Degree); } /** @brief Returns true if the current type equals the given type. */ 478 481 479 482 // Specialization to avoid ambiguities with the conversion operator -
code/branches/core4/src/util/MultiTypeValue.h
r3196 r3257 54 54 public: 55 55 /** @brief Constructor: Assigns the value and the type identifier. */ 56 MT_Value(const T& value, MT_Type type) : MT_ValueBase(type), value_(value) {}56 MT_Value(const T& value, MT_Type::Value type) : MT_ValueBase(type), value_(value) {} 57 57 58 58 /** @brief Creates a copy of itself. */
Note: See TracChangeset
for help on using the changeset viewer.