From 7915f210199ec001d1f268964b988e7e270bd9b9 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Sun, 22 Dec 2013 22:54:45 -0500 Subject: [PATCH] plUruLauncher PatchOnly Shhh! I'm sneaking this "feature" in for Gehn 18. The idea is that we should no longer require MOULa installs for the installer to work. So, after we've extracted the files but before we quit the installer, we fire up `UruLauncher.exe -Repair -ServerIni=repair.ini -PatchOnly`. This will download all the standard MOULa stuff, exit, and the install finishes. Whew! --- Sources/Plasma/Apps/plUruLauncher/plClientLauncher.cpp | 10 ++++++++-- Sources/Plasma/Apps/plUruLauncher/plClientLauncher.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Sources/Plasma/Apps/plUruLauncher/plClientLauncher.cpp b/Sources/Plasma/Apps/plUruLauncher/plClientLauncher.cpp index 1ca1dc1a..9a077c81 100644 --- a/Sources/Plasma/Apps/plUruLauncher/plClientLauncher.cpp +++ b/Sources/Plasma/Apps/plUruLauncher/plClientLauncher.cpp @@ -232,6 +232,8 @@ plString plClientLauncher::GetAppArgs() const // optional args if (hsCheckBits(fFlags, kClientImage)) ss << " -Image"; + if (hsCheckBits(fFlags, kPatchOnly)) + ss << " -PatchOnly"; return ss.GetString(); } @@ -427,12 +429,13 @@ void plClientLauncher::ParseArguments() if (cmdParser.GetBool(arg)) \ fFlags |= flag; - enum { kArgServerIni, kArgNoSelfPatch, kArgImage, kArgRepairGame }; + enum { kArgServerIni, kArgNoSelfPatch, kArgImage, kArgRepairGame, kArgPatchOnly }; const CmdArgDef cmdLineArgs[] = { { kCmdArgFlagged | kCmdTypeString, L"ServerIni", kArgServerIni }, { kCmdArgFlagged | kCmdTypeBool, L"NoSelfPatch", kArgNoSelfPatch }, { kCmdArgFlagged | kCmdTypeBool, L"Image", kArgImage }, { kCmdArgFlagged | kCmdTypeBool, L"Repair", kArgRepairGame }, + { kCmdArgFlagged | kCmdTypeBool, L"PatchOnly", kArgPatchOnly } }; CCmdParser cmdParser(cmdLineArgs, arrsize(cmdLineArgs)); @@ -444,9 +447,12 @@ void plClientLauncher::ParseArguments() APPLY_FLAG(kArgNoSelfPatch, kHaveSelfPatched); APPLY_FLAG(kArgImage, kClientImage); APPLY_FLAG(kArgRepairGame, kRepairGame); + APPLY_FLAG(kArgPatchOnly, kPatchOnly); // last chance setup - if (hsCheckBits(fFlags, kRepairGame)) + if (hsCheckBits(fFlags, kPatchOnly)) + fClientExecutable = ""; + else if (hsCheckBits(fFlags, kRepairGame)) fClientExecutable = plManifest::PatcherExecutable(); #undef APPLY_FLAG diff --git a/Sources/Plasma/Apps/plUruLauncher/plClientLauncher.h b/Sources/Plasma/Apps/plUruLauncher/plClientLauncher.h index d7ddc856..c67b9816 100644 --- a/Sources/Plasma/Apps/plUruLauncher/plClientLauncher.h +++ b/Sources/Plasma/Apps/plUruLauncher/plClientLauncher.h @@ -64,6 +64,7 @@ private: kHaveSelfPatched = 1<<0, kClientImage = 1<<1, kGameDataOnly = (1<<2), + kPatchOnly = 1<<3, kRepairGame = kHaveSelfPatched | kClientImage | kGameDataOnly, };