From f3284b7d90ccbe1c04d8d9b9ae8063efc9572c0e Mon Sep 17 00:00:00 2001 From: Treeco <5021038-Treeco@users.noreply.gitlab.com> Date: Sat, 27 Mar 2021 12:37:16 +0000 Subject: [PATCH] Fix issues loading larger maps --- world/src/civ/mod.rs | 6 +++--- world/src/site/economy.rs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/world/src/civ/mod.rs b/world/src/civ/mod.rs index bf481901d2..ffffd36603 100644 --- a/world/src/civ/mod.rs +++ b/world/src/civ/mod.rs @@ -251,13 +251,13 @@ impl Civs { .into_iter() .for_each(|posi| { let chpos = uniform_idx_as_vec2(ctx.sim.map_size_lg(), posi); - let wpos = chpos * TerrainChunkSize::RECT_SIZE.map(|e| e as i32); + let wpos = chpos.map(|e| e as i64) * TerrainChunkSize::RECT_SIZE.map(|e| e as i64); let closest_site = (*sites) .iter_mut() .filter(|s| !matches!(s.1.kind, crate::site::SiteKind::Dungeon(_))) - .min_by_key(|(_id, s)| s.get_origin().distance_squared(wpos)); + .min_by_key(|(_id, s)| s.get_origin().map(|e| e as i64).distance_squared(wpos)); if let Some((_id, s)) = closest_site { - let distance_squared = s.get_origin().distance_squared(wpos); + let distance_squared = s.get_origin().map(|e| e as i64).distance_squared(wpos); s.economy .add_chunk(ctx.sim.get(chpos).unwrap(), distance_squared); } diff --git a/world/src/site/economy.rs b/world/src/site/economy.rs index 51f8fa1039..296c22f540 100644 --- a/world/src/site/economy.rs +++ b/world/src/site/economy.rs @@ -279,7 +279,7 @@ impl Economy { // info!("resources {:?}", self.stocks); } - pub fn add_chunk(&mut self, ch: &SimChunk, distance_squared: i32) { + pub fn add_chunk(&mut self, ch: &SimChunk, distance_squared: i64) { let biome = ch.get_biome(); // we don't scale by pi, although that would be correct let distance_bin = (distance_squared >> 16).min(64) as usize;