anchor.diff:  
   implementation
   uses KM_PlayersCollection, KM_Terrain, KM_Viewport, KM_Player, KM_PlayerAI, KM_ResourceGFX;
  -
  -
  -function GetCommandTypeFromText(const ACommandText: string): TKMCommandType;
  -var
  -  i: TKMCommandType;
  -begin
  -  Result := ct_Unknown;
  -  for i:=low(TKMCommandType) to high(TKMCommandType) do
  -  begin
  -    if ACommandText = '!'+COMMANDVALUES[i] then
  -    begin
  -      Result := i;
  -      break;
  -    end;
  -  end;
  -  if Result = ct_Unknown then fLog.AddToLog(ACommandText);
  -end;
   
   
   constructor TMissionParser.Create(aMode:TMissionParserMode);
  
positive.code:     procedure ProcessAttackPositions;
      procedure UnloadMission;
      function ReadMissionFile(const aFileName:string):string;
    public      { Public declarations }
      constructor Create(aMode:TMissionParserMode);
      function LoadDATFile(const aFileName:string):string;
      function SaveDATFile(const aFileName:string):boolean;
  
negative.code:     AIAttack: TAIAttack;
      AttackPositions: array of TKMAttackPosition;
      AttackPositionsCount: integer;
      function GetCommandTypeFromText(const ACommandText: string): TKMCommandType;
      function GetUnitScriptID(aUnitType:TUnitType):integer;
      function ProcessCommand(CommandType: TKMCommandType; ParamList: array of integer; TextParam:string):boolean;
      procedure GetDetailsProcessCommand(CommandType: TKMCommandType; const ParamList: array of integer; TextParam:string; var MissionDetails: TKMMissionDetails);
  