mirror of
https://gitlab.com/Mr_Goldberg/goldberg_emulator.git
synced 2024-11-27 14:08:39 +01:00
GetGlyphForActionOrigin implementation.
This commit is contained in:
parent
262ee1d18f
commit
0f0bbba319
3 changed files with 82 additions and 4 deletions
|
@ -135,6 +135,7 @@ public:
|
||||||
|
|
||||||
//controller
|
//controller
|
||||||
struct Controller_Settings controller_settings;
|
struct Controller_Settings controller_settings;
|
||||||
|
std::string glyphs_directory;
|
||||||
|
|
||||||
//networking
|
//networking
|
||||||
bool disable_networking = false;
|
bool disable_networking = false;
|
||||||
|
|
|
@ -104,6 +104,8 @@ static void load_gamecontroller_settings(Settings *settings)
|
||||||
PRINT_DEBUG("Added %u action names to %s\n", button_pairs.size(), action_set_name.c_str());
|
PRINT_DEBUG("Added %u action names to %s\n", button_pairs.size(), action_set_name.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
settings->glyphs_directory = path + (PATH_SEPARATOR "glyphs" PATH_SEPARATOR);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 create_localstorage_settings(Settings **settings_client_out, Settings **settings_server_out, Local_Storage **local_storage_out)
|
uint32 create_localstorage_settings(Settings **settings_client_out, Settings **settings_server_out, Local_Storage **local_storage_out)
|
||||||
|
|
|
@ -129,6 +129,9 @@ public ISteamInput
|
||||||
std::map<ControllerActionSetHandle_t, struct Controller_Map> controller_maps;
|
std::map<ControllerActionSetHandle_t, struct Controller_Map> controller_maps;
|
||||||
std::map<ControllerHandle_t, struct Controller_Action> controllers;
|
std::map<ControllerHandle_t, struct Controller_Action> controllers;
|
||||||
|
|
||||||
|
std::map<EInputActionOrigin, std::string> steaminput_glyphs;
|
||||||
|
std::map<EControllerActionOrigin, std::string> steamcontroller_glyphs;
|
||||||
|
|
||||||
bool disabled;
|
bool disabled;
|
||||||
|
|
||||||
void set_handles(std::map<std::string, std::map<std::string, std::pair<std::set<std::string>, std::string>>> action_sets) {
|
void set_handles(std::map<std::string, std::map<std::string, std::pair<std::set<std::string>, std::string>>> action_sets) {
|
||||||
|
@ -788,14 +791,86 @@ const char *GetStringForActionOrigin( EInputActionOrigin eOrigin )
|
||||||
// Get a local path to art for on-screen glyph for a particular origin
|
// Get a local path to art for on-screen glyph for a particular origin
|
||||||
const char *GetGlyphForActionOrigin( EControllerActionOrigin eOrigin )
|
const char *GetGlyphForActionOrigin( EControllerActionOrigin eOrigin )
|
||||||
{
|
{
|
||||||
PRINT_DEBUG("Steam_Controller::GetGlyphForActionOrigin\n");
|
PRINT_DEBUG("Steam_Controller::GetGlyphForActionOrigin %i\n", eOrigin);
|
||||||
return "";
|
|
||||||
|
if (steamcontroller_glyphs.empty()) {
|
||||||
|
std::string dir = settings->glyphs_directory;
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_A] = dir + "button_a.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_B] = dir + "button_b.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_X] = dir + "button_x.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_Y] = dir + "button_y.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_LeftBumper] = dir + "shoulder_l.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_RightBumper] = dir + "shoulder_r.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_Start] = dir + "xbox_button_start.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_Back] = dir + "xbox_button_select.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_LeftTrigger_Pull] = dir + "trigger_l_pull.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_LeftTrigger_Click] = dir + "trigger_l_click.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_RightTrigger_Pull] = dir + "trigger_r_pull.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_RightTrigger_Click] = dir + "trigger_r_click.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_LeftStick_Move] = dir + "stick_l_move.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_LeftStick_Click] = dir + "stick_l_click.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth] = dir + "stick_dpad_n.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth] = dir + "stick_dpad_s.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_LeftStick_DPadWest] = dir + "stick_dpad_w.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_LeftStick_DPadEast] = dir + "stick_dpad_e.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_RightStick_Move] = dir + "stick_r_move.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_RightStick_Click] = dir + "stick_r_click.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_RightStick_DPadNorth] = dir + "stick_dpad_n.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_RightStick_DPadSouth] = dir + "stick_dpad_s.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_RightStick_DPadWest] = dir + "stick_dpad_w.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_RightStick_DPadEast] = dir + "stick_dpad_e.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_DPad_North] = dir + "xbox_button_dpad_n.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_DPad_South] = dir + "xbox_button_dpad_s.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_DPad_West] = dir + "xbox_button_dpad_w.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_DPad_East] = dir + "xbox_button_dpad_e.png";
|
||||||
|
steamcontroller_glyphs[k_EControllerActionOrigin_XBox360_DPad_Move] = dir + "xbox_button_dpad_move.png";
|
||||||
|
}
|
||||||
|
|
||||||
|
auto glyph = steamcontroller_glyphs.find(eOrigin);
|
||||||
|
if (glyph == steamcontroller_glyphs.end()) return "";
|
||||||
|
return glyph->second.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *GetGlyphForActionOrigin( EInputActionOrigin eOrigin )
|
const char *GetGlyphForActionOrigin( EInputActionOrigin eOrigin )
|
||||||
{
|
{
|
||||||
PRINT_DEBUG("Steam_Controller::GetGlyphForActionOrigin steaminput\n");
|
PRINT_DEBUG("Steam_Controller::GetGlyphForActionOrigin steaminput %i\n", eOrigin);
|
||||||
return "";
|
if (steaminput_glyphs.empty()) {
|
||||||
|
std::string dir = settings->glyphs_directory;
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_A] = dir + "button_a.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_B] = dir + "button_b.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_X] = dir + "button_x.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_Y] = dir + "button_y.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_LeftBumper] = dir + "shoulder_l.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_RightBumper] = dir + "shoulder_r.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_Start] = dir + "xbox_button_start.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_Back] = dir + "xbox_button_select.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_LeftTrigger_Pull] = dir + "trigger_l_pull.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_LeftTrigger_Click] = dir + "trigger_l_click.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_RightTrigger_Pull] = dir + "trigger_r_pull.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_RightTrigger_Click] = dir + "trigger_r_click.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_LeftStick_Move] = dir + "stick_l_move.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_LeftStick_Click] = dir + "stick_l_click.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_LeftStick_DPadNorth] = dir + "stick_dpad_n.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_LeftStick_DPadSouth] = dir + "stick_dpad_s.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_LeftStick_DPadWest] = dir + "stick_dpad_w.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_LeftStick_DPadEast] = dir + "stick_dpad_e.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_RightStick_Move] = dir + "stick_r_move.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_RightStick_Click] = dir + "stick_r_click.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_RightStick_DPadNorth] = dir + "stick_dpad_n.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_RightStick_DPadSouth] = dir + "stick_dpad_s.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_RightStick_DPadWest] = dir + "stick_dpad_w.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_RightStick_DPadEast] = dir + "stick_dpad_e.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_DPad_North] = dir + "xbox_button_dpad_n.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_DPad_South] = dir + "xbox_button_dpad_s.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_DPad_West] = dir + "xbox_button_dpad_w.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_DPad_East] = dir + "xbox_button_dpad_e.png";
|
||||||
|
steaminput_glyphs[k_EInputActionOrigin_XBox360_DPad_Move] = dir + "xbox_button_dpad_move.png";
|
||||||
|
//steaminput_glyphs[] = dir + "";
|
||||||
|
}
|
||||||
|
|
||||||
|
auto glyph = steaminput_glyphs.find(eOrigin);
|
||||||
|
if (glyph == steaminput_glyphs.end()) return "";
|
||||||
|
return glyph->second.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the input type for a particular handle
|
// Returns the input type for a particular handle
|
||||||
|
|
Loading…
Reference in a new issue