mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2025-01-10 15:28:59 +08:00
169 lines
5.6 KiB
C#
169 lines
5.6 KiB
C#
using CodeWalker.Properties;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using System.Windows.Shell;
|
|
|
|
namespace CodeWalker
|
|
{
|
|
static class Program
|
|
{
|
|
/// <summary>
|
|
/// The main entry point for the application.
|
|
/// </summary>
|
|
[STAThread]
|
|
static void Main(string[] args)
|
|
{
|
|
|
|
bool menumode = false;
|
|
bool explorermode = false;
|
|
bool projectmode = false;
|
|
bool vehiclesmode = false;
|
|
bool pedsmode = false;
|
|
if ((args != null) && (args.Length > 0))
|
|
{
|
|
foreach (string arg in args)
|
|
{
|
|
string argl = arg.ToLowerInvariant();
|
|
if (argl == "menu")
|
|
{
|
|
menumode = true;
|
|
}
|
|
if (argl == "explorer")
|
|
{
|
|
explorermode = true;
|
|
}
|
|
if (argl == "project")
|
|
{
|
|
projectmode = true;
|
|
}
|
|
if (argl == "vehicles")
|
|
{
|
|
vehiclesmode = true;
|
|
}
|
|
if (argl == "peds")
|
|
{
|
|
pedsmode = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
EnsureJumpList();
|
|
|
|
//Application.SetHighDpiMode(HighDpiMode.SystemAware);
|
|
Application.EnableVisualStyles();
|
|
Application.SetCompatibleTextRenderingDefault(false);
|
|
|
|
|
|
// Always check the GTA folder first thing
|
|
if (!GTAFolder.UpdateGTAFolder(Properties.Settings.Default.RememberGTAFolder))
|
|
{
|
|
MessageBox.Show("Could not load CodeWalker because no valid GTA 5 folder was selected. CodeWalker will now exit.", "GTA 5 Folder Not Found", MessageBoxButtons.OK, MessageBoxIcon.Stop);
|
|
return;
|
|
}
|
|
#if !DEBUG
|
|
try
|
|
{
|
|
#endif
|
|
if (menumode)
|
|
{
|
|
Application.Run(new MenuForm());
|
|
}
|
|
else if (explorermode)
|
|
{
|
|
Application.Run(new ExploreForm());
|
|
}
|
|
else if (projectmode)
|
|
{
|
|
Application.Run(new Project.ProjectForm());
|
|
}
|
|
else if (vehiclesmode)
|
|
{
|
|
Application.Run(new VehicleForm());
|
|
}
|
|
else if (pedsmode)
|
|
{
|
|
Application.Run(new PedsForm());
|
|
}
|
|
else
|
|
{
|
|
Application.Run(new WorldForm());
|
|
}
|
|
#if !DEBUG
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("An unexpected error was encountered!\n" + ex.ToString());
|
|
//this can happen if folder wasn't chosen, or in some other catastrophic error. meh.
|
|
}
|
|
#endif
|
|
}
|
|
|
|
|
|
static void EnsureJumpList()
|
|
{
|
|
if (Settings.Default.JumpListInitialised) return;
|
|
|
|
try
|
|
{
|
|
var cwpath = Assembly.GetEntryAssembly().Location;
|
|
var cwdir = Path.GetDirectoryName(cwpath);
|
|
|
|
var jtWorld = new JumpTask();
|
|
jtWorld.ApplicationPath = cwpath;
|
|
jtWorld.IconResourcePath = cwpath;
|
|
jtWorld.WorkingDirectory = cwdir;
|
|
jtWorld.Arguments = "";
|
|
jtWorld.Title = "World View";
|
|
jtWorld.Description = "Display the GTAV World";
|
|
jtWorld.CustomCategory = "Launch Options";
|
|
|
|
var jtExplorer = new JumpTask();
|
|
jtExplorer.ApplicationPath = cwpath;
|
|
jtExplorer.IconResourcePath = Path.Combine(cwdir, "CodeWalker RPF Explorer.exe");
|
|
jtExplorer.WorkingDirectory = cwdir;
|
|
jtExplorer.Arguments = "explorer";
|
|
jtExplorer.Title = "RPF Explorer";
|
|
jtExplorer.Description = "Open RPF Explorer";
|
|
jtExplorer.CustomCategory = "Launch Options";
|
|
|
|
var jtVehicles = new JumpTask();
|
|
jtVehicles.ApplicationPath = cwpath;
|
|
jtVehicles.IconResourcePath = Path.Combine(cwdir, "CodeWalker Vehicle Viewer.exe");
|
|
jtVehicles.WorkingDirectory = cwdir;
|
|
jtVehicles.Arguments = "vehicles";
|
|
jtVehicles.Title = "Vehicle Viewer";
|
|
jtVehicles.Description = "Open Vehicle Viewer";
|
|
jtVehicles.CustomCategory = "Launch Options";
|
|
|
|
var jtPeds = new JumpTask();
|
|
jtPeds.ApplicationPath = cwpath;
|
|
jtPeds.IconResourcePath = Path.Combine(cwdir, "CodeWalker Ped Viewer.exe");
|
|
jtPeds.WorkingDirectory = cwdir;
|
|
jtPeds.Arguments = "peds";
|
|
jtPeds.Title = "Ped Viewer";
|
|
jtPeds.Description = "Open Ped Viewer";
|
|
jtPeds.CustomCategory = "Launch Options";
|
|
|
|
var jumpList = new JumpList();
|
|
|
|
jumpList.JumpItems.Add(jtWorld);
|
|
jumpList.JumpItems.Add(jtExplorer);
|
|
jumpList.JumpItems.Add(jtVehicles);
|
|
jumpList.JumpItems.Add(jtPeds);
|
|
|
|
jumpList.Apply();
|
|
|
|
Settings.Default.JumpListInitialised = true;
|
|
Settings.Default.Save();
|
|
}
|
|
catch
|
|
{ }
|
|
}
|
|
}
|
|
}
|