anchor.diff:  // Child items don't need ground level
   procedure TRenderList.AddSprite(aRX: TRXType; aId: Integer; pX,pY: Single; aTeam: Cardinal = $0; aAlphaStep: Single = -1);
   begin
  -  if fCount >= Length(RenderList) then
  -    SetLength(RenderList, fCount + 256); // Book some space
  -
  -  RenderList[fCount].Loc        := KMPointF(pX,pY); // Position of sprite, floating-point
  -  RenderList[fCount].Feet       := RenderList[fCount-1].Feet;  // Ground position of sprite for Z-sorting
  -  RenderList[fCount].RX         := aRX;             // RX library
  -  RenderList[fCount].Id         := aId;             // Texture Id
  -  RenderList[fCount].UID        := 0;               // Child sprites aren't used for selecting units
  -  RenderList[fCount].NewInst    := False;           // Is this a new item (can be occluded), or a child one (always on top of it's parent)
  -  RenderList[fCount].TeamColor  := aTeam;           // Team Id (determines color)
  -  RenderList[fCount].AlphaStep  := aAlphaStep;      // Alpha step for wip buildings
  +  if fCount >= Length(fRenderList) then
  +    SetLength(fRenderList, fCount + 256); // Book some space
  +
  +  fRenderList[fCount].Loc        := KMPointF(pX,pY); // Position of sprite, floating-point
  +  fRenderList[fCount].Feet       := fRenderList[fCount-1].Feet;  // Ground position of sprite for Z-sorting
  +  fRenderList[fCount].RX         := aRX;             // RX library
  +  fRenderList[fCount].Id         := aId;             // Texture Id
  +  fRenderList[fCount].UID        := 0;               // Child sprites aren't used for selecting units
  +  fRenderList[fCount].NewInst    := False;           // Is this a new item (can be occluded), or a child one (always on top of it's parent)
  +  fRenderList[fCount].TeamColor  := aTeam;           // Team Id (determines color)
  +  fRenderList[fCount].AlphaStep  := aAlphaStep;      // Alpha step for wip buildings
   
     Inc(fCount); // New item added
   end;
  
positive.code: 
  destructor TRenderList.Destroy;
  begin
    SetLength(RenderList, 0);
  
    inherited;
  end;
  
negative.code:   begin
      lo := aLo;
      hi := aHi;
      mid := fRenderList[fRenderOrder[(lo + hi) div 2]].Feet.Y;
      repeat
        while fRenderList[fRenderOrder[lo]].Feet.Y < mid do Inc(lo);
        while fRenderList[fRenderOrder[hi]].Feet.Y > mid do Dec(hi);
        if lo <= hi then
        begin
          SwapInt(fRenderOrder[lo], fRenderOrder[hi]);
          Inc(lo);
          Dec(hi);
        end;
  