anchor.diff:  interface
   uses
     SyncObjs, KM_CommonTypes, KM_CommonClasses
  -  {$IFDEF KMR_GAME} // No need for server and other tools
  +  {$IFDEF KMR_GAME} // Not needed for server and other tools
     , Generics.Collections
     {$ENDIF}
     ;
  
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: 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,     // 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;
  
  