Skip to content

Commit

Permalink
Implement Genshin Impact Game Settings (#183)
Browse files Browse the repository at this point in the history
* GI GameSettings: Initial Implementation for ScreenManager

* GI GameSettings: add debug line for ScreenManager Load()

* GI GameSettings: Introduce locales

* GI GameSettings: Initial implementation for frontend page

* GI GameSettings: add override for isfullScreen

* GI GameSettings: Initial implementation for GeneralData root tree

* GI GameSettings: Force load for ScreenManager

* GI GameSettings: Initial implementation for GraphicsData tree

* GI GameSettings: Misc information

* GI GameSettings: Fix page crashing

* GI GameSettings: Fix namespaces names

* GI GameSettings: Fix SettingScreen not saving

* GI GameSettings: Implement RegistryWatcher

* GI GameSettings: Fix missing GeneralData Equals

* GI GameSettings: Use Debug LogType

* GI GameSettings: Fix GeneralData.cs
- Implement fallback for globalPerfData and _overrideControllerMapValueList
- Fix some wrong Json keys

* GI GameSettings: Fix GeneralData.cs
- globalPerfData not saved properly

* GI GameSettings: Fix value types for GeneralData feat. @Cryotechnic

* GI GameSettings: Adjusted graphicsData key order

* GI GameSettings: UI

* GI GameSettings: Frontend Improvements
- Add audio settings
- Adjusted locales
- Adjusted margins

* GI GameSettings: also set globalPerfData

* Fix StarRail Localization
- Unsure how it got yeeted off there and still works...

* GI GameSettings: Add Language Settings

* GI GameSettings: Implement Exclusive Fullscreen toggle
- Also added necessary warning for its use

* Get ordered FPS list programmatically

* GI GameSettings: Disable General Data dumping in Load/Save
- Because its huuuuge

* GI GameSettings: Locales Cleanup

* GI GameSettings: Locales Cleanup pt. 2

* GI GameSettings: Code Cleanup
- Removed unused usings
- Adjusted log console strings

* GI GameSettings: Implement Gamma slider

* GI GameSettings: Implement Gamma slider

* Disable Exclusive Fullscreen on both Genshin and StarRail

* GI GameSettings: Attempt to fix Gamma slider

* fixed gamma behaving in reverse

because ofc mhy would do that, thanks mhy <3

---------

Co-authored-by: Myp3a <[email protected]>
Co-authored-by: Kemal Setya Adhi <[email protected]>
Co-authored-by: Ron Friedman <[email protected]>
Co-authored-by: Iskandar Montano <[email protected]>
  • Loading branch information
5 people authored Jun 30, 2023
1 parent 14cab22 commit 3fb04be
Show file tree
Hide file tree
Showing 15 changed files with 2,239 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
using CollapseLauncher.GameSettings.Genshin;
using System.Text.Json.Serialization;

namespace CollapseLauncher.GameSettings.Genshin.Context
{
[JsonSourceGenerationOptions(IncludeFields = false, GenerationMode = JsonSourceGenerationMode.Metadata, IgnoreReadOnlyFields = true)]
[JsonSerializable(typeof(GeneralData))]
internal sealed partial class GeneralDataContext : JsonSerializerContext { }

[JsonSourceGenerationOptions(IncludeFields = false, GenerationMode = JsonSourceGenerationMode.Metadata, IgnoreReadOnlyFields = true)]
[JsonSerializable(typeof(GraphicsData))]
internal sealed partial class GraphicsDataContext : JsonSerializerContext { }

[JsonSourceGenerationOptions(IncludeFields = false, GenerationMode = JsonSourceGenerationMode.Metadata, IgnoreReadOnlyFields = true)]
[JsonSerializable(typeof(GlobalPerfData))]
internal sealed partial class GlobalPerfDataContext : JsonSerializerContext { }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
namespace CollapseLauncher.GameSettings.Genshin.Enums
{
enum FPSOption : int
{
f30 = 1,
f60 = 2,
f45 = 3
}

enum RenderResolutionOption
{
x06 = 1,
x08 = 2,
x10 = 3,
x11 = 4,
x12 = 5,
x13 = 6,
x14 = 7,
x15 = 8
}

enum ShadowQualityOption
{
Lowest = 1,
Low = 2,
Medium = 3,
High = 4
}

enum VisualEffectsOption
{
Lowest = 1,
Low = 2,
Medium = 3,
High = 4
}

enum SFXQualityOption
{
Lowest = 1,
Low = 2,
Medium = 3,
High = 4
}

enum EnvironmentDetailOption
{
Lowest = 1,
Low = 2,
Medium = 3,
High = 4,
Highest = 5
}

enum VerticalSyncOption
{
Off = 1,
On = 2
}

enum AntialiasingOption
{
Off = 1,
FSR2 = 2,
SMAA = 3
}

enum VolumetricFogOption
{
Off = 1,
On = 2
}

enum ReflectionsOption
{
Off = 1,
On = 2
}

enum MotionBlurOption
{
Off = 1,
Low = 2,
High = 3,
Extreme = 4
}

enum BloomOption
{
Off = 1,
On = 2
}

enum CrowdDensityOption
{
Low = 1,
High = 2
}

enum SubsurfaceScatteringOption
{
Off = 1,
Medium = 2,
High = 3
}

enum CoOpTeammateEffectsOption
{
Off = 1,
PartiallyOff = 2,
On = 3
}

enum AnisotropicFilteringOption
{
x1 = 1,
x2 = 2,
x4 = 3,
x8 = 4,
x16 = 5
}
}

Loading

0 comments on commit 3fb04be

Please sign in to comment.