From 4d1bff38697cb7da79988efbfb5e0b2853eac61a Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 10 May 2020 11:27:47 -0700 Subject: [PATCH] Visually indicate dropped items instead of placed items --- NHSE.Sprites/Field/FieldItemSpriteDrawer.cs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/NHSE.Sprites/Field/FieldItemSpriteDrawer.cs b/NHSE.Sprites/Field/FieldItemSpriteDrawer.cs index 3583f2c..73db715 100644 --- a/NHSE.Sprites/Field/FieldItemSpriteDrawer.cs +++ b/NHSE.Sprites/Field/FieldItemSpriteDrawer.cs @@ -84,12 +84,32 @@ private static void DrawDirectionals(int[] data, FieldItemLayer layer, int w, in continue; if (tile.IsBuried) DrawX(data, (x - x0) * scale, (y - y0) * scale, scale, w); + else if (tile.IsDropped) + DrawPlus(data, (x - x0) * scale, (y - y0) * scale, scale, w); else if (tile.IsExtension) DrawDirectional(data, tile, (x - x0) * scale, (y - y0) * scale, scale, w); } } } + private static void DrawPlus(int[] data, int x0, int y0, int scale, int w) + { + var x0y0 = (w * y0) + x0; + var s2 = scale / 2; + var ws2 = w * s2; + + var v0 = x0y0 + s2; + var h0 = x0y0 + ws2; + + for (int x = scale / 4; x <= 3 * (scale / 4); x++) + { + var vert = v0 + (w * x); + data[vert] ^= 0x808080; + var hori = h0 + x; + data[hori] ^= 0x808080; + } + } + private static void DrawX(int[] data, int x0, int y0, int scale, int w) { var opposite = scale - 1;