diff --git a/Novetus/Novetus.Bootstrapper/Novetus.Bootstrapper.csproj b/Novetus/Novetus.Bootstrapper/Novetus.Bootstrapper.csproj
index c05a793..8272644 100644
--- a/Novetus/Novetus.Bootstrapper/Novetus.Bootstrapper.csproj
+++ b/Novetus/Novetus.Bootstrapper/Novetus.Bootstrapper.csproj
@@ -9,6 +9,7 @@
Novetus.Bootstrapper
NovetusBootstrapper
v4.5.1
+ 8.0
512
false
diff --git a/Novetus/NovetusCore/Classes/VCPPRedistInstallationDetector.cs b/Novetus/NovetusCore/Classes/VCPPRedistInstallationDetector.cs
new file mode 100644
index 0000000..168f571
--- /dev/null
+++ b/Novetus/NovetusCore/Classes/VCPPRedistInstallationDetector.cs
@@ -0,0 +1,140 @@
+using Microsoft.Win32;
+using System.Collections.Generic;
+using System.ComponentModel;
+
+// Original code made by Matt, originally intended for Sodikm 1.2.
+// Slight modifications and cleanup for Novetus by Bitl.
+namespace Novetus.Core
+{
+ ///
+ /// VC++ redists to check
+ ///
+ public enum VCPPRedist
+ {
+ ///
+ /// Don't check redist
+ ///
+ None,
+
+ ///
+ /// VC++ 2005 redist
+ ///
+ [Description("Visual C++ 2005 SP1 Redistributables")]
+ VCPP2005,
+
+ ///
+ /// VC++ 2008 redist
+ ///
+ [Description("Visual C++ 2008 Redistributables")]
+ VCPP2008,
+
+ ///
+ /// VC++ 2012 redist
+ ///
+ [Description("Visual C++ 2012 Redistributables")]
+ VCPP2012
+ }
+
+ public class VCPPRedistInstallationDetector
+ {
+ ///
+ /// Which key in "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\"
+ ///
+ private enum RedistKeyLocation
+ {
+ ///
+ /// VC++2010 and below
+ ///
+ Products,
+
+ ///
+ /// VC++2012 and above
+ ///
+ Dependencies
+ }
+
+ ///
+ /// Information about where the redist is
+ ///
+ private struct RedistInformation
+ {
+ ///
+ /// Key location
+ ///
+ public RedistKeyLocation Location { get; }
+
+ ///
+ /// Possible keys
+ ///
+ public string[] Keys { get; }
+
+ public RedistInformation(RedistKeyLocation location, string[] keys)
+ {
+ Location = location;
+ Keys = keys;
+ }
+ }
+
+ ///
+ /// VC++ redist enum to redist infos.
+ /// Value is a list because VC++2012 has possible two redist keys for some reason.
+ /// Installer keys for VC redists can be found at https://stackoverflow.com/a/34209692.
+ ///
+ private static Dictionary _VCRedistToRedistKeysMap = new Dictionary()
+ {
+ [VCPPRedist.VCPP2005] = new RedistInformation(RedistKeyLocation.Products, new[] { "c1c4f01781cc94c4c8fb1542c0981a2a" }),
+ [VCPPRedist.VCPP2008] = new RedistInformation(RedistKeyLocation.Products, new[] { "6E815EB96CCE9A53884E7857C57002F0" }),
+ [VCPPRedist.VCPP2012] = new RedistInformation(RedistKeyLocation.Dependencies, new[] { "{33d1fd90-4274-48a1-9bc1-97e33d9c2d6f}", "{95716cce-fc71-413f-8ad5-56c2892d4b3a}" })
+ };
+
+ ///
+ /// Cached installation results.
+ ///
+ private static Dictionary _VCRedistResults = new Dictionary()
+ {
+ [VCPPRedist.None] = true
+ };
+
+ ///
+ /// Checks if redist exists.
+ ///
+ /// Redist information
+ /// Exists
+ private static bool CheckIfInstallerKeyExists(RedistInformation information)
+ {
+ string path = information.Location.ToString();
+
+ foreach (string key in information.Keys)
+ {
+ using RegistryKey? redist = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Classes\Installer\" + path + @"\" + key);
+
+ if (redist != null)
+ return true;
+ }
+
+ return false;
+ }
+
+ ///
+ /// Check if a VC++ redist is installed
+ ///
+ /// VC++ redist version
+ /// Is installed
+ public static bool IsInstalled(VCPPRedist redist) => _VCRedistResults[redist];
+
+ ///
+ /// Checks for all keys
+ ///
+ static VCPPRedistInstallationDetector()
+ {
+ foreach (var kvPair in _VCRedistToRedistKeysMap)
+ {
+ VCPPRedist redist = kvPair.Key;
+ RedistInformation information = kvPair.Value;
+
+ bool installed = CheckIfInstallerKeyExists(information);
+ _VCRedistResults[redist] = installed;
+ }
+ }
+ }
+}
diff --git a/Novetus/NovetusCore/Classes/WebProxy.cs b/Novetus/NovetusCore/Classes/WebProxy.cs
index 01133bb..c3434b8 100644
--- a/Novetus/NovetusCore/Classes/WebProxy.cs
+++ b/Novetus/NovetusCore/Classes/WebProxy.cs
@@ -50,7 +50,7 @@ namespace Novetus.Core
"NOTE: The Web proxy feature requires an Internet connection to function properly.\n\n" +
"This message will appear only once.\n";
- DialogResult result = MessageBox.Show(text, "Novetus - Web Proxy Opt-In", MessageBoxButtons.YesNo);
+ DialogResult result = MessageBox.Show(text, "Novetus - Web Proxy Opt-In", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
switch (result)
{
diff --git a/Novetus/NovetusCore/NovetusCore.projitems b/Novetus/NovetusCore/NovetusCore.projitems
index deeb336..7aa2c69 100644
--- a/Novetus/NovetusCore/NovetusCore.projitems
+++ b/Novetus/NovetusCore/NovetusCore.projitems
@@ -12,6 +12,7 @@
+
diff --git a/Novetus/NovetusCore/StorageAndFunctions/FileManagement.cs b/Novetus/NovetusCore/StorageAndFunctions/FileManagement.cs
index fcfe7cc..458a3a1 100644
--- a/Novetus/NovetusCore/StorageAndFunctions/FileManagement.cs
+++ b/Novetus/NovetusCore/StorageAndFunctions/FileManagement.cs
@@ -143,8 +143,8 @@ namespace Novetus.Core
public void SaveSetting(string section, string name, string value)
{
- INI.IniWriteValue(section, name, value);
SaveSettingEvent();
+ INI.IniWriteValue(section, name, value);
}
public void SaveSettingInt(string name, int value)
@@ -195,6 +195,7 @@ namespace Novetus.Core
}
SaveSetting(section, name, defaultval);
+ ReadSettingEvent();
return INI.IniReadValue(section, name);
}
}
@@ -254,8 +255,8 @@ namespace Novetus.Core
public override void DefineDefaults()
{
ValueDefaults = new Dictionary(){
- {"SelectedClient", ""},
- {"Map", ""},
+ {"SelectedClient", GlobalVars.ProgramInformation.DefaultClient},
+ {"Map", GlobalVars.ProgramInformation.DefaultMap},
{"CloseOnLaunch", Util.BoolValue(false)},
{"UserID", Util.IntValue(NovetusFuncs.GeneratePlayerID())},
{"PlayerName", "Player"},
@@ -264,8 +265,8 @@ namespace Novetus.Core
{"UPnP", Util.BoolValue(false)},
{"DisabledAssetSDKHelp", Util.BoolValue(false)},
{"DiscordRichPresence", Util.BoolValue(true)},
- {"MapPath", ""},
- {"MapPathSnip", ""},
+ {"MapPath", GlobalPaths.MapsDir + @"\\" + GlobalVars.ProgramInformation.DefaultMap},
+ {"MapPathSnip", GlobalPaths.MapsDirBase + @"\\" + GlobalVars.ProgramInformation.DefaultMap},
{"GraphicsMode", Util.IntValue((int)Settings.Mode.Automatic)},
{"QualityLevel", Util.IntValue((int)Settings.Level.Automatic)},
{"LauncherStyle", (Util.IsWineRunning() ? Util.IntValue((int)Settings.Style.Stylish) : Util.IntValue((int)Settings.Style.Extended))},
@@ -328,14 +329,15 @@ namespace Novetus.Core
#region Program Information
public class ProgramInfo
{
+ // Defaults are hacky but fixes the errors on intital startup.
public ProgramInfo()
{
Version = "";
Branch = "";
- DefaultClient = "";
+ DefaultClient = "2009E";
RegisterClient1 = "";
RegisterClient2 = "";
- DefaultMap = "";
+ DefaultMap = "Dev - Baseplate2048.rbxl.bz2";
VersionName = "";
//HACK
NetVersion = ".NET Framework 4.5.1";
@@ -739,7 +741,7 @@ namespace Novetus.Core
{
string rev = revision.ToString();
- if (rev.Length > 0 && rev.Length >= 4)
+ if (rev.Length > 0 && rev.Length >= 5)
{
string posString = rev.Substring(rev.Length - 4);
@@ -838,7 +840,6 @@ namespace Novetus.Core
GlobalVars.ProgramInformation.InitialBootup = Convert.ToBoolean(initialBootup);
GlobalVars.ProgramInformation.VersionName = verNumber;
GlobalVars.ProgramInformation.IsSnapshot = Convert.ToBoolean(isSnapshot);
- RegisterDefaults();
}
catch (Exception ex)
{
@@ -847,14 +848,6 @@ namespace Novetus.Core
}
}
- public static void RegisterDefaults()
- {
- GlobalVars.UserConfiguration.SaveSetting("SelectedClient", GlobalVars.ProgramInformation.DefaultClient);
- GlobalVars.UserConfiguration.SaveSetting("Map", GlobalVars.ProgramInformation.DefaultMap);
- GlobalVars.UserConfiguration.SaveSetting("MapPath", GlobalPaths.MapsDir + @"\\" + GlobalVars.ProgramInformation.DefaultMap);
- GlobalVars.UserConfiguration.SaveSetting("MapPathSnip", GlobalPaths.MapsDirBase + @"\\" + GlobalVars.ProgramInformation.DefaultMap);
- }
-
public static void TurnOffInitialSequence()
{
//READ
diff --git a/Novetus/NovetusLauncher/Forms/LauncherForm/LauncherFormShared.cs b/Novetus/NovetusLauncher/Forms/LauncherForm/LauncherFormShared.cs
index 531fa7d..4d5f437 100644
--- a/Novetus/NovetusLauncher/Forms/LauncherForm/LauncherFormShared.cs
+++ b/Novetus/NovetusLauncher/Forms/LauncherForm/LauncherFormShared.cs
@@ -128,6 +128,44 @@ namespace NovetusLauncher
LocalVars.launcherInitState = false;
}
+ // very hacky but hear me out
+ bool VC2005 = VCPPRedistInstallationDetector.IsInstalled(VCPPRedist.VCPP2005);
+ bool VC2008 = VCPPRedistInstallationDetector.IsInstalled(VCPPRedist.VCPP2008);
+ bool VC2012 = VCPPRedistInstallationDetector.IsInstalled(VCPPRedist.VCPP2012);
+ bool isAnyInstalled = VC2005 && VC2008 && VC2012;
+ string notInstalledText = "";
+
+ if (!isAnyInstalled)
+ {
+ if (!VC2005)
+ {
+ Util.ConsolePrint("WARNING - Visual C++ 2005 SP1 Redistributables have not been found. Some clients may not launch.", 5);
+ notInstalledText += "Visual C++ 2005 SP1 Redistributables\n";
+ }
+
+ if (!VC2008)
+ {
+ Util.ConsolePrint("WARNING - Visual C++ 2008 Redistributables have not been found. Some clients may not launch.", 5);
+ notInstalledText += "Visual C++ 2008 Redistributables\n";
+ }
+
+ if (!VC2012)
+ {
+ Util.ConsolePrint("WARNING - Visual C++ 2012 Redistributables have not been found. Some clients may not launch.", 5);
+ notInstalledText += "Visual C++ 2012 Redistributables\n";
+ }
+
+ string text = "Novetus has detected that the following dependencies are not installed:\n\n"
+ + notInstalledText
+ + "\n\nIt is recomended to download these dependencies from the Microsoft website. Installing these will prevent errors upon starting up a client, like 'side-by-side configuration' errors.";
+
+ MessageBox.Show(text, "Novetus - Dependency Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+ }
+ else
+ {
+ Util.ConsolePrint("All client dependencies are installed.", 4);
+ }
+
GlobalVars.Proxy.DoSetup();
}
diff --git a/Novetus/NovetusLauncher/Forms/NovetusConsole.cs b/Novetus/NovetusLauncher/Forms/NovetusConsole.cs
index 4b7db8d..f34e29a 100644
--- a/Novetus/NovetusLauncher/Forms/NovetusConsole.cs
+++ b/Novetus/NovetusLauncher/Forms/NovetusConsole.cs
@@ -21,7 +21,6 @@ namespace NovetusLauncher
bool helpMode = false;
bool disableCommands = false;
string[] argList;
- FileFormat.Config cmdConfig;
public NovetusConsole()
{
@@ -85,8 +84,6 @@ namespace NovetusLauncher
return;
}
- cmdConfig = GlobalVars.UserConfiguration;
-
//disableCommands = true;
bool no3d = false;
bool nomap = false;
@@ -123,7 +120,7 @@ namespace NovetusLauncher
if (ConsoleArgs["client"] != null)
{
- cmdConfig.SaveSetting("SelectedClient", ConsoleArgs["client"]);
+ GlobalVars.UserConfiguration.SaveSetting("SelectedClient", ConsoleArgs["client"]);
}
else
{
@@ -153,14 +150,14 @@ namespace NovetusLauncher
if (ConsoleArgs["hostport"] != null)
{
- cmdConfig.SaveSettingInt("RobloxPort", Convert.ToInt32(ConsoleArgs["hostport"]));
+ GlobalVars.UserConfiguration.SaveSettingInt("RobloxPort", Convert.ToInt32(ConsoleArgs["hostport"]));
}
if (ConsoleArgs["upnp"] != null)
{
- cmdConfig.SaveSettingBool("UPnP", Convert.ToBoolean(ConsoleArgs["upnp"]));
+ GlobalVars.UserConfiguration.SaveSettingBool("UPnP", Convert.ToBoolean(ConsoleArgs["upnp"]));
- if (cmdConfig.ReadSettingBool("UPnP"))
+ if (GlobalVars.UserConfiguration.ReadSettingBool("UPnP"))
{
Util.ConsolePrint("Novetus will now use UPnP for port forwarding.", 4);
}
@@ -172,9 +169,9 @@ namespace NovetusLauncher
if (ConsoleArgs["notifications"] != null)
{
- cmdConfig.SaveSettingBool("ShowServerNotifications", Convert.ToBoolean(ConsoleArgs["notifications"]));
+ GlobalVars.UserConfiguration.SaveSettingBool("ShowServerNotifications", Convert.ToBoolean(ConsoleArgs["notifications"]));
- if (cmdConfig.ReadSettingBool("ShowServerNotifications"))
+ if (GlobalVars.UserConfiguration.ReadSettingBool("ShowServerNotifications"))
{
Util.ConsolePrint("Novetus will show notifications on player join/leave.", 4);
}
@@ -186,17 +183,17 @@ namespace NovetusLauncher
if (ConsoleArgs["maxplayers"] != null)
{
- cmdConfig.SaveSettingInt("PlayerLimit", Convert.ToInt32(ConsoleArgs["maxplayers"]));
+ GlobalVars.UserConfiguration.SaveSettingInt("PlayerLimit", Convert.ToInt32(ConsoleArgs["maxplayers"]));
}
if (ConsoleArgs["serverbrowsername"] != null)
{
- cmdConfig.SaveSetting("ServerBrowserServerName", ConsoleArgs["serverbrowsername"]);
+ GlobalVars.UserConfiguration.SaveSetting("ServerBrowserServerName", ConsoleArgs["serverbrowsername"]);
}
if (ConsoleArgs["serverbrowseraddress"] != null)
{
- cmdConfig.SaveSetting("ServerBrowserServerAddress", ConsoleArgs["serverbrowseraddress"]);
+ GlobalVars.UserConfiguration.SaveSetting("ServerBrowserServerAddress", ConsoleArgs["serverbrowseraddress"]);
}
MapArg(ConsoleArgs);
@@ -228,19 +225,15 @@ namespace NovetusLauncher
ConsoleForm.StartGame(loadMode, no3d, nomap, true);
}
- else
- {
- cmdConfig = new FileFormat.Config("cmdconfig.ini");
- }
}
public void MapArg (CommandLineArguments.Arguments ConsoleArgs)
{
if (ConsoleArgs["map"] != null)
{
- cmdConfig.SaveSetting("Map", ConsoleArgs["map"]);
- cmdConfig.SaveSetting("MapPath", ConsoleArgs["map"]);
- Util.ConsolePrint("Novetus will now launch the client with the map " + cmdConfig.ReadSetting("MapPath"), 4);
+ GlobalVars.UserConfiguration.SaveSetting("Map", ConsoleArgs["map"]);
+ GlobalVars.UserConfiguration.SaveSetting("MapPath", ConsoleArgs["map"]);
+ Util.ConsolePrint("Novetus will now launch the client with the map " + GlobalVars.UserConfiguration.ReadSetting("MapPath"), 4);
}
else
{
@@ -361,13 +354,13 @@ namespace NovetusLauncher
if (vals[1].Equals("none", StringComparison.InvariantCultureIgnoreCase))
{
- cmdConfig.SaveSetting("AlternateServerIP");
+ GlobalVars.UserConfiguration.SaveSetting("AlternateServerIP");
Util.ConsolePrint("Alternate Server IP removed.", 4);
}
else
{
- cmdConfig.SaveSetting("AlternateServerIP", vals[1]);
- Util.ConsolePrint("Alternate Server IP set to " + cmdConfig.ReadSetting("AlternateServerIP"), 4);
+ GlobalVars.UserConfiguration.SaveSetting("AlternateServerIP", vals[1]);
+ Util.ConsolePrint("Alternate Server IP set to " + GlobalVars.UserConfiguration.ReadSetting("AlternateServerIP"), 4);
}
}
catch (Exception)
@@ -398,7 +391,7 @@ namespace NovetusLauncher
if (vals[1].Equals("on", StringComparison.InvariantCultureIgnoreCase))
{
- if (cmdConfig.ReadSettingBool("WebProxyInitialSetupRequired"))
+ if (GlobalVars.UserConfiguration.ReadSettingBool("WebProxyInitialSetupRequired"))
{
// this is wierd and really dumb if we are just using console mode.....
GlobalVars.Proxy.DoSetup();
@@ -406,9 +399,9 @@ namespace NovetusLauncher
else
{
// fast start it.
- if (!cmdConfig.ReadSettingBool("WebProxyEnabled"))
+ if (!GlobalVars.UserConfiguration.ReadSettingBool("WebProxyEnabled"))
{
- cmdConfig.SaveSettingBool("WebProxyEnabled", true);
+ GlobalVars.UserConfiguration.SaveSettingBool("WebProxyEnabled", true);
}
GlobalVars.Proxy.Start();
@@ -416,7 +409,7 @@ namespace NovetusLauncher
}
else if (vals[1].Equals("off", StringComparison.InvariantCultureIgnoreCase))
{
- if (!GlobalVars.Proxy.Started && !cmdConfig.ReadSettingBool("WebProxyEnabled"))
+ if (!GlobalVars.Proxy.Started && !GlobalVars.UserConfiguration.ReadSettingBool("WebProxyEnabled"))
{
Util.ConsolePrint("The web proxy is disabled. Please turn it on in order to use this command.", 2);
return;
@@ -426,15 +419,15 @@ namespace NovetusLauncher
}
else if (vals[1].Equals("disable", StringComparison.InvariantCultureIgnoreCase))
{
- if (!GlobalVars.Proxy.Started && !cmdConfig.ReadSettingBool("WebProxyEnabled"))
+ if (!GlobalVars.Proxy.Started && !GlobalVars.UserConfiguration.ReadSettingBool("WebProxyEnabled"))
{
Util.ConsolePrint("The web proxy is already disabled.", 2);
return;
}
- if (cmdConfig.ReadSettingBool("WebProxyEnabled"))
+ if (GlobalVars.UserConfiguration.ReadSettingBool("WebProxyEnabled"))
{
- cmdConfig.SaveSettingBool("WebProxyEnabled", false);
+ GlobalVars.UserConfiguration.SaveSettingBool("WebProxyEnabled", false);
}
GlobalVars.Proxy.Stop();
@@ -443,7 +436,7 @@ namespace NovetusLauncher
}
else if (vals[1].Equals("extensions", StringComparison.InvariantCultureIgnoreCase))
{
- if (!GlobalVars.Proxy.Started && !cmdConfig.ReadSettingBool("WebProxyEnabled"))
+ if (!GlobalVars.Proxy.Started && !GlobalVars.UserConfiguration.ReadSettingBool("WebProxyEnabled"))
{
Util.ConsolePrint("The web proxy is disabled. Please turn it on in order to use this command.", 2);
return;
diff --git a/Novetus/NovetusLauncher/Novetus.Launcher.csproj b/Novetus/NovetusLauncher/Novetus.Launcher.csproj
index 35e9162..5e67ba5 100644
--- a/Novetus/NovetusLauncher/Novetus.Launcher.csproj
+++ b/Novetus/NovetusLauncher/Novetus.Launcher.csproj
@@ -8,6 +8,7 @@
NovetusLauncher
Novetus
v4.5.1
+ 8.0
Properties
diff --git a/Novetus/NovetusLauncher/NovetusLauncherEntryPoint.cs b/Novetus/NovetusLauncher/NovetusLauncherEntryPoint.cs
index 4094e28..5298c71 100644
--- a/Novetus/NovetusLauncher/NovetusLauncherEntryPoint.cs
+++ b/Novetus/NovetusLauncher/NovetusLauncherEntryPoint.cs
@@ -25,7 +25,6 @@ namespace NovetusLauncher
}
static bool formsOpen = false;
- static LauncherFormShared entryPointForm;
///
/// Program entry point.
@@ -35,7 +34,6 @@ namespace NovetusLauncher
{
System.Windows.Forms.Application.EnableVisualStyles();
System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
- entryPointForm = new LauncherFormShared();
if (!Directory.Exists(GlobalPaths.LogDir))
{
@@ -49,6 +47,7 @@ namespace NovetusLauncher
FileManagement.ReadInfoFile(GlobalPaths.ConfigDir + "\\" + GlobalPaths.InfoName,
GlobalPaths.ConfigDir + "\\" + GlobalPaths.TermListFileName);
+
GlobalVars.ColorsLoaded = FileManagement.InitColors();
bool isSDK = false;
diff --git a/Novetus/NovetusURI/Novetus.URI.csproj b/Novetus/NovetusURI/Novetus.URI.csproj
index 473eb00..8815dc1 100644
--- a/Novetus/NovetusURI/Novetus.URI.csproj
+++ b/Novetus/NovetusURI/Novetus.URI.csproj
@@ -10,6 +10,7 @@
NovetusURI
NovetusURI
v4.5.1
+ 8.0
512
true
diff --git a/changelog.txt b/changelog.txt
index 99f9fa6..1b2c737 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,6 +1,16 @@
-
+EDGE Snapshot v23.8728.22429.2
+Fixes:
+- Fixed missing clientinfo error on intital launch.
+----------------------------------------------------------------------------
+EDGE Snapshot v23.8724.27074.1
Enhancements:
- Added proper metatable protection on all affected clients. (2006S-2010L)
+- Downgraded Novetus to .NET Framework 4.5.1 for better WINE/Proton compatibility.
+- Added the ability for Novetus to detect if Visual C++ dependencies are installed.
+ - Credit to Matt from Sodikm for the code for this feature. :D
+
+Fixes:
+- Fixed issues with the new config system.
----------------------------------------------------------------------------
EDGE Snapshot v23.8700.30967.1
Notes:
diff --git a/scripts/batch/github_sync.bat b/scripts/batch/github_sync.bat
index 51e81aa..13b3878 100644
--- a/scripts/batch/github_sync.bat
+++ b/scripts/batch/github_sync.bat
@@ -16,7 +16,6 @@ if not exist "%gamescriptdir%/2009E" mkdir "%gamescriptdir%/2009E"
if not exist "%gamescriptdir%/2009E-HD" mkdir "%gamescriptdir%/2009E-HD"
if not exist "%gamescriptdir%/2009L" mkdir "%gamescriptdir%/2009L"
if not exist "%gamescriptdir%/2010L" mkdir "%gamescriptdir%/2010L"
-if not exist "%gamescriptdir%/2011E" mkdir "%gamescriptdir%/2011E"
if not exist "%gamescriptdir%/2011M" mkdir "%gamescriptdir%/2011M"
if not exist "%gamescriptdir%/2012M" mkdir "%gamescriptdir%/2012M"
@@ -32,18 +31,9 @@ XCOPY "%cd%\Novetus\clients\2009E\content\scripts\CSMPFunctions.lua" "%gamescrip
XCOPY "%cd%\Novetus\clients\2009E-HD\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2009E-HD" /y
XCOPY "%cd%\Novetus\clients\2009L\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2009L" /y
XCOPY "%cd%\Novetus\clients\2010L\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2010L" /y
-XCOPY "%cd%\Novetus\clients\2011E\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2011E" /y
XCOPY "%cd%\Novetus\clients\2011M\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2011M" /y
XCOPY "%cd%\Novetus\clients\2012M\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2012M" /y
-echo.
-echo Copying client corescripts...
-echo.
-echo 2011E
-SET ecores=%gamescriptdir%\2011E\cores
-if not exist "%ecores%" mkdir "%ecores%"
-XCOPY "%cd%\Novetus\clients\2011E\content\scripts\cores\*.lua" "%ecores%" /sy
-
echo.
echo 2011M
SET mcores=%gamescriptdir%\2011M\cores
@@ -69,7 +59,6 @@ XCOPY "%cd%\Novetus\clients\2009E\content\fonts\libraries.rbxm" "%gamescriptdir%
XCOPY "%cd%\Novetus\clients\2009E-HD\content\fonts\libraries.rbxm" "%gamescriptdir%/2009E-HD" /y
XCOPY "%cd%\Novetus\clients\2009L\content\fonts\libraries.rbxm" "%gamescriptdir%/2009L" /y
XCOPY "%cd%\Novetus\clients\2010L\content\fonts\libraries.rbxm" "%gamescriptdir%/2010L" /y
-XCOPY "%cd%\Novetus\clients\2011E\content\fonts\libraries.rbxm" "%gamescriptdir%/2011E" /y
XCOPY "%cd%\Novetus\clients\2011M\content\fonts\libraries.rbxm" "%gamescriptdir%/2011M" /y
XCOPY "%cd%\Novetus\clients\2012M\content\fonts\libraries.rbxm" "%gamescriptdir%/2012M" /y
@@ -84,7 +73,6 @@ del /s /q "%tempdir%\GlobalSettings_4_2009E.xml"
del /s /q "%tempdir%\GlobalSettings_4_2009E-HD.xml"
del /s /q "%tempdir%\GlobalSettings_4_2009L.xml"
del /s /q "%tempdir%\GlobalSettings_4_2010L.xml"
-del /s /q "%tempdir%\GlobalSettings_4_2011E.xml"
del /s /q "%tempdir%\GlobalSettings_4_2011M.xml"
del /s /q "%tempdir%\GlobalSettings4_2006S.xml"
del /s /q "%tempdir%\GlobalSettings4_2006S-Shaders.xml"
@@ -99,7 +87,6 @@ XCOPY "%tempdir%\GlobalSettings_4_2009E_default.xml" "%gamescriptdir%/2009E" /y
XCOPY "%tempdir%\GlobalSettings_4_2009E-HD_default.xml" "%gamescriptdir%/2009E-HD" /y
XCOPY "%tempdir%\GlobalSettings_4_2009L_default.xml" "%gamescriptdir%/2009L" /y
XCOPY "%tempdir%\GlobalSettings_4_2010L_default.xml" "%gamescriptdir%/2010L" /y
-XCOPY "%tempdir%\GlobalSettings_4_2011E_default.xml" "%gamescriptdir%/2011E" /y
XCOPY "%tempdir%\GlobalSettings_4_2011M_default.xml" "%gamescriptdir%/2011M" /y
XCOPY "%tempdir%\GlobalSettings4_2006S_default.xml" "%gamescriptdir%/2006S" /y
XCOPY "%tempdir%\GlobalSettings4_2006S-Shaders_default.xml" "%gamescriptdir%/2006S-Shaders" /y
diff --git a/scripts/launcher/3DView/CSView.lua b/scripts/launcher/3DView/CSView.lua
index 2142efe..e48542c 100644
--- a/scripts/launcher/3DView/CSView.lua
+++ b/scripts/launcher/3DView/CSView.lua
@@ -22,6 +22,8 @@ end
function LoadCharacterNew(playerApp,newChar)
local path = "rbxasset://../../../shareddata/charcustom/"
+
+ wait(0.65)
local charparts = {[1] = newWaitForChild(newChar,"Head"),[2] = newWaitForChild(newChar,"Torso"),[3] = newWaitForChild(newChar,"Left Arm"),[4] = newWaitForChild(newChar,"Right Arm"),[5] = newWaitForChild(newChar,"Left Leg"),[6] = newWaitForChild(newChar,"Right Leg")}
for _,newVal in pairs(playerApp:GetChildren()) do
@@ -441,7 +443,7 @@ function CS3DView(UserID,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorI
end
plr.CharacterAppearance=0
InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID,IconType)
- wait(0.7)
+ wait(0.79)
LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character,false)
local target = game.Workspace.Base.SpawnLocation
diff --git a/scripts/launcher/info.ini b/scripts/launcher/info.ini
index f30735a..64efae7 100644
--- a/scripts/launcher/info.ini
+++ b/scripts/launcher/info.ini
@@ -9,6 +9,6 @@ ExtendedVersionNumber=True
//ExtendedVersionTemplate=%version% vX.23.%extended-revision% (%version-name%)
//ExtendedVersionTemplate=%version% Snapshot v23.%build%.%revision%.%extended-revision%
ExtendedVersionTemplate=EDGE Snapshot v23.%build%.%revision%.%extended-revision%
-ExtendedVersionRevision=1
+ExtendedVersionRevision=2
InitialBootup=False
IsLite=False
diff --git a/scripts/launcher/term-list.txt b/scripts/launcher/term-list.txt
index 6ae555d..ff0bf75 100644
--- a/scripts/launcher/term-list.txt
+++ b/scripts/launcher/term-list.txt
@@ -96,4 +96,13 @@ Taco
Villager
Dinosaur
Code
-United
\ No newline at end of file
+United
+Astro
+Heart
+Techno
+Flutter
+Hamster
+Solder
+Ripcord
+Combine
+Soldier
\ No newline at end of file