[Super-tux-commit] supertux/src menu.cpp,1.42,1.43 menu.h,1.40,1.41 player.h,1.32,1.33 setup.cpp,1.4
Brought to you by:
wkendrick
From: Ricardo C. <rm...@us...> - 2004-04-21 15:17:36
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13352/src Modified Files: menu.cpp menu.h player.h setup.cpp Log Message: Finally, made keys configurable via the menu!! ;) Next step is to save them to config file and to make joystick also configurable. Index: menu.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/menu.cpp,v retrieving revision 1.42 retrieving revision 1.43 diff -u -d -r1.42 -r1.43 --- menu.cpp 20 Apr 2004 16:25:57 -0000 1.42 +++ menu.cpp 21 Apr 2004 15:15:23 -0000 1.43 @@ -97,7 +97,7 @@ /* Return a pointer to a new menu item */ MenuItem* -MenuItem::create(MenuItemKind kind_, const char *text_, int init_toggle_, Menu* target_menu_) +MenuItem::create(MenuItemKind kind_, const char *text_, int init_toggle_, Menu* target_menu_, int* int_p_) { MenuItem *pnew_item = new MenuItem; @@ -121,6 +121,9 @@ } else pnew_item->list = NULL; + + pnew_item->int_p = int_p_; + return pnew_item; } @@ -183,12 +186,12 @@ } void -Menu::additem(MenuItemKind kind_, const std::string& text_, int toggle_, Menu* menu_) +Menu::additem(MenuItemKind kind_, const std::string& text_, int toggle_, Menu* menu_, int* int_p) { if(kind_ == MN_BACK) has_backitem = true; - additem(MenuItem::create(kind_, text_.c_str(), toggle_, menu_)); + additem(MenuItem::create(kind_, text_.c_str(), toggle_, menu_, int_p)); } /* Add an item to a menu */ @@ -272,10 +275,11 @@ case MN_ACTION: case MN_TEXTFIELD: case MN_NUMFIELD: - case MN_CONTROLFIELD: Menu::set_current(0); item[active_item].toggled = true; break; + case MN_CONTROLFIELD: + break; case MN_BACK: Menu::pop_current(); @@ -321,7 +325,6 @@ item[active_item].input[1] = '\0'; } } - break; case MENU_ACTION_NONE: break; @@ -588,6 +591,14 @@ /* An International Character. */ } + if(item[active_item].kind == MN_CONTROLFIELD) + { + *item[active_item].int_p = event.key.keysym.unicode; + menuaction = MENU_ACTION_DOWN; + return; + } + + switch(key) { case SDLK_UP: /* Menu Up */ Index: player.h =================================================================== RCS file: /cvsroot/super-tux/supertux/src/player.h,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- player.h 20 Apr 2004 19:55:10 -0000 1.32 +++ player.h 21 Apr 2004 15:15:28 -0000 1.33 @@ -58,6 +58,8 @@ PlayerKeymap(); }; +extern PlayerKeymap keymap; + struct player_input_type { int right; Index: setup.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/setup.cpp,v retrieving revision 1.45 retrieving revision 1.46 diff -u -d -r1.45 -r1.46 --- setup.cpp 20 Apr 2004 16:50:18 -0000 1.45 +++ setup.cpp 21 Apr 2004 15:15:28 -0000 1.46 @@ -50,6 +50,8 @@ #include "scene.h" #include "worldmap.h" +#include "player.h" + #ifdef WIN32 #define mkdir(dir, mode) mkdir(dir) // on win32 we typically don't want LFS paths @@ -405,7 +407,11 @@ options_controls_menu->additem(MN_LABEL,"Controls",0,0); options_controls_menu->additem(MN_HL,"",0,0); - //FIXME:options_controls_menu->additem(MN_CONTROLFIELD,"Move Right", tux.keymap.right,0); + options_controls_menu->additem(MN_CONTROLFIELD,"Right move", 0,0, &keymap.right); + options_controls_menu->additem(MN_CONTROLFIELD,"Left move", 0,0, &keymap.left); + options_controls_menu->additem(MN_CONTROLFIELD,"Jump", 0,0, &keymap.jump); + options_controls_menu->additem(MN_CONTROLFIELD,"Duck", 0,0, &keymap.duck); + options_controls_menu->additem(MN_CONTROLFIELD,"Power", 0,0, &keymap.fire); options_controls_menu->additem(MN_HL,"",0,0); options_controls_menu->additem(MN_BACK,"Back",0,0); Index: menu.h =================================================================== RCS file: /cvsroot/super-tux/supertux/src/menu.h,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- menu.h 20 Apr 2004 10:42:05 -0000 1.40 +++ menu.h 21 Apr 2004 15:15:27 -0000 1.41 @@ -51,13 +51,14 @@ int toggled; char *text; char *input; + int *int_p; // used for setting keys (can be used for more stuff...) string_list_type* list; Menu* target_menu; void change_text (const char *text); void change_input(const char *text); - static MenuItem* create(MenuItemKind kind, const char *text, int init_toggle, Menu* target_menu); + static MenuItem* create(MenuItemKind kind, const char *text, int init_toggle, Menu* target_menu, int* int_p); }; class Menu @@ -115,7 +116,7 @@ ~Menu(); void additem(MenuItem* pmenu_item); - void additem(MenuItemKind kind, const std::string& text, int init_toggle, Menu* target_menu); + void additem(MenuItemKind kind, const std::string& text, int init_toggle, Menu* target_menu, int *int_p = NULL); void action (); |