anchor.diff:          Px := bm.ScanLine[y];
           for x:=0 to sx-1 do
           begin
  -          if fRXData.RGBA[CURSORS[KMC],y*sx+x] and $FF000000 = 0 then
  +          if fRXData.RGBA[CURSOR_SPRITE_INDEX[KMC],y*sx+x] and $FF000000 = 0 then
               Px.rgbReserved := $00
             else
               Px.rgbReserved := $FF;
             // Here we have BGR, not RGB
  -          Px.rgbBlue := (fRXData.RGBA[CURSORS[KMC],y*sx+x] and $FF0000) shr 16;
  -          Px.rgbGreen := (fRXData.RGBA[CURSORS[KMC],y*sx+x] and $FF00) shr 8;
  -          Px.rgbRed := fRXData.RGBA[CURSORS[KMC],y*sx+x] and $FF;
  +          Px.rgbBlue := (fRXData.RGBA[CURSOR_SPRITE_INDEX[KMC],y*sx+x] and $FF0000) shr 16;
  +          Px.rgbGreen := (fRXData.RGBA[CURSOR_SPRITE_INDEX[KMC],y*sx+x] and $FF00) shr 8;
  +          Px.rgbRed := fRXData.RGBA[CURSOR_SPRITE_INDEX[KMC],y*sx+x] and $FF;
             inc(Px);
           end;
         end;
         //Load hotspot offsets from RX file, adding the manual offsets (normally 0)
  -      IconInfo.xHotspot := Math.max(-fRXData.Pivot[CURSORS[KMC]].x+CursorOffsetsX[KMC],0);
  -      IconInfo.yHotspot := Math.max(-fRXData.Pivot[CURSORS[KMC]].y+CursorOffsetsY[KMC],0);
  +      IconInfo.xHotspot := Math.max(-fRXData.Pivot[CURSOR_SPRITE_INDEX[KMC]].x+CURSOR_OFFSET_X[KMC],0);
  +      IconInfo.yHotspot := Math.max(-fRXData.Pivot[CURSOR_SPRITE_INDEX[KMC]].y+CURSOR_OFFSET_Y[KMC],0);
       end;
   
       //Release the Mask, otherwise there is black rect in Lazarus
  
positive.code: procedure TKMResCursors.SetCursor(Value: TKMCursor);
  begin
    if SKIP_LOADING_CURSOR then Exit;
    Screen.Cursor := Byte(Value) + COUNT_OFFSET;
  end;
  
  
  
negative.code: // Return cursor offset for given direction, which is a signed(!) value
  function TKMResCursors.CursorOffset(aDir: TKMDirection): TKMPoint;
  begin
    Result.X := fRXData.Pivot[CURSOR_SPRITE_INDEX[DIRECTION_CURSOR[aDir]]].X;
    Result.Y := fRXData.Pivot[CURSOR_SPRITE_INDEX[DIRECTION_CURSOR[aDir]]].Y;
  end;
  
  
  // Sprite index of the cursor
  function TKMResCursors.CursorTexID(aDir: TKMDirection): Integer;
  begin
    Result := CURSOR_SPRITE_INDEX[DIRECTION_CURSOR[aDir]];
  end;
  
  
  