public: add unaligned access handlers for new big endian port

This commit is contained in:
Xav101
2026-05-18 23:29:51 -04:00
committed by a1batross
parent fca347dd00
commit 074bd8b2b3
2 changed files with 12 additions and 5 deletions

View File

@@ -273,4 +273,11 @@ typedef int qboolean;
#define HostFourCC( a, b, c, d ) LittleFourCC( a, b, c, d )
#endif
static inline short UnalignedShort( short *x )
{
short y;
memcpy( &y, x, sizeof( y ) );
return y;
}
#endif // XASH_TYPES_H

View File

@@ -454,23 +454,23 @@ void R_StudioCalcBones( int frame, float s, const mstudiobone_t *pbone, const ms
if( panimvalue->num.valid > j )
{
v1[i] = panimvalue[j + 1].value;
v1[i] = UnalignedShort( &( panimvalue[j + 1].value ) );
if( panimvalue->num.valid > j + 1 )
v2[i] = panimvalue[j + 2].value;
v2[i] = UnalignedShort( &( panimvalue[j + 2].value ) );
else if( panimvalue->num.total > j + 1 )
v2[i] = v1[i];
else
v2[i] = panimvalue[panimvalue->num.valid + 2].value;
v2[i] = UnalignedShort( &( panimvalue[panimvalue->num.valid + 2].value ) );
}
else
{
v1[i] = panimvalue[panimvalue->num.valid].value;
v1[i] = UnalignedShort( &( panimvalue[panimvalue->num.valid].value ) );
if( panimvalue->num.total > j + 1 )
v2[i] = v1[i];
else
v2[i] = panimvalue[panimvalue->num.valid + 2].value;
v2[i] = UnalignedShort( &( panimvalue[panimvalue->num.valid + 2].value ) );
}
v1[i] = pbone->value[i] + v1[i] * pbone->scale[i] + fadj;