mirror of
https://github.com/doukutsu-rs/doukutsu-rs
synced 2025-07-09 22:16:20 +00:00
v2
This commit is contained in:
parent
a48a59125f
commit
af9827ccab
|
@ -86,7 +86,7 @@ impl MapSystem {
|
||||||
ctx: &mut Context,
|
ctx: &mut Context,
|
||||||
stage: &Stage,
|
stage: &Stage,
|
||||||
players: [&Player; 2],
|
players: [&Player; 2],
|
||||||
) -> GameResult {
|
) -> GameResult<bool> {
|
||||||
if state.textscript_vm.state == TextScriptExecutionState::MapSystem {
|
if state.textscript_vm.state == TextScriptExecutionState::MapSystem {
|
||||||
if self.state == MapSystemState::Hidden {
|
if self.state == MapSystemState::Hidden {
|
||||||
self.state = MapSystemState::FadeInBox(0);
|
self.state = MapSystemState::FadeInBox(0);
|
||||||
|
@ -98,7 +98,7 @@ impl MapSystem {
|
||||||
if self.state == MapSystemState::Hidden {
|
if self.state == MapSystemState::Hidden {
|
||||||
self.tick = 0;
|
self.tick = 0;
|
||||||
*self.has_map_data.borrow_mut() = false;
|
*self.has_map_data.borrow_mut() = false;
|
||||||
return Ok(());
|
return Ok(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
self.tick = self.tick.wrapping_add(1);
|
self.tick = self.tick.wrapping_add(1);
|
||||||
|
@ -112,6 +112,8 @@ impl MapSystem {
|
||||||
*self.has_map_data.borrow_mut() = false;
|
*self.has_map_data.borrow_mut() = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let mut if_quit = false;
|
||||||
|
|
||||||
match self.state {
|
match self.state {
|
||||||
MapSystemState::FadeInBox(tick) => {
|
MapSystemState::FadeInBox(tick) => {
|
||||||
if tick >= 8 {
|
if tick >= 8 {
|
||||||
|
@ -136,7 +138,13 @@ impl MapSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
for player in &players {
|
for player in &players {
|
||||||
if player.controller.trigger_jump() || player.controller.trigger_shoot() {
|
if player.controller.trigger_shoot() {
|
||||||
|
state.textscript_vm.state = TextScriptExecutionState::Ended;
|
||||||
|
self.state = MapSystemState::Hidden;
|
||||||
|
if_quit = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if player.controller.trigger_jump() {
|
||||||
self.state = MapSystemState::FadeOutBox(8);
|
self.state = MapSystemState::FadeOutBox(8);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -144,7 +152,13 @@ impl MapSystem {
|
||||||
}
|
}
|
||||||
MapSystemState::Visible => {
|
MapSystemState::Visible => {
|
||||||
for player in &players {
|
for player in &players {
|
||||||
if player.controller.trigger_jump() || player.controller.trigger_shoot() {
|
if player.controller.trigger_shoot() {
|
||||||
|
state.textscript_vm.state = TextScriptExecutionState::Ended;
|
||||||
|
self.state = MapSystemState::Hidden;
|
||||||
|
if_quit = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if player.controller.trigger_jump() {
|
||||||
self.state = MapSystemState::FadeOutBox(8);
|
self.state = MapSystemState::FadeOutBox(8);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -153,7 +167,7 @@ impl MapSystem {
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(if_quit)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn draw(
|
pub fn draw(
|
||||||
|
|
|
@ -13,7 +13,7 @@ use super::settings_menu::SettingsMenu;
|
||||||
#[derive(PartialEq, Eq, Copy, Clone)]
|
#[derive(PartialEq, Eq, Copy, Clone)]
|
||||||
#[repr(u8)]
|
#[repr(u8)]
|
||||||
#[allow(unused)]
|
#[allow(unused)]
|
||||||
enum CurrentMenu {
|
pub enum CurrentMenu {
|
||||||
PauseMenu,
|
PauseMenu,
|
||||||
OptionsMenu,
|
OptionsMenu,
|
||||||
ConfirmMenu,
|
ConfirmMenu,
|
||||||
|
@ -93,6 +93,13 @@ impl PauseMenu {
|
||||||
self.is_paused
|
self.is_paused
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn gog(&mut self, state: &mut SharedGameState) {
|
||||||
|
self.is_paused = true;
|
||||||
|
self.current_menu = CurrentMenu::ConfirmMenu;
|
||||||
|
self.confirm_menu.entries[0] = MenuEntry::Disabled(state.t("menus.pause_menu.title_confirm"));
|
||||||
|
self.pause_menu.selected = 3;
|
||||||
|
}
|
||||||
|
|
||||||
pub fn tick(&mut self, state: &mut SharedGameState, ctx: &mut Context) -> GameResult {
|
pub fn tick(&mut self, state: &mut SharedGameState, ctx: &mut Context) -> GameResult {
|
||||||
self.update_sizes(state);
|
self.update_sizes(state);
|
||||||
|
|
||||||
|
@ -160,7 +167,10 @@ impl PauseMenu {
|
||||||
_ => (),
|
_ => (),
|
||||||
},
|
},
|
||||||
MenuSelectionResult::Selected(2, _) | MenuSelectionResult::Canceled => {
|
MenuSelectionResult::Selected(2, _) | MenuSelectionResult::Canceled => {
|
||||||
self.current_menu = CurrentMenu::PauseMenu;
|
if self.tick >= 3 {
|
||||||
|
self.tick = 0;
|
||||||
|
self.current_menu = CurrentMenu::PauseMenu;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
},
|
},
|
||||||
|
|
|
@ -1753,7 +1753,9 @@ impl Scene for GameScene {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.map_system.tick(state, ctx, &self.stage, [&self.player1, &self.player2])?;
|
if self.map_system.tick(state, ctx, &self.stage, [&self.player1, &self.player2])? {
|
||||||
|
self.pause_menu.gog(state);
|
||||||
|
}
|
||||||
|
|
||||||
match state.textscript_vm.mode {
|
match state.textscript_vm.mode {
|
||||||
ScriptMode::Map => {
|
ScriptMode::Map => {
|
||||||
|
|
Loading…
Reference in a new issue