anchor.diff:    KM_HouseMarket, KM_HouseBarracks, KM_HouseSchool, KM_HouseTownHall,
     KM_ScriptingEvents, KM_Alerts, KM_CommonUtils, KM_Log;
   
  -const NO_LAST_TICK_VALUE = 0;
  +const 
  +  NO_LAST_TICK_VALUE = 0;
  +
  +var
  +  GIC_COMMAND_TYPE_MAX_LENGTH: Byte;
   
   
   function IsSelectedObjectCommand(aGIC: TGameInputCommandType): Boolean;
  
positive.code: end;
  
  
  end.
  
  
negative.code: 
  function GetCommandLogString(aGIC: TGameInputCommand): UnicodeString;
  begin
    with aGIC do
    begin
      Result := Format('%-' + IntToStr(GIC_COMMAND_TYPE_MAX_LENGTH) + 's player: %2d, params: ',
                       [GetEnumName(TypeInfo(TGameInputCommandType), Integer(CommandType)), HandIndex]);
      case CommandPackType[CommandType] of
        gicpt_NoParams: Result := Result + ' []';
        gicpt_Int1:     Result := Result + Format('[%10d]', [Params[1]]);
        gicpt_Int2:     Result := Result + Format('[%10d,%10d]', [Params[1], Params[2]]);
        gicpt_Int3:     Result := Result + Format('[%10d,%10d,%10d]', [Params[1], Params[2], Params[3]]);
        gicpt_Int4:     Result := Result + Format('[%10d,%10d,%10d,%10d]', [Params[1], Params[2], Params[3], Params[4]]);
        gicpt_Text:     Result := Result + Format('[%s]', [TextParam]);
        gicpt_Date:     Result := Result + Format('[%s]', [FormatDateTime('dd.mm.yy hh:nn:ss.zzz', DateTimeParam)]); //aMemoryStream.Read(DateTimeParam);
      end;
    end;
  end;
  