From 3c6aecb0e910fa397dbcd910a288b131ab3b5943 Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Wed, 4 Jan 2023 11:55:14 +0100 Subject: [PATCH] Minor changes and fixes --- gen_7_scripts/src/moves/assurance.rs | 2 +- pkmn_lib_interface/Cargo.toml | 2 +- .../src/app_interface/dynamic_data/battle.rs | 1 + .../src/app_interface/dynamic_data/choice_queue.rs | 1 + .../src/app_interface/dynamic_data/executing_move.rs | 1 + .../static_data/data_libraries/item_library.rs | 8 ++++---- .../src/app_interface/static_data/data_libraries/mod.rs | 9 ++++++++- pkmn_lib_interface/src/lib.rs | 5 ++--- pkmn_lib_interface/src/utils.rs | 5 +++-- 9 files changed, 22 insertions(+), 12 deletions(-) diff --git a/gen_7_scripts/src/moves/assurance.rs b/gen_7_scripts/src/moves/assurance.rs index 4377a34..6b7633c 100755 --- a/gen_7_scripts/src/moves/assurance.rs +++ b/gen_7_scripts/src/moves/assurance.rs @@ -3,7 +3,7 @@ use alloc::boxed::Box; use core::any::Any; use core::sync::atomic::{AtomicBool, Ordering}; use pkmn_lib_interface::app_interface::{ - BattleSide, DamageSource, ExecutingMove, Pokemon, TurnChoice, + BattleSide, DamageSource, DataLibrary, ExecutingMove, Pokemon, TurnChoice, }; use pkmn_lib_interface::handling::{Script, ScriptCapabilities}; diff --git a/pkmn_lib_interface/Cargo.toml b/pkmn_lib_interface/Cargo.toml index d950253..8f58f2f 100755 --- a/pkmn_lib_interface/Cargo.toml +++ b/pkmn_lib_interface/Cargo.toml @@ -8,12 +8,12 @@ edition = "2021" mock_data = [] [dependencies] -wee_alloc = "0.4.5" cstr_core = { version = "0.2.6", features = ["nightly"]} enumflags2 = { version = "0.7.5", default-features = false } spin = { version = "0.9.4", default-features = false, features = ["rwlock"] } paste = { version = "1.0.7" } hashbrown = { version = "0.12.3" } +dlmalloc = { version = "0.2.4", features = ["global"] } [dev-dependencies] diff --git a/pkmn_lib_interface/src/app_interface/dynamic_data/battle.rs b/pkmn_lib_interface/src/app_interface/dynamic_data/battle.rs index aa19e84..f01bca3 100755 --- a/pkmn_lib_interface/src/app_interface/dynamic_data/battle.rs +++ b/pkmn_lib_interface/src/app_interface/dynamic_data/battle.rs @@ -51,6 +51,7 @@ impl Battle { unsafe { battle_get_pokemon(self.inner.reference, side, index).get_value() } } + #[cfg(not(feature = "mock_data"))] pub fn find_party_for_pokemon(&self, pokemon: &Pokemon) -> Option { unsafe { battle_find_party_for_pokemon(self.inner.reference, pokemon.reference()).get_value() diff --git a/pkmn_lib_interface/src/app_interface/dynamic_data/choice_queue.rs b/pkmn_lib_interface/src/app_interface/dynamic_data/choice_queue.rs index b39959c..05c3109 100755 --- a/pkmn_lib_interface/src/app_interface/dynamic_data/choice_queue.rs +++ b/pkmn_lib_interface/src/app_interface/dynamic_data/choice_queue.rs @@ -23,6 +23,7 @@ impl ExternalReferenceType for ChoiceQueue { } } +#[cfg(not(feature = "mock_data"))] extern "wasm" { fn choice_queue_move_pokemon_choice_next( r: ExternRef, diff --git a/pkmn_lib_interface/src/app_interface/dynamic_data/executing_move.rs b/pkmn_lib_interface/src/app_interface/dynamic_data/executing_move.rs index e421f69..b52047e 100755 --- a/pkmn_lib_interface/src/app_interface/dynamic_data/executing_move.rs +++ b/pkmn_lib_interface/src/app_interface/dynamic_data/executing_move.rs @@ -126,6 +126,7 @@ impl ExternalReferenceType for HitData { } } +#[cfg(not(feature = "mock_data"))] extern "wasm" { fn executing_move_get_number_of_targets(r: ExternRef) -> usize; fn executing_move_get_number_of_hits(r: ExternRef) -> u8; diff --git a/pkmn_lib_interface/src/app_interface/static_data/data_libraries/item_library.rs b/pkmn_lib_interface/src/app_interface/static_data/data_libraries/item_library.rs index da9dde5..c5df78a 100755 --- a/pkmn_lib_interface/src/app_interface/static_data/data_libraries/item_library.rs +++ b/pkmn_lib_interface/src/app_interface/static_data/data_libraries/item_library.rs @@ -36,12 +36,12 @@ impl DataLibrary for ItemLibrary { #[cfg(not(feature = "mock_data"))] fn _get_ref_by_name(ptr: ExternRef, name: ExternRef) -> ExternRef { - unsafe { move_library_get_move(ptr, name) } + unsafe { item_library_get_item(ptr, name) } } #[cfg(not(feature = "mock_data"))] fn _get_ref_by_hash(ptr: ExternRef, hash: u32) -> ExternRef { - unsafe { move_library_get_move_by_hash(ptr, hash) } + unsafe { item_library_get_item_by_hash(ptr, hash) } } } @@ -56,11 +56,11 @@ impl ExternalReferenceType for ItemLibrary { #[cfg(not(feature = "mock_data"))] extern "wasm" { - fn move_library_get_move( + fn item_library_get_item( ptr: ExternRef, name: ExternRef, ) -> ExternRef; - fn move_library_get_move_by_hash(ptr: ExternRef, hash: u32) -> ExternRef; + fn item_library_get_item_by_hash(ptr: ExternRef, hash: u32) -> ExternRef; } #[cfg(feature = "mock_data")] diff --git a/pkmn_lib_interface/src/app_interface/static_data/data_libraries/mod.rs b/pkmn_lib_interface/src/app_interface/static_data/data_libraries/mod.rs index c6d2241..52414fe 100755 --- a/pkmn_lib_interface/src/app_interface/static_data/data_libraries/mod.rs +++ b/pkmn_lib_interface/src/app_interface/static_data/data_libraries/mod.rs @@ -10,7 +10,7 @@ pub mod type_library; use crate::app_interface::species_library::SpeciesLibrary; use crate::app_interface::type_library::TypeLibrary; -use crate::app_interface::LevelInt; +use crate::app_interface::{get_hash, LevelInt}; use crate::handling::cached_value::CachedValue; use crate::handling::Cacheable; pub use item_library::*; @@ -179,6 +179,13 @@ where v } + fn get_by_str(&self, name: &str) -> Option + where + Self: Sized, + { + self.get_by_hash(get_hash(name)) + } + fn get_by_hash(&self, hash: u32) -> Option where Self: Sized, diff --git a/pkmn_lib_interface/src/lib.rs b/pkmn_lib_interface/src/lib.rs index bb0a3a9..ba3bcaa 100755 --- a/pkmn_lib_interface/src/lib.rs +++ b/pkmn_lib_interface/src/lib.rs @@ -8,7 +8,6 @@ #![feature(repr128)] #![feature(downcast_unchecked)] #![feature(panic_info_message)] -#![feature(const_btree_new)] #![feature(wasm_abi)] #![feature(thread_local)] #![feature(build_hasher_simple_hash_one)] @@ -18,10 +17,10 @@ extern crate alloc; extern crate core; -extern crate wee_alloc; +extern crate dlmalloc; #[global_allocator] -static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT; +static ALLOC: dlmalloc::GlobalDlmalloc = dlmalloc::GlobalDlmalloc {}; use crate::app_interface::list::ImmutableList; use crate::app_interface::Statistic; diff --git a/pkmn_lib_interface/src/utils.rs b/pkmn_lib_interface/src/utils.rs index 0b61a01..1b2aa49 100755 --- a/pkmn_lib_interface/src/utils.rs +++ b/pkmn_lib_interface/src/utils.rs @@ -14,9 +14,10 @@ extern "wasm" { } #[cfg(not(feature = "mock_data"))] -pub fn print_raw(s: CString) { +pub fn print_raw(s: &[u8]) { unsafe { - _print(s.as_ptr()); + let cstring = CString::from_vec_unchecked(s.to_vec()); + _print(cstring.as_ptr()); } }