Minor changes and fixes

This commit is contained in:
Deukhoofd 2023-01-04 11:55:14 +01:00
parent f3f5b2acb0
commit 3c6aecb0e9
Signed by: Deukhoofd
GPG Key ID: F63E044490819F6F
9 changed files with 22 additions and 12 deletions

View File

@ -3,7 +3,7 @@ use alloc::boxed::Box;
use core::any::Any; use core::any::Any;
use core::sync::atomic::{AtomicBool, Ordering}; use core::sync::atomic::{AtomicBool, Ordering};
use pkmn_lib_interface::app_interface::{ use pkmn_lib_interface::app_interface::{
BattleSide, DamageSource, ExecutingMove, Pokemon, TurnChoice, BattleSide, DamageSource, DataLibrary, ExecutingMove, Pokemon, TurnChoice,
}; };
use pkmn_lib_interface::handling::{Script, ScriptCapabilities}; use pkmn_lib_interface::handling::{Script, ScriptCapabilities};

View File

@ -8,12 +8,12 @@ edition = "2021"
mock_data = [] mock_data = []
[dependencies] [dependencies]
wee_alloc = "0.4.5"
cstr_core = { version = "0.2.6", features = ["nightly"]} cstr_core = { version = "0.2.6", features = ["nightly"]}
enumflags2 = { version = "0.7.5", default-features = false } enumflags2 = { version = "0.7.5", default-features = false }
spin = { version = "0.9.4", default-features = false, features = ["rwlock"] } spin = { version = "0.9.4", default-features = false, features = ["rwlock"] }
paste = { version = "1.0.7" } paste = { version = "1.0.7" }
hashbrown = { version = "0.12.3" } hashbrown = { version = "0.12.3" }
dlmalloc = { version = "0.2.4", features = ["global"] }
[dev-dependencies] [dev-dependencies]

View File

@ -51,6 +51,7 @@ impl Battle {
unsafe { battle_get_pokemon(self.inner.reference, side, index).get_value() } 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<BattleParty> { pub fn find_party_for_pokemon(&self, pokemon: &Pokemon) -> Option<BattleParty> {
unsafe { unsafe {
battle_find_party_for_pokemon(self.inner.reference, pokemon.reference()).get_value() battle_find_party_for_pokemon(self.inner.reference, pokemon.reference()).get_value()

View File

@ -23,6 +23,7 @@ impl ExternalReferenceType for ChoiceQueue {
} }
} }
#[cfg(not(feature = "mock_data"))]
extern "wasm" { extern "wasm" {
fn choice_queue_move_pokemon_choice_next( fn choice_queue_move_pokemon_choice_next(
r: ExternRef<ChoiceQueue>, r: ExternRef<ChoiceQueue>,

View File

@ -126,6 +126,7 @@ impl ExternalReferenceType for HitData {
} }
} }
#[cfg(not(feature = "mock_data"))]
extern "wasm" { extern "wasm" {
fn executing_move_get_number_of_targets(r: ExternRef<ExecutingMove>) -> usize; fn executing_move_get_number_of_targets(r: ExternRef<ExecutingMove>) -> usize;
fn executing_move_get_number_of_hits(r: ExternRef<ExecutingMove>) -> u8; fn executing_move_get_number_of_hits(r: ExternRef<ExecutingMove>) -> u8;

View File

@ -36,12 +36,12 @@ impl DataLibrary<Item> for ItemLibrary {
#[cfg(not(feature = "mock_data"))] #[cfg(not(feature = "mock_data"))]
fn _get_ref_by_name(ptr: ExternRef<Self>, name: ExternRef<StringKey>) -> ExternRef<Item> { fn _get_ref_by_name(ptr: ExternRef<Self>, name: ExternRef<StringKey>) -> ExternRef<Item> {
unsafe { move_library_get_move(ptr, name) } unsafe { item_library_get_item(ptr, name) }
} }
#[cfg(not(feature = "mock_data"))] #[cfg(not(feature = "mock_data"))]
fn _get_ref_by_hash(ptr: ExternRef<Self>, hash: u32) -> ExternRef<Item> { fn _get_ref_by_hash(ptr: ExternRef<Self>, hash: u32) -> ExternRef<Item> {
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"))] #[cfg(not(feature = "mock_data"))]
extern "wasm" { extern "wasm" {
fn move_library_get_move( fn item_library_get_item(
ptr: ExternRef<ItemLibrary>, ptr: ExternRef<ItemLibrary>,
name: ExternRef<StringKey>, name: ExternRef<StringKey>,
) -> ExternRef<Item>; ) -> ExternRef<Item>;
fn move_library_get_move_by_hash(ptr: ExternRef<ItemLibrary>, hash: u32) -> ExternRef<Item>; fn item_library_get_item_by_hash(ptr: ExternRef<ItemLibrary>, hash: u32) -> ExternRef<Item>;
} }
#[cfg(feature = "mock_data")] #[cfg(feature = "mock_data")]

View File

@ -10,7 +10,7 @@ pub mod type_library;
use crate::app_interface::species_library::SpeciesLibrary; use crate::app_interface::species_library::SpeciesLibrary;
use crate::app_interface::type_library::TypeLibrary; 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::cached_value::CachedValue;
use crate::handling::Cacheable; use crate::handling::Cacheable;
pub use item_library::*; pub use item_library::*;
@ -179,6 +179,13 @@ where
v v
} }
fn get_by_str(&self, name: &str) -> Option<T>
where
Self: Sized,
{
self.get_by_hash(get_hash(name))
}
fn get_by_hash(&self, hash: u32) -> Option<T> fn get_by_hash(&self, hash: u32) -> Option<T>
where where
Self: Sized, Self: Sized,

View File

@ -8,7 +8,6 @@
#![feature(repr128)] #![feature(repr128)]
#![feature(downcast_unchecked)] #![feature(downcast_unchecked)]
#![feature(panic_info_message)] #![feature(panic_info_message)]
#![feature(const_btree_new)]
#![feature(wasm_abi)] #![feature(wasm_abi)]
#![feature(thread_local)] #![feature(thread_local)]
#![feature(build_hasher_simple_hash_one)] #![feature(build_hasher_simple_hash_one)]
@ -18,10 +17,10 @@
extern crate alloc; extern crate alloc;
extern crate core; extern crate core;
extern crate wee_alloc; extern crate dlmalloc;
#[global_allocator] #[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::list::ImmutableList;
use crate::app_interface::Statistic; use crate::app_interface::Statistic;

View File

@ -14,9 +14,10 @@ extern "wasm" {
} }
#[cfg(not(feature = "mock_data"))] #[cfg(not(feature = "mock_data"))]
pub fn print_raw(s: CString) { pub fn print_raw(s: &[u8]) {
unsafe { unsafe {
_print(s.as_ptr()); let cstring = CString::from_vec_unchecked(s.to_vec());
_print(cstring.as_ptr());
} }
} }