diff --git a/neo/d3xp/menus/MenuScreen.h b/neo/d3xp/menus/MenuScreen.h index 35e1ad27..554faec1 100644 --- a/neo/d3xp/menus/MenuScreen.h +++ b/neo/d3xp/menus/MenuScreen.h @@ -1015,6 +1015,7 @@ public: GAME_FIELD_AIM_ASSIST, GAME_FIELD_ALWAYS_SPRINT, GAME_FIELD_FLASHLIGHT_SHADOWS, + GAME_FIELD_MUZZLE_FLASHES, MAX_GAME_FIELDS }; diff --git a/neo/d3xp/menus/MenuScreen_Shell_GameOptions.cpp b/neo/d3xp/menus/MenuScreen_Shell_GameOptions.cpp index d7f0aca1..816bbbf7 100644 --- a/neo/d3xp/menus/MenuScreen_Shell_GameOptions.cpp +++ b/neo/d3xp/menus/MenuScreen_Shell_GameOptions.cpp @@ -125,6 +125,14 @@ void idMenuScreen_Shell_GameOptions::Initialize( idMenuHandler* data ) control->SetupEvents( DEFAULT_REPEAT_TIME, options->GetChildren().Num() ); control->AddEventAction( WIDGET_EVENT_PRESS ).Set( WIDGET_ACTION_PRESS_FOCUSED, options->GetChildren().Num() ); options->AddChild( control ); + + control = new(TAG_SWF)idMenuWidget_ControlButton(); + control->SetOptionType( OPTION_SLIDER_TOGGLE ); + control->SetLabel( "muzzle flashes" ); + control->SetDataSource( &systemData, idMenuDataSource_GameSettings::GAME_FIELD_MUZZLE_FLASHES ); + control->SetupEvents( DEFAULT_REPEAT_TIME, options->GetChildren().Num() ); + control->AddEventAction( WIDGET_EVENT_PRESS ).Set( WIDGET_ACTION_PRESS_FOCUSED, options->GetChildren().Num() ); + options->AddChild( control ); options->AddEventAction( WIDGET_EVENT_SCROLL_DOWN ).Set( new( TAG_SWF ) idWidgetActionHandler( options, WIDGET_ACTION_EVENT_SCROLL_DOWN_START_REPEATER, WIDGET_EVENT_SCROLL_DOWN ) ); options->AddEventAction( WIDGET_EVENT_SCROLL_UP ).Set( new( TAG_SWF ) idWidgetActionHandler( options, WIDGET_ACTION_EVENT_SCROLL_UP_START_REPEATER, WIDGET_EVENT_SCROLL_UP ) ); @@ -294,6 +302,7 @@ extern idCVar aa_targetAimAssistEnable; extern idCVar in_alwaysRun; extern idCVar g_checkpoints; extern idCVar g_weaponShadows; +extern idCVar g_muzzleFlash; /* ======================== @@ -320,6 +329,7 @@ void idMenuScreen_Shell_GameOptions::idMenuDataSource_GameSettings::LoadData() fields[ GAME_FIELD_AIM_ASSIST ].SetBool( aa_targetAimAssistEnable.GetBool() ); fields[ GAME_FIELD_ALWAYS_SPRINT ].SetBool( in_alwaysRun.GetBool() ); fields[ GAME_FIELD_FLASHLIGHT_SHADOWS ].SetBool( g_weaponShadows.GetBool() ); + fields[ GAME_FIELD_MUZZLE_FLASHES ].SetBool( g_muzzleFlash.GetBool() ); originalFields = fields; } @@ -340,6 +350,7 @@ void idMenuScreen_Shell_GameOptions::idMenuDataSource_GameSettings::CommitData() aa_targetAimAssistEnable.SetBool( fields[ GAME_FIELD_AIM_ASSIST ].ToBool() ); in_alwaysRun.SetBool( fields[ GAME_FIELD_ALWAYS_SPRINT ].ToBool() ); g_weaponShadows.SetBool( fields[ GAME_FIELD_FLASHLIGHT_SHADOWS ].ToBool() ); + g_muzzleFlash.SetBool( fields[ GAME_FIELD_MUZZLE_FLASHES ].ToBool() ); cvarSystem->SetModifiedFlags( CVAR_ARCHIVE ); @@ -406,6 +417,10 @@ bool idMenuScreen_Shell_GameOptions::idMenuDataSource_GameSettings::IsDataChange { return true; } - + + if (fields[ GAME_FIELD_MUZZLE_FLASHES ].ToBool() != originalFields[ GAME_FIELD_MUZZLE_FLASHES ].ToBool() ) + { + return true; + } return false; } \ No newline at end of file