Skip to content

Add Hardcore Mode with Save/Load Restrictions - #64

Open
chaserli wants to merge 1 commit into
CnCNet:mainfrom
chaserli:feature/nosave
Open

Add Hardcore Mode with Save/Load Restrictions#64
chaserli wants to merge 1 commit into
CnCNet:mainfrom
chaserli:feature/nosave

Conversation

@chaserli

@chaserli chaserli commented Mar 4, 2026

Copy link
Copy Markdown
Member

Description

Adds a Hardcore Mode for campaign missions.

When enabled, Hardcore Mode prevents the player from saving or loading the game during a mission, and changes the mission flow to better fit a no-save challenge.

Features

  • Disables Save, Load, and Delete Game during the mission.

  • Replaces the normal mission failure prompt with a Hardcore-specific Retry / Leave prompt.

  • Displays a Hardcore indicator on the loading screen.

    • Uses hardcorelogo.shp when available.
    • Falls back to the TXT_HARDCORE_MODE CSF string.
  • Updates the mission end dialog to use an appropriate exit option.

  • Forces campaign scenarios using Hardcore Mode to end the game normally instead of allowing them to continue through the regular save/load flow.

Configuration

Enable Hardcore Mode with:

[Settings]
DisableSaveLoad=true

in spawn.ini

Additional CSF strings can be provided for localization:

TXT_HARDCORE_MODE
TXT_HARDCORE_FAILURE
GUI:CantSave
GUI:CantLoad

@chaserli
chaserli marked this pull request as draft March 4, 2026 04:17
@github-actions

github-actions Bot commented Mar 4, 2026

Copy link
Copy Markdown

Nightly build for this pull request:

This comment is automatic and is meant to allow guests to get latest nightly builds for this pull request without registering. It is updated on every successful build.

Coronia added a commit to Phobos-developers/Phobos that referenced this pull request Jul 25, 2026
ported from CnCNet/yrpp-spawner#64 since this is
more of a standalone function than a part of disabling save, and is less
relevant to Spawner

- A timer can be displayed to show how many time has passed since game
starts.
- The timer will be shown in the format of `TXT_GAMETIME hh:mm:ss`. For
localization add `TXT_GAMETIME` into your `.csf` file.
- This will show the ingame time by default. It can also be set to show
real time by [real time timers](#real-time-timers)
- `ShowGameTime.BoardOpacity` can be used to set the opacitiy of
background for game time display.
- Observer can't see this timer since they've already gotten one on the
top of sidebar.

In `RA2MD.INI`:
```ini
[Phobos]
ShowGameTime=false             ; boolean
ShowGameTime.BoardOpacity=40   ; integer
```

original by Trsdy
@chaserli
chaserli marked this pull request as ready for review August 3, 2026 02:49
@chaserli chaserli changed the title option : disable savegame Add Hardcore Mode with Save/Load Restrictions Sep 3, 2026
Comment thread src/Misc/NoSaveLoadMode.cpp Outdated
@SadPencil
SadPencil requested a review from Belonit September 3, 2026 14:08
@Belonit

Belonit commented Sep 5, 2026

Copy link
Copy Markdown
Member

I'm not sure that spawner should introduce such features. Perhaps this should be in Phobos?
@Metadorius Any thoughts?

@chaserli

chaserli commented Sep 6, 2026

Copy link
Copy Markdown
Member Author

I'm not sure that spawner should introduce such features. Perhaps this should be in Phobos?

This is similar to the existing “Custom Mission” feature. It is originally designed around one game session launching one mission, then the mission ends and the session ends.

This also comes with the same constraints. For example, implementing it requires hard-patching certain addresses, which can break if the game proceeds to another mission. Putting the UI toggles in the vanilla launcher is both difficult, inappropriate, and unnecessary. RA2MD.ini is not the right place for this either, etc.

In Spawner, however, it fits naturally through spawn.ini, works seamlessly with the DTA client. The spawner skips the cumbersome procedures before starting the mission, which could avoid those shitty ass problems.

It also complements the " Custom Mission " feature a bit.

FYI original PR in Phobos Phobos-developers/Phobos#1402

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants