enum sr_bind{
k_srbind_jump = 0,
k_srbind_push,
+ k_srbind_skid,
k_srbind_trick0,
k_srbind_trick1,
k_srbind_trick2,
k_srbind_sit,
k_srbind_use,
k_srbind_reset,
+ k_srbind_dead_respawn,
k_srbind_camera,
k_srbind_mleft,
k_srbind_mright,
k_srbind_home,
k_srbind_lobby,
k_srbind_chat,
+ k_srbind_run,
+
+ k_srbind_miniworld_teleport,
+ k_srbind_miniworld_resume,
+ k_srbind_devbutton,
k_srbind_max,
};
k_sraxis_mbrowse_h,
k_sraxis_mbrowse_v,
k_sraxis_replay_h,
+ k_sraxis_skid,
k_sraxis_max
};
vg_mode_absmax, vg_joy_button, SDL_CONTROLLER_BUTTON_X, vg_end
},
[k_srbind_use] = INPUT_BASIC( SDLK_e, SDL_CONTROLLER_BUTTON_Y ),
-[k_srbind_reset] = INPUT_BASIC( SDLK_r, SDL_CONTROLLER_BUTTON_LEFTSHOULDER ),
-[k_srbind_camera]= INPUT_BASIC( SDLK_c, SDL_CONTROLLER_BUTTON_RIGHTSHOULDER ),
+[k_srbind_reset] = INPUT_BASIC( SDLK_r, SDL_CONTROLLER_BUTTON_DPAD_LEFT ),
+[k_srbind_dead_respawn] =
+ INPUT_BASIC( SDLK_q, SDL_CONTROLLER_BUTTON_DPAD_RIGHT ),
+[k_srbind_camera]= INPUT_BASIC( SDLK_c, SDL_CONTROLLER_BUTTON_DPAD_RIGHT ),
[k_srbind_mleft] = INPUT_BASIC( SDLK_LEFT, SDL_CONTROLLER_BUTTON_DPAD_LEFT ),
[k_srbind_mright]= INPUT_BASIC( SDLK_RIGHT, SDL_CONTROLLER_BUTTON_DPAD_RIGHT ),
[k_srbind_world_left] =
[k_srbind_sit] = INPUT_BASIC( SDLK_z, SDL_CONTROLLER_BUTTON_B ),
[k_srbind_lobby] = INPUT_BASIC( SDLK_TAB, SDL_CONTROLLER_BUTTON_DPAD_LEFT ),
[k_srbind_chat ] = (vg_input_op[]){ vg_keyboard, SDLK_y, vg_end },
+[k_srbind_run ] = (vg_input_op[]){ vg_keyboard, SDLK_LSHIFT,
+ vg_joy_axis, SDL_CONTROLLER_AXIS_TRIGGERLEFT, vg_end },
+
+[k_srbind_miniworld_resume] = (vg_input_op[]){
+ vg_keyboard, SDLK_RETURN, vg_gui_visible, 0,
+ vg_keyboard, SDLK_RETURN2,
+ vg_gui_visible, 1,
+ vg_joy_button, SDL_CONTROLLER_BUTTON_X, vg_end
+},
+[k_srbind_miniworld_teleport]= INPUT_BASIC( SDLK_q,
+ SDL_CONTROLLER_BUTTON_LEFTSHOULDER ),
+[k_srbind_skid] = (vg_input_op[]){ vg_keyboard, SDLK_LCTRL, vg_end },
+[k_srbind_devbutton] = (vg_input_op[]){ vg_keyboard, SDLK_3, vg_end },
[k_srbind_max]=NULL
};
[k_sraxis_mbrowse_h] = (vg_input_op[]){
vg_mode_sub, vg_keyboard, SDLK_LEFT,
vg_mode_add, vg_keyboard, SDLK_RIGHT,
- vg_mode_absmax, vg_joy_axis, SDL_CONTROLLER_AXIS_LEFTX,
+ vg_mode_add, vg_joy_axis, SDL_CONTROLLER_AXIS_LEFTX,
vg_end
},
[k_sraxis_mbrowse_v] = (vg_input_op[]){
vg_mode_add, vg_keyboard, SDLK_UP,
vg_mode_sub, vg_keyboard, SDLK_DOWN,
- vg_mode_absmax, vg_joy_axis, SDL_CONTROLLER_AXIS_LEFTY,
+ vg_mode_sub, vg_joy_axis, SDL_CONTROLLER_AXIS_LEFTY,
vg_end
},
[k_sraxis_replay_h] = (vg_input_op[]){
vg_mode_sub, vg_joy_axis, SDL_CONTROLLER_AXIS_TRIGGERLEFT,
vg_end
},
+[k_sraxis_skid] = (vg_input_op[]){
+ vg_mode_add, vg_joy_button, SDL_CONTROLLER_BUTTON_RIGHTSHOULDER,
+ vg_mode_sub, vg_joy_button, SDL_CONTROLLER_BUTTON_LEFTSHOULDER,
+ vg_end
+},
[k_sraxis_max]=NULL
};
}
static srinput;
-#if 0
-static const char *controller_glyphs[ SDL_CONTROLLER_BUTTON_MAX ][2] =
-{ /* xbox/generic playstation */
- [ SDL_CONTROLLER_BUTTON_A ] = { "\x1e\x85","\x1e\x82" },
- [ SDL_CONTROLLER_BUTTON_B ] = { "\x1e\x86","\x1e\x81" },
- [ SDL_CONTROLLER_BUTTON_X ] = { "\x1e\x83","\x1e\x7f" },
- [ SDL_CONTROLLER_BUTTON_Y ] = { "\x1e\x84","\x1e\x80" },
- [ SDL_CONTROLLER_BUTTON_LEFTSTICK ] = { "\x87", "\x87" },
- [ SDL_CONTROLLER_BUTTON_RIGHTSTICK ] = { "\x8b", "\x8b" },
- [ SDL_CONTROLLER_BUTTON_LEFTSHOULDER ] = { "\x91", "\x91" },
- [ SDL_CONTROLLER_BUTTON_RIGHTSHOULDER ]= { "\x92", "\x92" },
- [ SDL_CONTROLLER_BUTTON_DPAD_LEFT ] = { "\x1e\x93","\x1e\x93" },
- [ SDL_CONTROLLER_BUTTON_DPAD_UP ] = { "\x1e\x94","\x1e\x94" },
- [ SDL_CONTROLLER_BUTTON_DPAD_RIGHT ] = { "\x1e\x95","\x1e\x95" },
- [ SDL_CONTROLLER_BUTTON_DPAD_DOWN ] = { "\x1e\x96","\x1e\x96" },
- [ SDL_CONTROLLER_BUTTON_GUIDE ] = { "\x91", "\x91" },
-};
-
-static const char *controller_glyph( u32 sdl_index ){
- if( vg_input.display_input_type == SDL_CONTROLLER_TYPE_PS3 ||
- vg_input.display_input_type == SDL_CONTROLLER_TYPE_PS4 ||
- vg_input.display_input_type == SDL_CONTROLLER_TYPE_PS5 )
- {
- return controller_glyphs[ sdl_index ][ 1 ];
- }
- else if( vg_input.display_input_type ==
- SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO ||
- vg_input.display_input_type ==
- SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_LEFT ||
- vg_input.display_input_type ==
- SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_PAIR ||
- vg_input.display_input_type ==
- SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT )
- {
- return NULL;
- }
- else
- return controller_glyphs[ sdl_index ][ 0 ];
-}
-
-#define KEYBOARD_GLYPH( X ) "\x1f" X " "
-
-static const char *button_display_string( enum sr_bind button )
-{
- const char *controller_table[ k_srbind_max ] = {
- [k_srbind_jump] = controller_glyph( SDL_CONTROLLER_BUTTON_A ),
- [k_srbind_push] = controller_glyph( SDL_CONTROLLER_BUTTON_B ),
- [k_srbind_trick0] = controller_glyph( SDL_CONTROLLER_BUTTON_A ),
- [k_srbind_trick1] = controller_glyph( SDL_CONTROLLER_BUTTON_B ),
- [k_srbind_trick2] = controller_glyph( SDL_CONTROLLER_BUTTON_X ),
- [k_srbind_use] = controller_glyph( SDL_CONTROLLER_BUTTON_Y ),
- [k_srbind_reset] = controller_glyph( SDL_CONTROLLER_BUTTON_LEFTSHOULDER ),
- [k_srbind_camera] = controller_glyph( SDL_CONTROLLER_BUTTON_RIGHTSHOULDER ),
- [k_srbind_mleft] = controller_glyph( SDL_CONTROLLER_BUTTON_DPAD_LEFT ),
- [k_srbind_mright] = controller_glyph( SDL_CONTROLLER_BUTTON_DPAD_RIGHT ),
- [k_srbind_world_left] = controller_glyph( SDL_CONTROLLER_BUTTON_DPAD_LEFT ),
- [k_srbind_world_right] = controller_glyph( SDL_CONTROLLER_BUTTON_DPAD_RIGHT ),
- [k_srbind_home] = controller_glyph( SDL_CONTROLLER_BUTTON_Y ),
- [k_srbind_mup] = controller_glyph( SDL_CONTROLLER_BUTTON_DPAD_UP ),
- [k_srbind_mdown] = controller_glyph( SDL_CONTROLLER_BUTTON_DPAD_DOWN ),
- [k_srbind_mback] = controller_glyph( SDL_CONTROLLER_BUTTON_B ),
- [k_srbind_maccept]= controller_glyph( SDL_CONTROLLER_BUTTON_A ),
- [k_srbind_mopen] = controller_glyph( SDL_CONTROLLER_BUTTON_GUIDE ),
-[k_srbind_replay_play]= controller_glyph( SDL_CONTROLLER_BUTTON_X ),
-[k_srbind_replay_freecam]=controller_glyph(SDL_CONTROLLER_BUTTON_Y ),
-[k_srbind_replay_resume]=controller_glyph( SDL_CONTROLLER_BUTTON_A ),
- [k_srbind_sit] = controller_glyph( SDL_CONTROLLER_BUTTON_B ),
- [k_srbind_lobby] = controller_glyph( SDL_CONTROLLER_BUTTON_DPAD_LEFT ),
- [k_srbind_chat] = ""
- };
-
- const char *keyboard_table[ k_srbind_max ] = {
- [k_srbind_jump] = "\xa1",
- [k_srbind_push] = KEYBOARD_GLYPH( "W" ),
- [k_srbind_trick0] = "\x99",
- [k_srbind_trick1] = "\x9a",
- [k_srbind_trick2] = "\x9b",
- [k_srbind_use] = KEYBOARD_GLYPH( "E" ),
- [k_srbind_reset] = KEYBOARD_GLYPH( "R" ),
- [k_srbind_camera] = KEYBOARD_GLYPH( "C" ),
- [k_srbind_mleft] = KEYBOARD_GLYPH( "\x93" ),
- [k_srbind_mright] = KEYBOARD_GLYPH( "\x95" ),
- [k_srbind_world_left] = KEYBOARD_GLYPH( "\x93" ),
- [k_srbind_world_right] = KEYBOARD_GLYPH( "\x95" ),
- [k_srbind_home] = KEYBOARD_GLYPH( "H" ),
- [k_srbind_mup] = KEYBOARD_GLYPH( "\x94" ),
- [k_srbind_mdown] = KEYBOARD_GLYPH( "\x96" ),
- [k_srbind_mback] = "\xa3",
- [k_srbind_maccept]= "\xa2",
- [k_srbind_mopen] = "\xa3" ,
-[k_srbind_replay_play]= KEYBOARD_GLYPH( "G" ),
-[k_srbind_replay_freecam] = KEYBOARD_GLYPH( "F" ),
-[k_srbind_replay_resume]= "\xa1",
- [k_srbind_sit] = KEYBOARD_GLYPH( "Z" ),
- [k_srbind_lobby] = KEYBOARD_GLYPH( "" ), // FIXME: what is tab?
- [k_srbind_chat] = KEYBOARD_GLYPH( "Y" )
- };
-
- if( vg_input.display_input_method == k_input_method_controller )
- return controller_table[ button ];
- else
- return keyboard_table[ button ];
-}
-
-static const char *axis_display_string( enum sr_axis axis )
-{
- const char *controller_table[ k_sraxis_max ] = {
- [k_sraxis_grab] = "\x90",
- [k_sraxis_mbrowse_h] = "\x88",
- [k_sraxis_mbrowse_v] = "\x89",
- [k_sraxis_replay_h] = "\x8f\x90",
- };
-
- const char *keyboard_table[ k_sraxis_max ] = {
- [k_sraxis_grab] = "\x9e",
- [k_sraxis_mbrowse_h] = KEYBOARD_GLYPH("\x93")KEYBOARD_GLYPH("\x95"),
- [k_sraxis_mbrowse_v] = KEYBOARD_GLYPH("\x96")KEYBOARD_GLYPH("\x94"),
- [k_sraxis_replay_h] = KEYBOARD_GLYPH("Q")KEYBOARD_GLYPH("E"),
- };
-
- if( vg_input.display_input_method == k_input_method_controller )
- return controller_table[ axis ];
- else
- return keyboard_table[ axis ];
-}
-
-static const char *joystick_display_string( enum sr_joystick joystick,
- u32 axis )
-{
- const char *controller_table[ k_srjoystick_max ][3] = {
- [k_srjoystick_steer] = {"\x88","\x89","\x8a"},
- [k_srjoystick_grab] = {"\x8c","\x8d","\x8e"},
- [k_srjoystick_look] = {"\x8c","\x8d","\x8e"}
- };
-
- const char *keyboard_table[ k_srjoystick_max ][3] = {
- [k_srjoystick_steer] = {KEYBOARD_GLYPH("A")KEYBOARD_GLYPH("D"), /*h*/
- KEYBOARD_GLYPH("W")KEYBOARD_GLYPH("S"), /*v*/
-
- KEYBOARD_GLYPH("A")KEYBOARD_GLYPH("D") /*hv*/
- KEYBOARD_GLYPH("W")KEYBOARD_GLYPH("S"), },
- [k_srjoystick_grab] = {"\xa4","\xa4","\xa4"},
- [k_srjoystick_look] = {"\xa4","\xa4","\xa4"}
- };
-
- if( vg_input.display_input_method == k_input_method_controller )
- return controller_table[ joystick ][axis];
- else return keyboard_table[ joystick ][axis];
-}
-#endif
-
static int input_filter_generic(void){
if( srinput.state != k_input_state_enabled ||
vg_ui.wants_mouse || vg_console.enabled )