really basic text skip

This commit is contained in:
Khangaroo 2021-01-01 21:39:50 -05:00
parent fd7047eb56
commit 82cb203ef9
6 changed files with 42 additions and 2 deletions

View File

@ -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
}

View File

@ -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()
}

View File

@ -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;

View File

@ -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()
}

View File

@ -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,
}

View File

@ -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;