-
assigned issue to
- edited description
[#bugs] in the barathrumite compound, the look box for the leftmost vacuum column tape d...
Marked for crossposting by: the hoary demon helado
Message (jump):
<the hoary demon helado> in the barathrumite compound, the look box for the leftmost vacuum column tape drive shows a flame effect on it because it overlaps where a torch sconce is in the actual zone
Comments (10)
-
repo owner -
- changed status to invalid
-
did you need more information on this one to reproduce it? i’m still seeing it on current patch. i wasn’t able to get a screenshot last time but here is one
-
huh weird. there’s no torch there. must be some other visual artifact.
-
- changed status to open
-
the torch there is the lower right torch in the room with the non-locked staircase
the general rule is: if there is a torch effect at the real zone tile where the preview of the item would be rendered, then the preview is rendered with the torch effect. i just gave that one because it was where i noticed it but assumed that if you spotted the problem then the fix would generalize well enough
-
oh okay, got it
-
-
assigned issue to
-
assigned issue to
-
This has been reported in
.#1128#1740,#3088,#4203,#5109,#5116,#5683, and#5895.The issue is in
ConsoleLib.Console.ScreenBuffer public void Write(IRenderable r)
. It appears that at some point the signature ofWrite(string Tile, string RenderString, string ColorString, string TileColor, string DetailColor, bool SuppressImposters = true, bool HFlip = false, bool VFlip = false)
lacked theSuppressImposters
argument, soWrite(IRenderable r)
passesr.getHFlip()
asSuppressImposters
instead of asHFlip
. SinceHFlip
defaults to false, this meansSuppressImposters
is also false except for situations in whichHFlip
is true.A complete Harmony patch tested to demonstrate the issue and subsequent fix is as follows:
using System; using ConsoleLib.Console; using HarmonyLib; /// <summary> /// Patches ConsoleLib.Console.Screenbuffer to pass HFlip and VFlip properly. /// </summary> [HarmonyPatch(typeof(ConsoleLib.Console.ScreenBuffer), "Write", new Type[] { typeof(IRenderable) })] public class TorchFix_Patcher { static bool Prefix(ref ScreenBuffer __instance, IRenderable r) { if (r == null) { __instance.Write("{{M|?}}"); } else { __instance.Write(r.getTile(), r.getRenderString(), r.getColorString(), r.getTileColor(), r.getDetailColor(), HFlip: r.getHFlip(), VFlip: r.getVFlip()); } return false; // skip the original method } }
-
- changed status to resolved
Nice catch! Fixed in 203.32
- Log in to comment