From f3b6eeeac4e1606a288c7f12fec271fbb7f120f6 Mon Sep 17 00:00:00 2001 From: Andrew Date: Wed, 20 Feb 2013 19:45:00 -0600 Subject: Got instance loading working. --- plugins/stdinstance/stdinstancetype.cpp | 28 ++++++++++++++++++++++++++-- plugins/stdinstance/stdinstancetype.h | 4 ++-- 2 files changed, 28 insertions(+), 4 deletions(-) (limited to 'plugins/stdinstance') diff --git a/plugins/stdinstance/stdinstancetype.cpp b/plugins/stdinstance/stdinstancetype.cpp index 9b7aa994..5a3a6649 100644 --- a/plugins/stdinstance/stdinstancetype.cpp +++ b/plugins/stdinstance/stdinstancetype.cpp @@ -15,20 +15,44 @@ #include "stdinstancetype.h" +#include +#include + +#include "stdinstance.h" + StdInstanceType::StdInstanceType(QObject *parent) : QObject(parent) { } -InstanceLoader::InstTypeError StdInstanceType::createInstance(Instance *inst, +InstanceLoader::InstTypeError StdInstanceType::createInstance(Instance *&inst, const QString &instDir) const { + QFileInfo rootDir(instDir); + + if (!rootDir.exists() && !QDir().mkdir(rootDir.path())) + { + return InstanceLoader::CantCreateDir; + } + + StdInstance *stdInst = new StdInstance(instDir); + + // TODO: Verify that the instance is valid. + + inst = stdInst; + return InstanceLoader::NoError; } -InstanceLoader::InstTypeError StdInstanceType::loadInstance(Instance *inst, +InstanceLoader::InstTypeError StdInstanceType::loadInstance(Instance *&inst, const QString &instDir) const { + StdInstance *stdInst = new StdInstance(instDir); + + // TODO: Verify that the instance is valid. + + inst = stdInst; + return InstanceLoader::NoError; } diff --git a/plugins/stdinstance/stdinstancetype.h b/plugins/stdinstance/stdinstancetype.h index 4f659ba7..b8382a97 100644 --- a/plugins/stdinstance/stdinstancetype.h +++ b/plugins/stdinstance/stdinstancetype.h @@ -34,9 +34,9 @@ public: virtual QString description() const { return "A standard Minecraft instance."; } - virtual InstanceLoader::InstTypeError createInstance(Instance *inst, const QString &instDir) const; + virtual InstanceLoader::InstTypeError createInstance(Instance *&inst, const QString &instDir) const; - virtual InstanceLoader::InstTypeError loadInstance(Instance *inst, const QString &instDir) const; + virtual InstanceLoader::InstTypeError loadInstance(Instance *&inst, const QString &instDir) const; }; #endif // STDINSTANCETYPE_H -- cgit v1.2.3