Split set_briefing_filename

This commit is contained in:
Kp 2015-01-18 01:58:31 +00:00
parent e9e69a1a1a
commit 43abfdf431

View file

@ -671,19 +671,24 @@ int load_mission_ham()
}
#endif
#define tex ".tex"
static void set_briefing_filename(d_fname &f, const char *const v, std::size_t d)
{
f.copy_if(v, d);
f.copy_if(d, tex);
if (!PHYSFSX_exists(static_cast<const char *>(f), 1) && !(f.copy_if(++d, "txb"), PHYSFSX_exists(static_cast<const char *>(f), 1))) // check if this file exists ...
f = {};
}
static void set_briefing_filename(d_fname &f, const char *const v)
{
using std::next;
auto &tex = ".tex";
auto a = [](char c) {
return !c || c == '.';
};
auto i = std::find_if(v, next(v, f.size() - sizeof(tex)), a);
std::size_t d = std::distance(v, i);
f.copy_if(v, d);
f.copy_if(d, tex);
if (!PHYSFSX_exists(static_cast<const char *>(f), 1) && !(f.copy_if(++d, "txb"), PHYSFSX_exists(static_cast<const char *>(f), 1))) // check if this file exists ...
f = {};
set_briefing_filename(f, v, d);
}
static void record_briefing(d_fname &f, array<char, PATH_MAX> &buf)
@ -694,6 +699,7 @@ static void record_briefing(d_fname &f, array<char, PATH_MAX> &buf)
else
f = {};
}
#undef tex
//loads the specfied mission from the mission list.
//build_mission_list() must have been called.