aboutsummaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
Diffstat (limited to 'graphics')
-rw-r--r--graphics/dxa_player.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/graphics/dxa_player.cpp b/graphics/dxa_player.cpp
index 59828340d9..d4e216d27d 100644
--- a/graphics/dxa_player.cpp
+++ b/graphics/dxa_player.cpp
@@ -292,9 +292,10 @@ void DXAPlayer::decode13(uint8 *data, int size, int totalSize) {
int codeSize = _width * _curHeight / 16;
int dataSize, motSize, maskSize;
- memcpy(&dataSize, data, 4);
- memcpy(&motSize, &data[4], 4);
- memcpy(&maskSize, &data[8], 4);
+
+ dataSize = READ_BE_UINT32(&data[0]);
+ motSize = READ_BE_UINT32(&data[4]);
+ maskSize = READ_BE_UINT32(&data[8]);
codeBuf = &data[12];
dataBuf = &codeBuf[codeSize];
@@ -311,7 +312,7 @@ void DXAPlayer::decode13(uint8 *data, int size, int totalSize) {
break;
case 1: {
- uint16 diffMap = *(unsigned short*)maskBuf;
+ uint16 diffMap = READ_BE_UINT16(maskBuf);
maskBuf += 2;
for (int yc = 0; yc < BLOCKH; yc++) {
@@ -427,11 +428,11 @@ void DXAPlayer::decode13(uint8 *data, int size, int totalSize) {
int count = type - 30;
uint8 pixels[4];
- for (int i = 0; i < count; i++)
- pixels[i] = *dataBuf++;
+ memcpy(pixels, dataBuf, count);
+ dataBuf += count;
if (count == 2) {
- uint16 code = *(uint16*)maskBuf;
+ uint16 code = READ_BE_UINT16(maskBuf);
maskBuf += 2;
for (int yc = 0; yc < BLOCKH; yc++) {
for (int xc = 0; xc < BLOCKW; xc++) {
@@ -441,7 +442,7 @@ void DXAPlayer::decode13(uint8 *data, int size, int totalSize) {
b2 += _width;
}
} else {
- uint32 code = *(uint32*)maskBuf;
+ uint32 code = READ_BE_UINT32(maskBuf);
maskBuf += 4;
for (int yc = 0; yc < BLOCKH; yc++) {
for (int xc = 0; xc < BLOCKW; xc++) {