From 75f5e9f36443bba78163b25f675f4c757f1ced2c Mon Sep 17 00:00:00 2001 From: dawnDus <96957561+dawndus@users.noreply.github.com> Date: Tue, 26 Apr 2022 23:23:55 -0400 Subject: [PATCH] Cutscene skip tutorial prompt --- src/scene/game_scene.rs | 10 +++++++++- src/shared_game_state.rs | 3 +++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/scene/game_scene.rs b/src/scene/game_scene.rs index 7c3142c..cad33d5 100644 --- a/src/scene/game_scene.rs +++ b/src/scene/game_scene.rs @@ -1747,6 +1747,7 @@ impl Scene for GameScene { self.skip_counter += 1; if self.skip_counter >= CUTSCENE_SKIP_WAIT { state.textscript_vm.flags.set_cutscene_skip(true); + state.tutorial_counter = 0; } } else if self.skip_counter > 0 { self.skip_counter -= 1; @@ -1802,6 +1803,13 @@ impl Scene for GameScene { self.tick = self.tick.wrapping_add(1); } + if state.tutorial_counter > 0 { + state.tutorial_counter = state.tutorial_counter.saturating_sub(1); + if state.control_flags.control_enabled() { + state.tutorial_counter = 0; + } + } + Ok(()) } @@ -2030,7 +2038,7 @@ impl Scene for GameScene { self.falling_island.draw(state, ctx, &self.frame)?; self.text_boxes.draw(state, ctx, &self.frame)?; - if self.skip_counter > 1 { + if self.skip_counter > 1 || state.tutorial_counter > 0 { let text = state.tt( "game.cutscene_skip", HashMap::from([("key".to_owned(), format!("{:?}", state.settings.player1_key_map.inventory))]), diff --git a/src/shared_game_state.rs b/src/shared_game_state.rs index 67eb01b..ff459c7 100644 --- a/src/shared_game_state.rs +++ b/src/shared_game_state.rs @@ -272,6 +272,7 @@ pub struct SharedGameState { pub difficulty: GameDifficulty, pub replay_state: ReplayState, pub mod_requirements: ModRequirements, + pub tutorial_counter: u16, pub shutdown: bool, } @@ -399,6 +400,7 @@ impl SharedGameState { difficulty: GameDifficulty::Normal, replay_state: ReplayState::None, mod_requirements, + tutorial_counter: 0, shutdown: false, }) } @@ -510,6 +512,7 @@ impl SharedGameState { self.control_flags.set_tick_world(true); self.fade_state = FadeState::Hidden; self.textscript_vm.state = TextScriptExecutionState::Running(self.constants.game.new_game_event, 0); + self.tutorial_counter = 300; self.next_scene = Some(Box::new(next_scene));