Changeset 8284 for code/branches/kicklib2/src/libraries/core
- Timestamp:
- Apr 21, 2011, 6:58:23 PM (14 years ago)
- Location:
- code/branches/kicklib2
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/kicklib2
- Property svn:mergeinfo changed
-
code/branches/kicklib2/src/libraries/core/Core.cc
r8079 r8284 81 81 82 82 SetCommandLineArgument(settingsFile, "orxonox.ini").information("THE configuration file"); 83 #ifndef ORXONOX_PLATFORM_APPLE 83 84 SetCommandLineSwitch(noIOConsole).information("Use this if you don't want to use the IOConsole (for instance for Lua debugging)"); 85 #endif 84 86 85 87 #ifdef ORXONOX_PLATFORM_WINDOWS … … 156 158 this->setConfigValues(); 157 159 158 // create persistent io console 160 #ifndef ORXONOX_PLATFORM_APPLE 161 // Create persistent IO console 159 162 if (CommandLineParser::getValue("noIOConsole").getBool()) 160 163 { … … 163 166 if (this->bStartIOConsole_) 164 167 this->ioConsole_.reset(new IOConsole()); 168 #endif 165 169 166 170 // creates the class hierarchy for all classes with factories -
code/branches/kicklib2/src/libraries/core/CorePrereqs.h
r8283 r8284 54 54 # endif 55 55 # endif 56 #elif defined ( ORXONOX_GCC_VISIBILITY ) 56 # define _CorePrivate 57 #elif defined (ORXONOX_GCC_VISIBILITY) 57 58 # define _CoreExport __attribute__ ((visibility("default"))) 59 # define _CorePrivate __attribute__ ((visibility("hidden"))) 58 60 #else 59 61 # define _CoreExport 62 # define _CorePrivate 60 63 #endif 61 64 … … 259 262 namespace boost 260 263 { 261 #if (BOOST_VERSION < 104400)264 #if BOOST_VERSION < 104400 262 265 namespace filesystem 263 266 { … … 266 269 typedef basic_path<std::string, path_traits> path; 267 270 } 268 #el se271 #elif BOOST_VERSION < 104600 269 272 namespace filesystem2 270 273 { … … 278 281 using filesystem2::path_traits; 279 282 using filesystem2::path; 283 } 284 #else 285 namespace filesystem3 286 { 287 class path; 288 } 289 namespace filesystem 290 { 291 using filesystem3::path; 280 292 } 281 293 #endif -
code/branches/kicklib2/src/libraries/core/DynLib.cc
r6417 r8284 42 42 #endif 43 43 44 #ifdef ORXONOX_PLATFORM_ LINUX44 #ifdef ORXONOX_PLATFORM_UNIX 45 45 # include <dlfcn.h> 46 46 #endif 47 47 48 48 #ifdef ORXONOX_PLATFORM_APPLE 49 # include <macPlugins.h>49 # include <OSX/macUtils.h> // OGRE include 50 50 #endif 51 51 … … 75 75 if (name.substr(name.length() - 3, 3) != ".so") 76 76 name += ".so"; 77 #elif OGRE_PLATFORM == OGRE_PLATFORM_APPLE 78 // dlopen() does not add .dylib to the filename, like windows does for .dll 79 if (name.substr(name.length() - 6, 6) != ".dylib") 80 name += ".dylib"; 81 #elif OGRE_PLATFORM == OGRE_PLATFORM_WIN32 82 // Although LoadLibraryEx will add .dll itself when you only specify the library name, 83 // if you include a relative path then it does not. So, add it to be sure. 84 if (name.substr(name.length() - 4, 4) != ".dll") 85 name += ".dll"; 77 86 #endif 78 87 … … 127 136 LocalFree( lpMsgBuf ); 128 137 return ret; 129 #elif defined(ORXONOX_PLATFORM_ LINUX)138 #elif defined(ORXONOX_PLATFORM_UNIX) 130 139 return std::string(dlerror()); 131 #elif defined(ORXONOX_PLATFORM_APPLE)132 return std::string(mac_errorBundle());133 140 #else 134 141 return ""; 135 142 #endif 136 143 } 137 138 144 } -
code/branches/kicklib2/src/libraries/core/DynLib.h
r7401 r8284 52 52 typedef struct HINSTANCE__* hInstance; 53 53 54 #elif defined(ORXONOX_PLATFORM_ LINUX)54 #elif defined(ORXONOX_PLATFORM_UNIX) 55 55 # define DYNLIB_HANDLE void* 56 56 # define DYNLIB_LOAD( a ) dlopen( a, RTLD_LAZY | RTLD_GLOBAL) 57 57 # define DYNLIB_GETSYM( a, b ) dlsym( a, b ) 58 58 # define DYNLIB_UNLOAD( a ) dlclose( a ) 59 60 #elif defined(ORXONOX_PLATFORM_APPLE)61 # define DYNLIB_HANDLE CFBundleRef62 # define DYNLIB_LOAD( a ) mac_loadExeBundle( a )63 # define DYNLIB_GETSYM( a, b ) mac_getBundleSym( a, b )64 # define DYNLIB_UNLOAD( a ) mac_unloadExeBundle( a )65 59 #endif 66 60 -
code/branches/kicklib2/src/libraries/core/GUIManager.cc
r8283 r8284 149 149 : destroyer_(*this, &GUIManager::cleanup) 150 150 , guiRenderer_(NULL) 151 , resourceProvider_(NULL) 152 #ifndef ORXONOX_OLD_CEGUI 153 , imageCodec_(NULL) 154 #endif 151 155 , luaState_(NULL) 152 156 , scriptModule_(NULL) 153 157 , guiSystem_(NULL) 154 , resourceProvider_(NULL)155 #ifndef ORXONOX_OLD_CEGUI156 , imageCodec_(NULL)157 #endif158 158 , camera_(NULL) 159 159 { … … 393 393 false | False | True | Dontcare 394 394 */ 395 396 #ifdef ORXONOX_PLATFORM_APPLE 397 // There is no non exclusive mode on OS X yet 398 state->setMouseExclusive(TriBool::True); 399 #else 395 400 if (showCursor == TriBool::Dontcare) 396 401 state->setMouseExclusive(TriBool::Dontcare); … … 399 404 else 400 405 state->setMouseExclusive(TriBool::False); 406 #endif 401 407 402 408 if (showCursor == TriBool::True) -
code/branches/kicklib2/src/libraries/core/Game.cc
r8245 r8284 459 459 ThrowException(GameState, "Emtpy GameState hierarchy provided, terminating."); 460 460 // Add element with large identation to detect the last with just an iterator 461 stateStrings.push_back(std::make_pair( "", -1));461 stateStrings.push_back(std::make_pair(std::string(), -1)); 462 462 463 463 // Parse elements recursively -
code/branches/kicklib2/src/libraries/core/GraphicsManager.cc
r8283 r8284 260 260 // Use backslash paths on Windows! file_string() already does that though. 261 261 for (unsigned int i = 0; i < plugins.size(); ++i) 262 #if BOOST_FILESYSTEM_VERSION < 3 262 263 ogreRoot_->loadPlugin((folder / plugins[i]).file_string()); 264 #else 265 ogreRoot_->loadPlugin((folder / plugins[i]).string()); 266 #endif 263 267 } 264 268 … … 286 290 287 291 Ogre::WindowEventUtilities::addWindowEventListener(this->renderWindow_, ogreWindowEventListener_.get()); 292 293 // HACK 294 #ifdef ORXONOX_PLATFORM_APPLE 295 //INFO: This will give our window focus, and not lock it to the terminal 296 ProcessSerialNumber psn = {0, kCurrentProcess}; 297 TransformProcessType(&psn, kProcessTransformToForegroundApplication); 298 SetFrontProcess(&psn); 299 #endif 300 // End of HACK 288 301 289 302 // create a full screen default viewport -
code/branches/kicklib2/src/libraries/core/Identifier.h
r7401 r8284 123 123 124 124 /// Returns the unique ID of the class. 125 FORCEINLINE unsigned int getClassID() const { return this->classID_; }125 ORX_FORCEINLINE unsigned int getClassID() const { return this->classID_; } 126 126 127 127 /// Returns the list of all existing objects of this class. … … 486 486 */ 487 487 template <class T, class U> 488 FORCEINLINE T orxonox_cast(U* source)488 ORX_FORCEINLINE T orxonox_cast(U* source) 489 489 { 490 490 #ifdef ORXONOX_COMPILER_MSVC -
code/branches/kicklib2/src/libraries/core/OrxonoxClass.h
r8079 r8284 135 135 Returns NULL if the no pointer was found. 136 136 */ 137 FORCEINLINE void* getDerivedPointer(unsigned int classID)137 ORX_FORCEINLINE void* getDerivedPointer(unsigned int classID) 138 138 { 139 139 for (int i = this->objectPointers_.size() - 1; i >= 0; --i) … … 146 146 147 147 /// Version of getDerivedPointer with template 148 template <class T> FORCEINLINE T* getDerivedPointer(unsigned int classID)148 template <class T> ORX_FORCEINLINE T* getDerivedPointer(unsigned int classID) 149 149 { return static_cast<T*>(this->getDerivedPointer(classID)); } 150 150 /// Const version of getDerivedPointer with template 151 template <class T> FORCEINLINE const T* getDerivedPointer(unsigned int classID) const151 template <class T> ORX_FORCEINLINE const T* getDerivedPointer(unsigned int classID) const 152 152 { return const_cast<OrxonoxClass*>(this)->getDerivedPointer<T>(classID); } 153 153 -
code/branches/kicklib2/src/libraries/core/PathConfig.cc
r6417 r8284 59 59 #if (BOOST_VERSION == 103600) 60 60 # define BOOST_LEAF_FUNCTION filename 61 #el se61 #elif (BOOST_FILESYSTEM_VERSION < 3) 62 62 # define BOOST_LEAF_FUNCTION leaf 63 #else 64 # define BOOST_LEAF_FUNCTION path().filename().string 63 65 #endif 64 66 … … 95 97 #elif defined(ORXONOX_PLATFORM_APPLE) 96 98 char buffer[1024]; 97 u nsigned longpath_len = 1023;99 uint32_t path_len = 1023; 98 100 if (_NSGetExecutablePath(buffer, &path_len)) 99 101 ThrowException(General, "Could not retrieve executable path."); … … 125 127 #endif 126 128 127 executablePath_ = bf::path(buffer); 128 #ifndef ORXONOX_PLATFORM_APPLE 129 executablePath_ = executablePath_.branch_path(); // remove executable name 130 #endif 129 // Remove executable filename 130 executablePath_ = bf::path(buffer).branch_path(); 131 131 132 132 ///////////////////// … … 206 206 207 207 // Get user directory 208 # ifdef ORXONOX_PLATFORM_UNIX /* Apple? */208 #ifdef ORXONOX_PLATFORM_UNIX 209 209 char* userDataPathPtr(getenv("HOME")); 210 # 210 #else 211 211 char* userDataPathPtr(getenv("APPDATA")); 212 # 212 #endif 213 213 if (userDataPathPtr == NULL) 214 214 ThrowException(General, "Could not retrieve user data path."); … … 233 233 // Create directories to avoid problems when opening files in non existent folders. 234 234 std::vector<std::pair<bf::path, std::string> > directories; 235 directories.push_back(std::make_pair(bf::path(configPath_), "config"));236 directories.push_back(std::make_pair(bf::path(logPath_), "log"));235 directories.push_back(std::make_pair(bf::path(configPath_), std::string("config"))); 236 directories.push_back(std::make_pair(bf::path(logPath_), std::string("log"))); 237 237 238 238 for (std::vector<std::pair<bf::path, std::string> >::iterator it = directories.begin(); … … 273 273 while (file != end) 274 274 { 275 const std::string&filename = file->BOOST_LEAF_FUNCTION();276 277 // Check if the file ends with the ex ension in question275 std::string filename = file->BOOST_LEAF_FUNCTION(); 276 277 // Check if the file ends with the extension in question 278 278 if (filename.size() > moduleextensionlength) 279 279 { … … 282 282 // We've found a helper file 283 283 const std::string& library = filename.substr(0, filename.size() - moduleextensionlength); 284 #if BOOST_FILESYSTEM_VERSION < 3 284 285 modulePaths.push_back((modulePath_ / library).file_string()); 286 #else 287 modulePaths.push_back((modulePath_ / library).string()); 288 #endif 285 289 } 286 290 } -
code/branches/kicklib2/src/libraries/core/Resource.cc
r6746 r8284 36 36 namespace orxonox 37 37 { 38 std::string Resource::DEFAULT_GROUP(Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); 38 const std::string& Resource::getDefaultResourceGroup() 39 { 40 return Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME; 41 } 39 42 40 43 DataStreamPtr Resource::open(const std::string& name) 41 44 { 42 45 return Ogre::ResourceGroupManager::getSingleton().openResource(name, 43 Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, true);46 getDefaultResourceGroup(), true); 44 47 } 45 48 -
code/branches/kicklib2/src/libraries/core/Resource.h
r7401 r8284 137 137 138 138 //! Name of the default resource group (usually "General") 139 static std::string DEFAULT_GROUP;139 static const std::string& getDefaultResourceGroup(); 140 140 141 141 private: -
code/branches/kicklib2/src/libraries/core/Super.h
r7401 r8284 94 94 struct SuperFunctionCondition<functionnumber, T, 0, templatehack2> \ 95 95 { \ 96 static void check() \96 static void superCheck() \ 97 97 { \ 98 98 SuperFunctionCondition<functionnumber, T, 0, templatehack2>::apply(static_cast<T*>(0)); \ 99 SuperFunctionCondition<functionnumber + 1, T, 0, templatehack2>:: check(); \99 SuperFunctionCondition<functionnumber + 1, T, 0, templatehack2>::superCheck(); \ 100 100 } \ 101 101 \ … … 132 132 struct SuperFunctionCondition<functionnumber, baseclass, 0, templatehack2> \ 133 133 { \ 134 static void check() \135 { \ 136 SuperFunctionCondition<functionnumber + 1, baseclass, 0, templatehack2>:: check(); \134 static void superCheck() \ 135 { \ 136 SuperFunctionCondition<functionnumber + 1, baseclass, 0, templatehack2>::superCheck(); \ 137 137 } \ 138 138 }; … … 150 150 struct SuperFunctionCondition<functionnumber, T, 0, templatehack2> 151 151 { 152 static void check()152 static void superCheck() 153 153 { 154 154 // This call to the apply-function is the whole check. By calling the function with … … 156 156 SuperFunctionCondition<functionnumber, T, 0, templatehack2>::apply(static_cast<T*>(0)); 157 157 158 // Go go the check for of next super-function (functionnumber + 1)159 SuperFunctionCondition<functionnumber + 1, T, 0, templatehack2>:: check();158 // Go go the superCheck for of next super-function (functionnumber + 1) 159 SuperFunctionCondition<functionnumber + 1, T, 0, templatehack2>::superCheck(); 160 160 } 161 161 … … 202 202 struct SuperFunctionCondition<functionnumber, baseclass, 0, templatehack2> \ 203 203 { \ 204 // The check function acts like the fallback - it advances to the check for the next super-function (functionnumber + 1)205 static void check() \206 { \ 207 SuperFunctionCondition<functionnumber + 1, baseclass, 0, templatehack2>:: check(); \204 // The superCheck function acts like the fallback - it advances to the check for the next super-function (functionnumber + 1) 205 static void superCheck() \ 206 { \ 207 SuperFunctionCondition<functionnumber + 1, baseclass, 0, templatehack2>::superCheck(); \ 208 208 } \ 209 209 }; … … 303 303 struct SuperFunctionCondition 304 304 { 305 static void check() {}305 static void superCheck() {} 306 306 }; 307 307 … … 338 338 struct SuperFunctionCondition<functionnumber, T, templatehack1, templatehack2> \ 339 339 { \ 340 static void check() \340 static void superCheck() \ 341 341 { \ 342 SuperFunctionCondition<functionnumber + 1, T, templatehack1, templatehack2>:: check(); \342 SuperFunctionCondition<functionnumber + 1, T, templatehack1, templatehack2>::superCheck(); \ 343 343 } \ 344 344 }; \ … … 421 421 // If this function gets called, the header-file of the super function is not 422 422 // included, so this fallback template (templatehack not specialized) is used 423 static void check()423 static void superCheck() 424 424 { 425 425 // Calls the condition-check of the next super-function (functionnumber + 1) 426 SuperFunctionCondition<functionnumber + 1, T, templatehack1, templatehack2>:: check();426 SuperFunctionCondition<functionnumber + 1, T, templatehack1, templatehack2>::superCheck(); 427 427 } 428 428 }; … … 574 574 virtual void createSuperFunctionCaller() const 575 575 { 576 SuperFunctionCondition<0, T, 0, 0>:: check();576 SuperFunctionCondition<0, T, 0, 0>::superCheck(); 577 577 } 578 578 -
code/branches/kicklib2/src/libraries/core/command/ArgumentCompletionFunctions.cc
r7401 r8284 50 50 #if (BOOST_VERSION == 103600) 51 51 # define BOOST_LEAF_FUNCTION filename 52 # define BOOST_DICTIONARY_ENTRY_NAME string 53 #elif (BOOST_FILESYSTEM_VERSION < 3) 54 # define BOOST_LEAF_FUNCTION leaf 55 # define BOOST_DICTIONARY_ENTRY_NAME string 52 56 #else 53 # define BOOST_LEAF_FUNCTION leaf 57 # define BOOST_LEAF_FUNCTION path().filename().string 58 # define BOOST_DICTIONARY_ENTRY_NAME path().string 54 59 #endif 55 60 … … 257 262 { 258 263 if (boost::filesystem::is_directory(*file)) 259 dirlist.push_back(ArgumentCompletionListElement(file-> string() + '/', getLowercase(file->string()) + '/', file->BOOST_LEAF_FUNCTION() + '/'));264 dirlist.push_back(ArgumentCompletionListElement(file->BOOST_DICTIONARY_ENTRY_NAME() + '/', getLowercase(file->BOOST_DICTIONARY_ENTRY_NAME()) + '/', file->BOOST_LEAF_FUNCTION() + '/')); 260 265 else 261 filelist.push_back(ArgumentCompletionListElement(file-> string(), getLowercase(file->string()), file->BOOST_LEAF_FUNCTION()));266 filelist.push_back(ArgumentCompletionListElement(file->BOOST_DICTIONARY_ENTRY_NAME(), getLowercase(file->BOOST_DICTIONARY_ENTRY_NAME()), file->BOOST_LEAF_FUNCTION())); 262 267 ++file; 263 268 } -
code/branches/kicklib2/src/libraries/core/input/InputDevice.h
r7271 r8284 184 184 protected: 185 185 //! Common code for all button pressed events (updates pressed buttons list and calls the input states) 186 FORCEINLINE void buttonPressed(ButtonTypeParam button)186 ORX_FORCEINLINE void buttonPressed(ButtonTypeParam button) 187 187 { 188 188 // check whether the button already is in the list (can happen when focus was lost) … … 201 201 202 202 //! Common code for all button released events (updates pressed buttons list and calls the input states) 203 FORCEINLINE void buttonReleased(ButtonTypeParam button)203 ORX_FORCEINLINE void buttonReleased(ButtonTypeParam button) 204 204 { 205 205 // remove the button from the pressedButtons_ list -
code/branches/kicklib2/src/libraries/core/input/InputManager.cc
r8079 r8284 151 151 assert(devices_.size() == InputDeviceEnumerator::FirstJoyStick); 152 152 153 typedef std::pair<std::string, std::string> StringPair; 154 153 155 // Fill parameter list 154 156 OIS::ParamList paramList; 155 157 size_t windowHnd = GraphicsManager::getInstance().getRenderWindowHandle(); 156 paramList.insert( std::make_pair("WINDOW", multi_cast<std::string>(windowHnd)));158 paramList.insert(StringPair("WINDOW", multi_cast<std::string>(windowHnd))); 157 159 #if defined(ORXONOX_PLATFORM_WINDOWS) 158 paramList.insert( std::make_pair("w32_keyboard", "DISCL_NONEXCLUSIVE"));159 paramList.insert( std::make_pair("w32_keyboard", "DISCL_FOREGROUND"));160 paramList.insert( std::make_pair("w32_mouse", "DISCL_FOREGROUND"));160 paramList.insert(StringPair("w32_keyboard", "DISCL_NONEXCLUSIVE")); 161 paramList.insert(StringPair("w32_keyboard", "DISCL_FOREGROUND")); 162 paramList.insert(StringPair("w32_mouse", "DISCL_FOREGROUND")); 161 163 if (exclusiveMouse_ == TriBool::True || GraphicsManager::getInstance().isFullScreen()) 162 164 { 163 165 // Disable Windows key plus special keys (like play, stop, next, etc.) 164 paramList.insert( std::make_pair("w32_keyboard", "DISCL_NOWINKEY"));165 paramList.insert( std::make_pair("w32_mouse", "DISCL_EXCLUSIVE"));166 } 167 else 168 paramList.insert( std::make_pair("w32_mouse", "DISCL_NONEXCLUSIVE"));166 paramList.insert(StringPair("w32_keyboard", "DISCL_NOWINKEY")); 167 paramList.insert(StringPair("w32_mouse", "DISCL_EXCLUSIVE")); 168 } 169 else 170 paramList.insert(StringPair("w32_mouse", "DISCL_NONEXCLUSIVE")); 169 171 #elif defined(ORXONOX_PLATFORM_LINUX) 170 172 // Enabling this is probably a bad idea, but whenever orxonox crashes, the setting stays on 171 173 // Trouble might be that the Pressed event occurs a bit too often... 172 paramList.insert( std::make_pair("XAutoRepeatOn", "true"));174 paramList.insert(StringPair("XAutoRepeatOn", "true")); 173 175 174 176 if (exclusiveMouse_ == TriBool::True || GraphicsManager::getInstance().isFullScreen()) 175 177 { 176 178 if (CommandLineParser::getValue("keyboard_no_grab").getBool()) 177 paramList.insert( std::make_pair("x11_keyboard_grab", "false"));179 paramList.insert(StringPair("x11_keyboard_grab", "false")); 178 180 else 179 paramList.insert( std::make_pair("x11_keyboard_grab", "true"));180 paramList.insert( std::make_pair("x11_mouse_grab", "true"));181 paramList.insert( std::make_pair("x11_mouse_hide", "true"));182 } 183 else 184 { 185 paramList.insert( std::make_pair("x11_keyboard_grab", "false"));186 paramList.insert( std::make_pair("x11_mouse_grab", "false"));187 paramList.insert( std::make_pair("x11_mouse_hide", "false"));181 paramList.insert(StringPair("x11_keyboard_grab", "true")); 182 paramList.insert(StringPair("x11_mouse_grab", "true")); 183 paramList.insert(StringPair("x11_mouse_hide", "true")); 184 } 185 else 186 { 187 paramList.insert(StringPair("x11_keyboard_grab", "false")); 188 paramList.insert(StringPair("x11_mouse_grab", "false")); 189 paramList.insert(StringPair("x11_mouse_hide", "false")); 188 190 } 189 191 #endif -
code/branches/kicklib2/src/libraries/core/input/InputState.h
r7401 r8284 176 176 }; 177 177 178 FORCEINLINE void InputState::update(float dt)178 ORX_FORCEINLINE void InputState::update(float dt) 179 179 { 180 180 for (unsigned int i = 0; i < handlers_.size(); ++i) … … 183 183 } 184 184 185 FORCEINLINE void InputState::update(float dt, unsigned int device)185 ORX_FORCEINLINE void InputState::update(float dt, unsigned int device) 186 186 { 187 187 switch (device) … … 205 205 206 206 template <typename EventType, class ButtonTypeParam> 207 FORCEINLINE void InputState::buttonEvent(unsigned int device, ButtonTypeParam button)207 ORX_FORCEINLINE void InputState::buttonEvent(unsigned int device, ButtonTypeParam button) 208 208 { 209 209 assert(device < handlers_.size()); … … 216 216 } 217 217 218 FORCEINLINE void InputState::mouseMoved(IntVector2 abs, IntVector2 rel, IntVector2 clippingSize)218 ORX_FORCEINLINE void InputState::mouseMoved(IntVector2 abs, IntVector2 rel, IntVector2 clippingSize) 219 219 { 220 220 if (handlers_[mouseIndex_s] != NULL) … … 222 222 } 223 223 224 FORCEINLINE void InputState::mouseScrolled(int abs, int rel)224 ORX_FORCEINLINE void InputState::mouseScrolled(int abs, int rel) 225 225 { 226 226 if (handlers_[mouseIndex_s] != NULL) … … 228 228 } 229 229 230 FORCEINLINE void InputState::joyStickAxisMoved(unsigned int device, unsigned int axis, float value)230 ORX_FORCEINLINE void InputState::joyStickAxisMoved(unsigned int device, unsigned int axis, float value) 231 231 { 232 232 assert(device < handlers_.size());
Note: See TracChangeset
for help on using the changeset viewer.