Skip to content

Commit

Permalink
Another omnibus pull request (#40)
Browse files Browse the repository at this point in the history
* Add IGClient

Also updates to README.md and icon for Battle.net

* Better Amazon implementation by ingesting SQLite database

* Switch to .ini; File browser for export shortcuts

* Switch config items from .json to .ini
* First pass at new feature: Export all shortcuts for a platform to a given folder

* Fixes for small list icons

* Fix small list icons, and enable them by default
Also:
* Don't show Steamworks Common Redistributables

* Additional fixes for #32, misc.

Miscellaneous:
* Add a variable (on by default) to use new campbell terminal colors when clearing image area with images < 48 pt resolution
* Use new configuration item to determine whether to do deeper icon scan instead of whether images are enabled at the moment
* Add a struct for volatile configuration variables when we don't want changes to be saved; e.g., users of conhost and other shells won't have images disabled for good when they run with the other shell

* Fixes for .ini change

* Update to Converter.cs after .ini change
* Undo half-completed move from glc-last.json to .ini
Also:
* Fix command-line only bug
* Put log in .exe's folder
* Allow hyphen (-) in addition to slash (/) for command-line parameters
* Specify which game will be launched with /1 in help

* Add launcher launching

Also:
* Fix reversed logic on fallback icon search setting
* Begin work on in-game settings menu

* Update README.md

* Fix missing Steam aliases

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Add structure for New games category

* Add New games platform

Also:
* Quit automatically if no games are found.
* Add checks for missing registry keys to prevent spamming logs.
* Fix redundant "WARNING: ERROR" logging.
* Add font detection (disabled for now) so "Raster Fonts" users are warned about lack of proper Unicode support

* Add IsNew field to db code

* Add IsInstalled field and "Not installed" category for future use

* Add Paradox Launcher; Scan for not-installed games

(Not-installed scan disabled by default for now.) Currently only works with Amazon, itch, Indiegala, and Paradox (other platforms will require dealing with web APIs). Trying to start a not-installed game will open appropriate client and in some cases will attempt to install it. Not-installed games are sorted to bottom by default.

* Update README.md

* Go back to doing an alphabetic sort on first scan (even where default sort is frequency, i.e., number of launches)

* Get Steam not-installed games

Note this method requires the user's profile be set as public, and DLCs are included in the list.
Also:
* Enable not-installed game scanning by default.
* Fix broken input mode
* Fix bug where frequency sort was reversed
* Output current selection on input row (helps distinguish games with long titles)

* Update README.md

* Add selected game's platform to right side of bottom row

Also:
* Fix bug in Steam alias generation

* Remove duplicate info bar code

* Add GOG SQLite database parsing

* Update GLC_Social.png

* Improve Big Fish implementation

* Longer sleep to prevent image issues after add of infobar

* Fix for Steam sometimes using an alternate syntax in libraryfolders.vdf

Also some experiments for Microsoft Store support (disabled)

* Oops, forgot to comment out something from Microsoft Store

* Launch Galaxy to install/run GOG games (necessary for syncing saves)

* Minimize Galaxy after launch, fix Bethesda bug, misc. path smarts

* Collect Ubisoft not-installed games

* Add Oculus platform

* Update README.md

* Update Platform.cs

* Platforms moved to their own classes

* Platforms now extend an interface for better extensibility
* Add Oculus platform
* Download images for not-installed games

* Another omnibus

* Move to .NET 5 as preparation for GLC2 and possible cross-platform support.
* Automatically add last run date
* Add rating and allow user to adjust it with +/- (by default)
* More flexibility in sort
* Sort between last run, frequency, rating, and alphabetic only with F7 (by default)
* Syntax simplification
* Experiments with Microsoft Store (enabled for debug builds only)

* Add alias and rating to info bar

Also:
* If currently sorting by rating, then ask for a number rather than using the increment/decrement methods

* Fix Battle.net bug

Also:
* More syntax simplification

* Fix Bethesda bug

* Better game library detection for Battle.net

Also:
* Add number of runs to game database [frequency is an interesting synthesis of recent datetime and number of runs that isn't fully captured by the two numbers, but having the simple number might be nice as well]
* Import some statistics from launcher databases [though perhaps setting(s) should be made to disable this behavior]

* Get proper titles for Oculus games from database blob

* Fix Uplay bug

* Get not-installed Oculus games

* Remove some Oculus debug messages

* Fix Paradox debug message
  • Loading branch information
Nutzzz authored Oct 15, 2021
1 parent a7d89aa commit 5013f12
Show file tree
Hide file tree
Showing 47 changed files with 6,928 additions and 4,108 deletions.
2 changes: 1 addition & 1 deletion GameLauncher_Console/DataConversionTool/App.config
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,4 @@
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
</configuration>
8 changes: 4 additions & 4 deletions GameLauncher_Console/DataConversionTool/Converter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace DataConversionTool
public class CConverter
{
/// <summary>
/// Enum for convertion mode
/// Enum for conversion mode
/// </summary>
public enum ConvertMode
{
Expand Down Expand Up @@ -53,7 +53,7 @@ public bool ConvertData()
}

// Load and log all platforms and games from JSON
success = CJsonWrapper.ImportFromJSON(out List<CGameData.CMatch> matches);
success = CJsonWrapper.ImportFromJSON(new CPlatform(), out List<CGameData.CMatch> matches);
if(!success)
{
CInputOutput.Log("ERROR: Could not load games from the JSON file");
Expand Down Expand Up @@ -87,7 +87,7 @@ public bool ConvertData()
foreach(CGameData.CGame game in jsonAllGames)
{
int platformFK = (dbPlatforms.ContainsKey(game.PlatformString)) ? dbPlatforms[game.PlatformString].PlatformID : 0;
GameObject tmp = new GameObject(platformFK, game.ID, game.Title, game.Alias, game.Launch, game.Uninstaller);
GameObject tmp = new(platformFK, game.ID, game.Title, game.Alias, game.Launch, game.Uninstaller);
CGame.InsertGame(tmp);
}
HashSet<CGame.GameObject> dbGames = CGame.GetAllGames();
Expand All @@ -114,7 +114,7 @@ public bool ConvertData()

private Dictionary<string, int> AddPlatformsToDB(List<string> platforms)
{
Dictionary<string, int> platformsDB = new Dictionary<string, int>();
Dictionary<string, int> platformsDB = new();

// TODO;

Expand Down
90 changes: 8 additions & 82 deletions GameLauncher_Console/DataConversionTool/DataConversionTool.csproj
Original file line number Diff line number Diff line change
@@ -1,91 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\EntityFramework.6.3.0\build\EntityFramework.props" Condition="Exists('..\packages\EntityFramework.6.3.0\build\EntityFramework.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<TargetFramework>net5.0-windows7.0</TargetFramework>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{92A97D68-92B7-4348-9275-BC3E9D0E8941}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>DataConversionTool</RootNamespace>
<AssemblyName>DataConversionTool</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<StartupObject>DataConversionTool.Program</StartupObject>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.3.0\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.3.0\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Core" />
<Reference Include="System.Data.SQLite, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net46\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Data.SQLite.EF6, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\System.Data.SQLite.EF6.1.0.113.0\lib\net46\System.Data.SQLite.EF6.dll</HintPath>
</Reference>
<Reference Include="System.Data.SQLite.Linq, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\System.Data.SQLite.Linq.1.0.113.0\lib\net46\System.Data.SQLite.Linq.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Converter.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="InputOutput.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="packages.config" />
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.3.246501">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\GameLauncher_Console\GameLauncher_Console.csproj">
<Project>{4EBCEF5B-1A8A-42FB-81DB-446A14ED15D1}</Project>
<Name>GameLauncher_Console</Name>
</ProjectReference>
<ProjectReference Include="..\GameLauncher_Console\GameLauncher_Console.csproj" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\EntityFramework.6.3.0\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.3.0\build\EntityFramework.props'))" />
<Error Condition="!Exists('..\packages\EntityFramework.6.3.0\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.3.0\build\EntityFramework.targets'))" />
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
</Target>
<Import Project="..\packages\EntityFramework.6.3.0\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.3.0\build\EntityFramework.targets')" />
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
</Project>
2 changes: 1 addition & 1 deletion GameLauncher_Console/DataConversionTool/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ static void Main(string[] args)
{
return;
}
CConverter converter = new CConverter(mode);
CConverter converter = new(mode);
converter.ConvertData();
}
}
Expand Down
9 changes: 0 additions & 9 deletions GameLauncher_Console/DataConversionTool/packages.config

This file was deleted.

47 changes: 43 additions & 4 deletions GameLauncher_Console/GameLauncher_Console/App.config
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,18 @@
<setting name="flag_do_not_split_over_pages" serializeAs="String">
<value>False</value>
</setting>
<setting name="flag_enlarge_height_to_fit" serializeAs="String">
<setting name="flag_windows_enlarge_height_to_fit" serializeAs="String">
<value>False</value>
</setting>
<setting name="flag_sort_alphabetically" serializeAs="String">
<value>False</value>
</setting>
<setting name="flag_sort_by_frequency" serializeAs="String">
<value>False</value>
</setting>
<setting name="flag_sort_by_user_rating" serializeAs="String">
<value>False</value>
</setting>
<setting name="flag_sort_favourites_on_top" serializeAs="String">
<value>False</value>
</setting>
Expand Down Expand Up @@ -106,6 +112,12 @@
<setting name="flag_image_do_not_do_deep_scan_for_icons" serializeAs="String">
<value>False</value>
</setting>
<setting name="flag_image_do_not_download_missing" serializeAs="String">
<value>False</value>
</setting>
<setting name="list_show_uwp_titles" serializeAs="String">
<value>Angry Birds 2|Angry Birds Friends|Bloons TD Battles|Bloons Monkey City|Candy Crush Saga|Candy Crush Soda Saga|Candy Crush Jelly Saga|Crossy Road|Minecraft|Phase 10 2|Roblox</value>
</setting>
<setting name="num_list_icons_max_size_in_characters" serializeAs="String">
<value>2</value>
</setting>
Expand All @@ -127,6 +139,9 @@
<setting name="num_steam_id" serializeAs="String">
<value>0</value>
</setting>
<setting name="text_oculus_username" serializeAs="String">
<value></value>
</setting>
<setting name="colour_background" serializeAs="String">
<value>Black</value>
</setting>
Expand Down Expand Up @@ -301,9 +316,6 @@
<setting name="key_cancel_2" serializeAs="String">
<value>NoName</value>
</setting>
<setting name="key_new_game_1" serializeAs="String">
<value>OemPlus</value>
</setting>
<setting name="key_new_game_2" serializeAs="String">
<value>N</value>
</setting>
Expand Down Expand Up @@ -373,6 +385,30 @@
<setting name="key_sort_method_2" serializeAs="String">
<value>NoName</value>
</setting>
<setting name="key_edit_tags_1" serializeAs="String">
<value>NoName</value>
</setting>
<setting name="key_edit_tags_2" serializeAs="String">
<value>T</value>
</setting>
<setting name="key_rating_up_1" serializeAs="String">
<value>OemPlus</value>
</setting>
<setting name="key_rating_up_2" serializeAs="String">
<value>Add</value>
</setting>
<setting name="key_rating_down_1" serializeAs="String">
<value>OemMinus</value>
</setting>
<setting name="key_rating_down_2" serializeAs="String">
<value>Subtract</value>
</setting>
<setting name="key_download_image_1" serializeAs="String">
<value>NoName</value>
</setting>
<setting name="key_download_image_2" serializeAs="String">
<value>NoName</value>
</setting>
<setting name="text_main_menu_title" serializeAs="String">
<value>Main Menu</value>
</setting>
Expand Down Expand Up @@ -415,6 +451,9 @@
<setting name="text_instruct2_games_type_custom_msg" serializeAs="String">
<value> Enter \'/exit\' to quit;\n Enter \'/back\' to return to previous.</value>
</setting>
<setting name="key_new_game_1" serializeAs="String">
<value>NoName</value>
</setting>
</GameLauncher_Console.Properties.Settings>
</userSettings>
<entityFramework>
Expand Down
Loading

0 comments on commit 5013f12

Please sign in to comment.