anchor.diff:  type
     // Log message type
     TKMLogMessageType = (
  -    lmtDefault,            //default type
  -    lmtDelivery,           //delivery messages
  -    lmtCommands,           //all GIC commands
  -    lmtRandomChecks,       //Random Checks
  -    lmtNetConnection,      //messages about net connection/disconnection/reconnection
  -    lmtNetPacketOther,     //log messages about net packets (all packets, except GIP commands/ping/fps)
  -    lmtNetPacketCommand,   //log messages about GIP commands net packets
  -    lmtNetPacketPingFps,   //log messages about ping/fps net packets
  -    lmtDebug);             //debug
  +    lmtDefault,            // Default type
  +    lmtDelivery,           // Delivery messages
  +    lmtCommands,           // All GIC commands
  +    lmtRandomChecks,       // Random checks
  +    lmtNetConnection,      // Messages about net connection/disconnection/reconnection
  +    lmtNetPacketOther,     // Messages about net packets (all packets, except GIP commands/ping/fps)
  +    lmtNetPacketCommand,   // Messages about GIP commands net packets
  +    lmtNetPacketPingFps,   // Messages about ping/fps net packets
  +    lmtDebug               // Debug
  +  );
   
     TKMLogMessageTypeSet = set of TKMLogMessageType;
   
  
positive.code:     procedure AddLineNoTime(const aText: UnicodeString; aWithPrefix: Boolean = True; aDoCloseFile: Boolean = True); overload;
      procedure AddLineNoTime(const aText: UnicodeString; aLogType: TKMLogMessageType; aWithPrefix: Boolean = True; aDoCloseFile: Boolean = True); overload;
    public
      MultithreadLogging: Boolean; // Enable thread safe mode (resource protection) while logging with multi threads
      MessageTypes: TKMLogMessageTypeSet;
      constructor Create(const aPath: UnicodeString);
      destructor Destroy; override;
  
negative.code: interface
  uses
    SyncObjs, KM_CommonTypes, KM_CommonClasses
    {$IFDEF KMR_GAME} // Not needed for server and other tools
    , Generics.Collections
    {$ENDIF}
    ;
  