-void
-GameSession::savegame(int slot)
-{
- 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);
- fwrite(&tux,sizeof(Player),1,fi);
- timer_fwrite(&tux.invincible_timer,fi);
- timer_fwrite(&tux.skidding_timer,fi);
- timer_fwrite(&tux.safe_timer,fi);
- timer_fwrite(&tux.frame_timer,fi);
- timer_fwrite(&time_left,fi);
- ui = st_get_ticks();
- fwrite(&ui,sizeof(int),1,fi);
- }
- fclose(fi);
-
-}
-
-void
-GameSession::loadgame(int slot)
-{
- 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);
- fread(&tux, sizeof(Player), 1, fi);
- timer_fread(&tux.invincible_timer,fi);
- timer_fread(&tux.skidding_timer,fi);
- timer_fread(&tux.safe_timer,fi);
- timer_fread(&tux.frame_timer,fi);
- timer_fread(&time_left,fi);
- fread(&ui,sizeof(int),1,fi);
- fclose(fi);
- }
-
-}
-