From 1b2adafefa6512ce8f3d9b85b0d55a3c8fad4672 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sun, 28 Jul 2013 23:35:26 +0200 Subject: MORTEVIELLE: Use heap allocation in GfxSurface::decode, remove one use of swap --- engines/mortevielle/graphics.cpp | 12 ++++++++---- engines/mortevielle/speech.cpp | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) (limited to 'engines/mortevielle') 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)) { -- cgit v1.2.3