Implements every script function
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2022-08-27 18:04:56 +02:00
parent bd62c1ac62
commit ba5992e925
19 changed files with 919 additions and 158 deletions

View File

@@ -13,7 +13,7 @@ register! {
turn_choice: ExternRef<LearnedMove>,
) -> u8 {
unsafe {
transmute(turn_choice.value(&env).unwrap().learn_method())
transmute(turn_choice.value_func(&env).unwrap().learn_method())
}
}
@@ -21,6 +21,6 @@ register! {
env: FunctionEnvMut<WebAssemblyEnv>,
turn_choice: ExternRef<LearnedMove>,
) -> ExternRef<MoveData> {
ExternRef::func_new(&env, turn_choice.value(&env).unwrap().move_data())
ExternRef::func_new(&env, turn_choice.value_func(&env).unwrap().move_data())
}
}

View File

@@ -18,7 +18,7 @@ register! {
env: FunctionEnvMut<WebAssemblyEnv>,
dynamic_lib: ExternRef<DynamicLibrary>,
) -> ExternRef<StaticData> {
ExternRef::func_new(&env, dynamic_lib.value(&env).unwrap().static_data())
ExternRef::func_new(&env, dynamic_lib.value_func(&env).unwrap().static_data())
}
manual manual_register
}

View File

@@ -13,7 +13,7 @@ register! {
env: FunctionEnvMut<WebAssemblyEnv>,
pokemon: ExternRef<Pokemon>,
) -> ExternRef<DynamicLibrary> {
let lib = pokemon.value(&env).unwrap().library();
let lib = pokemon.value_func(&env).unwrap().library();
ExternRef::func_new(&env, lib)
}
@@ -21,7 +21,7 @@ register! {
env: FunctionEnvMut<WebAssemblyEnv>,
pokemon: ExternRef<Pokemon>,
) -> ExternRef<StatisticSet<u32>> {
let statistic_set = pokemon.value(&env).unwrap().boosted_stats();
let statistic_set = pokemon.value_func(&env).unwrap().boosted_stats();
ExternRef::func_new(&env, statistic_set)
}
@@ -29,7 +29,7 @@ register! {
env: FunctionEnvMut<WebAssemblyEnv>,
pokemon: ExternRef<Pokemon>,
) -> ExternRef<StatisticSet<u32>> {
let statistic_set = pokemon.value(&env).unwrap().flat_stats();
let statistic_set = pokemon.value_func(&env).unwrap().flat_stats();
ExternRef::func_new(&env, statistic_set)
}
@@ -37,7 +37,7 @@ register! {
env: FunctionEnvMut<WebAssemblyEnv>,
pokemon: ExternRef<Pokemon>,
) -> ExternRef<ClampedStatisticSet<i8, -6, 6>> {
let statistic_set = pokemon.value(&env).unwrap().stat_boosts();
let statistic_set = pokemon.value_func(&env).unwrap().stat_boosts();
ExternRef::func_new(&env, statistic_set)
}
@@ -45,7 +45,7 @@ register! {
env: FunctionEnvMut<WebAssemblyEnv>,
pokemon: ExternRef<Pokemon>,
) -> ExternRef<ClampedStatisticSet<u8, 0, 31>> {
let statistic_set = pokemon.value(&env).unwrap().individual_values();
let statistic_set = pokemon.value_func(&env).unwrap().individual_values();
ExternRef::func_new(&env, statistic_set)
}
@@ -53,7 +53,7 @@ register! {
env: FunctionEnvMut<WebAssemblyEnv>,
pokemon: ExternRef<Pokemon>,
) -> ExternRef<ClampedStatisticSet<u8, 0, 252>> {
let statistic_set = pokemon.value(&env).unwrap().effort_values();
let statistic_set = pokemon.value_func(&env).unwrap().effort_values();
ExternRef::func_new(&env, statistic_set)
}
@@ -61,7 +61,7 @@ register! {
env: FunctionEnvMut<WebAssemblyEnv>,
pokemon: ExternRef<Pokemon>,
) -> ExternRef<Species> {
let species = pokemon.value(&env).unwrap().species();
let species = pokemon.value_func(&env).unwrap().species();
ExternRef::func_new(&env, species)
}
@@ -72,7 +72,7 @@ register! {
source: u8
) {
unsafe{
pokemon.value(&env).unwrap().damage(damage, transmute(source));
pokemon.value_func(&env).unwrap().damage(damage, transmute(source));
}
}
}

View File

