summaryrefslogtreecommitdiffstats
path: root/logic/BaseLauncher.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2015-06-16 09:19:55 +0200
committerPetr Mrázek <peterix@gmail.com>2015-06-30 07:16:20 +0200
commit5628d3d379785c9c6f4a595c70392d9b1e9ea4df (patch)
tree586eb775fd1f3014ff4dd36984176530af5e70b3 /logic/BaseLauncher.h
parentf86a39c21c9898c0b5966abb2b4907eb0b5bac1d (diff)
downloadMultiMC-5628d3d379785c9c6f4a595c70392d9b1e9ea4df.tar
MultiMC-5628d3d379785c9c6f4a595c70392d9b1e9ea4df.tar.gz
MultiMC-5628d3d379785c9c6f4a595c70392d9b1e9ea4df.tar.lz
MultiMC-5628d3d379785c9c6f4a595c70392d9b1e9ea4df.tar.xz
MultiMC-5628d3d379785c9c6f4a595c70392d9b1e9ea4df.zip
SCRATCH squash MinecraftLauncher into BaseLauncher
needs to be split differently needs to be squashed together with the logic from MainWindow
Diffstat (limited to 'logic/BaseLauncher.h')
-rw-r--r--logic/BaseLauncher.h41
1 files changed, 35 insertions, 6 deletions
diff --git a/logic/BaseLauncher.h b/logic/BaseLauncher.h
index f47d3351..59e1fdbb 100644
--- a/logic/BaseLauncher.h
+++ b/logic/BaseLauncher.h
@@ -20,6 +20,8 @@
#include "BaseInstance.h"
#include "MessageLevel.h"
#include "LoggedProcess.h"
+/* HACK: MINECRAFT: split! */
+#include "minecraft/MinecraftInstance.h"
class BaseLauncher: public QObject
{
@@ -29,6 +31,7 @@ protected:
void init();
public: /* methods */
+ static BaseLauncher *create(MinecraftInstancePtr inst);
virtual ~BaseLauncher() {};
InstancePtr instance()
@@ -51,17 +54,34 @@ public: /* methods */
/**
* @brief prepare the process for launch (for multi-stage launch)
*/
- virtual void arm() = 0;
+ virtual void arm();
/**
* @brief launch the armed instance
*/
- virtual void launch() = 0;
+ virtual void launch();
/**
* @brief abort launch
*/
- virtual void abort() = 0;
+ virtual void abort();
+
+public: /* HACK: MINECRAFT: split! */
+ void setLaunchScript(QString script)
+ {
+ launchScript = script;
+ }
+
+ void setNativeFolder(QString natives)
+ {
+ m_nativeFolder = natives;
+ }
+
+ inline void setLogin(AuthSessionPtr session)
+ {
+ m_session = session;
+ }
+
protected: /* methods */
void preLaunch();
@@ -71,9 +91,9 @@ protected: /* methods */
void printHeader();
- virtual QMap<QString, QString> getVariables() const = 0;
- virtual QString censorPrivateInfo(QString in) = 0;
- virtual MessageLevel::Enum guessLevel(const QString &message, MessageLevel::Enum defaultLevel) = 0;
+ virtual QMap<QString, QString> getVariables() const;
+ virtual QString censorPrivateInfo(QString in);
+ virtual MessageLevel::Enum guessLevel(const QString &message, MessageLevel::Enum defaultLevel);
signals:
/**
@@ -122,4 +142,13 @@ protected:
bool killed = false;
QString m_header;
+
+protected: /* HACK: MINECRAFT: split! */
+ AuthSessionPtr m_session;
+ QString launchScript;
+ QString m_nativeFolder;
+
+protected: /* HACK: MINECRAFT: split! */
+ bool checkJava(QString path);
+ QStringList javaArguments() const;
};