mirror of
https://github.com/w23/xash3d-fwgs
synced 2024-12-16 14:10:11 +01:00
Merge pull request #127 from nillerusr/custom
imagelib: fix unaligned access
This commit is contained in:
commit
3e7351cb33
@ -199,8 +199,9 @@ Image_LoadSPR
|
||||
*/
|
||||
qboolean Image_LoadSPR( const char *name, const byte *buffer, fs_offset_t filesize )
|
||||
{
|
||||
dspriteframe_t *pin; // identical for q1\hl sprites
|
||||
dspriteframe_t pin; // identical for q1\hl sprites
|
||||
qboolean truecolor = false;
|
||||
byte *fin;
|
||||
|
||||
if( image.hint == IL_HINT_HL )
|
||||
{
|
||||
@ -217,9 +218,9 @@ qboolean Image_LoadSPR( const char *name, const byte *buffer, fs_offset_t filesi
|
||||
return false;
|
||||
}
|
||||
|
||||
pin = (dspriteframe_t *)buffer;
|
||||
image.width = pin->width;
|
||||
image.height = pin->height;
|
||||
memcpy( &pin, buffer, sizeof(dspriteframe_t) );
|
||||
image.width = pin.width;
|
||||
image.height = pin.height;
|
||||
|
||||
if( filesize < image.width * image.height )
|
||||
return false;
|
||||
@ -243,18 +244,19 @@ qboolean Image_LoadSPR( const char *name, const byte *buffer, fs_offset_t filesi
|
||||
SetBits( image.flags, IMAGE_HAS_ALPHA );
|
||||
break;
|
||||
}
|
||||
|
||||
fin = (byte *)(buffer + sizeof(dspriteframe_t));
|
||||
|
||||
if( truecolor )
|
||||
{
|
||||
// spr32 support
|
||||
image.size = image.width * image.height * 4;
|
||||
image.rgba = Mem_Malloc( host.imagepool, image.size );
|
||||
memcpy( image.rgba, (byte *)(pin + 1), image.size );
|
||||
memcpy( image.rgba, fin, image.size );
|
||||
SetBits( image.flags, IMAGE_HAS_COLOR ); // Color. True Color!
|
||||
return true;
|
||||
}
|
||||
|
||||
return Image_AddIndexedImageToPack( (byte *)(pin + 1), image.width, image.height );
|
||||
return Image_AddIndexedImageToPack( fin, image.width, image.height );
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user