[Super-tux-commit] supertux/src button.cpp,1.12,1.13 gameloop.cpp,1.64,1.65 high_scores.cpp,1.8,1.9
Brought to you by:
wkendrick
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23327 Modified Files: button.cpp gameloop.cpp high_scores.cpp leveleditor.cpp menu.cpp menu.h setup.cpp title.cpp Log Message: - turned menu_item_type into a class Index: menu.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/menu.cpp,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- menu.cpp 11 Apr 2004 16:33:11 -0000 1.29 +++ menu.cpp 11 Apr 2004 17:39:47 -0000 1.30 @@ -69,20 +69,25 @@ } /* Return a pointer to a new menu item */ -menu_item_type* menu_item_create(MenuItemKind kind, char *text, int init_toggle, Menu* target_menu) +MenuItem* +MenuItem::create(MenuItemKind kind_, char *text_, int init_toggle_, Menu* target_menu_) { - menu_item_type *pnew_item = (menu_item_type*) malloc(sizeof(menu_item_type)); - pnew_item->kind = kind; - pnew_item->text = (char*) malloc(sizeof(char) * (strlen(text) + 1)); - strcpy(pnew_item->text,text); - if(kind == MN_TOGGLE) - pnew_item->toggled = init_toggle; + MenuItem *pnew_item = new MenuItem; + + pnew_item->kind = kind_; + pnew_item->text = (char*) malloc(sizeof(char) * (strlen(text_) + 1)); + strcpy(pnew_item->text, text_); + + if(kind_ == MN_TOGGLE) + pnew_item->toggled = init_toggle_; else pnew_item->toggled = false; - pnew_item->target_menu = target_menu; + + pnew_item->target_menu = target_menu_; pnew_item->input = (char*) malloc(sizeof(char)); pnew_item->input[0] = '\0'; - if(kind == MN_STRINGSELECT) + + if(kind_ == MN_STRINGSELECT) { pnew_item->list = (string_list_type*) malloc(sizeof(string_list_type)); string_list_init(pnew_item->list); @@ -92,22 +97,25 @@ return pnew_item; } -void menu_item_change_text(menu_item_type* pmenu_item,const char *text) +void +MenuItem::change_text(const char *text_) { - if(text) + if (text_) { - free(pmenu_item->text); - pmenu_item->text = (char*) malloc(sizeof(char )*(strlen(text)+1)); - strcpy(pmenu_item->text,text); + free(text); + text = (char*) malloc(sizeof(char )*(strlen(text_)+1)); + strcpy(text, text_); } } -void menu_item_change_input(menu_item_type* pmenu_item,const char *text) + +void +MenuItem::change_input(const char *text_) { if(text) { - free(pmenu_item->input); - pmenu_item->input = (char*) malloc(sizeof(char )*(strlen(text)+1)); - strcpy(pmenu_item->input,text); + free(input); + input = (char*) malloc(sizeof(char )*(strlen(text_)+1)); + strcpy(input, text_); } } @@ -146,18 +154,18 @@ } void -Menu::additem(MenuItemKind kind, char *text, int toggle, Menu* menu) +Menu::additem(MenuItemKind kind_, char *text_, int toggle_, Menu* menu_) { - additem(menu_item_create(kind, text, toggle, menu)); + additem(MenuItem::create(kind_, text_, toggle_, menu_)); } /* Add an item to a menu */ void -Menu::additem(menu_item_type* pmenu_item) +Menu::additem(MenuItem* pmenu_item) { ++num_items; - item = (menu_item_type*)realloc(item, sizeof(menu_item_type) * num_items); - memcpy(&item[num_items-1],pmenu_item,sizeof(menu_item_type)); + item = (MenuItem*)realloc(item, sizeof(MenuItem) * num_items); + memcpy(&item[num_items-1], pmenu_item, sizeof(MenuItem)); free(pmenu_item); } @@ -280,7 +288,7 @@ } } - menu_item_type& new_item = item[active_item]; + MenuItem& new_item = item[active_item]; if(new_item.kind == MN_DEACTIVE || new_item.kind == MN_LABEL || new_item.kind == MN_HL) @@ -324,10 +332,9 @@ int menu_width, int menu_height) { - int font_width = 16; - - const menu_item_type& pitem = item[index]; + const MenuItem& pitem = item[index]; + int font_width = 16; int effect_offset = 0; { int effect_time = 0; @@ -536,7 +543,8 @@ } /* Check for menu event */ -void menu_event(SDL_Event& event) +void +Menu::event(SDL_Event& event) { SDLKey key; switch(event.type) @@ -579,7 +587,7 @@ menu_change = true; break; case SDLK_SPACE: - if(current_menu->item[current_menu->active_item].kind == MN_TEXTFIELD) + if(item[active_item].kind == MN_TEXTFIELD) { menuaction = MENU_ACTION_INPUT; menu_change = true; @@ -625,10 +633,10 @@ case SDL_MOUSEBUTTONDOWN: x = event.motion.x; y = event.motion.y; - if(x > current_menu->pos_x - current_menu->width()/2 && - x < current_menu->pos_x + current_menu->width()/2 && - y > current_menu->pos_y - current_menu->height()/2 && - y < current_menu->pos_y + current_menu->height()/2) + if(x > pos_x - width()/2 && + x < pos_x + width()/2 && + y > pos_y - height()/2 && + y < pos_y + height()/2) { menuaction = MENU_ACTION_HIT; } @@ -636,12 +644,12 @@ case SDL_MOUSEMOTION: x = event.motion.x; y = event.motion.y; - if(x > current_menu->pos_x - current_menu->width()/2 && - x < current_menu->pos_x + current_menu->width()/2 && - y > current_menu->pos_y - current_menu->height()/2 && - y < current_menu->pos_y + current_menu->height()/2) + if(x > pos_x - width()/2 && + x < pos_x + width()/2 && + y > pos_y - height()/2 && + y < pos_y + height()/2) { - current_menu->active_item = (y - (current_menu->pos_y - current_menu->height()/2)) / 24; + active_item = (y - (pos_y - height()/2)) / 24; menu_change = true; mouse_cursor->set_state(MC_LINK); } Index: setup.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/setup.cpp,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- setup.cpp 11 Apr 2004 14:44:19 -0000 1.29 +++ setup.cpp 11 Apr 2004 17:39:47 -0000 1.30 @@ -445,7 +445,7 @@ pmenu->item[i].kind = MN_ACTION; else pmenu->item[i].kind = MN_ACTION; - menu_item_change_text(&pmenu->item[i], tmp.c_str()); + pmenu->item[i].change_text(tmp.c_str()); } } Index: menu.h =================================================================== RCS file: /cvsroot/super-tux/supertux/src/menu.h,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- menu.h 11 Apr 2004 16:38:58 -0000 1.28 +++ menu.h 11 Apr 2004 17:39:47 -0000 1.29 @@ -36,24 +36,24 @@ class Menu; -struct menu_item_type - { - MenuItemKind kind; - int toggled; - char *text; - char *input; - string_list_type* list; - Menu* target_menu; -}; +class MenuItem +{ +public: + MenuItemKind kind; + int toggled; + char *text; + char *input; + string_list_type* list; + Menu* target_menu; -menu_item_type* menu_item_create(MenuItemKind kind, char *text, int init_toggle, Menu* target_menu); -void menu_item_change_text (menu_item_type* pmenu_item, const char *text); -void menu_item_change_input(menu_item_type* pmenu_item, const char *text); + void change_text (const char *text); + void change_input(const char *text); + + static MenuItem* create(MenuItemKind kind, char *text, int init_toggle, Menu* target_menu); +}; class Menu { -friend void menu_event(SDL_Event& event); - private: // position of the menu (ie. center of the menu, not top/left) int pos_x; @@ -68,14 +68,14 @@ Timer effect; int arrange_left; int active_item; - menu_item_type *item; + MenuItem* item; static void set_current(Menu* pmenu); Menu(); ~Menu(); - void additem(menu_item_type* pmenu_item); + void additem(MenuItem* pmenu_item); void additem(MenuItemKind kind, char *text, int init_toggle, Menu* target_menu); void action (); @@ -84,6 +84,9 @@ void draw (); void draw_item(int index, int menu_width, int menu_height); void set_pos(int x, int y, float rw = 0, float rh = 0); + + /* Check for a menu event */ + void event(SDL_Event& event); }; @@ -103,7 +106,12 @@ extern MenuAction menuaction; extern bool show_menu; extern bool menu_change; -extern texture_type checkbox, checkbox_checked, back, arrow_left, arrow_right; + +extern texture_type checkbox; +extern texture_type checkbox_checked; +extern texture_type back; +extern texture_type arrow_left; +extern texture_type arrow_right; extern Menu* contrib_menu; extern Menu* main_menu; @@ -125,9 +133,6 @@ /* "Calculate" and draw the menu */ void menu_process_current(void); -/* Check for a menu event */ -void menu_event(SDL_Event& event); - #endif /*SUPERTUX_MENU_H*/ /* Local Variables: */ Index: leveleditor.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/leveleditor.cpp,v retrieving revision 1.42 retrieving revision 1.43 diff -u -d -r1.42 -r1.43 --- leveleditor.cpp 11 Apr 2004 17:16:17 -0000 1.42 +++ leveleditor.cpp 11 Apr 2004 17:39:46 -0000 1.43 @@ -282,7 +282,7 @@ le_set_defaults(); le_current_level->load_gfx(); le_world.activate_bad_guys(); - menu_item_change_input(&subset_new_menu->item[2],""); + subset_new_menu->item[2].change_input(""); show_menu = true; break; } @@ -463,7 +463,7 @@ char str[80]; int i; - menu_item_change_input(&level_settings_menu->item[2], le_current_level->name.c_str()); + level_settings_menu->item[2].change_input(le_current_level->name.c_str()); sprintf(str,"%d",le_current_level->width); string_list_copy(level_settings_menu->item[3].list, dsubdirs("images/themes", "solid0.png")); @@ -477,23 +477,23 @@ if((i = string_list_find(level_settings_menu->item[5].list,le_current_level->bkgd_image.c_str())) != -1) level_settings_menu->item[5].list->active_item = i; - menu_item_change_input(&level_settings_menu->item[6], str); + level_settings_menu->item[6].change_input(str); sprintf(str,"%d",le_current_level->time_left); - menu_item_change_input(&level_settings_menu->item[7], str); + level_settings_menu->item[7].change_input(str); sprintf(str,"%2.0f",le_current_level->gravity); - menu_item_change_input(&level_settings_menu->item[8], str); + level_settings_menu->item[8].change_input(str); sprintf(str,"%d",le_current_level->bkgd_red); - menu_item_change_input(&level_settings_menu->item[9], str); + level_settings_menu->item[9].change_input(str); sprintf(str,"%d",le_current_level->bkgd_green); - menu_item_change_input(&level_settings_menu->item[10], str); + level_settings_menu->item[10].change_input(str); sprintf(str,"%d",le_current_level->bkgd_blue); - menu_item_change_input(&level_settings_menu->item[11], str); + level_settings_menu->item[11].change_input(str); } void update_subset_settings_menu() { - menu_item_change_input(&subset_settings_menu->item[2], le_level_subset.title.c_str()); - menu_item_change_input(&subset_settings_menu->item[3], le_level_subset.description.c_str()); + subset_settings_menu->item[2].change_input(le_level_subset.title.c_str()); + subset_settings_menu->item[3].change_input(le_level_subset.description.c_str()); } void apply_level_settings_menu() @@ -750,7 +750,7 @@ while(SDL_PollEvent(&event)) { if(show_menu) - menu_event(event); + current_menu->event(event); else mouse_cursor->set_state(MC_NORMAL); Index: title.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/title.cpp,v retrieving revision 1.37 retrieving revision 1.38 diff -u -d -r1.37 -r1.38 --- title.cpp 11 Apr 2004 17:10:48 -0000 1.37 +++ title.cpp 11 Apr 2004 17:39:47 -0000 1.38 @@ -187,7 +187,7 @@ while (SDL_PollEvent(&event)) { - menu_event(event); + current_menu->event(event); if (event.type == SDL_QUIT) { done = true; Index: high_scores.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/high_scores.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- high_scores.cpp 3 Apr 2004 13:31:14 -0000 1.8 +++ high_scores.cpp 11 Apr 2004 17:39:46 -0000 1.9 @@ -115,7 +115,7 @@ while(SDL_PollEvent(&event)) if(event.type == SDL_KEYDOWN) - menu_event(event); + current_menu->event(event); switch (highscore_menu->check()) { Index: gameloop.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/gameloop.cpp,v retrieving revision 1.64 retrieving revision 1.65 diff -u -d -r1.64 -r1.65 --- gameloop.cpp 11 Apr 2004 17:16:17 -0000 1.64 +++ gameloop.cpp 11 Apr 2004 17:39:46 -0000 1.65 @@ -170,7 +170,7 @@ { /* Check for menu-events, if the menu is shown */ if(show_menu) - menu_event(event); + current_menu->event(event); switch(event.type) { Index: button.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/button.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- button.cpp 11 Apr 2004 16:38:58 -0000 1.12 +++ button.cpp 11 Apr 2004 17:39:46 -0000 1.13 @@ -68,7 +68,7 @@ bkgd = NULL; } -void Button::change_icon(std::string icon_file, int mw, int mh) +void Button::change_icon(std::string icon_file, int /*mw*/, int /*mh*/) { char filename[1024]; |