Skip to content

Commit

Permalink
COMMON: Add WRITE_UINT24
Browse files Browse the repository at this point in the history
  • Loading branch information
ccawley2011 authored and bgK committed Mar 2, 2019
1 parent f14703e commit 5d912b6
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions common/endian.h
Expand Up @@ -573,15 +573,31 @@ inline uint32 READ_LE_UINT24(const void *ptr) {
return (b[2] << 16) | (b[1] << 8) | (b[0]);
}

inline void WRITE_LE_UINT24(void *ptr, uint32 value) {
uint8 *b = (uint8 *)ptr;
b[0] = (uint8)(value >> 0);
b[1] = (uint8)(value >> 8);
b[2] = (uint8)(value >> 16);
}

inline uint32 READ_BE_UINT24(const void *ptr) {
const uint8 *b = (const uint8 *)ptr;
return (b[0] << 16) | (b[1] << 8) | (b[2]);
}

inline void WRITE_BE_UINT24(void *ptr, uint32 value) {
uint8 *b = (uint8 *)ptr;
b[0] = (uint8)(value >> 16);
b[1] = (uint8)(value >> 8);
b[2] = (uint8)(value >> 0);
}

#ifdef SCUMM_LITTLE_ENDIAN
#define READ_UINT24(a) READ_LE_UINT24(a)
#define WRITE_UINT24(a,b) WRITE_LE_UINT24(a,b)
#else
#define READ_UINT24(a) READ_BE_UINT24(a)
#define WRITE_UINT24(a,b) WRITE_BE_UINT24(a,b)
#endif

inline int16 READ_LE_INT16(const void *ptr) {
Expand Down

0 comments on commit 5d912b6

Please sign in to comment.