20 lines
795 B
Rust
Executable File
20 lines
795 B
Rust
Executable File
use crate::dynamic_data::{ChoiceQueue, Pokemon};
|
|
use crate::script_implementations::wasm::export_registry::{get_value, register, try_wasm, wasm_ok, WasmResult};
|
|
use crate::script_implementations::wasm::extern_ref::ExternRef;
|
|
use crate::script_implementations::wasm::script_resolver::WebAssemblyEnv;
|
|
use anyhow_ext::Context;
|
|
use wasmer::FunctionEnvMut;
|
|
|
|
register! {
|
|
fn choice_queue_move_pokemon_choice_next(
|
|
env: FunctionEnvMut<WebAssemblyEnv>,
|
|
battle_random: ExternRef<ChoiceQueue>,
|
|
pokemon: ExternRef<Pokemon>
|
|
) -> WasmResult<u8> {
|
|
let battle_random = get_value!(battle_random, env);
|
|
let pokemon = get_value!(pokemon, env);
|
|
let res = try_wasm!(battle_random.move_pokemon_choice_next(pokemon), env);
|
|
wasm_ok(u8::from(res))
|
|
}
|
|
}
|