2019-11-09 13:51:51 +00:00
|
|
|
|
using System.Collections.Generic;
|
2019-09-29 00:22:25 +00:00
|
|
|
|
using System.Linq;
|
2019-10-03 03:23:11 +00:00
|
|
|
|
using Alphaleonis.Win32.Filesystem;
|
2019-09-29 00:22:25 +00:00
|
|
|
|
using Microsoft.Win32;
|
|
|
|
|
|
|
|
|
|
namespace Wabbajack.Common
|
|
|
|
|
{
|
|
|
|
|
public enum Game {
|
2019-11-05 13:03:56 +00:00
|
|
|
|
//MO2 GAMES
|
2019-10-19 10:55:05 +00:00
|
|
|
|
Morrowind,
|
2019-09-29 00:22:25 +00:00
|
|
|
|
Oblivion,
|
|
|
|
|
Fallout3,
|
|
|
|
|
FalloutNewVegas,
|
|
|
|
|
Skyrim,
|
|
|
|
|
SkyrimSpecialEdition,
|
2019-10-01 22:39:25 +00:00
|
|
|
|
Fallout4,
|
2019-11-05 13:03:56 +00:00
|
|
|
|
SkyrimVR,
|
|
|
|
|
//VORTEX GAMES
|
|
|
|
|
DarkestDungeon
|
2019-09-29 00:22:25 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class GameMetaData
|
|
|
|
|
{
|
2019-11-05 13:03:56 +00:00
|
|
|
|
public ModManager SupportedModManager { get; internal set; }
|
2019-09-29 00:22:25 +00:00
|
|
|
|
public string MO2ArchiveName { get; internal set; }
|
|
|
|
|
public Game Game { get; internal set; }
|
|
|
|
|
public string NexusName { get; internal set; }
|
|
|
|
|
public string MO2Name { get; internal set; }
|
|
|
|
|
public string GameLocationRegistryKey { get; internal set; }
|
2019-11-05 13:10:42 +00:00
|
|
|
|
public List<int> SteamIDs { get; internal set; }
|
2019-11-05 14:51:52 +00:00
|
|
|
|
public int GOGID { get; internal set; }
|
2019-09-29 00:22:25 +00:00
|
|
|
|
|
2019-10-03 03:23:11 +00:00
|
|
|
|
public string GameLocation
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (Consts.TestMode)
|
|
|
|
|
return Directory.GetCurrentDirectory();
|
|
|
|
|
|
|
|
|
|
return (string) Registry.GetValue(GameLocationRegistryKey, "installed path", null)
|
|
|
|
|
??
|
|
|
|
|
(string) Registry.GetValue(
|
|
|
|
|
GameLocationRegistryKey.Replace(@"HKEY_LOCAL_MACHINE\SOFTWARE\",
|
|
|
|
|
@"HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\"), "installed path", null);
|
|
|
|
|
}
|
|
|
|
|
}
|
2019-09-29 00:22:25 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class GameRegistry
|
|
|
|
|
{
|
|
|
|
|
public static GameMetaData GetByMO2ArchiveName(string gameName)
|
|
|
|
|
{
|
|
|
|
|
var gamename = gameName.ToLower();
|
2019-11-09 14:40:50 +00:00
|
|
|
|
return Games.Values.FirstOrDefault(g => g.MO2ArchiveName?.ToLower() == gamename);
|
2019-09-29 00:22:25 +00:00
|
|
|
|
}
|
|
|
|
|
|
2019-11-09 14:10:28 +00:00
|
|
|
|
public static GameMetaData GetByNexusName(string gameName)
|
|
|
|
|
{
|
|
|
|
|
return Games.Values.FirstOrDefault(g => g.NexusName == gameName.ToLower());
|
|
|
|
|
}
|
|
|
|
|
|
2019-09-29 00:22:25 +00:00
|
|
|
|
|
|
|
|
|
public static Dictionary<Game, GameMetaData> Games = new Dictionary<Game, GameMetaData>
|
|
|
|
|
{
|
2019-11-09 14:40:14 +00:00
|
|
|
|
/*{
|
2019-10-19 10:55:05 +00:00
|
|
|
|
Game.Morrowind, new GameMetaData()
|
2019-11-09 14:40:14 +00:00
|
|
|
|
},*/
|
2019-09-29 00:22:25 +00:00
|
|
|
|
{
|
|
|
|
|
Game.Oblivion, new GameMetaData
|
|
|
|
|
{
|
2019-11-05 13:03:56 +00:00
|
|
|
|
SupportedModManager = ModManager.MO2,
|
2019-09-29 00:22:25 +00:00
|
|
|
|
Game = Game.Oblivion,
|
|
|
|
|
NexusName = "oblivion",
|
2019-10-02 22:45:42 +00:00
|
|
|
|
MO2Name = "Oblivion",
|
2019-11-09 14:21:31 +00:00
|
|
|
|
MO2ArchiveName = "oblivion",
|
2019-11-05 13:10:42 +00:00
|
|
|
|
GameLocationRegistryKey = @"HKEY_LOCAL_MACHINE\SOFTWARE\Bethesda Softworks\Oblivion",
|
|
|
|
|
SteamIDs = new List<int>{22330}
|
2019-09-29 00:22:25 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
Game.Fallout3, new GameMetaData
|
|
|
|
|
{
|
2019-11-05 13:03:56 +00:00
|
|
|
|
SupportedModManager = ModManager.MO2,
|
2019-09-29 00:22:25 +00:00
|
|
|
|
Game = Game.Fallout3,
|
|
|
|
|
NexusName = "fallout3",
|
|
|
|
|
MO2Name = "fallout3",
|
|
|
|
|
MO2ArchiveName = "fallout3",
|
2019-11-05 13:10:42 +00:00
|
|
|
|
GameLocationRegistryKey = @"HKEY_LOCAL_MACHINE\SOFTWARE\Bethesda Softworks\Fallout3",
|
|
|
|
|
SteamIDs = new List<int>{22300, 22370} // base game and GotY
|
2019-09-29 00:22:25 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
Game.FalloutNewVegas, new GameMetaData
|
|
|
|
|
{
|
2019-11-05 13:03:56 +00:00
|
|
|
|
SupportedModManager = ModManager.MO2,
|
2019-09-29 00:22:25 +00:00
|
|
|
|
Game = Game.FalloutNewVegas,
|
|
|
|
|
NexusName = "newvegas",
|
|
|
|
|
MO2Name = "New Vegas",
|
|
|
|
|
MO2ArchiveName = "falloutnv",
|
2019-11-05 13:10:42 +00:00
|
|
|
|
GameLocationRegistryKey = @"HKEY_LOCAL_MACHINE\SOFTWARE\Bethesda Softworks\falloutnv",
|
|
|
|
|
SteamIDs = new List<int>{22380}
|
2019-09-29 00:22:25 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
Game.Skyrim, new GameMetaData
|
|
|
|
|
{
|
2019-11-05 13:03:56 +00:00
|
|
|
|
SupportedModManager = ModManager.MO2,
|
2019-09-29 00:22:25 +00:00
|
|
|
|
Game = Game.Skyrim,
|
|
|
|
|
NexusName = "skyrim",
|
|
|
|
|
MO2Name = "Skyrim",
|
|
|
|
|
MO2ArchiveName = "skyrim",
|
2019-11-05 13:10:42 +00:00
|
|
|
|
GameLocationRegistryKey = @"HKEY_LOCAL_MACHINE\SOFTWARE\Bethesda Softworks\skyrim",
|
|
|
|
|
SteamIDs = new List<int>{72850}
|
2019-09-29 00:22:25 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
Game.SkyrimSpecialEdition, new GameMetaData
|
|
|
|
|
{
|
2019-11-05 13:03:56 +00:00
|
|
|
|
SupportedModManager = ModManager.MO2,
|
2019-09-29 00:22:25 +00:00
|
|
|
|
Game = Game.SkyrimSpecialEdition,
|
|
|
|
|
NexusName = "skyrimspecialedition",
|
|
|
|
|
MO2Name = "Skyrim Special Edition",
|
|
|
|
|
MO2ArchiveName = "skyrimse",
|
2019-11-05 13:10:42 +00:00
|
|
|
|
GameLocationRegistryKey = @"HKEY_LOCAL_MACHINE\SOFTWARE\Bethesda Softworks\Skyrim Special Edition",
|
|
|
|
|
SteamIDs = new List<int>{489830}
|
2019-09-29 00:22:25 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
Game.Fallout4, new GameMetaData
|
|
|
|
|
{
|
2019-11-05 13:03:56 +00:00
|
|
|
|
SupportedModManager = ModManager.MO2,
|
2019-09-29 00:22:25 +00:00
|
|
|
|
Game = Game.Fallout4,
|
|
|
|
|
NexusName = "fallout4",
|
|
|
|
|
MO2Name = "Fallout 4",
|
|
|
|
|
MO2ArchiveName = "fallout4",
|
2019-11-05 13:10:42 +00:00
|
|
|
|
GameLocationRegistryKey = @"HKEY_LOCAL_MACHINE\SOFTWARE\Bethesda Softworks\Fallout4",
|
|
|
|
|
SteamIDs = new List<int>{377160}
|
2019-09-29 00:22:25 +00:00
|
|
|
|
}
|
2019-10-01 22:39:25 +00:00
|
|
|
|
},
|
2019-11-05 13:10:42 +00:00
|
|
|
|
/*{
|
|
|
|
|
Game.Fallout4VR, new GameMetaData
|
|
|
|
|
{
|
|
|
|
|
SupportedModManager = ModManager.MO2,
|
|
|
|
|
Game = Game.Fallout4VR,
|
|
|
|
|
NexusName = "fallout4",
|
|
|
|
|
MO2Name = "Fallout 4",
|
|
|
|
|
MO2ArchiveName = "fallout4",
|
|
|
|
|
SteamIDs = new List<int>{611660}
|
|
|
|
|
}
|
|
|
|
|
},*/
|
2019-10-01 22:39:25 +00:00
|
|
|
|
{
|
|
|
|
|
Game.SkyrimVR, new GameMetaData
|
|
|
|
|
{
|
2019-11-05 13:03:56 +00:00
|
|
|
|
SupportedModManager = ModManager.MO2,
|
2019-10-01 22:39:25 +00:00
|
|
|
|
Game = Game.SkyrimVR,
|
|
|
|
|
NexusName = "skyrimspecialedition",
|
|
|
|
|
MO2Name = "Skyrim VR",
|
|
|
|
|
MO2ArchiveName = "skyrimse",
|
2019-11-05 13:10:42 +00:00
|
|
|
|
GameLocationRegistryKey = @"HKEY_LOCAL_MACHINE\SOFTWARE\Bethesda Softworks\Skyrim VR",
|
|
|
|
|
SteamIDs = new List<int>{611670}
|
2019-10-01 22:39:25 +00:00
|
|
|
|
}
|
2019-11-05 13:03:56 +00:00
|
|
|
|
},
|
|
|
|
|
{
|
2019-11-05 14:51:52 +00:00
|
|
|
|
Game.DarkestDungeon, new GameMetaData
|
2019-11-05 13:03:56 +00:00
|
|
|
|
{
|
|
|
|
|
SupportedModManager = ModManager.Vortex,
|
|
|
|
|
Game = Game.DarkestDungeon,
|
2019-11-05 13:10:42 +00:00
|
|
|
|
NexusName = "darkestdungeon",
|
2019-11-05 14:51:52 +00:00
|
|
|
|
SteamIDs = new List<int>{262060},
|
|
|
|
|
GOGID = 1450711444
|
2019-11-05 13:03:56 +00:00
|
|
|
|
}
|
2019-09-29 00:22:25 +00:00
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}
|