Merge branch 'version-2.5.4' into version-2.5.4-nvidia

This commit is contained in:
pizzaboxer 2024-02-10 10:03:37 +00:00
commit 429e417402
No known key found for this signature in database
GPG Key ID: 59D4A1DBAD0F2BA8
11 changed files with 203 additions and 200 deletions

View File

@ -7,8 +7,8 @@
<UseWPF>true</UseWPF> <UseWPF>true</UseWPF>
<UseWindowsForms>True</UseWindowsForms> <UseWindowsForms>True</UseWindowsForms>
<ApplicationIcon>Bloxstrap.ico</ApplicationIcon> <ApplicationIcon>Bloxstrap.ico</ApplicationIcon>
<Version>2.5.3</Version> <Version>2.5.4</Version>
<FileVersion>2.5.3.0</FileVersion> <FileVersion>2.5.4.0</FileVersion>
<ApplicationManifest>app.manifest</ApplicationManifest> <ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup> </PropertyGroup>

View File

@ -229,10 +229,30 @@ namespace Bloxstrap
} }
catch (HttpResponseException ex) catch (HttpResponseException ex)
{ {
if (ex.ResponseMessage.StatusCode != HttpStatusCode.NotFound) // If channel does not exist
throw; if (ex.ResponseMessage.StatusCode == HttpStatusCode.NotFound)
{
App.Logger.WriteLine(LOG_IDENT, $"Reverting enrolled channel to {RobloxDeployment.DefaultChannel} because a WindowsPlayer build does not exist for {App.Settings.Prop.Channel}"); App.Logger.WriteLine(LOG_IDENT, $"Reverting enrolled channel to {RobloxDeployment.DefaultChannel} because a WindowsPlayer build does not exist for {App.Settings.Prop.Channel}");
}
// If channel is not available to the user (private/internal release channel)
else if (ex.ResponseMessage.StatusCode == HttpStatusCode.Unauthorized)
{
App.Logger.WriteLine(LOG_IDENT, $"Reverting enrolled channel to {RobloxDeployment.DefaultChannel} because {App.Settings.Prop.Channel} is restricted for public use.");
// Only prompt if user has channel switching mode set to something other than Automatic.
if (App.Settings.Prop.ChannelChangeMode != ChannelChangeMode.Automatic)
{
Controls.ShowMessageBox(
$"The channel you're currently on ({App.Settings.Prop.Channel}) has now been restricted from public use. You will now be on the default channel ({RobloxDeployment.DefaultChannel}).",
MessageBoxImage.Information
);
}
}
else
{
throw;
}
App.Settings.Prop.Channel = RobloxDeployment.DefaultChannel; App.Settings.Prop.Channel = RobloxDeployment.DefaultChannel;
clientVersion = await RobloxDeployment.GetInfo(App.Settings.Prop.Channel); clientVersion = await RobloxDeployment.GetInfo(App.Settings.Prop.Channel);
} }
@ -498,7 +518,10 @@ namespace Bloxstrap
// in case the user is reinstalling // in case the user is reinstalling
if (File.Exists(Paths.Application) && App.IsFirstRun) if (File.Exists(Paths.Application) && App.IsFirstRun)
{
Filesystem.AssertReadOnly(Paths.Application);
File.Delete(Paths.Application); File.Delete(Paths.Application);
}
// check to make sure bootstrapper is in the install folder // check to make sure bootstrapper is in the install folder
if (!File.Exists(Paths.Application) && Environment.ProcessPath is not null) if (!File.Exists(Paths.Application) && Environment.ProcessPath is not null)

View File

