From fd7047eb569cb0f730333241d0ab17f70c61155c Mon Sep 17 00:00:00 2001 From: Khangaroo Date: Fri, 1 Jan 2021 21:24:31 -0500 Subject: [PATCH 1/3] update lua-ffi --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index ce70620..935163e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,7 +70,7 @@ image = {version = "0.22", default-features = false, features = ["png_codec", "p itertools = "0.9.0" lazy_static = "1.4.0" log = "0.4" -lua-ffi = {git = "https://github.com/doukutsu-rs/lua-ffi.git", rev = "a1e7a62d7f583836b4703cfb8e54a68b79ceee11", optional = true} +lua-ffi = {git = "https://github.com/doukutsu-rs/lua-ffi.git", rev = "1ef3caf772d72068297ddf75df06fd2ef8c1daab", optional = true} lru = "0.6.0" num-derive = "0.3.2" num-traits = "0.2.12" From 82cb203ef98f0faaaeede31931eb3ddbb58f407a Mon Sep 17 00:00:00 2001 From: Khangaroo Date: Fri, 1 Jan 2021 21:39:50 -0500 Subject: [PATCH 2/3] really basic text skip --- src/input/dummy_player_controller.rs | 8 ++++++++ src/input/keyboard_player_controller.rs | 10 ++++++++++ src/input/player_controller.rs | 5 +++++ src/input/touch_player_controller.rs | 10 ++++++++++ src/settings.rs | 3 +++ src/text_script.rs | 8 ++++++-- 6 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/input/dummy_player_controller.rs b/src/input/dummy_player_controller.rs index e572e6e..f93dac7 100644 --- a/src/input/dummy_player_controller.rs +++ b/src/input/dummy_player_controller.rs @@ -52,6 +52,10 @@ impl PlayerController for DummyPlayerController { false } + fn skip(&self) -> bool { + false + } + fn trigger_up(&self) -> bool { false } @@ -84,6 +88,10 @@ impl PlayerController for DummyPlayerController { false } + fn trigger_skip(&self) -> bool { + false + } + fn trigger_menu_ok(&self) -> bool { false } diff --git a/src/input/keyboard_player_controller.rs b/src/input/keyboard_player_controller.rs index ea7c12f..ee24b92 100644 --- a/src/input/keyboard_player_controller.rs +++ b/src/input/keyboard_player_controller.rs @@ -24,6 +24,7 @@ bitfield! { pub prev_weapon, set_prev_weapon: 9; pub escape, set_escape: 10; pub enter, set_enter: 11; + pub skip, set_skip: 12; } #[derive(Clone)] @@ -60,6 +61,7 @@ impl PlayerController for KeyboardController { self.state.set_inventory(keyboard::is_key_pressed(ctx, keymap.inventory)); self.state.set_jump(keyboard::is_key_pressed(ctx, keymap.jump)); self.state.set_shoot(keyboard::is_key_pressed(ctx, keymap.shoot)); + self.state.set_skip(keyboard::is_key_pressed(ctx, keymap.skip)); self.state.set_prev_weapon(keyboard::is_key_pressed(ctx, keymap.prev_weapon)); self.state.set_next_weapon(keyboard::is_key_pressed(ctx, keymap.next_weapon)); self.state.set_enter(keyboard::is_key_pressed(ctx, VirtualKeyCode::Return)); @@ -107,6 +109,10 @@ impl PlayerController for KeyboardController { self.state.shoot() } + fn skip(&self) -> bool { + self.state.skip() + } + fn trigger_up(&self) -> bool { self.trigger.up() } @@ -139,6 +145,10 @@ impl PlayerController for KeyboardController { self.trigger.shoot() } + fn trigger_skip(&self) -> bool { + self.trigger.skip() + } + fn trigger_menu_ok(&self) -> bool { self.trigger.jump() || self.trigger.enter() } diff --git a/src/input/player_controller.rs b/src/input/player_controller.rs index e71ea4b..79ef3d7 100644 --- a/src/input/player_controller.rs +++ b/src/input/player_controller.rs @@ -31,6 +31,9 @@ pub trait PlayerController: PlayerControllerClone { /// True if "shoot" button is down. fn shoot(&self) -> bool; + /// True if "skip" button is down. + fn skip(&self) -> bool; + fn trigger_up(&self) -> bool; fn trigger_left(&self) -> bool; @@ -47,6 +50,8 @@ pub trait PlayerController: PlayerControllerClone { fn trigger_shoot(&self) -> bool; + fn trigger_skip(&self) -> bool; + fn trigger_menu_ok(&self) -> bool; fn trigger_menu_back(&self) -> bool; diff --git a/src/input/touch_player_controller.rs b/src/input/touch_player_controller.rs index a02251b..581b209 100644 --- a/src/input/touch_player_controller.rs +++ b/src/input/touch_player_controller.rs @@ -133,6 +133,11 @@ impl PlayerController for TouchPlayerController { self.state.shoot() } + fn skip(&self) -> bool { + // TODO + false + } + fn trigger_up(&self) -> bool { self.trigger.up() } @@ -165,6 +170,11 @@ impl PlayerController for TouchPlayerController { self.trigger.shoot() } + fn trigger_skip(&self) -> bool { + // TODO + false + } + fn trigger_menu_ok(&self) -> bool { self.trigger.jump() } diff --git a/src/settings.rs b/src/settings.rs index b8251ee..8bd2310 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -72,6 +72,7 @@ pub struct PlayerKeyMap { pub next_weapon: VirtualKeyCode, pub jump: VirtualKeyCode, pub shoot: VirtualKeyCode, + pub skip: VirtualKeyCode, pub inventory: VirtualKeyCode, pub map: VirtualKeyCode, } @@ -86,6 +87,7 @@ fn p1_default_keymap() -> PlayerKeyMap { next_weapon: VirtualKeyCode::S, jump: VirtualKeyCode::Z, shoot: VirtualKeyCode::X, + skip: VirtualKeyCode::LControl, inventory: VirtualKeyCode::Q, map: VirtualKeyCode::W, } @@ -101,6 +103,7 @@ fn p2_default_keymap() -> PlayerKeyMap { next_weapon: VirtualKeyCode::H, jump: VirtualKeyCode::B, shoot: VirtualKeyCode::N, + skip: VirtualKeyCode::RControl, inventory: VirtualKeyCode::T, map: VirtualKeyCode::Y, } diff --git a/src/text_script.rs b/src/text_script.rs index ec2c5fc..ba613be 100644 --- a/src/text_script.rs +++ b/src/text_script.rs @@ -564,7 +564,9 @@ impl TextScriptVM { } if remaining > 1 { - let ticks = if state.textscript_vm.flags.fast() { + let ticks = if state.textscript_vm.flags.fast() + || game_scene.player1.controller.skip() + || game_scene.player2.controller.skip() { 0 } else if game_scene.player1.controller.jump() || game_scene.player1.controller.shoot() @@ -633,8 +635,10 @@ impl TextScriptVM { TextScriptExecutionState::WaitInput(event, ip) => { if game_scene.player1.controller.trigger_jump() || game_scene.player1.controller.trigger_shoot() + || game_scene.player1.controller.skip() || game_scene.player2.controller.trigger_jump() - || game_scene.player2.controller.trigger_shoot() { + || game_scene.player2.controller.trigger_shoot() + || game_scene.player2.controller.skip() { state.textscript_vm.state = TextScriptExecutionState::Running(event, ip); } break; From 8e0fb80c8cdf59883c9e6ec1c6823b4f958949ed Mon Sep 17 00:00:00 2001 From: Khangaroo Date: Fri, 1 Jan 2021 21:44:58 -0500 Subject: [PATCH 3/3] fix warp text positioning on widescreen --- src/components/stage_select.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/stage_select.rs b/src/components/stage_select.rs index e2372a6..504863a 100644 --- a/src/components/stage_select.rs +++ b/src/components/stage_select.rs @@ -148,7 +148,7 @@ impl GameEntity<(&Player, &Player)> for StageSelect { let batch = state.texture_set.get_or_load_batch(ctx, &state.constants, "TextBox")?; - batch.add_rect(128.0, self.stage_select_text_y_pos as f32, &state.constants.textscript.stage_select_text); + batch.add_rect((state.canvas_size.0 / 2.0) - 32.0, self.stage_select_text_y_pos as f32, &state.constants.textscript.stage_select_text); if slot_count > 0 { batch.add_rect(slot_offset + self.current_teleport_slot as f32 * 40.0, 64.0, &state.constants.textscript.cursor[self.tick / 2 % 2]); }