[Super-tux-commit] supertux/src gameloop.cpp,1.163,1.164 gameloop.h,1.56,1.57 high_scores.cpp,1.25,1
Brought to you by:
wkendrick
From: Tobias G. <to...@us...> - 2004-07-28 23:06:21
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18640/src Modified Files: gameloop.cpp gameloop.h high_scores.cpp leveleditor.cpp Log Message: - Various fixes and cleanups. - Added FrameRate class to SuperTux library - More menu code C++ing. Index: gameloop.h =================================================================== RCS file: /cvsroot/super-tux/supertux/src/gameloop.h,v retrieving revision 1.56 retrieving revision 1.57 diff -u -d -r1.56 -r1.57 --- gameloop.h 25 Jul 2004 19:03:36 -0000 1.56 +++ gameloop.h 28 Jul 2004 23:06:12 -0000 1.57 @@ -24,6 +24,7 @@ #include "special/timer.h" #include "special/base.h" +#include "special/frame_rate.h" using namespace SuperTux; @@ -64,8 +65,7 @@ int st_gl_mode; int levelnb; float fps_fps; - unsigned int last_update_time; - unsigned int update_time; + FrameRate frame_rate; int pause_menu_frame; int debug_fps; Index: high_scores.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/high_scores.cpp,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- high_scores.cpp 25 Jul 2004 19:03:36 -0000 1.25 +++ high_scores.cpp 28 Jul 2004 23:06:12 -0000 1.26 @@ -95,10 +95,7 @@ Menu::set_current(highscore_menu); - if(!highscore_menu->item[0].input) - highscore_menu->item[0].input = (char*) malloc(strlen(hs_name.c_str()) + 1); - - strcpy(highscore_menu->item[0].input,hs_name.c_str()); + highscore_menu->item[0].input = hs_name; /* ask for player's name */ while(Menu::current()) @@ -124,8 +121,7 @@ switch (highscore_menu->check()) { case 0: - if(highscore_menu->item[0].input != NULL) - hs_name = highscore_menu->item[0].input; + hs_name = highscore_menu->item[0].input; break; } Index: gameloop.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/gameloop.cpp,v retrieving revision 1.163 retrieving revision 1.164 diff -u -d -r1.163 -r1.164 --- gameloop.cpp 28 Jul 2004 21:47:43 -0000 1.163 +++ gameloop.cpp 28 Jul 2004 23:06:12 -0000 1.164 @@ -74,6 +74,7 @@ fps_timer.init(true); frame_timer.init(true); + frame_rate.set_fps(100); context = new DrawingContext(); @@ -190,7 +191,7 @@ { time_left.start(level->time_left*1000); Ticks::pause_init(); - update_time = Ticks::get(); + frame_rate.start(); } void @@ -600,7 +601,7 @@ int fps_cnt = 0; - update_time = last_update_time = Ticks::get(); + frame_rate.start(); // Eat unneeded events SDL_Event event; @@ -611,7 +612,7 @@ while (exit_status == ES_NONE) { /* Calculate the movement-factor */ - double frame_ratio = ((double)(update_time-last_update_time))/((double)FRAME_RATE); + double frame_ratio = frame_rate.get(); if(!frame_timer.check()) { @@ -652,18 +653,7 @@ continue; } - /* Set the time of the last update and the time of the current update */ - last_update_time = update_time; - update_time = Ticks::get(); - - /* Pause till next frame, if the machine running the game is too fast: */ - /* FIXME: Works great for in OpenGl mode, where the CPU doesn't have to do that much. But - the results in SDL mode aren't perfect (thought the 100 FPS are reached), even on an AMD2500+. */ - if(last_update_time >= update_time - 12) - { - SDL_Delay(10); - update_time = Ticks::get(); - } + frame_rate.update(); /* Handle time: */ if (!time_left.check() && currentsector->player->dying == DYING_NOT Index: leveleditor.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/leveleditor.cpp,v retrieving revision 1.145 retrieving revision 1.146 diff -u -d -r1.145 -r1.146 --- leveleditor.cpp 27 Jul 2004 19:31:39 -0000 1.145 +++ leveleditor.cpp 28 Jul 2004 23:06:12 -0000 1.146 @@ -330,7 +330,7 @@ default: if(i >= 1) { - if(load_level_subset(subset_load_menu->item[i+1].text)) + if(load_level_subset(subset_load_menu->item[i+1].text.c_str())) return 1; } break; @@ -348,7 +348,7 @@ { case MNID_CREATESUBSET: LevelSubset::create(subset_new_menu->get_item_by_id(MNID_SUBSETNAME).input); - le_level_subset->load(subset_new_menu->get_item_by_id(MNID_SUBSETNAME).input); + le_level_subset->load(subset_new_menu->get_item_by_id(MNID_SUBSETNAME).input.c_str()); leveleditor_menu->get_item_by_id(MNID_SUBSETSETTINGS).kind = MN_GOTO; goto_level(1); subset_new_menu->get_item_by_id(MNID_SUBSETNAME).change_input(""); @@ -599,7 +599,7 @@ 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((*level_settings_menu->get_item_by_id(MNID_BGIMG).list.second), 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.c_str())); i = true; } @@ -616,17 +616,17 @@ 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), - atoi(level_settings_menu->get_item_by_id(MNID_HEIGHT).input)); - le_level->time_left = atoi(level_settings_menu->get_item_by_id(MNID_TIME).input); - le_level->get_sector("main")->gravity = atof(level_settings_menu->get_item_by_id(MNID_GRAVITY).input); + atoi(level_settings_menu->get_item_by_id(MNID_LENGTH).input.c_str()), + atoi(level_settings_menu->get_item_by_id(MNID_HEIGHT).input.c_str())); + le_level->time_left = atoi(level_settings_menu->get_item_by_id(MNID_TIME).input.c_str()); + le_level->get_sector("main")->gravity = atof(level_settings_menu->get_item_by_id(MNID_GRAVITY).input.c_str()); le_level->get_sector("main")->background->set_gradient(Color( - atoi(level_settings_menu->get_item_by_id(MNID_TopRed).input), - atoi(level_settings_menu->get_item_by_id(MNID_TopGreen).input), - atoi(level_settings_menu->get_item_by_id(MNID_TopBlue).input)), Color( - atoi(level_settings_menu->get_item_by_id(MNID_BottomRed).input), - atoi(level_settings_menu->get_item_by_id(MNID_BottomGreen).input), - atoi(level_settings_menu->get_item_by_id(MNID_BottomBlue).input))); + atoi(level_settings_menu->get_item_by_id(MNID_TopRed).input.c_str()), + atoi(level_settings_menu->get_item_by_id(MNID_TopGreen).input.c_str()), + atoi(level_settings_menu->get_item_by_id(MNID_TopBlue).input.c_str())), Color( + atoi(level_settings_menu->get_item_by_id(MNID_BottomRed).input.c_str()), + atoi(level_settings_menu->get_item_by_id(MNID_BottomGreen).input.c_str()), + atoi(level_settings_menu->get_item_by_id(MNID_BottomBlue).input.c_str()))); } void LevelEditor::save_subset_settings_menu() |