@ -28,12 +28,6 @@ namespace Bloxstrap
{ "Rendering.TexturePack", "FStringPartTexturePackTable2022" }, { "Rendering.TexturePack", "FStringPartTexturePackTable2022" },
{ "Rendering.DisableScaling", "DFFlagDisableDPIScale" }, { "Rendering.DisableScaling", "DFFlagDisableDPIScale" },
{ "Rendering.Mode.D3D11", "FFlagDebugGraphicsPreferD3D11" },
{ "Rendering.Mode.D3D10", "FFlagDebugGraphicsPreferD3D11FL10" },
{ "Rendering.Mode.Vulkan", "FFlagDebugGraphicsPreferVulkan" },
{ "Rendering.Mode.Vulkan.Fix", "FFlagRenderVulkanFixMinimizeWindow" },
{ "Rendering.Mode.OpenGL", "FFlagDebugGraphicsPreferOpenGL" },
{ "Rendering.Lighting.Voxel", "DFFlagDebugRenderForceTechnologyVoxel" }, { "Rendering.Lighting.Voxel", "DFFlagDebugRenderForceTechnologyVoxel" },
{ "Rendering.Lighting.ShadowMap", "FFlagDebugForceFutureIsBrightPhase2" }, { "Rendering.Lighting.ShadowMap", "FFlagDebugForceFutureIsBrightPhase2" },
{ "Rendering.Lighting.Future", "FFlagDebugForceFutureIsBrightPhase3" }, { "Rendering.Lighting.Future", "FFlagDebugForceFutureIsBrightPhase3" },
@ -53,16 +47,6 @@ namespace Bloxstrap
{ "UI.Menu.Style.ABTest.4", "FFlagEnableV3MenuABTest3" } { "UI.Menu.Style.ABTest.4", "FFlagEnableV3MenuABTest3" }
}; };
// only one missing here is Metal because lol
public static IReadOnlyDictionary<string, string> RenderingModes => new Dictionary<string, string>
{
{ "Automatic", "None" },
{ "Vulkan", "Vulkan" },
{ "Direct3D 11", "D3D11" },
{ "Direct3D 10", "D3D10" },
{ "OpenGL", "OpenGL" }
};
public static IReadOnlyDictionary<string, string> LightingModes => new Dictionary<string, string> public static IReadOnlyDictionary<string, string> LightingModes => new Dictionary<string, string>
{ {
{ "Chosen by game", "None" }, { "Chosen by game", "None" },
@ -199,14 +183,6 @@ namespace Bloxstrap
return mapping.First().Key; return mapping.First().Key;
} }
public void CheckManualFullscreenPreset()
{
if (GetPreset("Rendering.Mode.Vulkan") == "True" || GetPreset("Rendering.Mode.OpenGL") == "True")
SetPreset("Rendering.ManualFullscreen", null);
else
SetPreset("Rendering.ManualFullscreen", "False");
}
public override void Save() public override void Save()
{ {
// convert all flag values to strings before saving // convert all flag values to strings before saving
@ -221,7 +197,8 @@ namespace Bloxstrap
{ {
base.Load(); base.Load();
CheckManualFullscreenPreset(); if (GetPreset("Rendering.ManualFullscreen") != "False")
SetPreset("Rendering.ManualFullscreen", "False");
// TODO - remove when activity tracking has been revamped // TODO - remove when activity tracking has been revamped
if (GetPreset("Network.Log") != "7") if (GetPreset("Network.Log") != "7")

View File

@ -227,6 +227,16 @@ namespace Bloxstrap
if (App.FastFlags.GetPreset("UI.Menu.Style.DisableV2") is not null) if (App.FastFlags.GetPreset("UI.Menu.Style.DisableV2") is not null)
App.FastFlags.SetPreset("UI.Menu.Style.ABTest", false); App.FastFlags.SetPreset("UI.Menu.Style.ABTest", false);
App.FastFlags.Save();
}
else if (existingVersionInfo.ProductVersion == "2.5.3")
{
App.FastFlags.SetValue("FFlagDebugGraphicsPreferD3D11", null);
App.FastFlags.SetValue("FFlagDebugGraphicsPreferD3D11FL10", null);
App.FastFlags.SetValue("FFlagDebugGraphicsPreferVulkan", null);
App.FastFlags.SetValue("FFlagRenderVulkanFixMinimizeWindow", null);
App.FastFlags.SetValue("FFlagDebugGraphicsPreferOpenGL", null);
App.FastFlags.Save(); App.FastFlags.Save();
} }
} }

