| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330 |
- /*
- ** Command & Conquer Renegade(tm)
- ** Copyright 2025 Electronic Arts Inc.
- **
- ** This program is free software: you can redistribute it and/or modify
- ** it under the terms of the GNU General Public License as published by
- ** the Free Software Foundation, either version 3 of the License, or
- ** (at your option) any later version.
- **
- ** This program is distributed in the hope that it will be useful,
- ** but WITHOUT ANY WARRANTY; without even the implied warranty of
- ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ** GNU General Public License for more details.
- **
- ** You should have received a copy of the GNU General Public License
- ** along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- /***********************************************************************************************
- *** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S ***
- ***********************************************************************************************
- * *
- * Project Name : Combat *
- * *
- * $Archive:: /Commando/Code/Commando/dlgcontroltabs.cpp $*
- * *
- * Author:: Patrick Smith *
- * *
- * $Modtime:: 4/03/02 2:16p $*
- * *
- * $Revision:: 17 $*
- * *
- *---------------------------------------------------------------------------------------------*
- * Functions: *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
- #include "dlgcontroltabs.h"
- #include "input.h"
- #include "sliderctrl.h"
- #include "vehicle.h"
- #include "comboboxctrl.h"
- #include "translatedb.h"
- #include "string_ids.h"
- #include "useroptions.h"
- #include "combat.h"
- #include "ccamera.h"
- ////////////////////////////////////////////////////////////////
- //
- // ControlsBasicMvmtTabClass
- //
- ////////////////////////////////////////////////////////////////
- ControlsBasicMvmtTabClass::ControlsBasicMvmtTabClass (void) :
- ControlsListTabClass (IDD_CONTROLS_BASIC_MOVMENT_TAB)
- {
- Add_Function (INPUT_FUNCTION_MOVE_FORWARD, IDC_HOTKEY1, IDC_HOTKEY13);
- Add_Function (INPUT_FUNCTION_MOVE_BACKWARD, IDC_HOTKEY2, IDC_HOTKEY14);
- Add_Function (INPUT_FUNCTION_MOVE_LEFT, IDC_HOTKEY3, IDC_HOTKEY15);
- Add_Function (INPUT_FUNCTION_MOVE_RIGHT, IDC_HOTKEY4, IDC_HOTKEY16);
- Add_Function (INPUT_FUNCTION_TURN_LEFT, IDC_HOTKEY5, IDC_HOTKEY17);
- Add_Function (INPUT_FUNCTION_TURN_RIGHT, IDC_HOTKEY6, IDC_HOTKEY18);
- Add_Function (INPUT_FUNCTION_WALK_MODE, IDC_HOTKEY7, IDC_HOTKEY19);
- Add_Function (INPUT_FUNCTION_JUMP, IDC_HOTKEY8, IDC_HOTKEY20);
- Add_Function (INPUT_FUNCTION_CROUCH, IDC_HOTKEY9, IDC_HOTKEY21);
- Add_Function (INPUT_FUNCTION_ACTION, IDC_HOTKEY10, IDC_HOTKEY22);
- Add_Function (INPUT_FUNCTION_TURN_AROUND, IDC_HOTKEY11, IDC_HOTKEY23);
- return ;
- }
- ////////////////////////////////////////////////////////////////
- //
- // ControlsAttackTabClass
- //
- ////////////////////////////////////////////////////////////////
- ControlsAttackTabClass::ControlsAttackTabClass (void) :
- ControlsListTabClass (IDD_CONTROLS_ATTACK_TAB)
- {
- Add_Function (INPUT_FUNCTION_FIRE_WEAPON_PRIMARY, IDC_HOTKEY1, IDC_HOTKEY13);
- Add_Function (INPUT_FUNCTION_FIRE_WEAPON_SECONDARY, IDC_HOTKEY2, IDC_HOTKEY14);
- Add_Function (INPUT_FUNCTION_PREV_WEAPON, IDC_HOTKEY3, IDC_HOTKEY15);
- Add_Function (INPUT_FUNCTION_NEXT_WEAPON, IDC_HOTKEY4, IDC_HOTKEY16);
- Add_Function (INPUT_FUNCTION_RELOAD_WEAPON, IDC_HOTKEY5, IDC_HOTKEY17);
- Add_Function (INPUT_FUNCTION_ZOOM_IN, IDC_HOTKEY6, IDC_HOTKEY18);
- Add_Function (INPUT_FUNCTION_ZOOM_OUT, IDC_HOTKEY7, IDC_HOTKEY19);
- return ;
- }
- ////////////////////////////////////////////////////////////////
- //
- // On_Init_Dialog
- //
- ////////////////////////////////////////////////////////////////
- void
- ControlsAttackTabClass::On_Init_Dialog (void)
- {
- ControlsListTabClass::On_Init_Dialog ();
- Load_Controls ();
- return ;
- }
- ////////////////////////////////////////////////////////////////
- //
- // On_Apply
- //
- ////////////////////////////////////////////////////////////////
- bool
- ControlsAttackTabClass::On_Apply (void)
- {
- ControlsListTabClass::On_Apply ();
- //
- // Read the data from the checkboxes
- //
- Input::Enable_Damage_Indicators (Is_Dlg_Button_Checked (IDC_DAMAGE_INDICATOR_CHECK));
- return true;
- }
- ////////////////////////////////////////////////////////////////
- //
- // Load_Controls
- //
- ////////////////////////////////////////////////////////////////
- void
- ControlsAttackTabClass::Load_Controls (void)
- {
- Check_Dlg_Button (IDC_DAMAGE_INDICATOR_CHECK, Input::Are_Damage_Indicators_Enabled ());
- return ;
- }
- ////////////////////////////////////////////////////////////////
- //
- // On_Reload
- //
- ////////////////////////////////////////////////////////////////
- void
- ControlsAttackTabClass::On_Reload (void)
- {
- ControlsListTabClass::On_Reload ();
- Load_Controls ();
- return ;
- }
- ////////////////////////////////////////////////////////////////
- //
- // ControlsWeaponsTabClass
- //
- ////////////////////////////////////////////////////////////////
- ControlsWeaponsTabClass::ControlsWeaponsTabClass (void) :
- ControlsListTabClass (IDD_CONTROLS_WEAPONS_TAB)
- {
- Add_Function (INPUT_FUNCTION_SELECT_WEAPON_1, IDC_HOTKEY1, IDC_HOTKEY13);
- Add_Function (INPUT_FUNCTION_SELECT_WEAPON_2, IDC_HOTKEY2, IDC_HOTKEY14);
- Add_Function (INPUT_FUNCTION_SELECT_WEAPON_3, IDC_HOTKEY3, IDC_HOTKEY15);
- Add_Function (INPUT_FUNCTION_SELECT_WEAPON_4, IDC_HOTKEY4, IDC_HOTKEY16);
- Add_Function (INPUT_FUNCTION_SELECT_WEAPON_5, IDC_HOTKEY5, IDC_HOTKEY17);
- Add_Function (INPUT_FUNCTION_SELECT_WEAPON_6, IDC_HOTKEY6, IDC_HOTKEY18);
- Add_Function (INPUT_FUNCTION_SELECT_WEAPON_7, IDC_HOTKEY7, IDC_HOTKEY19);
- Add_Function (INPUT_FUNCTION_SELECT_WEAPON_8, IDC_HOTKEY8, IDC_HOTKEY20);
- Add_Function (INPUT_FUNCTION_SELECT_WEAPON_9, IDC_HOTKEY9, IDC_HOTKEY21);
- Add_Function (INPUT_FUNCTION_SELECT_WEAPON_0, IDC_HOTKEY10, IDC_HOTKEY22);
- return ;
- }
- ////////////////////////////////////////////////////////////////
- //
- // ControlsLookTabClass
- //
- ////////////////////////////////////////////////////////////////
- ControlsLookTabClass::ControlsLookTabClass (void) :
- ControlsListTabClass (IDD_CONTROLS_LOOK_TAB)
- {
- Add_Function (INPUT_FUNCTION_CURSOR_TARGETING, IDC_HOTKEY1, IDC_HOTKEY13);
- Add_Function (INPUT_FUNCTION_FIRST_PERSON_TOGGLE, IDC_HOTKEY2, IDC_HOTKEY14);
- return ;
- }
- ////////////////////////////////////////////////////////////////
- //
- // On_Init_Dialog
- //
- ////////////////////////////////////////////////////////////////
- void
- ControlsLookTabClass::On_Init_Dialog (void)
- {
- ControlsListTabClass::On_Init_Dialog ();
- //
- // Configure the mouse sensivity slider
- //
- SliderCtrlClass *slider_ctrl = (SliderCtrlClass *)Get_Dlg_Item (IDC_MOUSE_SENSITIVITY_SLIDER);
- if (slider_ctrl != NULL) {
- slider_ctrl->Set_Range (0, 100);
- }
- //
- // Configure the steering mode combobox
- //
- // ComboBoxCtrlClass *combo_box = (ComboBoxCtrlClass *)Get_Dlg_Item (IDC_STEERING_MODE_COMBO);
- // if (combo_box != NULL) {
- // combo_box->Add_String (TRANSLATE (IDS_STEERING_MODE_NORMAL));
- // combo_box->Add_String (TRANSLATE (IDS_STEERING_MODE_TARGET));
- // combo_box->Set_Curr_Sel (1);
- // }
- Load_Controls ();
- return ;
- }
- ////////////////////////////////////////////////////////////////
- //
- // On_Apply
- //
- ////////////////////////////////////////////////////////////////
- bool
- ControlsLookTabClass::On_Apply (void)
- {
- ControlsListTabClass::On_Apply ();
- //
- // Read the data from the slider
- //
- SliderCtrlClass *slider_ctrl = (SliderCtrlClass *)Get_Dlg_Item (IDC_MOUSE_SENSITIVITY_SLIDER);
- if (slider_ctrl != NULL) {
- Input::Set_Mouse_Sensitivity (slider_ctrl->Get_Pos () / 100.0F);
- }
- //
- // Read the steering mode
- //
- // Always keyboard steer
- VehicleGameObj::Set_Target_Steering (false);
- // ComboBoxCtrlClass *combo_box = (ComboBoxCtrlClass *)Get_Dlg_Item (IDC_STEERING_MODE_COMBO);
- // if (combo_box != NULL) {
- // VehicleGameObj::Set_Target_Steering ((combo_box->Get_Curr_Sel () == 1));
- // }
- //
- // Read the data from the checkboxes
- //
- Input::Set_Mouse_Invert (Is_Dlg_Button_Checked (IDC_INVERT_MOUSE_CHECK));
- Input::Set_Mouse_2D_Invert (Is_Dlg_Button_Checked (IDC_INVERT_CURSOR_TARGETTING_CHECK));
- cUserOptions::CameraLockedToTurret.Set(Is_Dlg_Button_Checked (IDC_LOCK_CAMERA_TO_TURRET_CHECK));
- //
- // Notify combat about the state of the CameraLockedToTurret user option.
- //
- VehicleGameObj::Set_Camera_Locked_To_Turret(cUserOptions::CameraLockedToTurret.Get());
- return true;
- }
- ////////////////////////////////////////////////////////////////
- //
- // Load_Controls
- //
- ////////////////////////////////////////////////////////////////
- void
- ControlsLookTabClass::Load_Controls (void)
- {
- //
- // Configure the mouse sensivity slider
- //
- SliderCtrlClass *slider_ctrl = (SliderCtrlClass *)Get_Dlg_Item (IDC_MOUSE_SENSITIVITY_SLIDER);
- if (slider_ctrl != NULL) {
- slider_ctrl->Set_Pos (Input::Get_Mouse_Sensitivity () * 100);
- }
- //
- // Load the steering mode setting
- //
- // ComboBoxCtrlClass *combo_box = (ComboBoxCtrlClass *)Get_Dlg_Item (IDC_STEERING_MODE_COMBO);
- // if (combo_box != NULL) {
- // combo_box->Set_Curr_Sel (VehicleGameObj::Is_Target_Steering ());
- // }
- //
- // Configure the check boxes
- //
- Check_Dlg_Button (IDC_INVERT_MOUSE_CHECK, Input::Get_Mouse_Invert ());
- Check_Dlg_Button (IDC_INVERT_CURSOR_TARGETTING_CHECK, Input::Get_Mouse_2D_Invert ());
- Check_Dlg_Button (IDC_LOCK_CAMERA_TO_TURRET_CHECK, cUserOptions::CameraLockedToTurret.Get());
-
- return ;
- }
- ////////////////////////////////////////////////////////////////
- //
- // On_Reload
- //
- ////////////////////////////////////////////////////////////////
- void
- ControlsLookTabClass::On_Reload (void)
- {
- ControlsListTabClass::On_Reload ();
- Load_Controls ();
- return ;
- }
- ////////////////////////////////////////////////////////////////
- //
- // ControlsMultiPlayTabClass
- //
- ////////////////////////////////////////////////////////////////
- ControlsMultiPlayTabClass::ControlsMultiPlayTabClass (void) :
- ControlsListTabClass (IDD_CONTROLS_MULTIPLAYER_TAB)
- {
- Add_Function (INPUT_FUNCTION_BEGIN_PUBLIC_MESSAGE, IDC_HOTKEY1, IDC_HOTKEY13);
- Add_Function (INPUT_FUNCTION_BEGIN_TEAM_MESSAGE, IDC_HOTKEY2, IDC_HOTKEY14);
- Add_Function (INPUT_FUNCTION_TEAM_INFO_TOGGLE, IDC_HOTKEY3, IDC_HOTKEY15);
- Add_Function (INPUT_FUNCTION_BATTLE_INFO_TOGGLE, IDC_HOTKEY4, IDC_HOTKEY16);
- Add_Function (INPUT_FUNCTION_EVA_OBJECTIVES_SCREEN, IDC_HOTKEY5, IDC_HOTKEY17);
- Add_Function (INPUT_FUNCTION_EVA_MAP_SCREEN, IDC_HOTKEY6, IDC_HOTKEY18);
- return ;
- }
|