From 24b20b718f444691b2f0db3a5399feff60efdf6b Mon Sep 17 00:00:00 2001 From: Darryl Pogue Date: Fri, 5 Jun 2015 22:00:45 -0700 Subject: [PATCH] Updated uses of CCmdParser to plCmdParser. --- Sources/Plasma/Apps/plClient/winmain.cpp | 23 ++++++++++----- .../Apps/plUruLauncher/plClientLauncher.cpp | 29 ++++++++++++------- 2 files changed, 33 insertions(+), 19 deletions(-) diff --git a/Sources/Plasma/Apps/plClient/winmain.cpp b/Sources/Plasma/Apps/plClient/winmain.cpp index 0ec2804c..d5d967d8 100644 --- a/Sources/Plasma/Apps/plClient/winmain.cpp +++ b/Sources/Plasma/Apps/plClient/winmain.cpp @@ -66,6 +66,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "plProduct.h" #include "plNetGameLib/plNetGameLib.h" #include "plPhysX/plSimulationMgr.h" +#include "pnUtils/plCmdParser.h" #include "res/resource.h" @@ -96,11 +97,11 @@ enum kArgSkipPreload }; -static const CmdArgDef s_cmdLineArgs[] = { - { kCmdArgFlagged | kCmdTypeBool, L"SkipLoginDialog", kArgSkipLoginDialog }, - { kCmdArgFlagged | kCmdTypeString, L"ServerIni", kArgServerIni }, - { kCmdArgFlagged | kCmdTypeBool, L"LocalData", kArgLocalData }, - { kCmdArgFlagged | kCmdTypeBool, L"SkipPreload", kArgSkipPreload }, +static const plCmdArgDef s_cmdLineArgs[] = { + { kCmdArgFlagged | kCmdTypeBool, "SkipLoginDialog", kArgSkipLoginDialog }, + { kCmdArgFlagged | kCmdTypeString, "ServerIni", kArgServerIni }, + { kCmdArgFlagged | kCmdTypeBool, "LocalData", kArgLocalData }, + { kCmdArgFlagged | kCmdTypeBool, "SkipPreload", kArgSkipPreload }, }; /// Made globals now, so we can set them to zero if we take the border and @@ -1132,8 +1133,14 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nC // Set global handle gHInst = hInst; - CCmdParser cmdParser(s_cmdLineArgs, arrsize(s_cmdLineArgs)); - cmdParser.Parse(); + std::vector args; + args.reserve(__argc); + for (size_t i = 0; i < __argc; i++) { + args.push_back(plString::FromWchar(__wargv[i])); + } + + plCmdParser cmdParser(s_cmdLineArgs, arrsize(s_cmdLineArgs)); + cmdParser.Parse(args); bool doIntroDialogs = true; #ifndef PLASMA_EXTERNAL_RELEASE @@ -1150,7 +1157,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nC plFileName serverIni = "server.ini"; if (cmdParser.IsSpecified(kArgServerIni)) - serverIni = plString::FromWchar(cmdParser.GetString(kArgServerIni)); + serverIni = cmdParser.GetString(kArgServerIni); // check to see if we were launched from the patcher bool eventExists = false; diff --git a/Sources/Plasma/Apps/plUruLauncher/plClientLauncher.cpp b/Sources/Plasma/Apps/plUruLauncher/plClientLauncher.cpp index c7bb7346..a9a53063 100644 --- a/Sources/Plasma/Apps/plUruLauncher/plClientLauncher.cpp +++ b/Sources/Plasma/Apps/plUruLauncher/plClientLauncher.cpp @@ -47,7 +47,8 @@ Mead, WA 99021 #include "hsThread.h" #include "hsTimer.h" -#include "pnUtils/pnUtils.h" // for CCmdParser +#include "pnUtils/pnUtils.h" +#include "pnUtils/plCmdParser.h" #include "pnAsyncCore/pnAsyncCore.h" #include "plNetGameLib/plNetGameLib.h" #include "plStatusLog/plStatusLog.h" @@ -432,21 +433,27 @@ void plClientLauncher::ParseArguments() enum { kArgServerIni, kArgNoSelfPatch, kArgImage, kArgRepairGame, kArgPatchOnly, kArgSkipLoginDialog }; - 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 }, - { kCmdArgFlagged | kCmdTypeBool, L"SkipLoginDialog", kArgSkipLoginDialog } + const plCmdArgDef cmdLineArgs[] = { + { kCmdArgFlagged | kCmdTypeString, "ServerIni", kArgServerIni }, + { kCmdArgFlagged | kCmdTypeBool, "NoSelfPatch", kArgNoSelfPatch }, + { kCmdArgFlagged | kCmdTypeBool, "Image", kArgImage }, + { kCmdArgFlagged | kCmdTypeBool, "Repair", kArgRepairGame }, + { kCmdArgFlagged | kCmdTypeBool, "PatchOnly", kArgPatchOnly }, + { kCmdArgFlagged | kCmdTypeBool, "SkipLoginDialog", kArgSkipLoginDialog } }; - CCmdParser cmdParser(cmdLineArgs, arrsize(cmdLineArgs)); - cmdParser.Parse(); + std::vector args; + args.reserve(__argc); + for (size_t i = 0; i < __argc; i++) { + args.push_back(plString::FromWchar(__wargv[i])); + } + + plCmdParser cmdParser(cmdLineArgs, arrsize(cmdLineArgs)); + cmdParser.Parse(args); // cache 'em if (cmdParser.IsSpecified(kArgServerIni)) - fServerIni = plString::FromWchar(cmdParser.GetString(kArgServerIni)); + fServerIni = cmdParser.GetString(kArgServerIni); APPLY_FLAG(kArgNoSelfPatch, kHaveSelfPatched); APPLY_FLAG(kArgImage, kClientImage); APPLY_FLAG(kArgRepairGame, kRepairGame);