diff options
Diffstat (limited to 'renderer/src/map.rs')
-rw-r--r-- | renderer/src/map.rs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/renderer/src/map.rs b/renderer/src/map.rs index a1e8d94..5b657d4 100644 --- a/renderer/src/map.rs +++ b/renderer/src/map.rs @@ -29,18 +29,18 @@ impl MapRenderer { for (key, t) in &world.map.tilesets { for layer in world.map.layers.iter().filter(|l| l.image == *key) { let tint = layer.color; - let mut bytes: Vec<u8> = Vec::with_capacity(t.dim().0 * t.dim().1 * 4); info!( "loading tileset: (texture: {:?}, tint: {}) => {:?}", key, tint, t.dim() ); + let mut bytes: Vec<u8> = Vec::with_capacity(t.dim().0 * t.dim().1 * 4); for ((_x, _y), c) in t.indexed_iter() { - bytes.push((c.r as u32 * tint.r as u32) as u8); - bytes.push((c.g as u32 * tint.g as u32) as u8); - bytes.push((c.b as u32 * tint.b as u32) as u8); - bytes.push((c.a as u32 * tint.a as u32) as u8); + bytes.push((c.r as u32/* * tint.r as u32*/) as u8); + bytes.push((c.g as u32/* * tint.g as u32*/) as u8); + bytes.push((c.b as u32/* * tint.b as u32*/) as u8); + bytes.push((c.a as u32/* * tint.a as u32*/) as u8); } let d = skia_safe::Data::new_copy(&bytes); let v = skia_safe::Image::from_raster_data( @@ -98,7 +98,10 @@ impl MapRenderer { let layer_x = layer_x.try_into().unwrap_or(0); let layer_y = layer_y.try_into().unwrap_or(0); - let tile = match l.tiles.get((layer_y, layer_x)) { + let tile = match l.tiles.get(( + ((layer_y as i32) + l.offset.1) as usize, + ((layer_y as i32) + l.offset.0) as usize, + )) { Some(t) => t, None => continue, }; |