{
SDL_GameControllerButton gamepad_id;
SDL_Keycode keyboard_id;
+ int mouse_id;
int value, prev;
}
button;
bind->axis.keyboard_negative = -1;
bind->button.gamepad_id = -1;
bind->button.keyboard_id = -1;
+ bind->button.mouse_id = -1;
}
VG_STATIC struct input_binding *vg_create_named_input( const char *name,
bind->axis.keyboard_negative = -1;
bind->button.gamepad_id = -1;
bind->button.keyboard_id = -1;
+ bind->button.mouse_id = -1;
return bind;
}
{k_input_type_gamepad_button, "gp-dpad-left", SDL_CONTROLLER_BUTTON_DPAD_LEFT},
{k_input_type_gamepad_button,"gp-dpad-right",SDL_CONTROLLER_BUTTON_DPAD_RIGHT},
{k_input_type_gamepad_button, "gp-dpad-up", SDL_CONTROLLER_BUTTON_DPAD_UP},
- {k_input_type_gamepad_button, "\2gp-menu", SDL_CONTROLLER_BUTTON_BACK}
+ {k_input_type_gamepad_button, "\2gp-menu", SDL_CONTROLLER_BUTTON_BACK},
+
+ {k_input_type_mouse_button, "mouse1", SDL_BUTTON_LEFT },
+ {k_input_type_mouse_button, "mouse2", SDL_BUTTON_RIGHT }
};
VG_STATIC const char *vg_input_to_str( u32 input, enum input_type input_type )
vg_info( " keyboard_id: %s\n",
vg_input_to_str(bind->button.keyboard_id,
k_input_type_keyboard_key));
+ vg_info( " mouse_id: %s\n",
+ vg_input_to_str(bind->button.mouse_id,
+ k_input_type_mouse_button));
}
}
if( type == k_input_type_keyboard_key )
bind->button.keyboard_id = id;
+ else if( type == k_input_type_mouse_button )
+ bind->button.mouse_id = id;
else if( type == k_input_type_gamepad_button )
bind->button.gamepad_id = id;
else
vg_input.controller_buttons[ bind->button.gamepad_id ];
if( bind->button.keyboard_id != -1 )
+ {
bind->button.value |= vg_getkey( bind->button.keyboard_id );
+ }
+
+ if( bind->button.mouse_id != -1 )
+ {
+ if( SDL_GetMouseState(NULL, NULL) &
+ SDL_BUTTON( bind->button.mouse_id ) )
+ bind->button.value |= 1;
+ }
}
else if( bind->type == k_input_type_axis )
{