time_left.init(true);
start_timers();
-
- if(st_gl_mode == ST_GL_LOAD_GAME)
- loadgame(levelnb);
}
GameSession::~GameSession()
void
GameSession::levelintro(void)
{
- Player& tux = *world->get_tux();
-
char str[60];
/* Level Intro: */
clearscreen(0, 0, 0);
sprintf(str, "LEVEL %d", levelnb);
- text_drawf(&blue_text, str, 0, 200, A_HMIDDLE, A_TOP, 1);
+ blue_text->drawf(str, 0, 200, A_HMIDDLE, A_TOP, 1);
sprintf(str, "%s", world->get_level()->name.c_str());
- text_drawf(&gold_text, str, 0, 224, A_HMIDDLE, A_TOP, 1);
+ gold_text->drawf(str, 0, 224, A_HMIDDLE, A_TOP, 1);
sprintf(str, "by %s", world->get_level()->author.c_str());
- text_drawf(&gold_text, str, 0, 256, A_HMIDDLE, A_TOP, 1);
+ red_text->drawf(str, 0, 256, A_HMIDDLE, A_TOP, 1);
- sprintf(str, "TUX x %d", tux.lives);
- text_drawf(&white_text, str, 0, 288, A_HMIDDLE, A_TOP, 1);
+ sprintf(str, "TUX x %d", player_status.lives);
+ white_text->drawf(str, 0, 288, A_HMIDDLE, A_TOP, 1);
flipscreen();
break;
case SDLK_l:
if(debug_mode)
- --tux.lives;
+ --player_status.lives;
break;
case SDLK_s:
if(debug_mode)
/* No more lives!? */
- if (tux.lives < 0)
+ if (player_status.lives < 0)
{
if(st_gl_mode != ST_GL_TEST)
drawendscreen();
fillrect(i % 2 ? (pause_menu_frame * i)%screen->w : -((pause_menu_frame * i)%screen->w) ,(i*20+pause_menu_frame)%screen->h,screen->w,10,20,20,20, rand() % 20 + 1);
}
fillrect(0,0,screen->w,screen->h,rand() % 50, rand() % 50, rand() % 50, 128);
- text_drawf(&blue_text, "PAUSE - Press 'P' To Play", 0, 230, A_HMIDDLE, A_TOP, 1);
+ blue_text->drawf("PAUSE - Press 'P' To Play", 0, 230, A_HMIDDLE, A_TOP, 1);
}
if(show_menu)
{
process_options_menu();
}
- else if(current_menu == save_game_menu )
- {
- process_save_game_menu();
- }
else if(current_menu == load_game_menu )
{
process_load_game_menu();
void
GameSession::drawstatus()
{
- Player& tux = *world->get_tux();
char str[60];
sprintf(str, "%d", player_status.score);
- text_draw(&white_text, "SCORE", 0, 0, 1);
- text_draw(&gold_text, str, 96, 0, 1);
+ white_text->draw("SCORE", 0, 0, 1);
+ gold_text->draw(str, 96, 0, 1);
if(st_gl_mode != ST_GL_TEST)
{
sprintf(str, "%d", hs_score);
- text_draw(&white_text, "HIGH", 0, 20, 1);
- text_draw(&gold_text, str, 96, 20, 1);
+ white_text->draw("HIGH", 0, 20, 1);
+ gold_text->draw(str, 96, 20, 1);
}
else
{
- text_draw(&white_text,"Press ESC To Return",0,20,1);
+ white_text->draw("Press ESC To Return",0,20,1);
}
if (time_left.get_left() > TIME_WARNING || (global_frame_counter % 10) < 5)
{
sprintf(str, "%d", time_left.get_left() / 1000 );
- text_draw(&white_text, "TIME", 224, 0, 1);
- text_draw(&gold_text, str, 304, 0, 1);
+ white_text->draw("TIME", 224, 0, 1);
+ gold_text->draw(str, 304, 0, 1);
}
sprintf(str, "%d", player_status.distros);
- text_draw(&white_text, "DISTROS", screen->h, 0, 1);
- text_draw(&gold_text, str, 608, 0, 1);
+ white_text->draw("DISTROS", screen->h, 0, 1);
+ gold_text->draw(str, 608, 0, 1);
- text_draw(&white_text, "LIVES", screen->h, 20, 1);
+ white_text->draw("LIVES", screen->h, 20, 1);
if(show_fps)
{
sprintf(str, "%2.1f", fps_fps);
- text_draw(&white_text, "FPS", screen->h, 40, 1);
- text_draw(&gold_text, str, screen->h + 60, 40, 1);
+ white_text->draw("FPS", screen->h, 40, 1);
+ gold_text->draw(str, screen->h + 60, 40, 1);
}
- for(int i= 0; i < tux.lives; ++i)
+ for(int i= 0; i < player_status.lives; ++i)
{
- texture_draw(&tux_life,565+(18*i),20);
+ tux_life->draw(565+(18*i),20);
}
}
clearscreen(0, 0, 0);
- text_drawf(&blue_text, "GAMEOVER", 0, 200, A_HMIDDLE, A_TOP, 1);
+ blue_text->drawf("GAMEOVER", 0, 200, A_HMIDDLE, A_TOP, 1);
sprintf(str, "SCORE: %d", player_status.score);
- text_drawf(&gold_text, str, 0, 224, A_HMIDDLE, A_TOP, 1);
+ gold_text->drawf(str, 0, 224, A_HMIDDLE, A_TOP, 1);
- sprintf(str, "DISTROS: %d", player_status.distros);
- text_drawf(&gold_text, str, 0, 256, A_HMIDDLE, A_TOP, 1);
+ sprintf(str, "COINS: %d", player_status.distros);
+ gold_text->drawf(str, 0, 256, A_HMIDDLE, A_TOP, 1);
flipscreen();
clearscreen(0, 0, 0);
- text_drawf(&blue_text, "Result:", 0, 200, A_HMIDDLE, A_TOP, 1);
+ blue_text->drawf("Result:", 0, 200, A_HMIDDLE, A_TOP, 1);
sprintf(str, "SCORE: %d", player_status.score);
- text_drawf(&gold_text, str, 0, 224, A_HMIDDLE, A_TOP, 1);
+ gold_text->drawf(str, 0, 224, A_HMIDDLE, A_TOP, 1);
sprintf(str, "DISTROS: %d", player_status.distros);
- text_drawf(&gold_text, str, 0, 256, A_HMIDDLE, A_TOP, 1);
+ gold_text->drawf(str, 0, 256, A_HMIDDLE, A_TOP, 1);
flipscreen();
wait_for_event(event,2000,5000,true);
}
-void
-GameSession::savegame(int)
-{
-#if 0
- char savefile[1024];
- FILE* fi;
- unsigned int ui;
-
- sprintf(savefile,"%s/slot%d.save",st_save_dir,slot);
-
- fi = fopen(savefile, "wb");
-
- if (fi == NULL)
- {
- fprintf(stderr, "Warning: I could not open the slot file ");
- }
- else
- {
- fputs(level_subset, fi);
- fputs("\n", fi);
- fwrite(&level,sizeof(int),1,fi);
- fwrite(&score,sizeof(int),1,fi);
- fwrite(&distros,sizeof(int),1,fi);
- fwrite(&scroll_x,sizeof(float),1,fi);
- //FIXME:fwrite(&tux,sizeof(Player),1,fi);
- //FIXME:timer_fwrite(&tux.invincible_timer,fi);
- //FIXME:timer_fwrite(&tux.skidding_timer,fi);
- //FIXME:timer_fwrite(&tux.safe_timer,fi);
- //FIXME:timer_fwrite(&tux.frame_timer,fi);
- timer_fwrite(&time_left,fi);
- ui = st_get_ticks();
- fwrite(&ui,sizeof(int),1,fi);
- }
- fclose(fi);
-#endif
-}
-
-void
-GameSession::loadgame(int)
-{
-#if 0
- char savefile[1024];
- char str[100];
- FILE* fi;
- unsigned int ui;
-
- sprintf(savefile,"%s/slot%d.save",st_save_dir,slot);
-
- fi = fopen(savefile, "rb");
-
- if (fi == NULL)
- {
- fprintf(stderr, "Warning: I could not open the slot file ");
-
- }
- else
- {
- fgets(str, 100, fi);
- strcpy(level_subset, str);
- level_subset[strlen(level_subset)-1] = '\0';
- fread(&level,sizeof(int),1,fi);
-
- world->set_defaults();
- world->get_level()->cleanup();
- world->arrays_free();
- world->get_level()->free_gfx();
- world->get_level()->free_song();
-
- if(world->get_level()->load(level_subset,level) != 0)
- exit(1);
-
- world->activate_bad_guys();
- world->activate_particle_systems();
- world->get_level()->load_gfx();
- world->get_level()->load_song();
-
- levelintro();
- update_time = st_get_ticks();
-
- fread(&score, sizeof(int),1,fi);
- fread(&distros, sizeof(int),1,fi);
- fread(&scroll_x,sizeof(float),1,fi);
- //FIXME:fread(&tux, sizeof(Player), 1, fi);
- //FIXME:timer_fread(&tux.invincible_timer,fi);
- //FIXME:timer_fread(&tux.skidding_timer,fi);
- //FIXME:timer_fread(&tux.safe_timer,fi);
- //FIXME:timer_fread(&tux.frame_timer,fi);
- timer_fread(&time_left,fi);
- fread(&ui,sizeof(int),1,fi);
- fclose(fi);
- }
-#endif
-}
-
std::string slotinfo(int slot)
{
FILE* fi;