@@ -12,7 +12,7 @@ register! {
env: FunctionEnvMut<WebAssemblyEnv>,
turn_choice: ExternRef<TurnChoice>,
) -> ExternRef<Pokemon> {
let turn_choice = turn_choice.value(&env).unwrap();
let turn_choice = turn_choice.value_func(&env).unwrap();
ExternRef::func_new(&env, turn_choice.user().as_ref().deref())
}
@@ -20,7 +20,7 @@ register! {
env: FunctionEnvMut<WebAssemblyEnv>,
turn_choice: ExternRef<TurnChoice>,
) -> u8 {
match turn_choice.value(&env).unwrap() {
match turn_choice.value_func(&env).unwrap() {
TurnChoice::Move(_) => 0,
TurnChoice::Item(_) => 1,
TurnChoice::Switch(_) => 2,
@@ -33,7 +33,7 @@ register! {
env: FunctionEnvMut<WebAssemblyEnv>,
turn_choice: ExternRef<TurnChoice>,
) -> ExternRef<LearnedMove> {
if let TurnChoice::Move(d) = turn_choice.value(&env).unwrap() {
if let TurnChoice::Move(d) = turn_choice.value_func(&env).unwrap() {
return ExternRef::func_new(&env, d.used_move().as_ref());
}
panic!("Invalid turn choice");
@@ -43,7 +43,7 @@ register! {
env: FunctionEnvMut<WebAssemblyEnv>,
turn_choice: ExternRef<TurnChoice>,
) -> u8 {
if let TurnChoice::Move(d) = turn_choice.value(&env).unwrap() {
if let TurnChoice::Move(d) = turn_choice.value_func(&env).unwrap() {
return d.target_side();
}
panic!("Invalid turn choice");
@@ -53,7 +53,7 @@ register! {
env: FunctionEnvMut<WebAssemblyEnv>,
turn_choice: ExternRef<TurnChoice>,
) -> u8 {
if let TurnChoice::Move(d) = turn_choice.value(&env).unwrap() {
if let TurnChoice::Move(d) = turn_choice.value_func(&env).unwrap() {
return d.target_index();
}
panic!("Invalid turn choice");

View File

@@ -119,13 +119,13 @@ fn _vec_extern_ref_get_value(env: FunctionEnvMut<WebAssemblyEnv>, reference: u32
/// Gets the hash value of a StringKey.
fn string_key_get_hash(env: FunctionEnvMut<WebAssemblyEnv>, string_key: ExternRef<StringKey>) -> u32 {
string_key.value(&env).unwrap().hash()
string_key.value_func(&env).unwrap().hash()
}
/// Get a null-terminated C string from a StringKey. Note that this involves a copy into WASM
/// memory, so this is relatively heavy.
fn string_key_get_str(env: FunctionEnvMut<WebAssemblyEnv>, string_key: ExternRef<StringKey>) -> u32 {
let string_key = string_key.value(&env).unwrap().str();
let string_key = string_key.value_func(&env).unwrap().str();
let wasm_string_ptr = env
.data()
.data()
@@ -141,7 +141,7 @@ fn string_key_get_str(env: FunctionEnvMut<WebAssemblyEnv>, string_key: ExternRef
/// Gets the type of an EffectParameter
fn effect_parameter_get_type(env: FunctionEnvMut<WebAssemblyEnv>, parameter: ExternRef<EffectParameter>) -> u8 {
let v = parameter.value(&env).unwrap();
let v = parameter.value_func(&env).unwrap();
match v {
EffectParameter::Bool(_) => 1,
EffectParameter::Int(_) => 2,
@@ -152,7 +152,7 @@ fn effect_parameter_get_type(env: FunctionEnvMut<WebAssemblyEnv>, parameter: Ext
/// Gets the inner bool data of an EffectParameter. Panics if it's not a bool.
fn effect_parameter_as_bool(env: FunctionEnvMut<WebAssemblyEnv>, parameter: ExternRef<EffectParameter>) -> u8 {
let v = parameter.value(&env).unwrap();
let v = parameter.value_func(&env).unwrap();
match v {
EffectParameter::Bool(b) => {
if *b {
@@ -167,7 +167,7 @@ fn effect_parameter_as_bool(env: FunctionEnvMut<WebAssemblyEnv>, parameter: Exte
/// Gets the inner int data of an EffectParameter. Panics if it's not an int.
fn effect_parameter_as_int(env: FunctionEnvMut<WebAssemblyEnv>, parameter: ExternRef<EffectParameter>) -> i64 {
let v = parameter.value(&env).unwrap();
let v = parameter.value_func(&env).unwrap();
match v {
EffectParameter::Int(i) => *i,
_ => panic!("Unexpected parameter type!"),
@@ -176,7 +176,7 @@ fn effect_parameter_as_int(env: FunctionEnvMut<WebAssemblyEnv>, parameter: Exter
/// Gets the inner float data of an EffectParameter. Panics if it's not a float.
fn effect_parameter_as_float(env: FunctionEnvMut<WebAssemblyEnv>, parameter: ExternRef<EffectParameter>) -> f32 {
let v = parameter.value(&env).unwrap();
let v = parameter.value_func(&env).unwrap();
match v {
EffectParameter::Float(f) => *f,
_ => panic!("Unexpected parameter type!"),
@@ -188,7 +188,7 @@ fn effect_parameter_as_string(
env: FunctionEnvMut<WebAssemblyEnv>,
parameter: ExternRef<EffectParameter>,
) -> ExternRef<StringKey> {
let v = parameter.value(&env).unwrap();
let v = parameter.value_func(&env).unwrap();
match v {
EffectParameter::String(s) => ExternRef::func_new(&env, s),
_ => panic!("Unexpected parameter type!"),

View File

@@ -13,33 +13,33 @@ mod species;
register! {
fn static_data_get_move_library(env: FunctionEnvMut<WebAssemblyEnv>, data_library: ExternRef<StaticData>) -> ExternRef<MoveLibrary> {
ExternRef::func_new(&env, data_library.value(&env).unwrap().moves())
ExternRef::func_new(&env, data_library.value_func(&env).unwrap().moves())
}
fn static_data_get_species_library(
env: FunctionEnvMut<WebAssemblyEnv>,
data_library: ExternRef<StaticData>,
) -> ExternRef<SpeciesLibrary> {
ExternRef::func_new(&env, data_library.value(&env).unwrap().species())
ExternRef::func_new(&env, data_library.value_func(&env).unwrap().species())
}
fn static_data_get_item_library(env: FunctionEnvMut<WebAssemblyEnv>, data_library: ExternRef<StaticData>) -> ExternRef<ItemLibrary> {
ExternRef::func_new(&env, data_library.value(&env).unwrap().items())
ExternRef::func_new(&env, data_library.value_func(&env).unwrap().items())
}
fn static_data_get_type_library(env: FunctionEnvMut<WebAssemblyEnv>, data_library: ExternRef<StaticData>) -> ExternRef<TypeLibrary> {
ExternRef::func_new(&env, data_library.value(&env).unwrap().types())
ExternRef::func_new(&env, data_library.value_func(&env).unwrap().types())
}
fn static_data_get_library_settings(
env: FunctionEnvMut<WebAssemblyEnv>,
data_library: ExternRef<StaticData>,
) -> ExternRef<LibrarySettings> {
ExternRef::func_new(&env, data_library.value(&env).unwrap().settings())
ExternRef::func_new(&env, data_library.value_func(&env).unwrap().settings())
}
fn library_settings_get_maximum_level(env: FunctionEnvMut<WebAssemblyEnv>, data_library: ExternRef<LibrarySettings>) -> LevelInt {
data_library.value(&env).unwrap().maximum_level()
data_library.value_func(&env).unwrap().maximum_level()
}
manual manual_registration

View File

@@ -11,8 +11,8 @@ fn move_library_get_move(
lib: ExternRef<MoveLibrary>,
string_key: ExternRef<StringKey>,
) -> ExternRef<MoveData> {
let lib = lib.value(&env).unwrap();
let m = lib.get(string_key.value(&env).unwrap());
let lib = lib.value_func(&env).unwrap();
let m = lib.get(string_key.value_func(&env).unwrap());
if let Some(v) = m {
ExternRef::func_new(&env, v)
} else {
@@ -21,7 +21,7 @@ fn move_library_get_move(
}
fn move_library_get_move_by_hash(env: FunctionEnvMut<WebAssemblyEnv>, lib: ExternRef<MoveLibrary>, hash: u32) -> ExternRef<MoveData> {
let lib = lib.value(&env).unwrap();
let lib = lib.value_func(&env).unwrap();
let m = lib.get_by_hash(hash);
if let Some(v) = m {
ExternRef::func_new(&env, v)
@@ -31,39 +31,39 @@ fn move_library_get_move_by_hash(env: FunctionEnvMut<WebAssemblyEnv>, lib: Exter
}
fn move_data_get_name(env: FunctionEnvMut<WebAssemblyEnv>, move_data: ExternRef<MoveData>) -> ExternRef<StringKey> {
ExternRef::func_new(&env, move_data.value(&env).unwrap().name())
ExternRef::func_new(&env, move_data.value_func(&env).unwrap().name())
}
fn move_data_get_type(env: FunctionEnvMut<WebAssemblyEnv>, move_data: ExternRef<MoveData>) -> u8 {
move_data.value(&env).unwrap().move_type().into()
move_data.value_func(&env).unwrap().move_type().into()
}
fn move_data_get_category(env: FunctionEnvMut<WebAssemblyEnv>, move_data: ExternRef<MoveData>) -> u8 {
move_data.value(&env).unwrap().category() as u8
move_data.value_func(&env).unwrap().category() as u8
}
fn move_data_get_base_power(env: FunctionEnvMut<WebAssemblyEnv>, move_data: ExternRef<MoveData>) -> u8 {
move_data.value(&env).unwrap().base_power()
move_data.value_func(&env).unwrap().base_power()
}
fn move_data_get_accuracy(env: FunctionEnvMut<WebAssemblyEnv>, move_data: ExternRef<MoveData>) -> u8 {
move_data.value(&env).unwrap().accuracy()
move_data.value_func(&env).unwrap().accuracy()
}
fn move_data_get_base_usages(env: FunctionEnvMut<WebAssemblyEnv>, move_data: ExternRef<MoveData>) -> u8 {
move_data.value(&env).unwrap().base_usages()
move_data.value_func(&env).unwrap().base_usages()
}
fn move_data_get_target(env: FunctionEnvMut<WebAssemblyEnv>, move_data: ExternRef<MoveData>) -> u8 {
move_data.value(&env).unwrap().target() as u8
move_data.value_func(&env).unwrap().target() as u8
}
fn move_data_get_priority(env: FunctionEnvMut<WebAssemblyEnv>, move_data: ExternRef<MoveData>) -> i8 {
move_data.value(&env).unwrap().priority()
move_data.value_func(&env).unwrap().priority()
}
fn move_data_has_flag(env: FunctionEnvMut<WebAssemblyEnv>, move_data: ExternRef<MoveData>, flag: ExternRef<StringKey>) -> u8 {
if move_data.value(&env).unwrap().has_flag(flag.value(&env).unwrap()) {
if move_data.value_func(&env).unwrap().has_flag(flag.value_func(&env).unwrap()) {
1
} else {
0
}
}
fn move_data_has_flag_by_hash(env: FunctionEnvMut<WebAssemblyEnv>, move_data: ExternRef<MoveData>, flag_hash: u32) -> u8 {
if move_data.value(&env).unwrap().has_flag_by_hash(flag_hash) {
if move_data.value_func(&env).unwrap().has_flag_by_hash(flag_hash) {
1
} else {
0

View File

@@ -12,8 +12,8 @@ fn species_library_get_species(
lib: ExternRef<SpeciesLibrary>,
string_key: ExternRef<StringKey>,
) -> ExternRef<Species> {
let lib = lib.value(&env).unwrap();
let m = lib.get(string_key.value(&env).unwrap());
let lib = lib.value_func(&env).unwrap();
let m = lib.get(string_key.value_func(&env).unwrap());
if let Some(v) = m {
ExternRef::func_new(&env, v)
} else {
@@ -25,14 +25,14 @@ fn species_get_capture_rate(
env: FunctionEnvMut<WebAssemblyEnv>,
species: ExternRef<Species>,
) -> u8 {
species.value(&env).unwrap().capture_rate()
species.value_func(&env).unwrap().capture_rate()
}
fn species_get_growth_rate(
env: FunctionEnvMut<WebAssemblyEnv>,
species: ExternRef<Species>,
) -> ExternRef<StringKey> {
let species = species.value(&env).unwrap();
let species = species.value_func(&env).unwrap();
ExternRef::func_new(&env, species.growth_rate())
}
@@ -40,14 +40,14 @@ fn species_get_gender_rate(
env: FunctionEnvMut<WebAssemblyEnv>,
species: ExternRef<Species>,
) -> f32 {
species.value(&env).unwrap().gender_rate()
species.value_func(&env).unwrap().gender_rate()
}
fn species_get_name(
env: FunctionEnvMut<WebAssemblyEnv>,
species: ExternRef<Species>,
) -> ExternRef<StringKey> {
let species = species.value(&env).unwrap();
let species = species.value_func(&env).unwrap();
ExternRef::func_new(&env, species.name())
}
@@ -55,7 +55,7 @@ fn species_get_id(
env: FunctionEnvMut<WebAssemblyEnv>,
species: ExternRef<Species>,
) -> u16 {
species.value(&env).unwrap().id()
species.value_func(&env).unwrap().id()
}