CleverRaven / CleverRaven/Cataclysm-DDA

Introduce an external save compression tool.

Open
#76,012 4 comments 1 reaction 0 assignees View on GitHub
<Suggestion / Discussion> Code: Infrastructure / Style / Static Analysis Help Wanted
Dominant language
C++
Stars
13.1k
Forks
4.6k
Avg merge
2d 1h
Merged PRs (30d)
200

Description

### Is your feature request related to a problem? Please describe.

It's not unusual with crashes on loading, and those saves can't be compressed by the compression tool because the tool requires the save to be loaded. It would be useful to have an external tool that's capable of compressing a designated save, without the need to successfully load it.

This might provide help to hunt down such errors.

### Solution you would like.

Two alternatives, not necessarily mutually exclusive:
- Compile an external exe similar to how the JSON formatter is compiled. The tool would ask for a save directory (not the "save" directory, but directories within it, possibly with a check to avoid the "save" directory being designated) and compress the save in it.
- Provide access to the save functionality from the top menu (where? none of the sections really make sense) whereby you could select the save from a save list similar or identical to the one where you normally select the save to load.

### Describe alternatives you have considered.

Prompted by the appearance of yet another bug report of this kind.

### Additional context

The tool would have to make it clear it's NOT suitable for compressing saves to move them between devices, as data is discarded.

Contributor guide

Open the contributing guide

Research direction

Start by examining how the JSON formatter is compiled as an external executable and how the existing save list is exposed from the top menu. The work is done when a designated save can be compressed without loading successfully, with clear warning that the resulting data is not suitable for moving saves between devices.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
game-dev, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.