Skip to content

Commit 2d14d5b

Browse files
committed
fix(input): Remove side effects from hasMouseMovedRecently
1 parent eca1f26 commit 2d14d5b

File tree

2 files changed

+16
-18
lines changed
  • GeneralsMD/Code/GameEngine/Source/GameClient/MessageStream
  • Generals/Code/GameEngine/Source/GameClient/MessageStream

2 files changed

+16
-18
lines changed

Generals/Code/GameEngine/Source/GameClient/MessageStream/LookAtXlat.cpp

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -171,16 +171,12 @@ const ICoord2D* LookAtTranslator::getRMBScrollAnchor(void)
171171

172172
Bool LookAtTranslator::hasMouseMovedRecently( void )
173173
{
174-
UnsignedInt now = timeGetTime();
174+
const UnsignedInt now = timeGetTime();
175+
const UnsignedInt lastMove = m_lastMouseMoveTimeMsec;
175176

176-
// Handle time wraparound
177-
if (now < m_lastMouseMoveTimeMsec)
178-
m_lastMouseMoveTimeMsec = now;
177+
const UnsignedInt elapsedMsec = now - lastMove;
179178

180-
if (now - m_lastMouseMoveTimeMsec > MSEC_PER_SECOND)
181-
return false;
182-
183-
return true;
179+
return elapsedMsec <= MSEC_PER_SECOND;
184180
}
185181

186182
void LookAtTranslator::setCurrentPos( const ICoord2D& pos )
@@ -313,8 +309,11 @@ GameMessageDisposition LookAtTranslator::translateGameMessage(const GameMessage
313309
if (dx<0) dx = -dx;
314310
Int dy = m_currentPos.y-m_originalAnchor.y;
315311
Bool didMove = dx>PIXEL_OFFSET || dy>PIXEL_OFFSET;
312+
313+
const UnsignedInt elapsedMsec = now - m_middleButtonDownTimeMsec;
314+
316315
// if middle button is "clicked", reset to "home" orientation
317-
if (!didMove && now - m_middleButtonDownTimeMsec < CLICK_DURATION_MSEC)
316+
if (!didMove && elapsedMsec < CLICK_DURATION_MSEC)
318317
{
319318
TheTacticalView->setAngleAndPitchToDefault();
320319
TheTacticalView->setZoomToDefault();

GeneralsMD/Code/GameEngine/Source/GameClient/MessageStream/LookAtXlat.cpp

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -171,16 +171,12 @@ const ICoord2D* LookAtTranslator::getRMBScrollAnchor(void)
171171

172172
Bool LookAtTranslator::hasMouseMovedRecently( void )
173173
{
174-
UnsignedInt now = timeGetTime();
174+
const UnsignedInt now = timeGetTime();
175+
const UnsignedInt lastMove = m_lastMouseMoveTimeMsec;
175176

176-
// Handle time wraparound
177-
if (now < m_lastMouseMoveTimeMsec)
178-
m_lastMouseMoveTimeMsec = now;
177+
const UnsignedInt elapsedMsec = now - lastMove;
179178

180-
if (now - m_lastMouseMoveTimeMsec > MSEC_PER_SECOND)
181-
return false;
182-
183-
return true;
179+
return elapsedMsec <= MSEC_PER_SECOND;
184180
}
185181

186182
void LookAtTranslator::setCurrentPos( const ICoord2D& pos )
@@ -312,8 +308,11 @@ GameMessageDisposition LookAtTranslator::translateGameMessage(const GameMessage
312308
if (dx<0) dx = -dx;
313309
Int dy = m_currentPos.y-m_originalAnchor.y;
314310
Bool didMove = dx>PIXEL_OFFSET || dy>PIXEL_OFFSET;
311+
312+
const UnsignedInt elapsedMsec = now - m_middleButtonDownTimeMsec;
313+
315314
// if middle button is "clicked", reset to "home" orientation
316-
if (!didMove && now - m_middleButtonDownTimeMsec < CLICK_DURATION_MSEC)
315+
if (!didMove && elapsedMsec < CLICK_DURATION_MSEC)
317316
{
318317
TheTacticalView->setAngleAndPitchToDefault();
319318
TheTacticalView->setZoomToDefault();

0 commit comments

Comments
 (0)