Add common load method for S4 importer

This commit is contained in:
Ted John 2017-01-30 22:31:43 +00:00
parent 04a2734593
commit f30a3b315c
3 changed files with 20 additions and 10 deletions

View File

@ -138,6 +138,23 @@ public:
_s4Path = path;
}
void Load(const utf8 * path) override
{
const utf8 * extension = Path::GetExtension(path);
if (String::Equals(extension, ".sc4"))
{
LoadScenario(path);
}
else if (String::Equals(extension, ".sv4"))
{
LoadSavedGame(path);
}
else
{
throw Exception("Invalid RCT1 park extension.");
}
}
void Import() override
{
Initialise();

View File

@ -28,6 +28,7 @@ public:
virtual ~IS4Importer() { }
virtual void LoadSavedGame(const utf8 * path) abstract;
virtual void LoadScenario(const utf8 * path) abstract;
virtual void Load(const utf8 * path) abstract;
virtual void Import() abstract;
virtual bool GetDetails(scenario_index_entry * dst) abstract;
};

View File

@ -361,16 +361,8 @@ private:
{
bool isScenario = String::Equals(extension, ".sc4", true);
IS4Importer * s4Importer = CreateS4Importer();
if (isScenario)
{
s4Importer->LoadScenario(path);
s4Importer->Import();
}
else
{
s4Importer->LoadSavedGame(path);
s4Importer->Import();
}
s4Importer->Load(path);
s4Importer->Import();
PrepareParkForPlayback(isScenario);
success = true;
}