[Super-tux-commit] supertux/src globals.cpp,1.17,1.18 globals.h,1.27,1.28 leveleditor.cpp,1.84,1.85
Brought to you by:
wkendrick
From: Ricardo C. <rm...@us...> - 2004-05-05 16:07:28
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18303/src Modified Files: globals.cpp globals.h leveleditor.cpp leveleditor.h setup.cpp supertux.cpp title.cpp Log Message: Made leveleditor to start in a specific file when ran as: supertux --leveleditor levelname.stl Unfortanely, it crashes when creating the Objects menu. I don't think it is related with my code, so here is the commit. Index: setup.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/setup.cpp,v retrieving revision 1.69 retrieving revision 1.70 diff -u -d -r1.69 -r1.70 --- setup.cpp 4 May 2004 11:27:47 -0000 1.69 +++ setup.cpp 5 May 2004 16:07:19 -0000 1.70 @@ -969,9 +969,9 @@ << " Start-Button: " << joystick_keymap.start_button << std::endl; } } - else if (strcmp(argv[i], "--worldmap") == 0) + else if (strcmp(argv[i], "--leveleditor") == 0) { - launch_worldmap_mode = true; + launch_leveleditor_mode = true; } else if (strcmp(argv[i], "--datadir") == 0 || strcmp(argv[i], "-d") == 0 ) Index: globals.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/globals.cpp,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- globals.cpp 20 Apr 2004 17:31:11 -0000 1.17 +++ globals.cpp 5 May 2004 16:07:19 -0000 1.18 @@ -58,7 +58,7 @@ int joystick_num = 0; char* level_startup_file = 0; -bool launch_worldmap_mode = false; +bool launch_leveleditor_mode = false; /* SuperTux directory ($HOME/.supertux) and save directory($HOME/.supertux/save) */ char *st_dir, *st_save_dir; Index: globals.h =================================================================== RCS file: /cvsroot/super-tux/supertux/src/globals.h,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- globals.h 20 Apr 2004 16:25:57 -0000 1.27 +++ globals.h 5 May 2004 16:07:19 -0000 1.28 @@ -67,7 +67,7 @@ /** The number of the joystick that will be use in the game */ extern int joystick_num; extern char* level_startup_file; -extern bool launch_worldmap_mode; +extern bool launch_leveleditor_mode; /* SuperTux directory ($HOME/.supertux) and save directory($HOME/.supertux/save) */ extern char* st_dir; Index: title.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/title.cpp,v retrieving revision 1.77 retrieving revision 1.78 diff -u -d -r1.77 -r1.78 --- title.cpp 4 May 2004 18:58:51 -0000 1.77 +++ title.cpp 5 May 2004 16:07:20 -0000 1.78 @@ -299,7 +299,7 @@ generate_contrib_menu(); break; case MNID_LEVELEDITOR: - leveleditor(1); + leveleditor(); Menu::set_current(main_menu); break; case MNID_CREDITS: Index: leveleditor.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/leveleditor.cpp,v retrieving revision 1.84 retrieving revision 1.85 diff -u -d -r1.84 -r1.85 --- leveleditor.cpp 5 May 2004 14:38:12 -0000 1.84 +++ leveleditor.cpp 5 May 2004 16:07:19 -0000 1.85 @@ -66,6 +66,7 @@ /* crutial ones (main loop) */ int le_init(); void le_quit(); +int le_load_level(char *filename); void le_drawlevel(); void le_drawinterface(); void le_checkevents(); @@ -183,11 +184,12 @@ } } -int leveleditor(int levelnb) +int leveleditor(char* filename) { int last_time, now_time, i; - le_level = levelnb; + le_level = 1; + if(le_init() != 0) return 1; @@ -201,6 +203,10 @@ while (SDL_PollEvent(&event)) {} + if(filename != NULL) + if(le_load_level(filename)) + return 1; + while(true) { last_time = SDL_GetTicks(); @@ -322,22 +328,8 @@ default: if(i >= 1) { - le_level_subset->load(level_subsets.item[i-1]); - leveleditor_menu->get_item_by_id(MNID_SUBSETSETTINGS).kind = MN_GOTO; - le_level = 1; - le_world.arrays_free(); - delete le_current_level; - le_current_level = new Level; - if(le_current_level->load(le_level_subset->name, le_level) != 0) - { - le_quit(); - return 1; - } - le_set_defaults(); - le_current_level->load_gfx(); - le_world.activate_bad_guys(); - - Menu::set_current(NULL); + if(le_load_level(level_subsets.item[i-1])) + return 1; } break; } @@ -413,6 +405,27 @@ return done; } +int le_load_level(char *filename) +{ +le_level_subset->load(filename); +leveleditor_menu->get_item_by_id(MNID_SUBSETSETTINGS).kind = MN_GOTO; +le_level = 1; +le_world.arrays_free(); +delete le_current_level; +le_current_level = new Level; +if(le_current_level->load(le_level_subset->name, le_level) != 0) + { + le_quit(); + return 1; + } +le_set_defaults(); +le_current_level->load_gfx(); +le_world.activate_bad_guys(); + +Menu::set_current(NULL); + +return 0; +} void le_init_menus() { @@ -599,6 +612,7 @@ SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL); + return 0; } Index: supertux.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/supertux.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- supertux.cpp 28 Apr 2004 13:18:54 -0000 1.15 +++ supertux.cpp 5 May 2004 16:07:20 -0000 1.16 @@ -46,10 +46,9 @@ st_menu(); loadshared(); - if (launch_worldmap_mode) + if (launch_leveleditor_mode && level_startup_file) { - WorldMapNS::WorldMap worldmap; - worldmap.display(); + leveleditor(level_startup_file); } else if (level_startup_file) { Index: leveleditor.h =================================================================== RCS file: /cvsroot/super-tux/supertux/src/leveleditor.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- leveleditor.h 20 Apr 2004 11:09:34 -0000 1.7 +++ leveleditor.h 5 May 2004 16:07:19 -0000 1.8 @@ -34,7 +34,7 @@ SQUARE }; -int leveleditor(int levelnb); +int leveleditor(char* filename = NULL); void newlevel(void); void selectlevel(void); void le_savelevel(); |