[Super-tux-commit] supertux/src gameloop.cpp,1.161,1.162 level_subset.cpp,1.7,1.8 leveleditor.cpp,1.
Brought to you by:
wkendrick
From: Tobias G. <to...@us...> - 2004-07-27 19:31:51
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2497/src Modified Files: gameloop.cpp level_subset.cpp leveleditor.cpp leveleditor.h title.cpp worldmap.cpp Log Message: - Cleanups - Got rid of string_list_type (caution! Bugs with the replacement solutions are likely to happen, that will be fixed) Index: level_subset.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/level_subset.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- level_subset.cpp 27 Jul 2004 16:34:52 -0000 1.7 +++ level_subset.cpp 27 Jul 2004 19:31:39 -0000 1.8 @@ -19,8 +19,6 @@ // 02111-1307, USA. #include <assert.h> -#include <unistd.h> - #include "app/setup.h" #include "level.h" #include "app/globals.h" @@ -103,7 +101,7 @@ if (levels.empty()) { // Level info file doesn't define any levels, so read the // directory to see what we can find - std::vector<std::string> files; + std::set<std::string> files; snprintf(filename, 1024, "%s/levels/%s/", st_dir, subset); if(access(filename, R_OK) == 0) @@ -116,7 +114,7 @@ files = FileSystem::read_directory(filename); } - for(std::vector<std::string>::iterator i = files.begin(); i != files.end(); ++i) + for(std::set<std::string>::iterator i = files.begin(); i != files.end(); ++i) { if (has_suffix(*i, ".stl")) levels.push_back(*i); Index: leveleditor.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/leveleditor.cpp,v retrieving revision 1.144 retrieving revision 1.145 diff -u -d -r1.144 -r1.145 --- leveleditor.cpp 26 Jul 2004 18:09:13 -0000 1.144 +++ leveleditor.cpp 27 Jul 2004 19:31:39 -0000 1.145 @@ -330,7 +330,7 @@ default: if(i >= 1) { - if(load_level_subset(level_subsets.item[i-1])) + if(load_level_subset(subset_load_menu->item[i+1].text)) return 1; } break; @@ -395,7 +395,7 @@ return done; } -int LevelEditor::load_level_subset(char *filename) +int LevelEditor::load_level_subset(const char *filename) { le_level_subset->load(filename); leveleditor_menu->get_item_by_id(MNID_SUBSETSETTINGS).kind = MN_GOTO; @@ -411,7 +411,7 @@ void LevelEditor::init_menus() { - int i; + int i = 0; leveleditor_menu = new Menu(); subset_load_menu = new Menu(); @@ -435,9 +435,9 @@ subset_load_menu->additem(MN_LABEL, "Load Level Subset", 0, 0); subset_load_menu->additem(MN_HL, "", 0, 0); - for(i = 0; i < level_subsets.num_items; ++i) + for(std::set<std::string>::iterator it = level_subsets.begin(); it != level_subsets.end(); ++it) { - subset_load_menu->additem(MN_ACTION,level_subsets.item[i],0,0, i+1); + subset_load_menu->additem(MN_ACTION,(*it),0,0, i+1); } subset_load_menu->additem(MN_HL,"",0,0); subset_load_menu->additem(MN_BACK,"Back",0,0); @@ -539,22 +539,22 @@ void LevelEditor::update_level_settings_menu() { char str[80]; - int i; + std::set<std::string>::iterator it; level_settings_menu->get_item_by_id(MNID_NAME).change_input(le_level->name.c_str()); level_settings_menu->get_item_by_id(MNID_AUTHOR).change_input(le_level->author.c_str()); - string_list_copy(level_settings_menu->get_item_by_id(MNID_SONG).list, FileSystem::dfiles("music/",NULL, "-fast")); - string_list_copy(level_settings_menu->get_item_by_id(MNID_BGIMG).list, FileSystem::dfiles("images/background",NULL, NULL)); - string_list_add_item(level_settings_menu->get_item_by_id(MNID_BGIMG).list,""); - string_list_add_item(level_settings_menu->get_item_by_id(MNID_PARTICLE).list,""); - string_list_add_item(level_settings_menu->get_item_by_id(MNID_PARTICLE).list,"snow"); - string_list_add_item(level_settings_menu->get_item_by_id(MNID_PARTICLE).list,"clouds"); + level_settings_menu->get_item_by_id(MNID_SONG).list.first = FileSystem::dfiles("music/",NULL, "-fast"); + level_settings_menu->get_item_by_id(MNID_BGIMG).list.first = FileSystem::dfiles("images/background",NULL, NULL); + level_settings_menu->get_item_by_id(MNID_BGIMG).list.first.insert(""); + level_settings_menu->get_item_by_id(MNID_PARTICLE).list.first.insert(""); + level_settings_menu->get_item_by_id(MNID_PARTICLE).list.first.insert("snow"); + level_settings_menu->get_item_by_id(MNID_PARTICLE).list.first.insert("clouds"); - if((i = string_list_find(level_settings_menu->get_item_by_id(MNID_SONG).list,le_level->get_sector("main")->song_title.c_str())) != -1) - level_settings_menu->get_item_by_id(MNID_SONG).list->active_item = i; - if((i = string_list_find(level_settings_menu->get_item_by_id(MNID_BGIMG).list,le_level->get_sector("main")->background->get_image().c_str())) != -1) - level_settings_menu->get_item_by_id(MNID_BGIMG).list->active_item = i; + if((it = level_settings_menu->get_item_by_id(MNID_SONG).list.first.find(le_level->get_sector("main")->song_title)) != level_settings_menu->get_item_by_id(MNID_SONG).list.first.end()) + level_settings_menu->get_item_by_id(MNID_SONG).list.second = it; + if((it = level_settings_menu->get_item_by_id(MNID_BGIMG).list.first.find(le_level->get_sector("main")->background->get_image())) != level_settings_menu->get_item_by_id(MNID_BGIMG).list.first.end()) + level_settings_menu->get_item_by_id(MNID_BGIMG).list.second = it; /* if((i = string_list_find(level_settings_menu->get_item_by_id(MNID_PARTICLE).list,le_level->get_sector("main")->particlesystem.c_str())) != -1) level_settings_menu->get_item_by_id(MNID_PARTICLE).list->active_item = i;*/ @@ -597,9 +597,9 @@ le_level->name = level_settings_menu->get_item_by_id(MNID_NAME).input; le_level->author = level_settings_menu->get_item_by_id(MNID_AUTHOR).input; - if(le_level->get_sector("main")->background->get_image().compare(string_list_active(level_settings_menu->get_item_by_id(MNID_BGIMG).list)) != 0) + if(le_level->get_sector("main")->background->get_image().compare((*level_settings_menu->get_item_by_id(MNID_BGIMG).list.second)) != 0) { - le_level->get_sector("main")->background->set_image(string_list_active(level_settings_menu->get_item_by_id(MNID_BGIMG).list), atoi(level_settings_menu->get_item_by_id(MNID_BGSPEED).input)); + le_level->get_sector("main")->background->set_image((*level_settings_menu->get_item_by_id(MNID_BGIMG).list.second), atoi(level_settings_menu->get_item_by_id(MNID_BGSPEED).input)); i = true; } @@ -613,7 +613,7 @@ le_level->load_gfx(); }*/ - le_level->get_sector("main")->song_title = string_list_active(level_settings_menu->get_item_by_id(MNID_SONG).list); + le_level->get_sector("main")->song_title = (*level_settings_menu->get_item_by_id(MNID_SONG).list.second); le_level->get_sector("main")->solids->resize( atoi(level_settings_menu->get_item_by_id(MNID_LENGTH).input), @@ -950,10 +950,10 @@ object_properties_menu->additem(MN_STRINGSELECT,"Kind",0,0,1); for(int i = 0; i < NUM_BadGuyKinds; ++i) { - string_list_add_item(object_properties_menu->get_item_by_id(1).list, - badguykind_to_string(static_cast<BadGuyKind>(i)).c_str()); + object_properties_menu->get_item_by_id(1).list.first.insert( + badguykind_to_string(static_cast<BadGuyKind>(i))); if(pbad->kind == i) - object_properties_menu->get_item_by_id(1).list->active_item = i; + object_properties_menu->get_item_by_id(1).list.second = object_properties_menu->get_item_by_id(1).list.first.find(badguykind_to_string(static_cast<BadGuyKind>(i))); } object_properties_menu->additem(MN_TOGGLE,"StayOnPlatform",pbad->stay_on_platform,0,2); } @@ -984,7 +984,7 @@ BadGuy* pbad = dynamic_cast<BadGuy*>(pobj); if(pbad != 0) { BadGuy* pbad = dynamic_cast<BadGuy*>(pobj); - pbad->kind = badguykind_from_string(string_list_active(object_properties_menu->get_item_by_id(1).list)); + pbad->kind = badguykind_from_string((*object_properties_menu->get_item_by_id(1).list.second)); pbad->stay_on_platform = object_properties_menu->get_item_by_id(2).toggled; } loop = false; Index: title.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/title.cpp,v retrieving revision 1.113 retrieving revision 1.114 diff -u -d -r1.113 -r1.114 --- title.cpp 27 Jul 2004 13:25:05 -0000 1.113 +++ title.cpp 27 Jul 2004 19:31:39 -0000 1.114 @@ -74,7 +74,7 @@ static std::vector<LevelSubset*> contrib_subsets; static LevelSubset* current_contrib_subset = 0; -static string_list_type worldmap_list; +static std::set<std::string> worldmap_list; static LevelEditor* leveleditor; @@ -102,34 +102,39 @@ void generate_contrib_menu() { + /** Generating contrib levels list by making use of Level Subset */ - string_list_type level_subsets = FileSystem::dsubdirs("/levels", "info"); + std::set<std::string> level_subsets = FileSystem::dsubdirs("/levels", "info"); free_contrib_menu(); contrib_menu->additem(MN_LABEL,_("Contrib Levels"),0,0); contrib_menu->additem(MN_HL,"",0,0); - - for (int i = 0; i < level_subsets.num_items; ++i) + + int i = 0; + for (std::set<std::string>::iterator it = level_subsets.begin(); it != level_subsets.end(); ++it) { LevelSubset* subset = new LevelSubset(); - subset->load(level_subsets.item[i]); + subset->load((*it).c_str()); contrib_menu->additem(MN_GOTO, subset->title.c_str(), i, - contrib_subset_menu, i); + contrib_subset_menu); contrib_subsets.push_back(subset); + ++i; } - for(int i = 0; i < worldmap_list.num_items; i++) + i = 0; + for(std::set<std::string>::iterator it = worldmap_list.begin(); it != worldmap_list.end(); ++it) { WorldMapNS::WorldMap worldmap; - worldmap.loadmap(worldmap_list.item[i]); - contrib_menu->additem(MN_ACTION, worldmap.get_world_title(),0,0, i + level_subsets.num_items); + worldmap.loadmap((*it).c_str()); + contrib_menu->additem(MN_ACTION, worldmap.get_world_title(),0,0, i + level_subsets.size()); + ++i; } contrib_menu->additem(MN_HL,"",0,0); contrib_menu->additem(MN_BACK,_("Back"),0,0); - string_list_free(&level_subsets); + level_subsets.clear(); } void check_levels_contrib_menu() @@ -180,10 +185,13 @@ titlesession->set_current(); } } - else if(index < worldmap_list.num_items + (int)contrib_subsets.size()) + else if((unsigned)index < worldmap_list.size() + (int)contrib_subsets.size()) { WorldMapNS::WorldMap worldmap; - worldmap.loadmap(worldmap_list.item[index - contrib_subsets.size()]); + std::set<std::string>::iterator it = worldmap_list.begin(); + for(int i = index - contrib_subsets.size(); i > 0; --i) + ++it; + worldmap.loadmap((*it)); worldmap.display(); Menu::set_current(main_menu); @@ -309,10 +317,11 @@ if (event.type == SDL_QUIT) Menu::set_current(0); } - + /* Draw the background: */ draw_demo(frame_ratio); - + + if (Menu::current() == main_menu) context.draw_surface(logo, Vector(screen->w/2 - logo->w/2, 30), LAYER_FOREGROUND1+1); @@ -330,7 +339,7 @@ { menu->draw(context); menu->action(); - + if(menu == main_menu) { switch (main_menu->check()) @@ -417,12 +426,13 @@ /* Free surfaces: */ free_contrib_menu(); - string_list_free(&worldmap_list); + worldmap_list.clear(); delete titlesession; delete bkg_title; delete logo; delete img_choose_subset; } + // EOF // Index: worldmap.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/worldmap.cpp,v retrieving revision 1.104 retrieving revision 1.105 diff -u -d -r1.104 -r1.105 --- worldmap.cpp 27 Jul 2004 16:54:45 -0000 1.104 +++ worldmap.cpp 27 Jul 2004 19:31:39 -0000 1.105 @@ -437,7 +437,7 @@ reader.read_int("x", level.x); reader.read_int("y", level.y); level.auto_path = true; - reader.read_bool("auto-path", &level.auto_path); + reader.read_bool("auto-path", level.auto_path); level.swap_x = level.swap_y = -1; reader.read_int("swap-x", level.swap_x); reader.read_int("swap-y", level.swap_y); Index: gameloop.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/gameloop.cpp,v retrieving revision 1.161 retrieving revision 1.162 diff -u -d -r1.161 -r1.162 --- gameloop.cpp 27 Jul 2004 17:53:51 -0000 1.161 +++ gameloop.cpp 27 Jul 2004 19:31:39 -0000 1.162 @@ -77,6 +77,9 @@ context = new DrawingContext(); + if(debug_mode) + flip_level = true; + restart_level(); } Index: leveleditor.h =================================================================== RCS file: /cvsroot/super-tux/supertux/src/leveleditor.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- leveleditor.h 21 Jul 2004 11:56:48 -0000 1.17 +++ leveleditor.h 27 Jul 2004 19:31:39 -0000 1.18 @@ -94,7 +94,7 @@ /* own declerations */ /* crutial ones (main loop) */ void init_menus(); -int load_level_subset(char *filename); +int load_level_subset(const char *filename); void drawlevel(DrawingContext& context); void drawinterface(DrawingContext& context); void change(float x, float y, int tm, unsigned int c); @@ -142,7 +142,7 @@ // variables /* leveleditor internals */ -string_list_type level_subsets; +std::set<std::string> level_subsets; bool le_level_changed; /* if changes, ask for saving, when quiting*/ bool show_minimap; bool show_selections; |