fix(engine): Restore-prompt resolution suppresses Home auto-show
Resolving the Welcome-back / Restore prompt (either Continue or New game) cleared `PendingRestoredGame` and despawned the modal, but the launch-time Home auto-show then fired the next frame and stacked itself over the player's chosen path — clicking "New game" would deal a fresh game AND immediately pop the mode picker on top. `LaunchHomeShown` becomes pub so `handle_restore_prompt` can flip it to `true` after either resolution; `M` still re-opens the picker on demand. Headless tests already pre-set the flag to true via `HomePlugin::headless()`, so they're unaffected. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -120,8 +120,12 @@ struct HomeModeCard(HomeMode);
|
||||
/// the first time it spawns the modal, so the auto-show is one-shot per
|
||||
/// process — subsequent dismissals (Cancel / mode pick) don't trigger
|
||||
/// a respawn, but the player can still re-open the picker with `M`.
|
||||
///
|
||||
/// Other plugins (e.g. `game_plugin`'s restore-prompt handler) can flip
|
||||
/// the flag manually to suppress the launch auto-show when the player
|
||||
/// has already made a launch-time choice through a different surface.
|
||||
#[derive(Resource, Debug, Default)]
|
||||
struct LaunchHomeShown(bool);
|
||||
pub struct LaunchHomeShown(pub bool);
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Plugin
|
||||
|
||||
Reference in New Issue
Block a user