Use helper to copy default key settings

This commit is contained in:
Kp 2013-11-26 00:34:27 +00:00
parent 322c61ef01
commit 04fdf83298

View file

@ -852,6 +852,13 @@ static int kconfig_mouse(window *wind, d_event *event, kc_menu *menu)
return rval; return rval;
} }
template <std::size_t M, std::size_t C>
static void reset_mitem_values(kc_mitem (&m)[M], const ubyte (&c)[C])
{
for (unsigned i=0; i < min(lengthof(m), lengthof(c)); i++)
m[i].value = c[i];
}
static int kconfig_key_command(window *wind, d_event *event, kc_menu *menu) static int kconfig_key_command(window *wind, d_event *event, kc_menu *menu)
{ {
int k; int k;
@ -869,19 +876,15 @@ static int kconfig_key_command(window *wind, d_event *event, kc_menu *menu)
return 1; return 1;
case KEY_CTRLED+KEY_R: case KEY_CTRLED+KEY_R:
if ( menu->items==kc_keyboard ) if ( menu->items==kc_keyboard )
for (unsigned i=0; i < lengthof(kc_keyboard); i++ ) reset_mitem_values(kcm_keyboard, DefaultKeySettings[0]);
menu->mitems[i].value=DefaultKeySettings[0][i];
if ( menu->items==kc_joystick ) if ( menu->items==kc_joystick )
for (unsigned i=0; i < lengthof(kc_joystick); i++) reset_mitem_values(kcm_joystick, DefaultKeySettings[1]);
menu->mitems[i].value = DefaultKeySettings[1][i];
if ( menu->items==kc_mouse ) if ( menu->items==kc_mouse )
for (unsigned i=0; i < lengthof(kc_mouse); i++) reset_mitem_values(kcm_mouse, DefaultKeySettings[2]);
menu->mitems[i].value = DefaultKeySettings[2][i];
if ( menu->items==kc_rebirth ) if ( menu->items==kc_rebirth )
for(unsigned i=0;i < lengthof(kc_rebirth); i++) reset_mitem_values(kcm_rebirth, DefaultKeySettingsRebirth);
menu->mitems[i].value=DefaultKeySettingsRebirth[i];
return 1; return 1;
case KEY_DELETE: case KEY_DELETE:
menu->mitems[menu->citem].value=255; menu->mitems[menu->citem].value=255;