// We don't care for Game Input if we are running a commandlet, like when we are cooking.
if(IsRunningCommandlet())
{
UE_LOG(LogGameInput,Log,TEXT("GameInputBase module is exiting because IsRunningCommandlet is true. GameInput will not be initalized."));
return;
}
// If there is no project name then we don't need game input either. This means we are in the project launcher
if(!FApp::HasProjectName())
{
UE_LOG(LogGameInput,Log,TEXT("GameInputBase module is exiting because there is no project name. GameInput will not be initalized."));
return;
}
// Unattended app can't receive any user input, so there is no need to try and create the GameInput interface.
if(FApp::IsUnattended())
{
UE_LOG(LogGameInput,Log,TEXT("GameInputBase module is exiting because it is unattended (FApp::IsUnattended is true) and thus cannot recieve user input. GameInput will not be initalized."));
return;
}
// Doesn't make sense to have headless apps create game input
if(!FApp::CanEverRender())
{
UE_LOG(LogGameInput,Log,TEXT("GameInputBase module is exiting because it cannot render anything (FApp::CanEverRender is false). GameInput will not be initalized."));
UE_LOG(LogGameInput,Warning,TEXT("[%hs] module is exiting because '%s' cannot be found. GameInput will not be initalized. Is it installed correctly?"),__func__,*UE::GameInput::GameInputDLLPath);
return;
}
// Disable warning C4191: 'type cast' : unsafe conversion from 'PROC' to 'XXX' getting the GameInputCreate function
UE_CLOG(!pfnGameInputCreate,LogGameInput,Warning,TEXT("[%hs] Failed to GetProcAddress (GameInputCreate). Game Input will fail to be created."),__func__);
EKeys::AddKey(FKeyDetails(FGameInputKeys::RacingWheel_Brake,LOCTEXT("GameInput_RacingWheel_Brake","Game Input Racing Wheel Brake"),FKeyDetails::Axis1D,MenuCategory));
EKeys::AddKey(FKeyDetails(FGameInputKeys::RacingWheel_Clutch,LOCTEXT("GameInput_RacingWheel_Clutch","Game Input Racing Wheel Clutch"),FKeyDetails::Axis1D,MenuCategory));
EKeys::AddKey(FKeyDetails(FGameInputKeys::RacingWheel_Handbrake,LOCTEXT("GameInput_RacingWheel_Handbrake","Game Input Racing Wheel Handbrake"),FKeyDetails::Axis1D,MenuCategory));
EKeys::AddKey(FKeyDetails(FGameInputKeys::RacingWheel_Throttle,LOCTEXT("GameInput_RacingWheel_Throttle","Game Input Racing Wheel Throttle"),FKeyDetails::Axis1D,MenuCategory));
EKeys::AddKey(FKeyDetails(FGameInputKeys::RacingWheel_Wheel,LOCTEXT("GameInput_RacingWheel_Wheel","Game Input Racing Wheel"),FKeyDetails::Axis1D,MenuCategory));
EKeys::AddKey(FKeyDetails(FGameInputKeys::RacingWheel_PatternShifterGear,LOCTEXT("GameInput_RacingWheel_PatternShifterGear","Game Input Racing Wheel Pattern Shifter Gear"),FKeyDetails::Axis1D,MenuCategory));
// Button types
EKeys::AddKey(FKeyDetails(FGameInputKeys::RacingWheel_None,LOCTEXT("GameInput_RacingWheel_None","Game Input Racing Wheel None"),FKeyDetails::GamepadKey,MenuCategory));
EKeys::AddKey(FKeyDetails(FGameInputKeys::RacingWheel_Menu,LOCTEXT("GameInput_RacingWheel_Menu","Game Input Racing Wheel Menu"),FKeyDetails::GamepadKey,MenuCategory));
EKeys::AddKey(FKeyDetails(FGameInputKeys::RacingWheel_View,LOCTEXT("GameInput_RacingWheel_View","Game Input Racing Wheel View"),FKeyDetails::GamepadKey,MenuCategory));
EKeys::AddKey(FKeyDetails(FGameInputKeys::RacingWheel_PreviousGear,LOCTEXT("GameInput_RacingWheel_PreviousGear","Game Input Racing Wheel Previous Gear"),FKeyDetails::GamepadKey,MenuCategory));
EKeys::AddKey(FKeyDetails(FGameInputKeys::RacingWheel_NextGear,LOCTEXT("GameInput_RacingWheel_NextGear","Game Input Racing Wheel Next Gear"),FKeyDetails::GamepadKey,MenuCategory));