//load a level off disk. level numbers start at 1. Secret levels are -1,-2,-3 void LoadLevel(int level_num,int page_in_textures) { char *level_name; player save_player; save_player = Players[Player_num]; Assert(level_num <= Last_level && level_num >= Last_secret_level && level_num != 0); level_name = get_level_file(level_num); if (!load_level(level_name)) Current_level_num=level_num; gr_use_palette_table( "palette.256" ); show_boxed_message(TXT_LOADING, 0); #ifdef RELEASE timer_delay(F1_0); #endif #ifdef NETWORK my_segments_checksum = netmisc_calc_checksum(); #endif load_endlevel_data(level_num); load_custom_data(level_name); #ifdef NETWORK reset_network_objects(); #endif Players[Player_num] = save_player; set_sound_sources(); songs_play_level_song( Current_level_num, 0 ); gr_palette_load(gr_palette); //actually load the palette if ( page_in_textures ) piggy_load_level_data(); }
//load a level off disk. level numbers start at 1. Secret levels are -1,-2,-3 void LoadLevel(int level_num) { char *level_name; player save_player; save_player = Players[Player_num]; Assert(level_num <= Last_level && level_num >= Last_secret_level && level_num != 0); level_name = get_level_file(level_num); if (!load_level(level_name)) Current_level_num=level_num; gr_use_palette_table( "palette.256" ); show_boxed_message(TXT_LOADING, 0); timer_delay2(1); #ifdef NETWORK my_segments_checksum = netmisc_calc_checksum(Segments, sizeof(segment)*(Highest_segment_index+1)); #endif load_endlevel_data(level_num); #ifdef NETWORK reset_network_objects(); #endif Players[Player_num] = save_player; set_sound_sources(); songs_play_level_song( Current_level_num ); }
//load a level off disk. level numbers start at 1. Secret levels are -1,-2,-3 void LoadLevel(int level_num) { char *level_name; player save_player; #ifdef REQUIRE_CD { FILE *fp; int i; char fname[128]; strcpy( fname, destsat_cdpath ); #ifdef DEST_SAT strcat( fname, "saturn.hog" ); #else strcat( fname, "descent.hog" ); #endif do { descent_critical_error = 0; fp = fopen( fname, "rb" ); if ( fp==NULL || descent_critical_error ) { if ( fp ) { fclose(fp); fp = NULL; } gr_set_current_canvas(NULL); gr_clear_canvas( gr_find_closest_color_current(0,0,0) ); gr_palette_load( gr_palette ); i = nm_messagebox( "Insert CD", 2, "Retry", "Exit", "Please put the\nDescent CD\nin your CD-ROM drive!\n" ); if ( i==1 ) exit(0); } } while ( fp == NULL ); fclose( fp ); } #endif save_player = Players[Player_num]; Assert(level_num <= Last_level && level_num >= Last_secret_level && level_num != 0); #ifdef SHAREWARE { static char t[13]; sprintf(t, "LEVEL%02d.SDL", level_num); level_name = t; } #else if (level_num<0) //secret level level_name = Secret_level_names[-level_num-1]; else //normal level level_name = Level_names[level_num-1]; #endif show_boxed_message(TXT_LOADING); if (!load_level(level_name)) Current_level_num=level_num; #ifdef NETWORK my_segments_checksum = netmisc_calc_checksum(Segments, sizeof(segment)*(Highest_segment_index+1)); #endif load_endlevel_data(level_num); clear_boxed_message(); #ifdef NETWORK reset_network_objects(); #endif Players[Player_num] = save_player; set_sound_sources(); songs_play_level_song( Current_level_num ); }