Merge pull request #7 from khang06/master

collection of minor stuff
This commit is contained in:
alula 2021-01-03 05:34:37 +01:00 committed by GitHub
commit 1c1beb4f3e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 44 additions and 4 deletions

View File

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

View File

@ -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]);
}

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;