Alright, I think I found the problem and the solution. It's not your data files - I was able to reproduce the gap at 5292x1050 in windowed mode. What we seem to have here is an oddly coincidental case of pixel offsets becoming floating points as they are scaled to 2.1875x their original values, while other offsets when scaled come out to integers. So some are misaligned by a single pixel and others are aligned perfectly, and we have the exact combination of alignment and misalignment for this to be visible.
Anyway, what I ultimately wound up doing is changing the CGDraw scaling code to round up instead of leaving it up to the deep, dark pits of the Q3 engine to interpret the meaning of a fraction of a pixel (I would guess it ultimately rounds down). There will still be misaligned scope graphics, but since I'm making sure everything is a fraction of a pixel too big, misaligned graphics should overlap instead of separate, and you won't notice. Hopefully this doesn't break anything. I tested the scope and binoculars with a couple of different resolutions, and it seems to work out.
New version uploaded.
I still have no idea why your crosshairs are different, but that's probably not important now. I used your files, and we have the same sized big ones - I still have my Mauser crosshairs, not yours.
By the way, this is the original version of Return to Castle Wolfenstein, not the Game of the Year Edition. It's possible they modified the scopes slightly between versions.
Here's the funny thing. The hairs on the scope are actually coded right into the executable. Here's some of the code (should be intelligible even if you don't know C):
Code:
if ( weap == WP_SNIPERRIFLE ) {
// sides
CG_FillRect( 0, 0, 80, 480, color, UI_CENTER );
CG_FillRect( 560, 0, 80, 480, color, UI_CENTER );
/* stuff */
// hairs
CG_FillRect( 84, 239, 177, 2, color, UI_CENTER ); // left
CG_FillRect( 320, 242, 1, 58, color, UI_CENTER ); // center top
CG_FillRect( 319, 300, 2, 178, color, UI_CENTER ); // center bot
CG_FillRect( 380, 239, 177, 2, color, UI_CENTER ); // right
}
CG_FillRect( 84, 239, 177, 2, color, UI_CENTER ) means:
Draw a solid rectangle at x-coordinate 84, y-coordinate 239, with a width of 177px and a height of 2px. Fill it with the color data assigned to variable "color." Then scale it to the screen's resolution using the CG UI_CENTER algorithm (that part was my addition).
Did you crank the FOV really high to show the problem, or is specific to that particular weapon you're using?
It's specific to the Snooper. I had also messed with the drawing angles a bit to make it more clear that part of the gun was missing.