diff --git a/Adventures in Lestoria/AdventuresInLestoria.cpp b/Adventures in Lestoria/AdventuresInLestoria.cpp index afe114dd..4e78f3c4 100644 --- a/Adventures in Lestoria/AdventuresInLestoria.cpp +++ b/Adventures in Lestoria/AdventuresInLestoria.cpp @@ -237,6 +237,7 @@ bool AiL::OnUserCreate(){ gamepack.LoadPack("assets/"+"gamepack_file"_S,PACK_KEY); GamePad::init(); + Input::Initialize(); Font::init(); @@ -323,7 +324,7 @@ bool AiL::OnUserCreate(){ #ifndef __EMSCRIPTEN__ SetupDiscord(); if(SteamAPI_RestartAppIfNecessary(2895980U))return false; //Immediately quit if steam is detected and can be started through it. - if(SteamAPI_Init()){ + if(Steam_Init()){ std::cout<<"Steam API Initialized successfully!"<SetWarningMessageHook([](int severity,const char*message){ @@ -332,6 +333,9 @@ bool AiL::OnUserCreate(){ } if(SteamInput()!=nullptr){ SteamInput()->Init(false); + + Input::ingameControlsHandle=SteamInput()->GetActionSetHandle("InGameControls"); + Input::menuControlsHandle=SteamInput()->GetActionSetHandle("MenuControls"); } }else{ std::cout<<"Steam API failed to initialize!"<ActivateActionSet(STEAM_INPUT_HANDLE_ALL_CONTROLLERS,Input::menuControlsHandle); + if(GetMousePos()!=lastMousePos){ lastMouseMovement=0.f; lastMousePos=GetMousePos(); @@ -428,6 +435,7 @@ bool AiL::DownPressed(){ void AiL::HandleUserInput(float fElapsedTime){ if(!Menu::stack.empty())return; //A window being opened means there's no user input allowed. + if(SteamInput())SteamInput()->ActivateActionSet(STEAM_INPUT_HANDLE_ALL_CONTROLLERS,Input::ingameControlsHandle); if(GetKey(SCROLL).bPressed)displayHud=!displayHud; @@ -2863,47 +2871,63 @@ void AiL::DrawSquarePie(vf2d center,float radius,float degreesCut,Pixel col){ void AiL::InitializeDefaultKeybinds(){ Player::KEY_ABILITY1.AddKeybind({KEY,Q}); Player::KEY_ABILITY1.AddKeybind({CONTROLLER,static_cast(GPButtons::FACE_L)}); + Player::KEY_ABILITY1.AddKeybind({STEAM,Steam::ABILITY_1}); Player::KEY_ABILITY2.AddKeybind({KEY,E}); Player::KEY_ABILITY2.AddKeybind({CONTROLLER,static_cast(GPButtons::FACE_U)}); + Player::KEY_ABILITY2.AddKeybind({STEAM,Steam::ABILITY_2}); Player::KEY_ABILITY3.AddKeybind({KEY,R}); Player::KEY_ABILITY3.AddKeybind({CONTROLLER,static_cast(GPButtons::R1)}); + Player::KEY_ABILITY3.AddKeybind({STEAM,Steam::ABILITY_3}); Player::KEY_ABILITY4.AddKeybind({KEY,F}); Player::KEY_ABILITY4.AddKeybind({CONTROLLER,static_cast(GPButtons::R2)}); + Player::KEY_ABILITY4.AddKeybind({STEAM,Steam::ABILITY_4}); Player::KEY_DEFENSIVE.AddKeybind({MOUSE,Mouse::RIGHT}); Player::KEY_DEFENSIVE.AddKeybind({KEY,SPACE}); Player::KEY_DEFENSIVE.AddKeybind({CONTROLLER,static_cast(GPButtons::FACE_D)}); + Player::KEY_DEFENSIVE.AddKeybind({STEAM,Steam::DEFENSIVE}); Player::KEY_ITEM1.AddKeybind({KEY,K1}); Player::KEY_ITEM1.AddKeybind({CONTROLLER,static_cast(GPButtons::L1)}); + Player::KEY_ITEM1.AddKeybind({STEAM,Steam::ITEM_1}); Player::KEY_ITEM2.AddKeybind({KEY,K2}); Player::KEY_ITEM2.AddKeybind({CONTROLLER,static_cast(GPButtons::L2)}); + Player::KEY_ITEM2.AddKeybind({STEAM,Steam::ITEM_2}); Player::KEY_ITEM3.AddKeybind({KEY,K3}); Player::KEY_ITEM3.AddKeybind({CONTROLLER,static_cast(GPButtons::SELECT)}); + Player::KEY_ITEM3.AddKeybind({STEAM,Steam::ITEM_3}); KEY_ATTACK.AddKeybind({KEY,SHIFT}); KEY_ATTACK.AddKeybind({MOUSE,Mouse::LEFT}); KEY_ATTACK.AddKeybind({CONTROLLER,static_cast(GPButtons::FACE_R)}); + KEY_ATTACK.AddKeybind({STEAM,Steam::BASIC_ATTACK}); KEY_LEFT.AddKeybind({KEY,Key::A}); KEY_LEFT.AddKeybind({KEY,LEFT}); KEY_LEFT.AddKeybind({CONTROLLER,static_cast(GPButtons::DPAD_L)}); + KEY_LEFT.AddKeybind({STEAM,Steam::LEFT}); KEY_RIGHT.AddKeybind({KEY,D}); KEY_RIGHT.AddKeybind({KEY,RIGHT}); KEY_RIGHT.AddKeybind({CONTROLLER,static_cast(GPButtons::DPAD_R)}); + KEY_RIGHT.AddKeybind({STEAM,Steam::RIGHT}); KEY_UP.AddKeybind({KEY,W}); KEY_UP.AddKeybind({KEY,UP}); KEY_UP.AddKeybind({CONTROLLER,static_cast(GPButtons::DPAD_U)}); + KEY_UP.AddKeybind({STEAM,Steam::UP}); KEY_DOWN.AddKeybind({KEY,S}); KEY_DOWN.AddKeybind({KEY,DOWN}); KEY_DOWN.AddKeybind({CONTROLLER,static_cast(GPButtons::DPAD_D)}); + KEY_DOWN.AddKeybind({STEAM,Steam::DOWN}); KEY_CONFIRM.AddKeybind({MOUSE,Mouse::LEFT}); KEY_CONFIRM.AddKeybind({CONTROLLER,static_cast(GPButtons::FACE_R)}); //KEY_CONFIRM.AddKeybind({CONTROLLER,static_cast(GPButtons::START)}); KEY_CONFIRM.AddKeybind({KEY,Z}); KEY_CONFIRM.AddKeybind({KEY,ENTER}); + KEY_CONFIRM.AddKeybind({STEAM,Steam::CONFIRM}); KEY_BACK.AddKeybind({KEY,X}); KEY_BACK.AddKeybind({KEY,SHIFT}); KEY_BACK.AddKeybind({KEY,ESCAPE}); + KEY_BACK.AddKeybind({STEAM,BACK}); KEY_BACK.AddKeybind({CONTROLLER,static_cast(GPButtons::FACE_D)}); KEY_MENU.AddKeybind({KEY,ESCAPE}); KEY_MENU.AddKeybind({CONTROLLER,static_cast(GPButtons::START)}); + KEY_MENU.AddKeybind({STEAM,Steam::MENU_PAUSE}); KEY_ENTER.AddKeybind({KEY,ENTER}); @@ -2912,29 +2936,39 @@ void AiL::InitializeDefaultKeybinds(){ KEY_FASTSCROLLUP.AddKeybind({KEY,NP8}); KEY_FASTSCROLLUP.AddKeybind({CONTROLLER,static_cast(GPButtons::L1)}); KEY_FASTSCROLLUP.AddKeybind({CONTROLLER,static_cast(GPButtons::L2)}); + KEY_FASTSCROLLUP.AddKeybind({STEAM,Steam::FAST_SCROLL_UP}); KEY_FASTSCROLLDOWN.AddKeybind({KEY,E}); KEY_FASTSCROLLDOWN.AddKeybind({KEY,PGDN}); KEY_FASTSCROLLDOWN.AddKeybind({KEY,NP2}); KEY_FASTSCROLLDOWN.AddKeybind({CONTROLLER,static_cast(GPButtons::R1)}); KEY_FASTSCROLLDOWN.AddKeybind({CONTROLLER,static_cast(GPButtons::R2)}); + KEY_FASTSCROLLDOWN.AddKeybind({STEAM,Steam::FAST_SCROLL_DOWN}); KEY_CHANGE_LOADOUT.AddKeybind({KEY,R}); KEY_CHANGE_LOADOUT.AddKeybind({CONTROLLER,static_cast(GPButtons::FACE_U)}); + KEY_CHANGE_LOADOUT.AddKeybind({STEAM,Steam::FUNCTION_1}); KEY_START.AddKeybind({KEY,SPACE}); KEY_START.AddKeybind({CONTROLLER,static_cast(GPButtons::START)}); + KEY_START.AddKeybind({STEAM,Steam::MENU_PAUSE}); KEY_CONTROLLER_START.AddKeybind({CONTROLLER,static_cast(GPButtons::START)}); + KEY_CONTROLLER_START.AddKeybind({STEAM,Steam::MENU_PAUSE}); KEY_SELECT.AddKeybind({KEY,CTRL}); KEY_SELECT.AddKeybind({CONTROLLER,static_cast(GPButtons::SELECT)}); + KEY_SELECT.AddKeybind({STEAM,Steam::LOCK_UNLOCK_ACC}); KEY_FACEUP.AddKeybind({KEY,R}); KEY_FACEUP.AddKeybind({CONTROLLER,static_cast(GPButtons::FACE_U)}); + KEY_FACEUP.AddKeybind({STEAM,Steam::FUNCTION_1}); KEY_FACERIGHT.AddKeybind({KEY,Z}); KEY_FACERIGHT.AddKeybind({CONTROLLER,static_cast(GPButtons::FACE_R)}); + KEY_FACERIGHT.AddKeybind({STEAM,Steam::CONFIRM}); KEY_FACELEFT.AddKeybind({KEY,F}); KEY_FACELEFT.AddKeybind({CONTROLLER,static_cast(GPButtons::FACE_L)}); + KEY_FACELEFT.AddKeybind({STEAM,Steam::FUNCTION_2}); KEY_FACEDOWN.AddKeybind({KEY,X}); KEY_FACEDOWN.AddKeybind({CONTROLLER,static_cast(GPButtons::FACE_D)}); + KEY_FACEDOWN.AddKeybind({STEAM,Steam::BACK}); KEY_SCROLLLEFT.AddKeybind({ANALOG,static_cast(GPAxes::LX)}); KEY_SCROLLLEFT.AddKeybind({ANALOG,static_cast(GPAxes::RX)}); @@ -2956,9 +2990,12 @@ void AiL::InitializeDefaultKeybinds(){ KEY_SHOULDER.AddKeybind({KEY,SHOULDER}); KEY_SHOULDER.AddKeybind({CONTROLLER,static_cast(GPButtons::SHOULDER)}); + KEY_FACEDOWN.AddKeybind({STEAM,Steam::FAST_SCROLL_DOWN}); + KEY_FACEDOWN.AddKeybind({STEAM,Steam::FAST_SCROLL_UP}); KEY_UNEQUIP.AddKeybind({KEY,R}); KEY_UNEQUIP.AddKeybind({CONTROLLER,static_cast(GPButtons::FACE_U)}); + KEY_FACEDOWN.AddKeybind({STEAM,Steam::FUNCTION_1}); KEY_MOUSE_RIGHT.AddKeybind({MOUSE,Mouse::RIGHT}); @@ -3492,6 +3529,7 @@ void AiL::EndGame(){ void AiL::UpdateDiscordStatus(std::string levelName,std::string className){ std::string originalClassName=className; + bool retry=false; #ifndef __EMSCRIPTEN__ if(Discord){ ::discord::Activity newActivity{}; @@ -3518,7 +3556,7 @@ void AiL::UpdateDiscordStatus(std::string levelName,std::string className){ }); }else{ if(SetupDiscord()==::discord::Result::Ok){ - UpdateDiscordStatus(levelName,className); + retry=true; } } @@ -3529,6 +3567,14 @@ void AiL::UpdateDiscordStatus(std::string levelName,std::string className){ SteamFriends()->SetRichPresence("status","Main Menu"); } SteamFriends()->SetRichPresence("steam_display","#Status"); + }else{ + if(Steam_Init()){ + retry=true; + std::cout<<"Steam API Initialized successfully!"< INCLUDE_game INCLUDE_GFX bool Input::usingGamepad; +uint64_t Input::ingameControlsHandle; +uint64_t Input::menuControlsHandle; safemapInputGroup::menuNamesToInputGroups; std::vectorInputGroup::menuInputGroups; std::vectorInputGroup::gameplayInputGroups; +safemapInput::enumToActionName; + Input::Input(InputType type,int key) :type(type),key(key){} +void Input::Initialize(){ + enumToActionName[Steam::MOVE]="Move"; + enumToActionName[Steam::MANUAL_AIM]="Manual Aim"; + enumToActionName[Steam::BASIC_ATTACK]="Basic_Attack"; + enumToActionName[Steam::DEFENSIVE]="Defensive"; + enumToActionName[Steam::MENU_PAUSE]="Menu/Pause"; + enumToActionName[Steam::ABILITY_1]="Ability_1"; + enumToActionName[Steam::ABILITY_2]="Ability_2"; + enumToActionName[Steam::ABILITY_3]="Ability_3"; + enumToActionName[Steam::ABILITY_4]="Ability_4"; + enumToActionName[Steam::ITEM_1]="Item_1"; + enumToActionName[Steam::ITEM_2]="Item_2"; + enumToActionName[Steam::ITEM_3]="Item_3"; + enumToActionName[Steam::NAVIGATE]="Navigate"; + enumToActionName[Steam::SCROLL]="Scroll"; + enumToActionName[Steam::CONFIRM]="Confirm"; + enumToActionName[Steam::BACK]="Back"; + enumToActionName[Steam::FUNCTION_1]="Function_1"; + enumToActionName[Steam::FUNCTION_2]="Function_2"; + enumToActionName[Steam::UP]="Up"; + enumToActionName[Steam::DOWN]="Down"; + enumToActionName[Steam::LEFT]="Left"; + enumToActionName[Steam::RIGHT]="Right"; + enumToActionName[Steam::LOCK_UNLOCK_ACC]="Lock/Unlock Accessory"; + enumToActionName[Steam::FAST_SCROLL_UP]="Fast_Scroll_Up"; + enumToActionName[Steam::FAST_SCROLL_DOWN]="Fast_Scroll_Down"; + + enumToActionName.SetInitialized(); +} + bool Input::Pressed(){ if(!game->IsFocused())return false; bool inputPressed=false; @@ -67,6 +102,9 @@ bool Input::Pressed(){ for(GamePad*gamepad:GamePad::getGamepads()){ if(gamepad->stillConnected&&gamepad->getButton(static_cast(key)).bPressed)inputPressed=true; } + }break; + case STEAM:{ + }break; case ANALOG:{ //An analog input can never be "pressed". No-op. @@ -96,6 +134,9 @@ bool Input::Held(){ for(GamePad*gamepad:GamePad::getGamepads()){ if(gamepad->stillConnected&&gamepad->getButton(static_cast(key)).bHeld)inputHeld=true; } + }break; + case STEAM:{ + }break; case ANALOG:{ //An analog input can never be "held". No-op. @@ -125,6 +166,9 @@ bool Input::Released(){ for(GamePad*gamepad:GamePad::getGamepads()){ if(gamepad->stillConnected&&gamepad->getButton(static_cast(key)).bReleased)inputReleased=true; } + }break; + case STEAM:{ + }break; case ANALOG:{ //An analog input can never be "released". No-op. diff --git a/Adventures in Lestoria/Key.h b/Adventures in Lestoria/Key.h index 8dbb3c8b..804467ee 100644 --- a/Adventures in Lestoria/Key.h +++ b/Adventures in Lestoria/Key.h @@ -54,17 +54,55 @@ enum InputType{ KEY, MOUSE, CONTROLLER, + STEAM, ANALOG, }; +namespace Steam{ + enum SteamInput{ + //Gameplay Inputs + MOVE, + MANUAL_AIM, + BASIC_ATTACK, + DEFENSIVE, + MENU_PAUSE, + ABILITY_1, + ABILITY_2, + ABILITY_3, + ABILITY_4, + ITEM_1, + ITEM_2, + ITEM_3, + //Menu Inputs + NAVIGATE, + SCROLL, + CONFIRM, + BACK, + FUNCTION_1, + FUNCTION_2, + UP, + DOWN, + LEFT, + RIGHT, + LOCK_UNLOCK_ACC, + FAST_SCROLL_UP, + FAST_SCROLL_DOWN, + }; +}; + //A generic class that represents any type of input. class Input{ friend class InputGroup; friend class State_MainMenu; + friend class AiL; InputType type; int key; //This will be interpreted differently depending on input type. + static uint64_t ingameControlsHandle; + static uint64_t menuControlsHandle; static bool usingGamepad; static void SetUsingGamepad(const bool usingGamepad); + static safemapenumToActionName; + static void Initialize(); public: Input(InputType type,int key); bool Pressed(); diff --git a/Adventures in Lestoria/TODO.txt b/Adventures in Lestoria/TODO.txt index b467b513..ad915242 100644 --- a/Adventures in Lestoria/TODO.txt +++ b/Adventures in Lestoria/TODO.txt @@ -42,4 +42,8 @@ In Steam, use the Steam Input configurator UI to create your default configurati In your game, use the Steam Input API to read actions from the controller, and to retrieve appropriate glyphs for display. Update your game depot with the new binaries, and publish your configuration as the official config. -Make another actions config file for the main build \ No newline at end of file +Make another actions config file for the main build +Sword attack should linger +Add game file debug logging + +Automatically pause if controller is disconnected (while using a controller) \ No newline at end of file diff --git a/Adventures in Lestoria/Version.h b/Adventures in Lestoria/Version.h index 3e6c7931..f2fd4af3 100644 --- a/Adventures in Lestoria/Version.h +++ b/Adventures in Lestoria/Version.h @@ -39,7 +39,7 @@ All rights reserved. #define VERSION_MAJOR 0 #define VERSION_MINOR 5 #define VERSION_PATCH 1 -#define VERSION_BUILD 8226 +#define VERSION_BUILD 8238 #define stringify(a) stringify_(a) #define stringify_(a) #a diff --git a/Adventures in Lestoria/controller_config/controller_generic.vdf b/Adventures in Lestoria/controller_config/controller_generic.vdf new file mode 100644 index 00000000..25aa1ea1 --- /dev/null +++ b/Adventures in Lestoria/controller_config/controller_generic.vdf @@ -0,0 +1,944 @@ +"controller_mappings" +{ + "version" "3" + "revision" "38" + "title" "Generic Gamepad" + "description" "Default controller configuration" + "creator" "76561198025675819" + "progenitor" "" + "url" "usercloud://2895980/xbox 360playstationnintendo switch_0" + "export_type" "personal_cloud" + "controller_type" "controller_switch_pro" + "controller_caps" "613772287" + "major_revision" "0" + "minor_revision" "0" + "Timestamp" "1711225148" + "actions" + { + "InGameControls" + { + "title" "#Set_Ingame" + "legacy_set" "0" + "StickPadGyro" + { + "Move" + { + "title" "#Gameplay_Move" + "input_mode" "joystick_move" + } + "Manual Aim" + { + "title" "#Gameplay_Aim" + "input_mode" "joystick_move" + } + } + "Button" + { + "Basic_Attack" "#Gameplay_BasicAttack" + "Defensive" "#Gameplay_Defensive" + "Menu" + { + "Pause" "#Menu_Menu" + } + "Ability_1" "#Gameplay_Ability1" + "Ability_2" "#Gameplay_Ability2" + "Ability_3" "#Gameplay_Ability3" + "Ability_4" "#Gameplay_Ability4" + "Item_1" "#Gameplay_Item1" + "Item_2" "#Gameplay_Item2" + "Item_3" "#Gameplay_Item3" + } + } + "MenuControls" + { + "title" "#Set_Menu" + "legacy_set" "0" + "StickPadGyro" + { + "Scroll" + { + "title" "#Menu_Scroll" + "input_mode" "joystick_move" + } + } + "Button" + { + "Confirm" "#Menu_Confirm" + "Back" "#Menu_Back" + "Function_1" "#Menu_Function1" + "Function_2" "#Menu_Function2" + "Menu" + { + "Pause" "#Menu_Menu" + } + "Up" "#Menu_Up" + "Down" "#Menu_Down" + "Left" "#Menu_Left" + "Right" "#Menu_Right" + "Lock" + { + "Unlock_Accessory" "#Menu_Select" + } + "Fast_Scroll_Up" "#Menu_ScrollUp" + "Fast_Scroll_Down" "#Menu_ScrollDown" + } + } + } + "action_layers" + { + } + "localization" + { + "english" + { + "Title_Config" "Adventures in Lestoria Configuration" + "Description_Config" "The default controller configuration for Adventures in Lestoria." + "Set_Ingame" "Gameplay Controls" + "Set_Menu" "Menu Controls" + "Gameplay_BasicAttack" "Basic Attack" + "Gameplay_Move" "Move" + "Gameplay_Aim" "Manual Aim" + "Gameplay_Defensive" "Defensive" + "Gameplay_Ability1" "Ability 1" + "Gameplay_Ability2" "Ability 2" + "Gameplay_Ability3" "Ability 3" + "Gameplay_Ability4" "Ability 4" + "Gameplay_Item1" "Item 1" + "Gameplay_Item2" "Item 2" + "Gameplay_Item3" "Item 3" + "Menu_Confirm" "Confirm" + "Menu_Back" "Back" + "Menu_Select" "Lock/Unlock Accessory" + "Menu_Function1" "Function 1" + "Menu_Function2" "Function 2" + "Menu_Menu" "Menu/Pause" + "Menu_Up" "Menu Up" + "Menu_Down" "Menu Down" + "Menu_Left" "Menu Left" + "Menu_Right" "Menu Right" + "Menu_Scroll" "Scroll" + "Menu_ScrollUp" "Fast Scroll Up" + "Menu_ScrollDown" "Fast Scroll Down" + } + } + "group" + { + "id" "1" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Basic_Attack, , " + } + } + } + "disabled_activators" + { + } + } + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Defensive, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Ability_2, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Ability_1, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "2" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Item_2, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + "edge" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Item_2, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "3" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Ability_4, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + "edge" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Ability_4, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "5" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Confirm, , " + } + } + } + "disabled_activators" + { + } + } + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Back, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Function_1, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Function_2, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "6" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Fast_Scroll_Up, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + "edge" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Fast_Scroll_Up, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "7" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Fast_Scroll_Down, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + "edge" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Fast_Scroll_Down, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "11" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + } + "settings" + { + "virtual_mode" "1" + } + } + "group" + { + "id" "12" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + } + "settings" + { + "virtual_mode" "1" + } + } + "group" + { + "id" "13" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + } + "settings" + { + "virtual_mode" "1" + } + "gameactions" + { + "MenuControls" "Scroll" + } + } + "group" + { + "id" "14" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + } + "settings" + { + "virtual_mode" "1" + } + "gameactions" + { + "InGameControls" "Move" + } + } + "group" + { + "id" "15" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + } + "settings" + { + "virtual_mode" "1" + } + "gameactions" + { + "InGameControls" "Move" + } + } + "group" + { + "id" "16" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + } + "settings" + { + "virtual_mode" "1" + } + "gameactions" + { + "InGameControls" "Manual Aim" + } + } + "group" + { + "id" "18" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Up, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Down, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Right, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Left, , " + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + "haptic_intensity_override" "0" + } + } + "group" + { + "id" "19" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Up, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Down, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Right, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Left, , " + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + } + } + "group" + { + "id" "0" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Menu/Pause, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Item_3, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Item_1, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Ability_3, , " + } + } + } + "disabled_activators" + { + } + } + "button_capture" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action SCREENSHOT, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "4" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Menu/Pause, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Lock/Unlock_Accessory, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Fast_Scroll_Up, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Fast_Scroll_Down, , " + } + } + } + "disabled_activators" + { + } + } + "button_capture" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action SCREENSHOT, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "preset" + { + "id" "0" + "name" "InGameControls" + "group_source_bindings" + { + "0" "switch active" + "1" "button_diamond active" + "2" "left_trigger active" + "3" "right_trigger active" + "15" "joystick active" + "16" "right_joystick active" + "14" "dpad active" + } + } + "preset" + { + "id" "1" + "name" "MenuControls" + "group_source_bindings" + { + "4" "switch active" + "5" "button_diamond active" + "6" "left_trigger active" + "7" "right_trigger active" + "12" "joystick inactive" + "19" "joystick active" + "13" "right_joystick active" + "11" "dpad inactive" + "18" "dpad active" + } + } + "settings" + { + } +} diff --git a/Adventures in Lestoria/controller_config/controller_xbox360.vdf b/Adventures in Lestoria/controller_config/controller_xbox360.vdf new file mode 100644 index 00000000..a6fb9c4e --- /dev/null +++ b/Adventures in Lestoria/controller_config/controller_xbox360.vdf @@ -0,0 +1,766 @@ +"controller_mappings" +{ + "version" "3" + "revision" "26" + "title" "Xbox/Playstation/Switch" + "description" "Default Xbox/Playstation/Switch controller setup." + "creator" "76561198025675819" + "progenitor" "" + "url" "autosave://C:\\Program Files (x86)\\Steam\\steamapps\\common\\Steam Controller Configs\\65410091\\config\\2895980\\controller_xbox360.vdf" + "export_type" "personal_cloud" + "controller_type" "controller_xbox360" + "controller_caps" "1590271" + "major_revision" "0" + "minor_revision" "0" + "Timestamp" "1711221628" + "actions" + { + "InGameControls" + { + "title" "#Set_Ingame" + "legacy_set" "0" + "StickPadGyro" + { + "Move" + { + "title" "#Gameplay_Move" + "input_mode" "joystick_move" + } + "Manual Aim" + { + "title" "#Gameplay_Aim" + "input_mode" "joystick_move" + } + } + "Button" + { + "Basic_Attack" "#Gameplay_BasicAttack" + "Defensive" "#Gameplay_Defensive" + "Menu" + { + "Pause" "#Menu_Menu" + } + "Ability_1" "#Gameplay_Ability1" + "Ability_2" "#Gameplay_Ability2" + "Ability_3" "#Gameplay_Ability3" + "Ability_4" "#Gameplay_Ability4" + "Item_1" "#Gameplay_Item1" + "Item_2" "#Gameplay_Item2" + "Item_3" "#Gameplay_Item3" + } + } + "MenuControls" + { + "title" "#Set_Menu" + "legacy_set" "0" + "StickPadGyro" + { + "Navigate" + { + "title" "#Gameplay_Move" + "input_mode" "joystick_move" + } + "Scroll" + { + "title" "#Menu_Scroll" + "input_mode" "joystick_move" + } + } + "Button" + { + "Confirm" "#Menu_Confirm" + "Back" "#Menu_Back" + "Function_1" "#Menu_Function1" + "Function_2" "#Menu_Function2" + "Menu" + { + "Pause" "#Menu_Menu" + } + "Up" "#Menu_Up" + "Down" "#Menu_Down" + "Left" "#Menu_Left" + "Right" "#Menu_Right" + "Lock" + { + "Unlock_Accessory" "#Menu_Select" + } + "Fast_Scroll_Up" "#Menu_ScrollUp" + "Fast_Scroll_Down" "#Menu_ScrollDown" + } + } + } + "action_layers" + { + } + "localization" + { + "english" + { + "Title_Config" "Adventures in Lestoria Configuration" + "Description_Config" "The default controller configuration for Adventures in Lestoria." + "Set_Ingame" "Gameplay Controls" + "Set_Menu" "Menu Controls" + "Gameplay_BasicAttack" "Basic Attack" + "Gameplay_Move" "Move" + "Gameplay_Aim" "Manual Aim" + "Gameplay_Defensive" "Defensive" + "Gameplay_Ability1" "Ability 1" + "Gameplay_Ability2" "Ability 2" + "Gameplay_Ability3" "Ability 3" + "Gameplay_Ability4" "Ability 4" + "Gameplay_Item1" "Item 1" + "Gameplay_Item2" "Item 2" + "Gameplay_Item3" "Item 3" + "Menu_Confirm" "Confirm" + "Menu_Back" "Back" + "Menu_Select" "Lock/Unlock Accessory" + "Menu_Function1" "Function 1" + "Menu_Function2" "Function 2" + "Menu_Menu" "Menu/Pause" + "Menu_Up" "Up" + "Menu_Down" "Down" + "Menu_Left" "Left" + "Menu_Right" "Right" + "Menu_Scroll" "Scroll" + "Menu_ScrollUp" "Fast Scroll Up" + "Menu_ScrollDown" "Fast Scroll Down" + } + } + "group" + { + "id" "1" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Defensive, , " + } + } + } + "disabled_activators" + { + } + } + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Basic_Attack, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Ability_1, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Ability_2, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "2" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Item_2, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + "edge" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Item_2, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "3" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Ability_4, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + "edge" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Ability_4, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "5" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Back, , " + } + } + } + "disabled_activators" + { + } + } + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Confirm, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Function_2, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Function_1, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "6" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Fast_Scroll_Up, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + "edge" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Fast_Scroll_Up, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "7" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Fast_Scroll_Down, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + "edge" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Fast_Scroll_Down, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "11" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + } + "settings" + { + "virtual_mode" "1" + } + "gameactions" + { + "MenuControls" "Navigate" + } + } + "group" + { + "id" "12" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + } + "settings" + { + "virtual_mode" "1" + } + "gameactions" + { + "MenuControls" "Navigate" + } + } + "group" + { + "id" "13" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + } + "settings" + { + "virtual_mode" "1" + } + "gameactions" + { + "MenuControls" "Scroll" + } + } + "group" + { + "id" "14" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + } + "settings" + { + "virtual_mode" "1" + } + "gameactions" + { + "InGameControls" "Move" + } + } + "group" + { + "id" "15" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + } + "settings" + { + "virtual_mode" "1" + } + "gameactions" + { + "InGameControls" "Move" + } + } + "group" + { + "id" "16" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + } + "settings" + { + "virtual_mode" "1" + } + "gameactions" + { + "InGameControls" "Manual Aim" + } + } + "group" + { + "id" "0" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Menu/Pause, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Item_3, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Item_1, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action InGameControls Ability_3, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "4" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Menu/Pause, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Lock/Unlock_Accessory, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Fast_Scroll_Up, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "game_action MenuControls Fast_Scroll_Down, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "preset" + { + "id" "0" + "name" "InGameControls" + "group_source_bindings" + { + "0" "switch active" + "1" "button_diamond active" + "2" "left_trigger active" + "3" "right_trigger active" + "15" "joystick active" + "16" "right_joystick active" + "14" "dpad active" + } + } + "preset" + { + "id" "1" + "name" "MenuControls" + "group_source_bindings" + { + "4" "switch active" + "5" "button_diamond active" + "6" "left_trigger active" + "7" "right_trigger active" + "12" "joystick active" + "13" "right_joystick active" + "11" "dpad active" + } + } + "settings" + { + } +} diff --git a/Adventures in Lestoria/controller_config/game_actions_2895980.vdf b/Adventures in Lestoria/controller_config/game_actions_2895980.vdf new file mode 100644 index 00000000..f9829518 --- /dev/null +++ b/Adventures in Lestoria/controller_config/game_actions_2895980.vdf @@ -0,0 +1,120 @@ +"In Game Actions" +{ + "actions" + { + "InGameControls" + { + "title" "#Set_Ingame" + "StickPadGyro" + { + "Move" + { + "title" "#Gameplay_Move" + "input_mode" "joystick_move" + } + "Manual Aim" + { + "title" "#Gameplay_Aim" + "input_mode" "joystick_move" + } + } + "AnalogTrigger" + { + } + "Button" + { + "Basic_Attack" "#Gameplay_BasicAttack" + "Defensive" "#Gameplay_Defensive" + "Menu/Pause" "#Menu_Menu" + "Ability_1" "#Gameplay_Ability1" + "Ability_2" "#Gameplay_Ability2" + "Ability_3" "#Gameplay_Ability3" + "Ability_4" "#Gameplay_Ability4" + "Item_1" "#Gameplay_Item1" + "Item_2" "#Gameplay_Item2" + "Item_3" "#Gameplay_Item3" + } + } + "MenuControls" + { + "title" "#Set_Menu" + "StickPadGyro" + { + "Scroll" + { + "title" "#Menu_Scroll" + "input_mode" "joystick_move" + } + } + "AnalogTrigger" + { + } + "Button" + { + "Confirm" "#Menu_Confirm" + "Back" "#Menu_Back" + "Function_1" "#Menu_Function1" + "Function_2" "#Menu_Function2" + "Menu/Pause" "#Menu_Menu" + "Up" "#Menu_Up" + "Down" "#Menu_Down" + "Left" "#Menu_Left" + "Right" "#Menu_Right" + "Lock/Unlock_Accessory" "#Menu_Select" + "Fast_Scroll_Up" "#Menu_ScrollUp" + "Fast_Scroll_Down" "#Menu_ScrollDown" + } + } + } + "localization" + { + "english" + { + "Title_Config" "Adventures in Lestoria Configuration" + "Description_Config" "The default controller configuration for Adventures in Lestoria." + "Set_Ingame" "Gameplay Controls" + "Set_Menu" "Menu Controls" + "Gameplay_BasicAttack" "Basic Attack" + "Gameplay_Move" "Move" + "Gameplay_Aim" "Manual Aim" + "Gameplay_Defensive" "Defensive" + "Gameplay_Ability1" "Ability 1" + "Gameplay_Ability2" "Ability 2" + "Gameplay_Ability3" "Ability 3" + "Gameplay_Ability4" "Ability 4" + "Gameplay_Item1" "Item 1" + "Gameplay_Item2" "Item 2" + "Gameplay_Item3" "Item 3" + "Menu_Confirm" "Confirm" + "Menu_Back" "Back" + "Menu_Select" "Lock/Unlock Accessory" + "Menu_Function1" "Function 1" + "Menu_Function2" "Function 2" + "Menu_Menu" "Menu/Pause" + "Menu_Up" "Menu Up" + "Menu_Down" "Menu Down" + "Menu_Left" "Menu Left" + "Menu_Right" "Menu Right" + "Menu_Scroll" "Scroll" + "Menu_ScrollUp" "Fast Scroll Up" + "Menu_ScrollDown" "Fast Scroll Down" + } + } + "configurations" + { + "controller_xbox360" + { + "0" + { + "path" "controller_xbox360.vdf" + } + } + "controller_generic" + { + "0" + { + "path" "controller_generic.vdf" + } + } + } +} \ No newline at end of file diff --git a/x64/Release/Adventures in Lestoria.exe b/x64/Release/Adventures in Lestoria.exe index e1311738..0e01599c 100644 Binary files a/x64/Release/Adventures in Lestoria.exe and b/x64/Release/Adventures in Lestoria.exe differ