View File

@ -5,8 +5,9 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml" xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
xmlns:local="clr-namespace:Bloxstrap.UI.Elements.Menu.Pages" xmlns:local="clr-namespace:Bloxstrap.UI.Elements.Menu.Pages"
xmlns:models="clr-namespace:Bloxstrap.UI.ViewModels.Menu" xmlns:models="clr-namespace:Bloxstrap.UI.ViewModels"
d:DataContext="{d:DesignInstance Type=models:BehaviourViewModel}" xmlns:menuModels="clr-namespace:Bloxstrap.UI.ViewModels.Menu"
d:DataContext="{d:DesignInstance Type=menuModels:BehaviourViewModel}"
mc:Ignorable="d" mc:Ignorable="d"
d:DesignHeight="600" d:DesignWidth="800" d:DesignHeight="600" d:DesignWidth="800"
Title="BehaviourPage" Title="BehaviourPage"
@ -35,6 +36,29 @@
<ui:ToggleSwitch IsChecked="{Binding UpdateCheckingEnabled, Mode=TwoWay}" /> <ui:ToggleSwitch IsChecked="{Binding UpdateCheckingEnabled, Mode=TwoWay}" />
</ui:CardControl> </ui:CardControl>
<ui:CardControl Margin="0,8,0,0">
<ui:CardControl.Style>
<Style TargetType="ui:CardControl" BasedOn="{StaticResource {x:Type ui:CardControl}}">
<Style.Triggers>
<DataTrigger Binding="{Binding ForceRobloxReinstallation, Mode=OneTime}" Value="True">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</ui:CardControl.Style>
<ui:CardControl.Header>
<StackPanel>
<TextBlock FontSize="14" Text="Force Roblox reinstallation" />
<TextBlock Margin="0,2,0,0" FontSize="12" Text="Roblox will be installed fresh on next launch." Foreground="{DynamicResource TextFillColorTertiaryBrush}" />
</StackPanel>
</ui:CardControl.Header>
<ui:ToggleSwitch IsChecked="{Binding ForceRobloxReinstallation, Mode=TwoWay}" />
</ui:CardControl>
<StackPanel Visibility="{Binding Source={x:Static models:GlobalViewModel.ShowDebugStuff}, Mode=OneTime}">
<TextBlock Text="lol" FontSize="16" FontWeight="Medium" Margin="0,16,0,0" />
<ui:CardExpander Margin="0,8,0,0" IsExpanded="True"> <ui:CardExpander Margin="0,8,0,0" IsExpanded="True">
<ui:CardExpander.Header> <ui:CardExpander.Header>
<Grid> <Grid>
@ -157,24 +181,6 @@
</ui:CardControl.Header> </ui:CardControl.Header>
<ComboBox Margin="5,0,0,0" Padding="10,5,10,5" Width="200" ItemsSource="{Binding ChannelChangeModes.Keys, Mode=OneTime}" Text="{Binding SelectedChannelChangeMode, Mode=TwoWay}" /> <ComboBox Margin="5,0,0,0" Padding="10,5,10,5" Width="200" ItemsSource="{Binding ChannelChangeModes.Keys, Mode=OneTime}" Text="{Binding SelectedChannelChangeMode, Mode=TwoWay}" />
</ui:CardControl> </ui:CardControl>
<ui:CardControl Margin="0,8,0,0">
<ui:CardControl.Style>
<Style TargetType="ui:CardControl" BasedOn="{StaticResource {x:Type ui:CardControl}}">
<Style.Triggers>
<DataTrigger Binding="{Binding ForceRobloxReinstallation, Mode=OneTime}" Value="True">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</ui:CardControl.Style>
<ui:CardControl.Header>
<StackPanel>
<TextBlock FontSize="14" Text="Force Roblox reinstallation" />
<TextBlock Margin="0,2,0,0" FontSize="12" Text="Roblox will be installed fresh on next launch." Foreground="{DynamicResource TextFillColorTertiaryBrush}" />
</StackPanel> </StackPanel>
</ui:CardControl.Header>
<ui:ToggleSwitch IsChecked="{Binding ForceRobloxReinstallation, Mode=TwoWay}" />
</ui:CardControl>
</StackPanel> </StackPanel>
</ui:UiPage> </ui:UiPage>

