#endif
#include <iostream>
+#include <sstream>
#include <stdlib.h>
#include <stdio.h>
-#include <string.h>
+#include <string>
#include <assert.h>
#include "defines.h"
/* Set ControlField a key */
void Menu::get_controlfield_key_into_input(MenuItem *item)
{
- switch(*item->int_p)
+ if (this == options_joystick_menu)
{
- case SDLK_UP:
- item->change_input("Up cursor");
- break;
- case SDLK_DOWN:
- item->change_input("Down cursor");
- break;
- case SDLK_LEFT:
- item->change_input("Left cursor");
- break;
- case SDLK_RIGHT:
- item->change_input("Right cursor");
- break;
- case SDLK_RETURN:
- item->change_input("Return");
- break;
- case SDLK_SPACE:
- item->change_input("Space");
- break;
- case SDLK_RSHIFT:
- item->change_input("Right Shift");
- break;
- case SDLK_LSHIFT:
- item->change_input("Left Shift");
- break;
- case SDLK_RCTRL:
- item->change_input("Right Control");
- break;
- case SDLK_LCTRL:
- item->change_input("Left Control");
- break;
- case SDLK_RALT:
- item->change_input("Right Alt");
- break;
- case SDLK_LALT:
- item->change_input("Left Alt");
- break;
- default:
+ std::ostringstream oss;
+ oss << "Button " << *item->int_p;
+ item->change_input(oss.str().c_str());
+ }
+
+ else if (this == options_keys_menu)
+ {
+ switch(*item->int_p)
{
- char tmp[64];
- snprintf(tmp, 64, "%d", *item->int_p);
- item->change_input(tmp);
+ case SDLK_UP:
+ item->change_input("Up cursor");
+ break;
+ case SDLK_DOWN:
+ item->change_input("Down cursor");
+ break;
+ case SDLK_LEFT:
+ item->change_input("Left cursor");
+ break;
+ case SDLK_RIGHT:
+ item->change_input("Right cursor");
+ break;
+ case SDLK_RETURN:
+ item->change_input("Return");
+ break;
+ case SDLK_SPACE:
+ item->change_input("Space");
+ break;
+ case SDLK_RSHIFT:
+ item->change_input("Right Shift");
+ break;
+ case SDLK_LSHIFT:
+ item->change_input("Left Shift");
+ break;
+ case SDLK_RCTRL:
+ item->change_input("Right Control");
+ break;
+ case SDLK_LCTRL:
+ item->change_input("Left Control");
+ break;
+ case SDLK_RALT:
+ item->change_input("Right Alt");
+ break;
+ case SDLK_LALT:
+ item->change_input("Left Alt");
+ break;
+ default:
+ {
+ char tmp[64];
+ snprintf(tmp, 64, "%d", *item->int_p);
+ item->change_input(tmp);
+ }
+ break;
}
- break;
}
}
menuaction = MENU_ACTION_NONE;
- if (active_item >= int(item.size()))
- active_item = int(item.size()) - 1;
+ //if (active_item >= int(item.size()))
+ // active_item = int(item.size()) - 1;
}
int
/* An International Character. */
}
- if(item[active_item].kind == MN_CONTROLFIELD)
+ if(item[active_item].kind == MN_CONTROLFIELD && this == options_keys_menu)
{
if(key == SDLK_ESCAPE)
{
}
break;
case SDL_JOYBUTTONDOWN:
+ if (item[active_item].kind == MN_CONTROLFIELD && this == options_joystick_menu)
+ {
+ *item[active_item].int_p = key;
+ menuaction = MENU_ACTION_DOWN;
+ }
menuaction = MENU_ACTION_HIT;
break;
case SDL_MOUSEBUTTONDOWN:
options_menu->additem(MN_TOGGLE,"Show FPS ",show_fps,0, MNID_SHOWFPS);
options_menu->additem(MN_GOTO,"Keyboard Setup",0,options_keys_menu);
- //if(use_joystick)
- // options_menu->additem(MN_GOTO,"Joystick Setup",0,options_joystick_menu);
+ if(use_joystick)
+ options_menu->additem(MN_GOTO,"Joystick Setup",0,options_joystick_menu);
options_menu->additem(MN_HL,"",0,0);
options_menu->additem(MN_BACK,"Back",0,0);
{
options_joystick_menu->additem(MN_LABEL,"Joystick Setup",0,0);
options_joystick_menu->additem(MN_HL,"",0,0);
- options_joystick_menu->additem(MN_CONTROLFIELD,"X axis", 0,0, 0,&joystick_keymap.x_axis);
- options_joystick_menu->additem(MN_CONTROLFIELD,"Y axis", 0,0, 0,&joystick_keymap.y_axis);
+ //options_joystick_menu->additem(MN_CONTROLFIELD,"X axis", 0,0, 0,&joystick_keymap.x_axis);
+ //options_joystick_menu->additem(MN_CONTROLFIELD,"Y axis", 0,0, 0,&joystick_keymap.y_axis);
options_joystick_menu->additem(MN_CONTROLFIELD,"A button", 0,0, 0,&joystick_keymap.a_button);
options_joystick_menu->additem(MN_CONTROLFIELD,"B button", 0,0, 0,&joystick_keymap.b_button);
- options_joystick_menu->additem(MN_CONTROLFIELD,"Start", 0,0, 0,&joystick_keymap.start_button);
- options_joystick_menu->additem(MN_CONTROLFIELD,"DeadZone", 0,0, 0,&joystick_keymap.dead_zone);
+ //options_joystick_menu->additem(MN_CONTROLFIELD,"Start", 0,0, 0,&joystick_keymap.start_button);
+ //options_joystick_menu->additem(MN_CONTROLFIELD,"DeadZone", 0,0, 0,&joystick_keymap.dead_zone);
options_joystick_menu->additem(MN_HL,"",0,0);
options_joystick_menu->additem(MN_BACK,"Back",0,0);
}