File tree Expand file tree Collapse file tree
GeneralsMD/Code/GameEngine Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -69,6 +69,7 @@ class OptionPreferences : public UserPreferences
6969 void setOnlineIPAddress (UnsignedInt IP );
7070 Bool getArchiveReplaysEnabled () const ;
7171 Bool getAlternateMouseModeEnabled ();
72+ Bool getRightMouseScrollWithAlternateMouseEnabled () const ;
7273 Bool getRetaliationModeEnabled ();
7374 Bool getDoubleClickAttackMoveEnabled ();
7475 Real getScrollFactor ();
Original file line number Diff line number Diff line change @@ -203,6 +203,18 @@ Bool OptionPreferences::getAlternateMouseModeEnabled()
203203 return FALSE ;
204204}
205205
206+ Bool OptionPreferences::getRightMouseScrollWithAlternateMouseEnabled () const
207+ {
208+ OptionPreferences::const_iterator it = find (" UseRightMouseScrollWithAlternateMouse" );
209+ if (it == end ())
210+ return TheGlobalData->m_useRightMouseScrollWithAlternateMouse ;
211+
212+ if (stricmp (it->second .str (), " yes" ) == 0 ) {
213+ return TRUE ;
214+ }
215+ return FALSE ;
216+ }
217+
206218Bool OptionPreferences::getRetaliationModeEnabled ()
207219{
208220 OptionPreferences::const_iterator it = find (" Retaliation" );
Original file line number Diff line number Diff line change @@ -139,6 +139,7 @@ class GlobalData : public SubsystemInterface
139139 Bool m_enableStaticLOD;
140140 Int m_terrainLODTargetTimeMS;
141141 Bool m_useAlternateMouse;
142+ Bool m_useRightMouseScrollWithAlternateMouse; // TheSuperHackers @feature User option for RMB scroll in Alternate Mouse mode.
142143 Bool m_clientRetaliationModeEnabled;
143144 Bool m_doubleClickAttackMove;
144145 Bool m_rightMouseAlwaysScrolls;
Original file line number Diff line number Diff line change @@ -1038,7 +1038,15 @@ GlobalData::GlobalData()
10381038
10391039 m_keyboardCameraRotateSpeed = 0 .1f ;
10401040
1041+ m_useAlternateMouse = FALSE ;
1042+ #if RTS_GENERALS
1043+ // disable mouse scrolling in alternate mouse mode, per Harvard 7/15/03
1044+ m_useRightMouseScrollWithAlternateMouse = FALSE ;
1045+ #else
1046+ m_useRightMouseScrollWithAlternateMouse = TRUE ;
1047+ #endif
10411048 m_clientRetaliationModeEnabled = TRUE ; // On by default.
1049+ m_doubleClickAttackMove = FALSE ;
10421050
10431051}
10441052
@@ -1187,6 +1195,7 @@ void GlobalData::parseGameDataDefinition( INI* ini )
11871195 // override INI values with user preferences
11881196 OptionPreferences optionPref;
11891197 TheWritableGlobalData->m_useAlternateMouse = optionPref.getAlternateMouseModeEnabled ();
1198+ TheWritableGlobalData->m_useRightMouseScrollWithAlternateMouse = optionPref.getRightMouseScrollWithAlternateMouseEnabled ();
11901199 TheWritableGlobalData->m_clientRetaliationModeEnabled = optionPref.getRetaliationModeEnabled ();
11911200 TheWritableGlobalData->m_doubleClickAttackMove = optionPref.getDoubleClickAttackMoveEnabled ();
11921201 TheWritableGlobalData->m_keyboardScrollFactor = optionPref.getScrollFactor ();
Original file line number Diff line number Diff line change @@ -579,6 +579,13 @@ static void saveOptions()
579579 TheWritableGlobalData->m_useAlternateMouse = GadgetCheckBoxIsChecked (checkAlternateMouse);
580580 (*pref)[" UseAlternateMouse" ] = TheWritableGlobalData->m_useAlternateMouse ? " yes" : " no" ;
581581
582+ // TheSuperHackers @todo Add check box ?
583+ {
584+ Bool useRightMouseScrollWithAlternateMouse = pref->getRightMouseScrollWithAlternateMouseEnabled ();
585+ (*pref)[" UseRightMouseScrollWithAlternateMouse" ] = useRightMouseScrollWithAlternateMouse ? " yes" : " no" ;
586+ TheWritableGlobalData->m_useRightMouseScrollWithAlternateMouse = useRightMouseScrollWithAlternateMouse;
587+ }
588+
582589 // TheSuperHackers @todo Add combo box ?
583590 {
584591 CursorCaptureMode mode = pref->getCursorCaptureMode ();
Original file line number Diff line number Diff line change @@ -261,7 +261,9 @@ GameMessageDisposition LookAtTranslator::translateGameMessage(const GameMessage
261261 m_anchor = msg->getArgument ( 0 )->pixel ;
262262 m_currentPos = msg->getArgument ( 0 )->pixel ;
263263
264- if (!TheInGameUI->isSelecting () && !m_isScrolling)
264+ const Bool userWantsRMBScroll = !TheGlobalData->m_useAlternateMouse || TheGlobalData->m_useRightMouseScrollWithAlternateMouse ;
265+
266+ if (userWantsRMBScroll && !TheInGameUI->isSelecting () && !m_isScrolling)
265267 {
266268 setScrolling (SCROLL_RMB );
267269 }
Original file line number Diff line number Diff line change @@ -140,6 +140,7 @@ class GlobalData : public SubsystemInterface
140140 Bool m_enableStaticLOD;
141141 Int m_terrainLODTargetTimeMS;
142142 Bool m_useAlternateMouse;
143+ Bool m_useRightMouseScrollWithAlternateMouse; // TheSuperHackers @feature User option for RMB scroll in Alternate Mouse mode.
143144 Bool m_clientRetaliationModeEnabled;
144145 Bool m_doubleClickAttackMove;
145146 Bool m_rightMouseAlwaysScrolls;
Original file line number Diff line number Diff line change @@ -1053,7 +1053,15 @@ GlobalData::GlobalData()
10531053 // -allAdvice feature
10541054 // m_allAdvice = FALSE;
10551055
1056+ m_useAlternateMouse = FALSE ;
1057+ #if RTS_GENERALS
1058+ // disable mouse scrolling in alternate mouse mode, per Harvard 7/15/03
1059+ m_useRightMouseScrollWithAlternateMouse = FALSE ;
1060+ #else
1061+ m_useRightMouseScrollWithAlternateMouse = TRUE ;
1062+ #endif
10561063 m_clientRetaliationModeEnabled = TRUE ; // On by default.
1064+ m_doubleClickAttackMove = FALSE ;
10571065
10581066}
10591067
@@ -1194,6 +1202,7 @@ void GlobalData::parseGameDataDefinition( INI* ini )
11941202 // override INI values with user preferences
11951203 OptionPreferences optionPref;
11961204 TheWritableGlobalData->m_useAlternateMouse = optionPref.getAlternateMouseModeEnabled ();
1205+ TheWritableGlobalData->m_useRightMouseScrollWithAlternateMouse = optionPref.getRightMouseScrollWithAlternateMouseEnabled ();
11971206 TheWritableGlobalData->m_clientRetaliationModeEnabled = optionPref.getRetaliationModeEnabled ();
11981207 TheWritableGlobalData->m_doubleClickAttackMove = optionPref.getDoubleClickAttackMoveEnabled ();
11991208 TheWritableGlobalData->m_keyboardScrollFactor = optionPref.getScrollFactor ();
Original file line number Diff line number Diff line change @@ -598,6 +598,13 @@ static void saveOptions()
598598 TheWritableGlobalData->m_useAlternateMouse = GadgetCheckBoxIsChecked (checkAlternateMouse);
599599 (*pref)[" UseAlternateMouse" ] = TheWritableGlobalData->m_useAlternateMouse ? " yes" : " no" ;
600600
601+ // TheSuperHackers @todo Add check box ?
602+ {
603+ Bool useRightMouseScrollWithAlternateMouse = pref->getRightMouseScrollWithAlternateMouseEnabled ();
604+ (*pref)[" UseRightMouseScrollWithAlternateMouse" ] = useRightMouseScrollWithAlternateMouse ? " yes" : " no" ;
605+ TheWritableGlobalData->m_useRightMouseScrollWithAlternateMouse = useRightMouseScrollWithAlternateMouse;
606+ }
607+
601608 TheWritableGlobalData->m_clientRetaliationModeEnabled = GadgetCheckBoxIsChecked (checkRetaliation);
602609 (*pref)[" Retaliation" ] = TheWritableGlobalData->m_clientRetaliationModeEnabled ? " yes" : " no" ;
603610
Original file line number Diff line number Diff line change @@ -261,7 +261,9 @@ GameMessageDisposition LookAtTranslator::translateGameMessage(const GameMessage
261261 m_anchor = msg->getArgument ( 0 )->pixel ;
262262 m_currentPos = msg->getArgument ( 0 )->pixel ;
263263
264- if (!TheInGameUI->isSelecting () && !m_isScrolling)
264+ const Bool userWantsRMBScroll = !TheGlobalData->m_useAlternateMouse || TheGlobalData->m_useRightMouseScrollWithAlternateMouse ;
265+
266+ if (userWantsRMBScroll && !TheInGameUI->isSelecting () && !m_isScrolling)
265267 {
266268 setScrolling (SCROLL_RMB );
267269 }
You can’t perform that action at this time.
0 commit comments