anchor.diff:  //  If there are two masks then we need to render sprite only there
   //where its mask is white AND where second mask is black
   procedure TRenderPool.RenderSpriteAlphaTest(
  -  aRX: TRXType; aId: Word; aWoodProgress: Single; pX, pY: Single; aFOW: Byte;
  +  aRX: TRXType; aId: Word; aWoodProgress: Single; pX, pY: Single;
     aId2: Word = 0; aStoneProgress: Single = 0; X2: Single = 0; Y2: Single = 0);
   begin
     glClear(GL_STENCIL_BUFFER_BIT);
  
positive.code:     glEnd;
    end;
  
    if (GFXData[aRX, aId].Alt.Id <> 0) and (aFOW <> 0) and not aUseUID then
    with GFXData[aRX, aId] do
    //Don't render colorflags if they aren't visible cos of FOW
    begin
      //Multiply RGB component of flag color by FOW
      F := ((Col and $FF) * aFOW shr 8) or
           ((((Col shr 8) and $FF) * aFOW shr 8) shl 8) or
           ((((Col shr 16) and $FF) * aFOW shr 8) shl 16) or
           Col and $FF000000;
      glColor4ubv(@F);
      glBindTexture(GL_TEXTURE_2D, Alt.Id);
      glBegin(GL_QUADS);
        glTexCoord2f(Alt.u1, Alt.v2); glVertex2f(pX                     , pY                      );
  
negative.code:     useUid := (aTarget = rtSelection);
      uid := Sp1.UID * Byte(useUid);
  
      fRenderPool.RenderSprite(Sp1.RX, Sp1.Id, uid, useUid, Sp1.Loc.X, Sp1.Loc.Y, Sp1.TeamColor);
    end
    else
    if (aTarget = rtScreen) then
  