feat(render): implement Campaign AR and terrain fidelity

This commit is contained in:
Erik 2026-08-22 13:13:29 +02:00
parent 99cf26e00c
commit 7a5f96ede5
368 changed files with 50611 additions and 950 deletions

View file

@ -28,13 +28,25 @@ if (!string.IsNullOrWhiteSpace(selfUpdateData)
using var http = new HttpClient();
var manager = new LauncherSelfUpdateManager(Paths(selfUpdateData), http);
SelfUpdateStartupResult startup = await LauncherSelfUpdateBootstrap.HandleAsync(
effectiveArgs,
manager,
Path.GetFullPath(AppContext.BaseDirectory),
Path.GetFullPath(
Environment.ProcessPath
?? throw new InvalidOperationException("Process path is unavailable.")));
SelfUpdateStartupResult startup;
try
{
startup = await LauncherSelfUpdateBootstrap.HandleAsync(
effectiveArgs,
manager,
Path.GetFullPath(AppContext.BaseDirectory),
Path.GetFullPath(
Environment.ProcessPath
?? throw new InvalidOperationException("Process path is unavailable.")));
}
catch (LauncherUpdateException)
{
// Refusal is an expected result in the hostile-state process tests.
// Translate it to a stable non-zero code instead of invoking the OS
// unhandled-exception path, which can launch a crash reporter and make
// a process-lifetime test wait on diagnostics rather than our result.
return 74;
}
if (startup.ShouldExit)
{
return startup.ExitCode;
@ -149,11 +161,19 @@ static async Task<int> BootstrapProbeAsync(string[] arguments)
using var http = new HttpClient();
var manager = new LauncherSelfUpdateManager(Paths(arguments[0]), http);
SelfUpdateStartupResult result = await LauncherSelfUpdateBootstrap.HandleAsync(
["ordinary"],
manager,
Path.GetFullPath(arguments[1]),
Path.GetFullPath(arguments[2]));
SelfUpdateStartupResult result;
try
{
result = await LauncherSelfUpdateBootstrap.HandleAsync(
["ordinary"],
manager,
Path.GetFullPath(arguments[1]),
Path.GetFullPath(arguments[2]));
}
catch (LauncherUpdateException)
{
return 74;
}
File.WriteAllText(
Path.GetFullPath(arguments[3]),
result.ShouldExit ? "exit" : string.Join("\n", result.RemainingArguments));