View File

@ -271,14 +271,17 @@ namespace Bloxstrap.UI.Elements.Menu.Pages
if (conflictingFlags.Any()) if (conflictingFlags.Any())
{ {
var result = Controls.ShowMessageBox( int count = conflictingFlags.Count();
"Some of the flags you are attempting to import already have set values. Would you like to overwrite their current values with the ones defined in the import?\n" +
string message = "Some of the flags you are attempting to import already have set values. Would you like to overwrite their current values with the ones defined in the import?\n" +
"\n" + "\n" +
"Conflicting flags:\n" + $"There are {count} conflicting flag definitions:\n" +
String.Join(", ", conflictingFlags), String.Join(", ", conflictingFlags.Take(25));
MessageBoxImage.Question,
MessageBoxButton.YesNo if (count > 25)
); message += "...";
var result = Controls.ShowMessageBox(message, MessageBoxImage.Question, MessageBoxButton.YesNo);
overwriteConflicting = result == MessageBoxResult.Yes; overwriteConflicting = result == MessageBoxResult.Yes;
} }

View File

@ -34,7 +34,7 @@
</ui:CardAction> </ui:CardAction>
</Grid> </Grid>
<StackPanel Visibility="{Binding ShowDebugFlags, Mode=OneTime}"> <StackPanel Visibility="{Binding Source={x:Static models:GlobalViewModel.ShowDebugStuff}, Mode=OneTime}">
<TextBlock Text="Debug" FontSize="16" FontWeight="Medium" Margin="0,16,0,0" /> <TextBlock Text="Debug" FontSize="16" FontWeight="Medium" Margin="0,16,0,0" />
<ui:CardControl Margin="0,8,0,0"> <ui:CardControl Margin="0,8,0,0">
<ui:CardControl.Header> <ui:CardControl.Header>
@ -162,15 +162,6 @@
</ui:CardControl.Header> </ui:CardControl.Header>
<ui:ToggleSwitch IsChecked="{Binding Pre2022TexturesEnabled, Mode=TwoWay}" /> <ui:ToggleSwitch IsChecked="{Binding Pre2022TexturesEnabled, Mode=TwoWay}" />
</ui:CardControl> </ui:CardControl>
<ui:CardControl Margin="0,8,0,0">
<ui:CardControl.Header>
<StackPanel>
<TextBlock FontSize="14" Text="Rendering mode" />
<TextBlock Margin="0,2,0,0" FontSize="12" Text="Choose what renderer Roblox should use. VR requires Direct3D/Automatic." Foreground="{DynamicResource TextFillColorTertiaryBrush}" />
</StackPanel>
</ui:CardControl.Header>
<ComboBox Margin="5,0,0,0" Padding="10,5,10,5" Width="200" ItemsSource="{Binding RenderingModes.Keys, Mode=OneTime}" Text="{Binding SelectedRenderingMode, Mode=TwoWay}" />
</ui:CardControl>
<ui:CardControl Margin="0,8,0,0"> <ui:CardControl Margin="0,8,0,0">
<ui:CardControl.Header> <ui:CardControl.Header>
<StackPanel> <StackPanel>

View File

@ -121,8 +121,8 @@
<ComboBox Margin="5,0,0,0" Padding="10,5,10,5" Width="200" ItemsSource="{Binding EmojiTypes.Keys, Mode=OneTime}" Text="{Binding SelectedEmojiType, Mode=TwoWay}" /> <ComboBox Margin="5,0,0,0" Padding="10,5,10,5" Width="200" ItemsSource="{Binding EmojiTypes.Keys, Mode=OneTime}" Text="{Binding SelectedEmojiType, Mode=TwoWay}" />
</ui:CardControl> </ui:CardControl>
<StackPanel x:Name="MiscellaneousOptions">
<TextBlock Text="Miscellaneous" FontSize="16" FontWeight="Medium" Margin="0,16,0,0" /> <TextBlock Text="Miscellaneous" FontSize="16" FontWeight="Medium" Margin="0,16,0,0" />
<ui:CardControl Margin="0,8,0,0"> <ui:CardControl Margin="0,8,0,0">
<ui:CardControl.Header> <ui:CardControl.Header>
<StackPanel> <StackPanel>
@ -137,6 +137,8 @@
<ui:Button Icon="Delete16" Content="Remove applied font" Appearance="Danger" Command="{Binding ManageCustomFontCommand}" Visibility="{Binding DeleteCustomFontVisibility, Mode=OneWay}" /> <ui:Button Icon="Delete16" Content="Remove applied font" Appearance="Danger" Command="{Binding ManageCustomFontCommand}" Visibility="{Binding DeleteCustomFontVisibility, Mode=OneWay}" />
</StackPanel> </StackPanel>
</ui:CardControl> </ui:CardControl>
<StackPanel x:Name="FullscreenOptimizations">
<ui:CardControl Margin="0,8,0,0"> <ui:CardControl Margin="0,8,0,0">
<ui:CardControl.Header> <ui:CardControl.Header>
<StackPanel> <StackPanel>

View File

@ -16,7 +16,7 @@ namespace Bloxstrap.UI.Elements.Menu.Pages
// fullscreen optimizations were only added in windows 10 build 17093 // fullscreen optimizations were only added in windows 10 build 17093
if (Environment.OSVersion.Version.Build < 17093) if (Environment.OSVersion.Version.Build < 17093)
this.MiscellaneousOptions.Visibility = Visibility.Collapsed; this.FullscreenOptimizations.Visibility = Visibility.Collapsed;
} }
} }
} }

View File

@ -1,4 +1,5 @@
using System.Windows.Input; using System.Windows;
using System.Windows.Input;
using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Input;
namespace Bloxstrap.UI.ViewModels namespace Bloxstrap.UI.ViewModels
@ -9,6 +10,8 @@ namespace Bloxstrap.UI.ViewModels
public static bool IsNotFirstRun => !App.IsFirstRun; public static bool IsNotFirstRun => !App.IsFirstRun;
public static Visibility ShowDebugStuff => App.Settings.Prop.OhHeyYouFoundMe ? Visibility.Visible : Visibility.Collapsed;
private static void OpenWebpage(string? location) private static void OpenWebpage(string? location)
{ {
if (location is null) if (location is null)

View File

@ -58,18 +58,6 @@ namespace Bloxstrap.UI.ViewModels.Menu
set => App.FastFlags.SetPreset("Rendering.Framerate", value); set => App.FastFlags.SetPreset("Rendering.Framerate", value);
} }
public IReadOnlyDictionary<string, string> RenderingModes => FastFlagManager.RenderingModes;
public string SelectedRenderingMode
{
get => App.FastFlags.GetPresetEnum(RenderingModes, "Rendering.Mode", "True");
set
{
App.FastFlags.SetPresetEnum("Rendering.Mode", RenderingModes[value], "True");
App.FastFlags.CheckManualFullscreenPreset();
}
}
public bool FixDisplayScaling public bool FixDisplayScaling
{ {
get => App.FastFlags.GetPreset("Rendering.DisableScaling") == "True"; get => App.FastFlags.GetPreset("Rendering.DisableScaling") == "True";