Skip to content

Commit

Permalink
Remapped Control Settings and Added Advanced control Settings that al…
Browse files Browse the repository at this point in the history
…low you to enable toggle behaviour on sprint, crouch and zoom (ref #91)
  • Loading branch information
MadDeCoDeR committed Feb 23, 2023
1 parent 6383990 commit 7fee232
Show file tree
Hide file tree
Showing 12 changed files with 581 additions and 59 deletions.
6 changes: 6 additions & 0 deletions base/strings/english_bfa.lang
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@
"#str_swf_openAL" "OpenAL-soft"
"#str_04102" "Always Run"
"#str_swf_only_MP" "Only MP"
"#str_swf_adv_controls" "Advanced Control Settings"
"#str_swf_adv_controls_desc" "Adjust Additional Control Settings"
"#str_swf_adv_controls_heading" "Advanced Controls"
"#str_swf_toggle_run" "Toggle Run"
"#str_swf_toggle_crouch" "Toggle Crouch"
"#str_swf_toggle_zoom" "Toggle Zoom"
// "#str_swf_custom_game" "Mod Name"
// "#str_swf_start_map" "First Map to load"
}
6 changes: 6 additions & 0 deletions base/strings/french_bfa.lang
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@
"#str_swf_openAL" "OpenAL-soft"
"#str_04102" "Toujours exécuter"
"#str_swf_only_MP" "Seul MP"
"#str_swf_adv_controls" "Paramètres de contrôle avancés"
"#str_swf_adv_controls_desc" "Ajuster les paramètres de contrôle supplémentaires"
"#str_swf_adv_controls_heading" "Contrôles avancés"
"#str_swf_toggle_run" "Basculer l'exécution"
"#str_swf_toggle_crouch" "Désactiver l'accroupissement"
"#str_swf_toggle_zoom" "Basculer le zoom"
// "#str_swf_custom_game" "Nom du mod"
// "#str_swf_start_map" "Première carte à charger"
}
6 changes: 6 additions & 0 deletions base/strings/german_bfa.lang
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@
"#str_swf_openAL" "OpenAL-soft"
"#str_04102" "Immer ausführen"
"#str_swf_only_MP" "Nur MP"
"#str_swf_adv_controls" "Erweiterte Steuerungseinstellungen"
"#str_swf_adv_controls_desc" "Zusätzliche Steuerelementeinstellungen anpassen"
"#str_swf_adv_controls_heading" "Erweiterte Steuerelemente"
"#str_swf_toggle_run" "Lauf umschalten"
"#str_swf_toggle_crouch" "Hocken umschalten"
"#str_swf_toggle_zoom" "Zoom umschalten"
// "#str_swf_custom_game" "Mod Name"
// "#str_swf_start_map" "Erste zu ladende Karte"
}
6 changes: 6 additions & 0 deletions base/strings/italian_bfa.lang
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@
"#str_swf_openAL" "OpenAL-soft"
"#str_04102" "Corri sempre"
"#str_swf_only_MP" "Solo MP"
"#str_swf_adv_controls" "Impostazioni di controllo avanzate"
"#str_swf_adv_controls_desc" "Regola impostazioni di controllo aggiuntive"
"#str_swf_adv_controls_heading" "Controlli avanzati"
"#str_swf_toggle_run" "Alterna esecuzione"
"#str_swf_toggle_crouch" "Alterna accovacciati"
"#str_swf_toggle_zoom" "Attiva/disattiva zoom"
// "#str_swf_custom_game" "Nome mod"
// "#str_swf_start_map" "Prima mappa da caricare"
}
6 changes: 6 additions & 0 deletions base/strings/japanese_bfa.lang
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@
"#str_swf_openAL" "OpenAL-soft"
"#str_04102" "常に実行"
"#str_swf_only_MP" "MPのみ"
"#str_swf_adv_controls" "高度なコントロール設定"
"#str_swf_adv_controls_desc" "追加のコントロール設定を調整する"
"#str_swf_adv_controls_heading" "高度なコントロール"
"#str_swf_toggle_run" "トグル実行"
"#str_swf_toggle_crouch" "しゃがむトグル"
"#str_swf_toggle_zoom" "ズームの切り替え"
// "#str_swf_custom_game" "Mod Name"
// "#str_swf_start_map" "最初にロードするマップ"
}
6 changes: 6 additions & 0 deletions base/strings/spanish_bfa.lang
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@
"#str_swf_openAL" "OpenAL-soft"
"#str_04102" "Ejecutar siempre"
"#str_swf_only_MP" "Sólo MP"
"#str_swf_adv_controls" "Configuración de control avanzada"
"#str_swf_adv_controls_desc" "Ajustar la configuración de control adicional"
"#str_swf_adv_controls_heading" "Controles avanzados"
"#str_swf_toggle_run" "Alternar ejecución"
"#str_swf_toggle_crouch" "Alternar agacharse"
"#str_swf_toggle_zoom" "Cambiar Zoom"
// "#str_swf_custom_game" "Nombre del mod"
// "#str_swf_start_map" "Primer mapa para cargar"
}
1 change: 1 addition & 0 deletions neo/d3xp/menus/MenuHandler.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ enum shellAreas_t
SHELL_AREA_CONTROLS,
SHELL_AREA_CONTROLLER_LAYOUT,
SHELL_AREA_GAMEPAD,
SHELL_AREA_ADV_CONTROLS,
SHELL_AREA_PAUSE,
SHELL_AREA_LEADERBOARDS,
SHELL_AREA_PLAYSTATION,
Expand Down
6 changes: 4 additions & 2 deletions neo/d3xp/menus/MenuHandler_Shell.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -488,6 +488,7 @@ void idMenuHandler_ShellLocal::Initialize( const char* swfFile, idSoundWorld* sw
BIND_SHELL_SCREEN( SHELL_AREA_CONTROLLER_LAYOUT, idMenuScreen_Shell_ControllerLayout, this );

BIND_SHELL_SCREEN( SHELL_AREA_GAMEPAD, idMenuScreen_Shell_Gamepad, this );
BIND_SHELL_SCREEN(SHELL_AREA_ADV_CONTROLS, idMenuScreen_Shell_Adv_Controls, this);
BIND_SHELL_SCREEN( SHELL_AREA_CREDITS, idMenuScreen_Shell_Credits, this );

}
Expand All @@ -514,6 +515,7 @@ void idMenuHandler_ShellLocal::Initialize( const char* swfFile, idSoundWorld* sw
BIND_SHELL_SCREEN( SHELL_AREA_DEV, idMenuScreen_Shell_Dev, this );
BIND_SHELL_SCREEN( SHELL_AREA_LEADERBOARDS, idMenuScreen_Shell_Leaderboards, this );
BIND_SHELL_SCREEN( SHELL_AREA_GAMEPAD, idMenuScreen_Shell_Gamepad, this );
BIND_SHELL_SCREEN(SHELL_AREA_ADV_CONTROLS, idMenuScreen_Shell_Adv_Controls, this);
BIND_SHELL_SCREEN( SHELL_AREA_MATCH_SETTINGS, idMenuScreen_Shell_MatchSettings, this );
BIND_SHELL_SCREEN( SHELL_AREA_MODE_SELECT, idMenuScreen_Shell_ModeSelect, this );
BIND_SHELL_SCREEN( SHELL_AREA_BROWSER, idMenuScreen_Shell_GameBrowser, this );
Expand Down Expand Up @@ -1047,7 +1049,7 @@ bool idMenuHandler_ShellLocal::HandleAction( idWidgetAction& action, const idWid
session->Cancel();
}

if( cmd != SHELL_CMD_QUIT && ( nextScreen == SHELL_AREA_STEREOSCOPICS || nextScreen == SHELL_AREA_SYSTEM_OPTIONS || nextScreen == SHELL_AREA_GAME_OPTIONS ||
if( cmd != SHELL_CMD_QUIT && ( nextScreen == SHELL_AREA_STEREOSCOPICS || nextScreen == SHELL_AREA_SYSTEM_OPTIONS || nextScreen == SHELL_AREA_GAME_OPTIONS || nextScreen == SHELL_AREA_ADV_CONTROLS ||
nextScreen == SHELL_AREA_GAMEPAD || nextScreen == SHELL_AREA_MATCH_SETTINGS || nextScreen == SHELL_AREA_ADVANCED || nextScreen == SHELL_AREA_ADV_GRAPHICS) )
{

Expand Down Expand Up @@ -1285,7 +1287,7 @@ void idMenuHandler_ShellLocal::UpdateBGState()
if( nextScreen != SHELL_AREA_PLAYSTATION && nextScreen != SHELL_AREA_SETTINGS && nextScreen != SHELL_AREA_CAMPAIGN && nextScreen != SHELL_AREA_DEV )
{
if( nextScreen != SHELL_AREA_RESOLUTION && nextScreen != SHELL_AREA_GAMEPAD && nextScreen != SHELL_AREA_DIFFICULTY && nextScreen != SHELL_AREA_SYSTEM_OPTIONS && nextScreen != SHELL_AREA_GAME_OPTIONS && nextScreen != SHELL_AREA_NEW_GAME && nextScreen != SHELL_AREA_STEREOSCOPICS &&
nextScreen != SHELL_AREA_CONTROLS && nextScreen != SHELL_AREA_ADVANCED && nextScreen != SHELL_AREA_ADV_GRAPHICS)
nextScreen != SHELL_AREA_CONTROLS && nextScreen != SHELL_AREA_ADVANCED && nextScreen != SHELL_AREA_ADV_GRAPHICS && nextScreen != SHELL_AREA_ADV_CONTROLS)
{
ShowSmallFrame( false );
}
Expand Down
68 changes: 66 additions & 2 deletions neo/d3xp/menus/MenuScreen.h
Original file line number Diff line number Diff line change
Expand Up @@ -1172,8 +1172,6 @@ class idMenuScreen_Shell_Controls : public idMenuScreen
enum controlSettingFields_t
{
CONTROLS_FIELD_INVERT_MOUSE,
CONTROLS_FIELD_CROSSHAIR,
CONTROLS_FIELD_CPOSE,
CONTROLS_FIELD_MOUSE_SENS,
CONTROLS_FIELD_CONTROLLER_LAYOUT,
MAX_CONTROL_FIELDS
Expand Down Expand Up @@ -1353,6 +1351,72 @@ class idMenuScreen_Shell_ControllerLayout : public idMenuScreen
idMenuWidget_Button* btnBack;
};

//*
//================================================
//idMenuScreen_Shell_Adv_Controls
//================================================
//*/
class idMenuScreen_Shell_Adv_Controls : public idMenuScreen
{
public:

/*
================================================
idMenuDataSource_Adv_ControlSettings
================================================
*/
class idMenuDataSource_Adv_ControlSettings : public idMenuDataSource
{
public:
enum advControlSettingFields_t
{
ADV_CONTROLS_FIELD_CROSSHAIR,
ADV_CONTROLS_FIELD_CPOS,
ADV_CONTROLS_FIELD_TOGGLE_RUN,
ADV_CONTROLS_FIELD_TOGGLE_CROUCH,
ADV_CONTROLS_FIELD_TOGGLE_ZOOM,
MAX_ADV_CONTROL_FIELDS
};

idMenuDataSource_Adv_ControlSettings();

// loads data
virtual void LoadData();

// submits data
virtual void CommitData();

// says whether something changed with the data
virtual bool IsDataChanged() const;

// retrieves a particular field for reading or updating
virtual idSWFScriptVar GetField(const int fieldIndex) const {
return fields[fieldIndex];
}

virtual void AdjustField(const int fieldIndex, const int adjustAmount);

private:
idStaticList< idSWFScriptVar, MAX_ADV_CONTROL_FIELDS > fields;
idStaticList< idSWFScriptVar, MAX_ADV_CONTROL_FIELDS > originalFields;
};

idMenuScreen_Shell_Adv_Controls() :
options(NULL),
btnBack(NULL)
{
}
virtual void Initialize(idMenuHandler* data);
virtual void Update();
virtual void ShowScreen(const mainMenuTransition_t transitionType);
virtual void HideScreen(const mainMenuTransition_t transitionType);
virtual bool HandleAction(idWidgetAction& action, const idWidgetEvent& event, idMenuWidget* widget, bool forceHandled = false);
private:
idMenuWidget_DynamicList* options;
idMenuDataSource_Adv_ControlSettings controlData;
idMenuWidget_Button* btnBack;
};

//*
//================================================
//idMenuScreen_Shell_SystemOptions
Expand Down
Loading

0 comments on commit 7fee232

Please sign in to comment.