Skip to content

Replace the compound-file save container and remove COM from the object model - #140

Merged
ZivDero merged 27 commits into
OpenTS-Developers:mainfrom
gunnarbeutner:savegame-and-com
Sep 10, 2026
Merged

Replace the compound-file save container and remove COM from the object model#140
ZivDero merged 27 commits into
OpenTS-Developers:mainfrom
gunnarbeutner:savegame-and-com

Conversation

@gunnarbeutner

Copy link
Copy Markdown
Contributor

This implements a custom format for save games that's independent of compound documents. It also hardens the compressed blobs so that heap overwrites using maliciously crafted save games isn't possible anymore.

With compound files gone this also then removes most other uses of COM, e.g. for locomotors. Compatibility with custom RULES.INI files is kept.

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

Development builds of e8fb6ce:

The links work without a GitHub account. Artifacts expire after 90 days, and this comment follows the latest successful build.

@gunnarbeutner
gunnarbeutner force-pushed the savegame-and-com branch 2 times, most recently from 2717464 to b75aa00 Compare September 7, 2026 10:48

@tomsons26 tomsons26 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Way way way too much is being done in this PR, split it in seperate PRs

@gunnarbeutner
gunnarbeutner force-pushed the savegame-and-com branch 2 times, most recently from fecbbe0 to 2478f7b Compare September 9, 2026 10:38
@gunnarbeutner
gunnarbeutner marked this pull request as ready for review September 9, 2026 10:43
@gunnarbeutner

Copy link
Copy Markdown
Contributor Author

Now that the LZO stuff has landed I've rebased this on top of it (and fixed some minor correctness issues).

@ZivDero ZivDero added the no change record Engine change needs no manual change record label Sep 9, 2026
@ZivDero

ZivDero commented Sep 9, 2026

Copy link
Copy Markdown
Member

Alright, I made some various fixes here and there. Overall, pretty good.
On release this is also more performant. One downside is on debug, saving is about 10x slower, possibly due to debug containers. Could look into this, but it's not critical.

If you're good with the changes I'll merge.

@gunnarbeutner

Copy link
Copy Markdown
Contributor Author

Aye, looks good to me. Go for it.

@ZivDero
ZivDero merged commit 945e858 into OpenTS-Developers:main Sep 10, 2026
4 checks passed
@gunnarbeutner
gunnarbeutner deleted the savegame-and-com branch September 10, 2026 06:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no change record Engine change needs no manual change record

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants