Adds ability to get the current time of day
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2023-07-22 13:22:47 +02:00
parent c75541720b
commit 0c6a0cadfe
10 changed files with 132 additions and 25 deletions

View File

@@ -1,11 +1,11 @@
use crate::dynamic_data::{DynamicLibrary, ScriptOwnerData};
use crate::dynamic_data::{DynamicLibrary, MiscLibrary, ScriptOwnerData};
use crate::script_implementations::wasm::export_registry::register;
use crate::script_implementations::wasm::export_registry::wasm_result::{try_wasm, wasm_ok, WasmResult};
use crate::script_implementations::wasm::extern_ref::ExternRef;
use wasmer::{FunctionEnv, FunctionEnvMut, Imports, StoreMut};
use crate::script_implementations::wasm::script_resolver::WebAssemblyEnv;
use crate::static_data::StaticData;
use crate::static_data::{StaticData, TimeOfDay};
/// The battle registration
mod battle;
@@ -38,6 +38,27 @@ register! {
wasm_ok(ExternRef::<dyn StaticData>::func_new(&env, static_data.into()))
}
fn dynamic_library_get_misc_library(
env: FunctionEnvMut<WebAssemblyEnv>,
dynamic_lib: ExternRef<dyn DynamicLibrary>,
) -> WasmResult<ExternRef<dyn MiscLibrary>> {
let dynamic_lib = try_wasm!(dynamic_lib.value_func_arc(&env), env);
let misc_library = dynamic_lib.misc_library();
wasm_ok(ExternRef::<dyn MiscLibrary>::func_new(&env, misc_library.into()))
}
fn misc_library_get_time_of_day(
env: FunctionEnvMut<WebAssemblyEnv>,
dynamic_lib: ExternRef<dyn MiscLibrary>,
) -> WasmResult<u8> {
let misc_library = try_wasm!(dynamic_lib.value_func_arc(&env), env);
unsafe{
let time_of_day = misc_library.time_of_day();
wasm_ok(std::mem::transmute::<TimeOfDay, u8>(time_of_day))
}
}
fn script_get_owner(
env: FunctionEnvMut<WebAssemblyEnv>,
script: u32,