fix build on big endian architectures

This commit is contained in:
Sébastien Noel 2025-02-24 10:58:09 +01:00
parent 2b732d72c8
commit cfd4fc1124
2 changed files with 5 additions and 1 deletions

View File

@ -759,6 +759,9 @@ inline __uint64 BYTESWAP64_unsigned(__uint64 x)
val = *((SLONG *) &uval); val = *((SLONG *) &uval);
} }
/**
* BOOL is int32_t , just like SLONG
* so don't define the same function twice
static inline void BYTESWAP(BOOL &val) static inline void BYTESWAP(BOOL &val)
{ {
// !!! FIXME: reinterpret_cast ? // !!! FIXME: reinterpret_cast ?
@ -766,6 +769,7 @@ inline __uint64 BYTESWAP64_unsigned(__uint64 x)
BYTESWAP(uval); BYTESWAP(uval);
val = *((BOOL *) &uval); val = *((BOOL *) &uval);
} }
*/
static inline void BYTESWAP(FLOAT &val) static inline void BYTESWAP(FLOAT &val)
{ {

View File

@ -1534,7 +1534,7 @@ void CGame::UnpackHighScoreTable(SLONG slSize)
gm_ahseHighScores[i].hse_strPlayer = (const char*)pub; gm_ahseHighScores[i].hse_strPlayer = (const char*)pub;
pub += MAX_HIGHSCORENAME+1; pub += MAX_HIGHSCORENAME+1;
memcpy(&gm_ahseHighScores[i].hse_gdDifficulty, pub, sizeof(INDEX)); memcpy(&gm_ahseHighScores[i].hse_gdDifficulty, pub, sizeof(INDEX));
BYTESWAP(gm_ahseHighScores[i].hse_gdDifficulty); BYTESWAP((int&)gm_ahseHighScores[i].hse_gdDifficulty);
pub += sizeof(INDEX); pub += sizeof(INDEX);
memcpy(&gm_ahseHighScores[i].hse_tmTime , pub, sizeof(FLOAT)); memcpy(&gm_ahseHighScores[i].hse_tmTime , pub, sizeof(FLOAT));
BYTESWAP(gm_ahseHighScores[i].hse_tmTime); BYTESWAP(gm_ahseHighScores[i].hse_tmTime);