diff -r 004258297037 -r 36862a9ec59b rust/lib-hedgewars-engine/src/render/map.rs --- a/rust/lib-hedgewars-engine/src/render/map.rs Mon Feb 03 16:32:44 2025 +0100 +++ b/rust/lib-hedgewars-engine/src/render/map.rs Mon Feb 03 16:52:05 2025 +0100 @@ -82,7 +82,7 @@ tile_layout: InputLayout, tile_size: Size, - num_tile_x: usize, + num_tile_x: u32, } impl MapRenderer { @@ -147,8 +147,8 @@ let tw = self.tile_size.width; let th = self.tile_size.height; - let lw = land.width(); - let lh = land.height(); + let lw = land.width() as u32; + let lh = land.height() as u32; let num_tile_x = lw / tw; let num_tile_y = lh / th; @@ -156,14 +156,14 @@ for y in 0..num_tile_y { for x in 0..num_tile_x { - let idx = x + y * num_tile_x; + let idx = (x + y * num_tile_x) as usize; let (data, stride) = { let bpp = 4; let offset = x * tw * bpp + y * th * lw * bpp; - let data = unsafe { &land.as_bytes()[offset..] }; + let data = unsafe { &land.as_bytes()[offset as usize..] }; let stride = land.width(); (data, NonZeroU32::new(stride as u32)) @@ -187,7 +187,7 @@ } else { let texture_region = Rect::at_origin(self.tile_size); - self.textures[idx].update( + self.textures[idx as usize].update( texture_region, data, stride, @@ -219,8 +219,8 @@ self.index_offset = 0; for (idx, tile) in self.tiles.iter().enumerate() { - let tile_x = idx % self.num_tile_x; - let tile_y = idx / self.num_tile_x; + let tile_x = idx as u32 % self.num_tile_x; + let tile_y = idx as u32 / self.num_tile_x; let tile_w = self.tile_size.width; let tile_h = self.tile_size.width;