diff options
author | Strangerke | 2013-07-28 23:35:26 +0200 |
---|---|---|
committer | Strangerke | 2013-07-28 23:35:26 +0200 |
commit | 1b2adafefa6512ce8f3d9b85b0d55a3c8fad4672 (patch) | |
tree | 4efd0c46f6546cfdc16079243c4fcc349853f0da | |
parent | 0b8db36af5aa5305f3c420255fb7faa5f7b9f4e4 (diff) | |
download | scummvm-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
-rw-r--r-- | engines/mortevielle/graphics.cpp | 12 | ||||
-rw-r--r-- | engines/mortevielle/speech.cpp | 2 |
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)) { |