make texture size table case insensitive

This commit is contained in:
Alula 2020-09-11 14:58:50 +02:00
parent 2b9e7151dc
commit ea3f451dba
No known key found for this signature in database
GPG Key ID: 3E00485503A1D8BA
3 changed files with 21 additions and 1 deletions

View File

@ -16,6 +16,7 @@ approx = "0.3"
bitflags = "1"
bitvec = "0.17.4"
byteorder = "1.3"
case_insensitive_hashmap = "1.0.0"
cpal = "0.12.1"
directories = "2"
gfx = "0.18"

View File

@ -620,3 +620,22 @@ macro_rules! __bitfield_debug_assert {
debug_assert!($e)
};
}
#[macro_export(local_inner_macros)]
macro_rules! case_insensitive_hashmap {
(@single $($x:tt)*) => (());
(@count $($rest:expr),*) => (<[()]>::len(&[$(case_insensitive_hashmap!(@single $rest)),*]));
($($key:expr => $value:expr,)+) => { case_insensitive_hashmap!($($key => $value),+) };
($($key:expr => $value:expr),*) => {
{
let _cap = case_insensitive_hashmap!(@count $($key),*);
let mut _map = ::case_insensitive_hashmap::CaseInsensitiveHashMap::with_capacity(_cap);
$(
let _ = _map.insert($key, $value);
)*
_map
}
};
}

View File

@ -162,7 +162,7 @@ impl TextureSet {
let dim = (size.w as usize, size.h as usize);
let orig_dimensions = constants.tex_sizes.get(name).unwrap_or_else(|| &dim);
let scale_x = orig_dimensions.0 as f32 / size.w;
let scale_y = orig_dimensions.1 as f32 / size.h;
let scale_y = orig_dimensions.0 as f32 / size.w;
let width = (size.w * scale_x) as usize;
let height = (size.h * scale_y) as usize;