public static void ComeToMe(HardFlowClass back, Kthura m, KthuraLayer l, int x, int y) { Map = m; MapLayer = l; ScrollX = x; ScrollY = y; ReturnFlow = back; FlowManager.GoHardFlow(Flow); time = 2500; }
static public void DrawMap(KthuraLayer layer, int scrollx = 0, int scrolly = 0, int x = 0, int y = 0) { bool AutoRemapOnHold = Kthura.automap; bool actorsmoved = false; Kthura.automap = false; if (layer.ObjectDrawOrder == null) { layer.RemapDominance(); } foreach (KthuraObject obj in layer.ObjectDrawOrder) { if (obj.Visible || IgnoreVisibility) { if (true) // This looks useless now, but this routine will be used later in optimalisation to see if an object is actually on screen, and if not, ignore it. { switch (obj.kind) { case "TiledArea": obj.Animate(DrawDriver.AnimReset); if (DrawDriver != null) { DrawDriver.DrawTiledArea(obj, x, y, scrollx, scrolly); } break; case "StretchedArea": obj.Animate(DrawDriver.AnimReset); if (DrawDriver != null) { DrawDriver.DrawStretchedArea(obj, x, y, scrollx, scrolly); } break; case "Obstacle": obj.Animate(DrawDriver.AnimReset); //KthuraEdit.Stages.DBG.Log($"Animation frame for Obstacle {obj.Tag}: {obj.AnimFrame}"); // Must be on comment if not debugging the standard editor or no compile-o! if (DrawDriver != null) { DrawDriver.DrawObstacle(obj, x, y, scrollx, scrolly); } break; case "Pic": obj.Animate(DrawDriver.AnimReset); if (DrawDriver != null) { DrawDriver.DrawPic(obj, x, y, scrollx, scrolly); } break; case "Actor": { int oldx = x; int oldy = y; if (DrawDriver != null) { DrawDriver.DrawActor((KthuraActor)obj, x, y, scrollx, scrolly); } actorsmoved = actorsmoved || oldx != x || oldy != y; break; } case "Zone": DrawZone(obj, x, y, scrollx, scrolly); break; case "Pivot": DrawPivot?.Invoke(obj, x, y, scrollx, scrolly); break; case "Exit": DrawExit?.Invoke(obj, x, y, scrollx, scrolly); break; case "Custom": DrawCustom?.Invoke(obj, x, y, scrollx, scrolly); break; default: if (qstr.Prefixed(obj.kind, "$")) { DrawCSpot?.Invoke(obj, x, y, scrollx, scrolly); break; } else { throw new Exception($"Unknown drawing object kind: {obj.kind}"); } //break; } } } } // Restore Automap Kthura.automap = AutoRemapOnHold; if (Kthura.automap && actorsmoved) { layer.TotalRemap(); // If actors have moved, make sure remapping is done } }