/** * Parse the sounds.tbl file, and load the specified sounds. */ void gamesnd_parse_soundstbl() { parse_sound_table("sounds.tbl"); parse_modular_table("*-snd.tbm", parse_sound_table); // if we are missing any species then report if (!missingFlybySounds.empty()) { SCP_string errorString; for (size_t i = 0; i < missingFlybySounds.size(); i++) { errorString.append(missingFlybySounds[i].species_name); errorString.append("\n"); } Error(LOCATION, "The following species are missing flyby sounds in sounds.tbl:\n%s", errorString.c_str()); } missingFlybySounds.clear(); }
bool pilotfile_convert::plr_convert(const char *fname, bool inferno) { Assert( fname != NULL ); SCP_string filename; bool rval = true; if (plr == NULL) { plr = new(std::nothrow) plr_data; } if (plr == NULL) { return false; } filename.reserve(200); cf_create_default_path_string(filename, CF_TYPE_SINGLE_PLAYERS, (inferno) ? const_cast<char*>("inferno") : NULL); if (inferno) { filename.append(DIR_SEPARATOR_STR); } filename.append(fname); filename.append(".pl2"); mprintf((" PL2 => Converting '%s'...\n", filename.c_str())); cfp = cfopen(const_cast<char*>(filename.c_str()), "rb", CFILE_NORMAL); if ( !cfp ) { mprintf((" PL2 => Unable to open for import!\n", fname)); return false; } try { plr_import(); } catch (const char *err) { mprintf(( " PL2 => Import ERROR: %s\n", err)); rval = false; } cfclose(cfp); cfp = NULL; if ( !rval ) { return false; } filename.assign(fname); filename.append(".plr"); cfp = cfopen(const_cast<char*>(filename.c_str()), "wb", CFILE_NORMAL, CF_TYPE_PLAYERS); if ( !cfp ) { mprintf((" PLR => Unable to open for export!\n", fname)); return false; } try { plr_export(); } catch (const char *err) { mprintf((" PLR => Export ERROR: %s\n", err)); rval = false; } cfclose(cfp); cfp = NULL; if (rval) { mprintf((" PLR => Conversion complete!\n")); } return rval; }
bool pilotfile_convert::csg_convert(const char *fname, bool inferno) { Assert( fname != NULL ); Assert( plr != NULL); Assert( csg == NULL ); SCP_string filename; bool rval = true; csg = new(std::nothrow) csg_data; if (csg == NULL) { return false; } filename.reserve(200); cf_create_default_path_string(filename, CF_TYPE_SINGLE_PLAYERS, (inferno) ? "inferno" : nullptr, false, CF_LOCATION_ROOT_USER | CF_LOCATION_ROOT_GAME | CF_LOCATION_TYPE_ROOT); if (inferno) { filename.append(DIR_SEPARATOR_STR); } filename.append(fname); filename.append(".cs2"); mprintf((" CS2 => Converting '%s'...\n", filename.c_str())); cfp = cfopen(filename.c_str(), "rb", CFILE_NORMAL); if ( !cfp ) { mprintf((" CS2 => Unable to open '%s' for import!\n", fname)); delete csg; csg = NULL; return false; } try { csg_import(inferno); } catch (const std::exception& err) { mprintf((" CS2 => Import ERROR: %s\n", err.what())); rval = false; } cfclose(cfp); cfp = NULL; if ( !rval ) { delete csg; csg = NULL; return false; } filename.assign(fname); filename.append(".csg"); cfp = cfopen(filename.c_str(), "wb", CFILE_NORMAL, CF_TYPE_PLAYERS, false, CF_LOCATION_ROOT_USER | CF_LOCATION_ROOT_GAME | CF_LOCATION_TYPE_ROOT); if ( !cfp ) { mprintf((" CSG => Unable to open '%s' for export!\n", fname)); return false; } try { csg_export(); } catch (const char *err) { mprintf((" CSG => Export ERROR: %s\n", err)); rval = false; } cfclose(cfp); cfp = NULL; delete csg; csg = NULL; if (rval) { mprintf((" CSG => Conversion complete!\n")); } return rval; }