anchor.diff:    Panel_Unit.Show;
   
     // Common properties
  -  Label_UnitName.Caption      := gRes.Units[aUnit.UnitType].GUIName;
  -  Image_UnitPic.TexID         := gRes.Units[aUnit.UnitType].GUIScroll;
  -  Image_UnitPic.FlagColor     := gHands[aUnit.Owner].FlagColor;
  -
  -  ConditionBar_Unit.Position  := aUnit.Condition / UNIT_MAX_CONDITION;
  +  Show_Common(aUnit);
  +
     Label_UnitTask.Caption      := aUnit.GetActivityText;
   
     Button_Unit_Dismiss.Visible := SHOW_DISMISS_UNITS_BTN
  
positive.code: 
  implementation
  uses
    KM_Game, KM_GameInputProcess, KM_HandsCollection, KM_Hand, KM_HandSpectator, KM_InterfaceGame, KM_RenderUI,
    KM_Resource, KM_ResFonts, KM_ResTexts, KM_ResKeys, KM_ResHouses, KM_ResSound, KM_ResCursors, KM_ResUnits, KM_Pics,
    KM_Units_Warrior, KM_Utils, KM_Defaults, KM_Sound, KM_CommonUtils;
  
negative.code: end;
  
  
  procedure TKMGUIGameUnit.Show_Common(aUnit: TKMUnit);
  var
    HLabelWidth: Integer;
  begin
    Image_PlayerFlag.FlagColor := gHands[aUnit.Owner].FlagColor;
    Image_PlayerFlag.Hint      := Format(gResTexts[TX_PLAYER_FLAG_HINT], [gHands[aUnit.Owner].OwnerName]);
  
    // Common properties
    Label_UnitName.Caption      := gRes.Units[aUnit.UnitType].GUIName;
    Image_UnitPic.TexID         := gRes.Units[aUnit.UnitType].GUIScroll;
    Image_UnitPic.FlagColor     := gHands[aUnit.Owner].FlagColor;
  
    ConditionBar_Unit.Position  := aUnit.Condition / UNIT_MAX_CONDITION;
  
    HLabelWidth := gRes.Fonts[fnt_Outline].GetTextSize(Label_UnitName.Caption).X;
    if HLabelWidth <= TB_WIDTH - 2*Image_PlayerFlag.Width then
      Label_UnitName.Left := 0
    else if HLabelWidth <= TB_WIDTH - Image_PlayerFlag.Width then
      Label_UnitName.Left := Image_PlayerFlag.Width
    else
      Label_UnitName.Left := Max(TB_WIDTH - HLabelWidth, 0);
  end;
  
  
  procedure TKMGUIGameUnit.ShowUnitInfo(aUnit: TKMUnit; aAskDismiss: Boolean = False);
  var
    HasSchools: Boolean;
  