Here is the TEXTURES code:
Code: Select all
sprite WNDRy0, 374, 240 ////original sprite TEXTURES definition
{
offset 0, 39
YScale 1.198
Patch WNDRy0, 0, 0
}
Sprite "SGPDaa", 150, 240
{
Patch "WNDRy0", -224, 0 /////the left hand is chopped off in this sprite
}
Sprite "SGPDab", 224, 240
{
Patch "WNDRy0", 0, 0 /////the shotgun is chopped off in this sprite
}
Sprite "SGPDa0", 374, 240 /////they display side-by-side (224+150=374 wide)
{
Offset 0, 39
YScale 1.198
Patch "SGPDaa", 224, 0 /////the shotgun of the "WNDRy0" sprite
Patch "SGPDab", 0, 20 /////the left hand of the "WNDRy0" sprite
}
Sprite "SGPDb0", 374, 240
{
Offset 0, 39
YScale 1.198
Patch "SGPDaa", 224, 0 /////only the shotgun is displayed
}
Sprite "SGPDc0", 427, 240
{
Offset 53, 39
YScale 1.198
Patch "SGPDaa", 277, 0 /////holding the shotgun in the right hand for the whole pistol animation
Patch "P22Da0", 0, 38 /////First frame of the pistol draw
{
flipx
}
}
Code: Select all
Altfire:
WNDR "[" 1 /////
WNDR z 1 ///// two unmodified sprites of the shotgun draw
SGPD a 1 ///// The left hand is lowered in this sprite
SGPD b 4 /////the left hand isn't visible here
SGPD cdefghijklmnopqrst 1 ////The left handed pistol drawing animation
Then the shotgun stops moving, as if the player is holding it pointed up with the right hand.
The left hand goes down out of sight, then pulls out the pistol (using the pistol sprites with the "flipx" option.
In the GL renderer, during the whole pistol animation, the left hand that should have gone out of sight is displayed in the middle of the screen. This hand isn't displayed in the software renderer.
I think the GL renderer treats the texture offsets correctly and displays it in the correct place, but it displays the areas of the sprite that are beyond the defined borders of the texture.
Below is a screenshot: Software on left, GL on right