This PR leverages the merged in rust-g#1 to provide a button on the character setup screen that allows players to export their entire player save, including user preferences and all character slots, to a JSON file which they can then download.
Included in this PR are the compiled rust-g binaries for both platforms from the above linked repo, as well as the new rust_g_yw.dm file it creates so as not to mess with upstream's custom handwritten rust_g.dm.
This implementation creates no temp files on the host disk, it's all handled by a dynamic javascript blob, so there shouldn't be any issues with filesystem security on that end.
Incidentally it also led to the creation of a breakout code/modules/client/preferences_yw.dm to house this change and future additions to the core preferences file.
Player confirmation dialog:
Internet Explorer download windows:
The backup window that allows people to copy-paste their save in case the auto download fails:
This PR leverages the merged in rust-g#1 to provide a button on the character setup screen that allows players to export their entire player save, including user preferences and all character slots, to a JSON file which they can then download.
Included in this PR are the compiled rust-g binaries for both platforms from the above linked repo, as well as the new
rust_g_yw.dm
file it creates so as not to mess with upstream's custom handwrittenrust_g.dm
.This implementation creates no temp files on the host disk, it's all handled by a dynamic javascript blob, so there shouldn't be any issues with filesystem security on that end.
Incidentally it also led to the creation of a breakout
code/modules/client/preferences_yw.dm
to house this change and future additions to the core preferences file.Player confirmation dialog:
Internet Explorer download windows:
The backup window that allows people to copy-paste their save in case the auto download fails: