PkmnLib_rs/src/script_implementations/wasm/export_registry/static_data/item.rs

39 lines
1.1 KiB
Rust

use crate::script_implementations::wasm::export_registry::register;
use crate::script_implementations::wasm::extern_ref::ExternRef;
use crate::script_implementations::wasm::script_resolver::WebAssemblyEnv;
use crate::static_data::Item;
use crate::StringKey;
use std::mem::transmute;
use wasmer::FunctionEnvMut;
register! {
fn item_get_price(
env: FunctionEnvMut<WebAssemblyEnv>,
item: ExternRef<Item>,
) -> i32 {
item.value_func(&env).unwrap().price()
}
fn item_get_name(
env: FunctionEnvMut<WebAssemblyEnv>,
item: ExternRef<Item>,
) -> ExternRef<StringKey> {
ExternRef::func_new(&env, item.value_func(&env).unwrap().name())
}
fn item_get_category(
env: FunctionEnvMut<WebAssemblyEnv>,
item: ExternRef<Item>,
) -> u8 {
unsafe { transmute(item.value_func(&env).unwrap().category()) }
}
fn item_get_battle_category(
env: FunctionEnvMut<WebAssemblyEnv>,
item: ExternRef<Item>,
) -> u8 {
unsafe { transmute(item.value_func(&env).unwrap().battle_category()) }
}
}