@@ -300,6 +300,7 @@ public partial class Overlay : Window
300
300
private bool showSystemNames = false ;
301
301
private bool showAllCharacterNames = false ;
302
302
private bool individualCharacterWindows = false ;
303
+ private string additionalCharacterNamesDisplay = "All" ;
303
304
304
305
private DispatcherTimer locationUpdateTimer = new DispatcherTimer ( ) ;
305
306
private DispatcherTimer dataUpdateTimer = new DispatcherTimer ( ) ;
@@ -419,6 +420,7 @@ public Overlay(MainWindow mw)
419
420
showSystemNames = mainWindow . MapConf . OverlayShowSystemNames ;
420
421
showAllCharacterNames = mainWindow . MapConf . OverlayShowAllCharacterNames ;
421
422
individualCharacterWindows = mainWindow . MapConf . OverlayIndividualCharacterWindows ;
423
+ additionalCharacterNamesDisplay = mainWindow . MapConf . OverlayAdditionalCharacterNamesDisplay ;
422
424
423
425
// Initialize value animation to be used by dashed lines
424
426
dashAnimation = new DoubleAnimation ( ) ;
@@ -1589,48 +1591,79 @@ private void DrawSystemToOverlay(OverlaySystemData sysData, double left, double
1589
1591
double leftCoord = left - ( systemData [ sysData . system . Name ] . systemCanvasElement . Width * 0.5 ) ;
1590
1592
double topCoord = top - ( systemData [ sysData . system . Name ] . systemCanvasElement . Height * 0.5 ) ;
1591
1593
1592
- if ( showSystemNames || showAllCharacterNames )
1594
+ // Show system and char names.
1595
+ if ( systemData [ sysData . system . Name ] . systemNameElement == null )
1593
1596
{
1594
- if ( systemData [ sysData . system . Name ] . systemNameElement == null )
1595
- {
1596
- systemData [ sysData . system . Name ] . systemNameElement = new TextBlock ( ) ;
1597
- }
1598
- systemData [ sysData . system . Name ] . systemNameElement . Inlines . Clear ( ) ;
1599
- systemData [ sysData . system . Name ] . systemNameElement . Width = 80 ;
1597
+ systemData [ sysData . system . Name ] . systemNameElement = new TextBlock ( ) ;
1598
+ }
1599
+ systemData [ sysData . system . Name ] . systemNameElement . Inlines . Clear ( ) ;
1600
+ systemData [ sysData . system . Name ] . systemNameElement . Width = 80 ;
1601
+
1602
+ bool firstEntry = false ;
1600
1603
1601
- bool firstEntry = false ;
1602
- if ( showSystemNames )
1604
+ if ( showSystemNames )
1605
+ {
1606
+ systemData [ sysData . system . Name ] . systemNameElement . Inlines . Add ( new Run ( sysData . system . Name ) ) ;
1607
+ firstEntry = true ;
1608
+ }
1609
+
1610
+ List < string > charsInSystem = new ( ) ;
1611
+
1612
+ foreach ( KeyValuePair < LocalCharacter , OverlaySystemData > localCharacterEntry in currentPlayersSystemData )
1613
+ {
1614
+ if ( localCharacterEntry . Value . system != null && sysData . system . Name == localCharacterEntry . Value . system . Name )
1603
1615
{
1604
- systemData [ sysData . system . Name ] . systemNameElement . Inlines . Add ( new Run ( sysData . system . Name ) ) ;
1605
- firstEntry = true ;
1616
+ charsInSystem . Add ( localCharacterEntry . Key . Name ) ;
1606
1617
}
1618
+ }
1607
1619
1608
- foreach ( KeyValuePair < LocalCharacter , OverlaySystemData > localCharacterEntry in currentPlayersSystemData )
1609
- {
1610
- if ( localCharacterEntry . Value . system != null && sysData . system . Name == localCharacterEntry . Value . system . Name )
1620
+ switch ( additionalCharacterNamesDisplay )
1621
+ {
1622
+ case "Overlay Character" :
1623
+ if ( charsInSystem . Contains ( OverlayCharacter . Name ) )
1624
+ {
1625
+ if ( firstEntry )
1626
+ {
1627
+ systemData [ sysData . system . Name ] . systemNameElement . Inlines . Add ( new LineBreak ( ) ) ;
1628
+ }
1629
+
1630
+ systemData [ sysData . system . Name ] . systemNameElement . Inlines
1631
+ . Add ( new Run ( $ "{ OverlayCharacter . Name } ") ) ;
1632
+ }
1633
+ break ;
1634
+ case "All" :
1635
+ foreach ( string charName in charsInSystem )
1611
1636
{
1612
1637
if ( firstEntry )
1613
1638
{
1614
1639
systemData [ sysData . system . Name ] . systemNameElement . Inlines . Add ( new LineBreak ( ) ) ;
1615
1640
}
1616
- systemData [ sysData . system . Name ] . systemNameElement . Inlines . Add ( new Run ( $ "{ localCharacterEntry . Key . Name } ") ) ;
1641
+ systemData [ sysData . system . Name ] . systemNameElement . Inlines . Add ( new Run ( $ "{ charName } ") ) ;
1617
1642
firstEntry = true ;
1618
1643
}
1619
- }
1620
-
1621
- systemData [ sysData . system . Name ] . systemNameElement . Foreground = Brushes . White ;
1622
- systemData [ sysData . system . Name ] . systemNameElement . FontSize = 10 ;
1623
- systemData [ sysData . system . Name ] . systemNameElement . TextAlignment = TextAlignment . Center ;
1624
- systemData [ sysData . system . Name ] . systemNameElement . IsHitTestVisible = false ;
1644
+ break ;
1645
+ case "None" :
1646
+ break ;
1647
+ case "Number" :
1648
+ if ( charsInSystem . Count > 0 )
1649
+ {
1650
+ systemData [ sysData . system . Name ] . systemNameElement . Inlines . Add ( new Run ( $ " ({ charsInSystem . Count } )") ) ;
1651
+ }
1652
+ break ;
1653
+ }
1654
+
1655
+ systemData [ sysData . system . Name ] . systemNameElement . Foreground = Brushes . White ;
1656
+ systemData [ sysData . system . Name ] . systemNameElement . FontSize = 10 ;
1657
+ systemData [ sysData . system . Name ] . systemNameElement . TextAlignment = TextAlignment . Center ;
1658
+ systemData [ sysData . system . Name ] . systemNameElement . IsHitTestVisible = false ;
1625
1659
1626
- Canvas . SetLeft ( systemData [ sysData . system . Name ] . systemNameElement , leftCoord - ( systemData [ sysData . system . Name ] . systemNameElement . Width * 0.5f ) + ( systemData [ sysData . system . Name ] . systemCanvasElement . Width * 0.5f ) ) ;
1627
- Canvas . SetTop ( systemData [ sysData . system . Name ] . systemNameElement , topCoord + systemData [ sysData . system . Name ] . systemCanvasElement . Height + 2 ) ;
1628
- Canvas . SetZIndex ( systemData [ sysData . system . Name ] . systemNameElement , 125 ) ;
1660
+ Canvas . SetLeft ( systemData [ sysData . system . Name ] . systemNameElement , leftCoord - ( systemData [ sysData . system . Name ] . systemNameElement . Width * 0.5f ) + ( systemData [ sysData . system . Name ] . systemCanvasElement . Width * 0.5f ) ) ;
1661
+ Canvas . SetTop ( systemData [ sysData . system . Name ] . systemNameElement , topCoord + systemData [ sysData . system . Name ] . systemCanvasElement . Height + 2 ) ;
1662
+ Canvas . SetZIndex ( systemData [ sysData . system . Name ] . systemNameElement , 125 ) ;
1629
1663
1630
- if ( ! overlay_Canvas . Children . Contains ( systemData [ sysData . system . Name ] . systemNameElement ) )
1631
- {
1632
- overlay_Canvas . Children . Add ( systemData [ sysData . system . Name ] . systemNameElement ) ;
1633
- }
1664
+ if ( ! overlay_Canvas . Children . Contains ( systemData [ sysData . system . Name ] . systemNameElement ) )
1665
+ {
1666
+ overlay_Canvas . Children . Add ( systemData [ sysData . system . Name ] . systemNameElement ) ;
1634
1667
}
1635
1668
1636
1669
systemData [ sysData . system . Name ] . canvasCoordinate = new Vector2 ( ( float ) leftCoord , ( float ) topCoord ) ;
@@ -1909,6 +1942,13 @@ private void OverlayConf_PropertyChanged(object sender, PropertyChangedEventArgs
1909
1942
individualCharacterWindows = mainWindow . MapConf . OverlayIndividualCharacterWindows ;
1910
1943
Close ( ) ;
1911
1944
}
1945
+
1946
+ if ( e . PropertyName == "OverlayAdditionalCharacterNamesDisplay" )
1947
+ {
1948
+ additionalCharacterNamesDisplay = mainWindow . MapConf . OverlayAdditionalCharacterNamesDisplay ;
1949
+ ClearView ( ) ;
1950
+ RefreshCurrentView ( ) ;
1951
+ }
1912
1952
}
1913
1953
1914
1954
/// <summary>
0 commit comments