From 870a583c8b93eb560dca37add3cf9d98f21d594a Mon Sep 17 00:00:00 2001 From: Torbjörn Andersson Date: Sun, 4 Aug 2013 09:24:33 +0200 Subject: MORTEVIELLE: Pass Pattern struct by reference This should avoid unnecessary copying of a 400+ byte struct. This was a low-priority Coverity issue, for some reason without a CID. --- engines/mortevielle/mortevielle.h | 2 +- engines/mortevielle/utils.cpp | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/engines/mortevielle/mortevielle.h b/engines/mortevielle/mortevielle.h index 37901bb1b3..eb5c8dfe52 100644 --- a/engines/mortevielle/mortevielle.h +++ b/engines/mortevielle/mortevielle.h @@ -272,7 +272,7 @@ private: void mainGame(); void playGame(); void handleAction(); - void displayCGAPattern(int n, Pattern p, nhom *pal); + void displayCGAPattern(int n, Pattern *p, nhom *pal); void loadPalette(); void loadTexts(); void loadBRUIT5(); diff --git a/engines/mortevielle/utils.cpp b/engines/mortevielle/utils.cpp index 705237c4eb..af2c4868de 100644 --- a/engines/mortevielle/utils.cpp +++ b/engines/mortevielle/utils.cpp @@ -1997,7 +1997,7 @@ void MortevielleEngine::setPal(int n) { palette(_cgaPal[n]._p); for (int i = 0; i <= 15; ++i) - displayCGAPattern(i, _patternArr[pal[i]._id], pal); + displayCGAPattern(i, &_patternArr[pal[i]._id], pal); } break; default: @@ -2009,15 +2009,15 @@ void MortevielleEngine::setPal(int n) { * Engine function - Display a CGA pattern, using a specified palette * @remarks Originally called 'outbloc' */ -void MortevielleEngine::displayCGAPattern(int n, Pattern p, nhom *pal) { +void MortevielleEngine::displayCGAPattern(int n, Pattern *p, nhom *pal) { int addr = n * 404 + 0xd700; - WRITE_LE_UINT16(&_curPict[addr], p._tax); - WRITE_LE_UINT16(&_curPict[addr + 2], p._tay); + WRITE_LE_UINT16(&_curPict[addr], p->_tax); + WRITE_LE_UINT16(&_curPict[addr + 2], p->_tay); addr += 4; - for (int i = 0; i < p._tax; ++i) { - for (int j = 0; j < p._tay; ++j) - _curPict[addr + j * p._tax + i] = pal[n]._hom[p._des[i + 1][j + 1]]; + for (int i = 0; i < p->_tax; ++i) { + for (int j = 0; j < p->_tay; ++j) + _curPict[addr + j * p->_tax + i] = pal[n]._hom[p->_des[i + 1][j + 1]]; } } -- cgit v1.2.3