private void Display(HistoryList hl) { pictureBox.ClearImageList(); current_historylist = hl; if (hl != null && hl.Count > 0) // just for safety { List <HistoryEntry> result = current_historylist.LastFirst; // Standard filtering int ftotal; // event filter result = HistoryList.FilterByJournalEvent(result, SQLiteDBClass.GetSettingString(DbFilterSave, "All"), out ftotal); result = FilterHelpers.FilterHistory(result, fieldfilter, discoveryform.Globals, out ftotal); // and the field filter.. RevertToNormalSize(); // ensure size is back to normal.. scanpostextoffset = new Point(0, 0); // left/ top used by scan display Color textcolour = IsTransparent ? discoveryform.theme.SPanelColor : discoveryform.theme.LabelColor; Color backcolour = IsTransparent ? (Config(Configuration.showBlackBoxAroundText) ? Color.Black : Color.Transparent) : this.BackColor; bool drawnnootherstuff = DrawScanText(true, textcolour, backcolour); // go 1 for some of the scan positions if (!drawnnootherstuff) // and it may indicate its overwriting all stuff, which is fine { int rowpos = scanpostextoffset.Y; int rowheight = Config(Configuration.showIcon) ? 26 : 20; if (Config(Configuration.showNothingWhenDocked) && (hl.IsCurrentlyDocked || hl.IsCurrentlyLanded)) { AddColText(0, 0, rowpos, rowheight, (hl.IsCurrentlyDocked) ? "Docked" : "Landed", textcolour, backcolour, null); } else if ((uistate == UIState.GalMap && Config(Configuration.showNothingWhenGalmap)) || (uistate == UIState.SystemMap && Config(Configuration.showNothingWhenSysmap))) { AddColText(0, 0, rowpos, rowheight, (uistate == UIState.GalMap) ? "Galaxy Map" : "System Map", textcolour, backcolour, null); } else { string name; Point3D tpos; bool targetpresent = TargetClass.GetTargetPosition(out name, out tpos); ISystem currentsystem = hl.CurrentSystem; // may be null HistoryEntry last = hl.GetLast; if (Config(Configuration.showSystemInformation) && last != null) { string allegiance, economy, gov, faction, factionstate, security; hl.ReturnSystemInfo(last, out allegiance, out economy, out gov, out faction, out factionstate, out security); string str = last.System.Name + " : " + BaseUtils.FieldBuilder.Build( "", faction, "", factionstate, "", security, "", allegiance, "", economy, "", gov ); HistoryEntry lastfsd = hl.GetLastHistoryEntry(x => x.journalEntry is EliteDangerousCore.JournalEvents.JournalFSDJump, last); bool firstdiscovery = (lastfsd != null && (lastfsd.journalEntry as EliteDangerousCore.JournalEvents.JournalFSDJump).EDSMFirstDiscover); AddColText(0, 0, rowpos, rowheight, str, textcolour, backcolour, null, firstdiscovery ? EDDiscovery.Icons.Controls.firstdiscover : null, "Shows if EDSM indicates your it's first discoverer"); rowpos += rowheight; } if (Config(Configuration.showHabInformation) && last != null) { StarScan scan = hl.starscan; StarScan.SystemNode sn = scan.FindSystem(last.System, true); // EDSM look up here.. string res = null; if (sn != null && sn.starnodes.Count > 0 && sn.starnodes.Values[0].ScanData != null) { JournalScan js = sn.starnodes.Values[0].ScanData; res = js.HabZoneString().Replace("\r\n", " "); } if (res != null) { AddColText(0, 0, rowpos, rowheight, res, textcolour, backcolour, null); rowpos += rowheight; } } if (targetpresent && Config(Configuration.showTargetLine) && currentsystem != null) { string dist = (currentsystem.HasCoordinate) ? currentsystem.Distance(tpos.X, tpos.Y, tpos.Z).ToString("0.00") : "Unknown"; AddColText(0, 0, rowpos, rowheight, "Target: " + name + " @ " + dist + " ly", textcolour, backcolour, null); rowpos += rowheight; } foreach (HistoryEntry rhe in result) { DrawHistoryEntry(rhe, rowpos, rowheight, tpos, textcolour, backcolour); rowpos += rowheight; if (rowpos > ClientRectangle.Height) // stop when off of screen { break; } } } } DrawScanText(false, textcolour, backcolour); // go 2 } pictureBox.Render(); }