diff --git a/Generals/Code/GameEngine/Include/GameClient/Mouse.h b/Generals/Code/GameEngine/Include/GameClient/Mouse.h index 376733a968..b3955efc6c 100644 --- a/Generals/Code/GameEngine/Include/GameClient/Mouse.h +++ b/Generals/Code/GameEngine/Include/GameClient/Mouse.h @@ -285,6 +285,7 @@ class Mouse : public SubsystemInterface virtual void setPosition( Int x, Int y ); ///< set the mouse position virtual void setCursor( MouseCursor cursor ) = 0; ///< set mouse cursor + void initCapture(); ///< called once to unlock the mouse capture functionality void setCursorCaptureMode(CursorCaptureMode mode); ///< set the rules for the mouse capture void refreshCursorCapture(); ///< refresh the mouse capture Bool isCursorCaptured(); ///< true if the mouse is captured in the game window @@ -348,7 +349,6 @@ class Mouse : public SubsystemInterface protected: - void initCapture(); Bool canCapture() const; ///< true if the mouse can be captured void unblockCapture(CursorCaptureBlockReason reason); // unset a reason to block mouse capture void blockCapture(CursorCaptureBlockReason reason); // set a reason to block mouse capture diff --git a/Generals/Code/GameEngine/Source/GameClient/GameClient.cpp b/Generals/Code/GameEngine/Source/GameClient/GameClient.cpp index b317344c68..0a2839ffe2 100644 --- a/Generals/Code/GameEngine/Source/GameClient/GameClient.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/GameClient.cpp @@ -378,14 +378,15 @@ void GameClient::init( void ) TheRayEffects->setName("TheRayEffects"); } - TheMouse->init(); //finish initializing the mouse. - // set the limits of the mouse now that we've created the display and such if( TheMouse ) { + // finish initializing the mouse. + TheMouse->init(); + TheMouse->initCapture(); TheMouse->setPosition( 0, 0 ); TheMouse->setMouseLimits(); - TheMouse->setName("TheMouse"); + TheMouse->setName("TheMouse"); } // create the video player diff --git a/Generals/Code/GameEngine/Source/GameClient/Input/Mouse.cpp b/Generals/Code/GameEngine/Source/GameClient/Input/Mouse.cpp index 20845aca1b..1ae52d75e0 100644 --- a/Generals/Code/GameEngine/Source/GameClient/Input/Mouse.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/Input/Mouse.cpp @@ -520,7 +520,7 @@ Mouse::Mouse( void ) m_tooltipBackColor.blue = 0; m_tooltipBackColor.alpha = 255; - m_cursorCaptureMode = CursorCaptureMode_Default; + m_cursorCaptureMode = 0; m_captureBlockReasonBits = (1 << CursorCaptureBlockReason_NoInit); DEBUG_LOG(("Mouse::Mouse: m_blockCaptureReason=CursorCaptureBlockReason_NoInit")); @@ -582,9 +582,6 @@ void Mouse::init( void ) // allocate a new display string m_cursorTextDisplayString = TheDisplayStringManager->newDisplayString(); - - initCapture(); - } //------------------------------------------------------------------------------------------------- diff --git a/GeneralsMD/Code/GameEngine/Include/GameClient/Mouse.h b/GeneralsMD/Code/GameEngine/Include/GameClient/Mouse.h index 77cec327be..73e6512381 100644 --- a/GeneralsMD/Code/GameEngine/Include/GameClient/Mouse.h +++ b/GeneralsMD/Code/GameEngine/Include/GameClient/Mouse.h @@ -285,6 +285,7 @@ class Mouse : public SubsystemInterface virtual void setPosition( Int x, Int y ); ///< set the mouse position virtual void setCursor( MouseCursor cursor ) = 0; ///< set mouse cursor + void initCapture(); ///< called once to unlock the mouse capture functionality void setCursorCaptureMode(CursorCaptureMode mode); ///< set the rules for the mouse capture void refreshCursorCapture(); ///< refresh the mouse capture Bool isCursorCaptured(); ///< true if the mouse is captured in the game window @@ -349,7 +350,6 @@ class Mouse : public SubsystemInterface protected: - void initCapture(); Bool canCapture() const; ///< true if the mouse can be captured void unblockCapture(CursorCaptureBlockReason reason); // unset a reason to block mouse capture void blockCapture(CursorCaptureBlockReason reason); // set a reason to block mouse capture diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GameClient.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GameClient.cpp index 583721ff51..1c6c5e8e9d 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GameClient.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GameClient.cpp @@ -391,14 +391,15 @@ void GameClient::init( void ) TheRayEffects->setName("TheRayEffects"); } - TheMouse->init(); //finish initializing the mouse. - // set the limits of the mouse now that we've created the display and such if( TheMouse ) { + // finish initializing the mouse. + TheMouse->init(); + TheMouse->initCapture(); TheMouse->setPosition( 0, 0 ); TheMouse->setMouseLimits(); - TheMouse->setName("TheMouse"); + TheMouse->setName("TheMouse"); } // create the video player diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/Input/Mouse.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/Input/Mouse.cpp index ee58890a90..4fd76fdf4c 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/Input/Mouse.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/Input/Mouse.cpp @@ -520,7 +520,7 @@ Mouse::Mouse( void ) m_tooltipBackColor.blue = 0; m_tooltipBackColor.alpha = 255; - m_cursorCaptureMode = CursorCaptureMode_Default; + m_cursorCaptureMode = 0; m_captureBlockReasonBits = (1 << CursorCaptureBlockReason_NoInit); DEBUG_LOG(("Mouse::Mouse: m_blockCaptureReason=CursorCaptureBlockReason_NoInit")); @@ -582,9 +582,6 @@ void Mouse::init( void ) // allocate a new display string m_cursorTextDisplayString = TheDisplayStringManager->newDisplayString(); - - initCapture(); - } //-------------------------------------------------------------------------------------------------