aboutsummaryrefslogtreecommitdiff
path: root/engines/mortevielle
diff options
context:
space:
mode:
authorStrangerke2013-07-28 23:35:26 +0200
committerStrangerke2013-07-28 23:35:26 +0200
commit1b2adafefa6512ce8f3d9b85b0d55a3c8fad4672 (patch)
tree4efd0c46f6546cfdc16079243c4fcc349853f0da /engines/mortevielle
parent0b8db36af5aa5305f3c420255fb7faa5f7b9f4e4 (diff)
downloadscummvm-rg350-1b2adafefa6512ce8f3d9b85b0d55a3c8fad4672.tar.gz
scummvm-rg350-1b2adafefa6512ce8f3d9b85b0d55a3c8fad4672.tar.bz2
scummvm-rg350-1b2adafefa6512ce8f3d9b85b0d55a3c8fad4672.zip
MORTEVIELLE: Use heap allocation in GfxSurface::decode, remove one use of swap
Diffstat (limited to 'engines/mortevielle')
-rw-r--r--engines/mortevielle/graphics.cpp12
-rw-r--r--engines/mortevielle/speech.cpp2
2 files changed, 9 insertions, 5 deletions
diff --git a/engines/mortevielle/graphics.cpp b/engines/mortevielle/graphics.cpp
index e5edeed97a..3a411691aa 100644
--- a/engines/mortevielle/graphics.cpp
+++ b/engines/mortevielle/graphics.cpp
@@ -120,15 +120,15 @@ void GfxSurface::decode(const byte *pSrc) {
}
// Temporary output buffer
- byte outputBuffer[65536];
- Common::fill(&outputBuffer[0], &outputBuffer[65536], _transparency);
+ byte *outputBuffer = (byte *)malloc(sizeof(byte) * 65536);
+ memset(outputBuffer, _transparency, 65536);
byte *pDest = &outputBuffer[0];
const byte *pSrcStart = pSrc;
const byte *pLookup = NULL;
- byte lookupTable[BUFFER_SIZE];
- byte srcBuffer[BUFFER_SIZE];
+ byte *lookupTable = (byte *)malloc(sizeof(byte) * BUFFER_SIZE);
+ byte *srcBuffer = (byte *)malloc(sizeof(byte) * BUFFER_SIZE);
// Main processing loop
for (int entryIndex = 0; entryIndex < entryCount; ++entryIndex) {
@@ -427,6 +427,10 @@ void GfxSurface::decode(const byte *pSrc) {
Common::copy(copySrc, copySrc + w, copyDest);
}
+
+ ::free(outputBuffer);
+ ::free(lookupTable);
+ ::free(srcBuffer);
}
void GfxSurface::majTtxTty() {
diff --git a/engines/mortevielle/speech.cpp b/engines/mortevielle/speech.cpp
index 445f7faffb..08c92c6560 100644
--- a/engines/mortevielle/speech.cpp
+++ b/engines/mortevielle/speech.cpp
@@ -88,7 +88,7 @@ void SpeechManager::spfrac(int wor) {
}
void SpeechManager::charg_car(int &currWordNumb) {
- int wor = swap(READ_LE_UINT16(&_vm->_mem[(kAdrWord * 16) + currWordNumb]));
+ int wor = READ_BE_UINT16(&_vm->_mem[(kAdrWord * 16) + currWordNumb]);
int int_ = wor & 0x3f; // 63
if ((int_ >= 0) && (int_ <= 13)) {