// seg001:0CCD void __pascal far load_intro(int which_imgs,cutscene_ptr_type func,int free_sounds) { short current_star; draw_rect(&screen_rect, 0); if (free_sounds) { free_optional_sounds(); } free_all_chtabs_from(id_chtab_3_princessinstory); load_chtab_from_file(id_chtab_8_princessroom, 950, "PV.DAT", 1<<13); load_chtab_from_file(id_chtab_9_princessbed, 980, "PV.DAT", 1<<14); current_target_surface = offscreen_surface; method_6_blit_img_to_scr(get_image(id_chtab_8_princessroom, 0), 0, 0, 0); method_6_blit_img_to_scr(get_image(id_chtab_9_princessbed, 0), 0, 142, blitters_2_or); // Free the images that are not needed anymore. free_all_chtabs_from(id_chtab_9_princessbed); SDL_FreeSurface(get_image(id_chtab_8_princessroom, 0)); if (NULL != chtab_addrs[id_chtab_8_princessroom]) chtab_addrs[id_chtab_8_princessroom]->images[0] = NULL; load_chtab_from_file(id_chtab_3_princessinstory, 800, "PV.DAT", 1<<9); load_chtab_from_file(id_chtab_4_jaffarinstory_princessincutscenes, 50*which_imgs + 850, "PV.DAT", 1<<10); for (current_star = 0; current_star < N_STARS; ++current_star) { draw_star(current_star, 0); } current_target_surface = onscreen_surface_; while (check_sound_playing()) { idle(); do_paused(); delay_ticks(1); } need_drects = 1; reset_cutscene(); is_cutscene = 1; func(); is_cutscene = 0; free_all_chtabs_from(3); draw_rect(&screen_rect, 0); }
// seg000:22BB void __pascal far free_optsnd_chtab() { free_optional_sounds(); free_all_chtabs_from(id_chtab_3_princessinstory); }