Skip to content

Cherry Pick Many Space Wizards Commits - #77

Merged
DEATHB4DEFEAT merged 63 commits into
masterfrom
wizmerrge
Mar 11, 2026
Merged

Cherry Pick Many Space Wizards Commits#77
DEATHB4DEFEAT merged 63 commits into
masterfrom
wizmerrge

Conversation

@DEATHB4DEFEAT

@DEATHB4DEFEAT DEATHB4DEFEAT commented Mar 11, 2026

Copy link
Copy Markdown
Member

A yearish or something commits, I don't remember, hooray!

Need to double check mac support now that I have one, noting these commits I didn't add for later:
space-wizards/SS14.Launcher@76235d4
space-wizards/SS14.Launcher@e5a01fb
space-wizards/SS14.Launcher@69baa4b

PJB3005 and others added 30 commits March 10, 2026 17:32
Yes unironically it only happens on that culture. Also gigantic skill issue on our part here.
Fixes #222, hopefully

Yes I did test this. No idea why this is only an issue for some people.
* Supply engine version CVar from launcher

* Clarify comment

* Clarify comment, hopefully
Right now, running the ARM64 launcher after previously having ran a x64 launcher could cause errors, as the installed engine versions would be x64. We now clear old engine versions on startup if we detect the architecture changed.

This seemed like the simplest way to handle this scenario. I also thought of having the architecture in every EngineInstallation and EngineModule row, but that would've been way more complicated.
Avalonia moment.

Fixes #227
Probably fixes #92
Now when the launcher gets an error during downloading, it will keep all the blobs that were successfully downloaded. This means restarting the download won't have to redownload that data.

There were basically two problems that needed solving to implement this.

The first problem is that the launcher wants all content blobs to be referenced, or else it'll cull them on update. This is easy enough to deal with: we just track interrupted downloads with some new DB tables and make the culling logic aware of those.

The second problem is keeping state consistent. We can't practically keep the entire database consistent during the download process, so we relied solely on the SQLite transaction to undo everything if something went wrong. Given that we now want to persist the content blobs, that won't do.

Now, if an error gets caught during downloads, we still commit the database but manually delete the broken data. Given that this is obviously a dangerous situation to be in, I rewrote much of the logic to avoid writing invalid data. For example, previously we wrote the content manifest directly to the DB as it was getting read in, which also meant immediately writing empty placeholder blobs. Now the blobs just get added as they're downloaded. All things considered this cleans up the code too so it's probably a good thing.

At first, I wanted to make all downloads first be stored as an interrupted download, and then swap the data out to a proper content version later. I ended up not doing this however as it'd make the joinery between the delta and zip download system more complicated. It would allow us to do intermittent commits, I guess, but it's something to consider for later.

Related to #187, but does not close it (ideally we'd automatically retry for transient network errors).
Yeah that was getting pretty unwieldy.
Keep it in sync with the engine, support the new library names
Avoid having to load the entire .NET Framework runtime on launcher startup. Gigantic waste.

This is going to require changes to the publishing workflow... Ugh. Oh well.
Also added --debug flag to bootstrap so that console.bat can just run bootstrap instead.
Windows is broken so we can't use these until DXGI is fixed.
@DEATHB4DEFEAT DEATHB4DEFEAT added Priority: 1-Urgent Must be resolved immediately Size: 1-Very Large For especially large issues/PRs Type: Port Brings something to here from another codebase labels Mar 11, 2026
Visne and others added 23 commits March 10, 2026 18:14
* Make AngleBox shrink automatically

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>

* Add icon files

* Use icons

* Better licensing info

* Cleanup

* Cleanup

* Cleanup

* Cleanup

* Cleanup

* Cleanup

* Remove Favorite -> Unfavorite

* Recreate SVGs from scratch (public domain), add instructions and change some UI text

* Set star icon purely through XAML.

* Undo ServerEntryView.xaml.cs changes entirely

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Also fixed a random documention commentS to use "their" instead of "his"
Instead of having to copy all the replay files into the content DB, the loader can now load the files directly out of the zip.

Has some requirements, but none of those are relevant for 300 MB SS14 replays.
Setup for future work to allow us to make file access not completely buffered to hell
Still present in the (newer) development tab.
This reverts commit 7cfecb3.

This version of SDL3 erroneously raises SDL_QUIT when closing secondary
windows. This is breaking OpenDream, so revert it. It's not critical
anyways as it only adds the fancy loading progress bars to bleeding-edge
servers.
Nixpkgs maintainers annoyingly readded back dotnet 8 to the package, following #163 I assume this is the cause.
@DEATHB4DEFEAT
DEATHB4DEFEAT marked this pull request as ready for review March 11, 2026 02:07
@DEATHB4DEFEAT
DEATHB4DEFEAT merged commit 331d9fc into master Mar 11, 2026
2 checks passed
@DEATHB4DEFEAT

Copy link
Copy Markdown
Member Author

I did it again with the squash augh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Priority: 1-Urgent Must be resolved immediately Size: 1-Very Large For especially large issues/PRs Type: Port Brings something to here from another codebase

Projects

None yet

Development

Successfully merging this pull request may close these issues.