mirror of
https://github.com/doukutsu-rs/doukutsu-rs
synced 2025-12-02 09:30:20 +00:00
Delete replay menu option
This commit is contained in:
parent
28a3f160c3
commit
daea35381b
|
|
@ -44,7 +44,8 @@
|
||||||
"challenge_menu": {
|
"challenge_menu": {
|
||||||
"start": "Start",
|
"start": "Start",
|
||||||
"no_replay": "No Replay",
|
"no_replay": "No Replay",
|
||||||
"replay_best": "Replay Best"
|
"replay_best": "Replay Best",
|
||||||
|
"delete_replay": "Delete Replay"
|
||||||
},
|
},
|
||||||
|
|
||||||
"options_menu": {
|
"options_menu": {
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,8 @@
|
||||||
"challenge_menu": {
|
"challenge_menu": {
|
||||||
"start": "スタート",
|
"start": "スタート",
|
||||||
"no_replay": "ノーリプレイ",
|
"no_replay": "ノーリプレイ",
|
||||||
"replay_best": "ベストプレイを再生"
|
"replay_best": "ベストプレイを再生",
|
||||||
|
"delete_replay": "リプレイを削除"
|
||||||
},
|
},
|
||||||
"options_menu": {
|
"options_menu": {
|
||||||
"graphics": "グラフィック",
|
"graphics": "グラフィック",
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ use crate::npc::list::NPCList;
|
||||||
use crate::npc::{NPCLayer, NPC};
|
use crate::npc::{NPCLayer, NPC};
|
||||||
use crate::physics::{PhysicalEntity, OFFSETS};
|
use crate::physics::{PhysicalEntity, OFFSETS};
|
||||||
use crate::player::{ControlMode, Player, TargetPlayer};
|
use crate::player::{ControlMode, Player, TargetPlayer};
|
||||||
use crate::rng::{XorShift, RNG};
|
use crate::rng::RNG;
|
||||||
use crate::scene::title_scene::TitleScene;
|
use crate::scene::title_scene::TitleScene;
|
||||||
use crate::scene::Scene;
|
use crate::scene::Scene;
|
||||||
use crate::scripting::tsc::credit_script::CreditScriptVM;
|
use crate::scripting::tsc::credit_script::CreditScriptVM;
|
||||||
|
|
|
||||||
|
|
@ -192,6 +192,7 @@ impl Scene for TitleScene {
|
||||||
self.confirm_menu.push_entry(MenuEntry::Disabled("".to_owned()));
|
self.confirm_menu.push_entry(MenuEntry::Disabled("".to_owned()));
|
||||||
self.confirm_menu.push_entry(MenuEntry::Active(state.t("menus.challenge_menu.start")));
|
self.confirm_menu.push_entry(MenuEntry::Active(state.t("menus.challenge_menu.start")));
|
||||||
self.confirm_menu.push_entry(MenuEntry::Disabled(state.t("menus.challenge_menu.no_replay")));
|
self.confirm_menu.push_entry(MenuEntry::Disabled(state.t("menus.challenge_menu.no_replay")));
|
||||||
|
self.confirm_menu.push_entry(MenuEntry::Hidden);
|
||||||
self.confirm_menu.push_entry(MenuEntry::Active(state.t("common.back")));
|
self.confirm_menu.push_entry(MenuEntry::Active(state.t("common.back")));
|
||||||
self.confirm_menu.selected = 1;
|
self.confirm_menu.selected = 1;
|
||||||
|
|
||||||
|
|
@ -301,11 +302,16 @@ impl Scene for TitleScene {
|
||||||
self.confirm_menu.width =
|
self.confirm_menu.width =
|
||||||
(state.font.text_width(mod_name.chars(), &state.constants).max(50.0) + 32.0) as u16;
|
(state.font.text_width(mod_name.chars(), &state.constants).max(50.0) + 32.0) as u16;
|
||||||
self.confirm_menu.entries[0] = MenuEntry::Disabled(mod_name);
|
self.confirm_menu.entries[0] = MenuEntry::Disabled(mod_name);
|
||||||
self.confirm_menu.entries[2] = if state.has_replay_data(ctx) {
|
if state.has_replay_data(ctx) {
|
||||||
MenuEntry::Active(state.t("menus.challenge_menu.replay_best"))
|
self.confirm_menu.entries[2] =
|
||||||
|
MenuEntry::Active(state.t("menus.challenge_menu.replay_best"));
|
||||||
|
self.confirm_menu.entries[3] =
|
||||||
|
MenuEntry::Active(state.t("menus.challenge_menu.delete_replay"));
|
||||||
} else {
|
} else {
|
||||||
MenuEntry::Disabled(state.t("menus.challenge_menu.no_replay"))
|
self.confirm_menu.entries[2] =
|
||||||
};
|
MenuEntry::Disabled(state.t("menus.challenge_menu.no_replay"));
|
||||||
|
self.confirm_menu.entries[3] = MenuEntry::Hidden;
|
||||||
|
}
|
||||||
self.nikumaru_rec.load_counter(state, ctx)?;
|
self.nikumaru_rec.load_counter(state, ctx)?;
|
||||||
self.current_menu = CurrentMenu::ChallengeConfirmMenu;
|
self.current_menu = CurrentMenu::ChallengeConfirmMenu;
|
||||||
}
|
}
|
||||||
|
|
@ -332,7 +338,11 @@ impl Scene for TitleScene {
|
||||||
state.reload_resources(ctx)?;
|
state.reload_resources(ctx)?;
|
||||||
state.start_new_game(ctx)?;
|
state.start_new_game(ctx)?;
|
||||||
}
|
}
|
||||||
MenuSelectionResult::Selected(3, _) | MenuSelectionResult::Canceled => {
|
MenuSelectionResult::Selected(3, _) => {
|
||||||
|
state.delete_replay_data(ctx)?;
|
||||||
|
self.current_menu = CurrentMenu::ChallengesMenu;
|
||||||
|
}
|
||||||
|
MenuSelectionResult::Selected(4, _) | MenuSelectionResult::Canceled => {
|
||||||
self.current_menu = CurrentMenu::ChallengesMenu;
|
self.current_menu = CurrentMenu::ChallengesMenu;
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
||||||
|
|
@ -729,6 +729,13 @@ impl SharedGameState {
|
||||||
filesystem::user_exists(ctx, [self.get_rec_filename(), ".rep".to_string()].join(""))
|
filesystem::user_exists(ctx, [self.get_rec_filename(), ".rep".to_string()].join(""))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn delete_replay_data(&self, ctx: &mut Context) -> GameResult {
|
||||||
|
if self.has_replay_data(ctx) {
|
||||||
|
filesystem::user_delete(ctx, [self.get_rec_filename(), ".rep".to_string()].join(""))?;
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
pub fn get_damage(&self, hp: i32) -> i32 {
|
pub fn get_damage(&self, hp: i32) -> i32 {
|
||||||
match self.difficulty {
|
match self.difficulty {
|
||||||
GameDifficulty::Easy => cmp::max(hp / 2, 1),
|
GameDifficulty::Easy => cmp::max(hp / 2, 1),
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue