diff options
author | Nicola Mettifogo | 2010-02-08 16:12:45 +0000 |
---|---|---|
committer | Nicola Mettifogo | 2010-02-08 16:12:45 +0000 |
commit | 0b06fb2a88aa33e6f74b42de84aa3a1f4f9b87ac (patch) | |
tree | 417933ce8f88a983f9d0f8cddb0b07f777d6d7e6 | |
parent | c453f214e6e356524aff2466a8221675b7ac33be (diff) | |
download | scummvm-rg350-0b06fb2a88aa33e6f74b42de84aa3a1f4f9b87ac.tar.gz scummvm-rg350-0b06fb2a88aa33e6f74b42de84aa3a1f4f9b87ac.tar.bz2 scummvm-rg350-0b06fb2a88aa33e6f74b42de84aa3a1f4f9b87ac.zip |
The text parser functions can create their temporary buffers on the stack.
svn-id: r47991
-rw-r--r-- | engines/drascula/converse.cpp | 23 | ||||
-rw-r--r-- | engines/drascula/rooms.cpp | 73 |
2 files changed, 47 insertions, 49 deletions
diff --git a/engines/drascula/converse.cpp b/engines/drascula/converse.cpp index 006f16ab45..b98e7e8cb4 100644 --- a/engines/drascula/converse.cpp +++ b/engines/drascula/converse.cpp @@ -145,23 +145,22 @@ void DrasculaEngine::converse(int index) { char sound1[13], sound2[13], sound3[13], sound4[13]; int phrase1_bottom, phrase2_bottom, phrase3_bottom, phrase4_bottom; int answer1, answer2, answer3; - char buffer[256]; breakOut = 0; selectVerb(kVerbNone); - getStringFromLine(buffer, size, phrase1); - getStringFromLine(buffer, size, phrase2); - getStringFromLine(buffer, size, phrase3); - getStringFromLine(buffer, size, phrase4); - getStringFromLine(buffer, size, sound1); - getStringFromLine(buffer, size, sound2); - getStringFromLine(buffer, size, sound3); - getStringFromLine(buffer, size, sound4); - getIntFromLine(buffer, size, &answer1); - getIntFromLine(buffer, size, &answer2); - getIntFromLine(buffer, size, &answer3); + getStringFromLine(size, phrase1); + getStringFromLine(size, phrase2); + getStringFromLine(size, phrase3); + getStringFromLine(size, phrase4); + getStringFromLine(size, sound1); + getStringFromLine(size, sound2); + getStringFromLine(size, sound3); + getStringFromLine(size, sound4); + getIntFromLine(size, &answer1); + getIntFromLine(size, &answer2); + getIntFromLine(size, &answer3); _arj.close(); diff --git a/engines/drascula/rooms.cpp b/engines/drascula/rooms.cpp index c9912f25d2..ac50a079f2 100644 --- a/engines/drascula/rooms.cpp +++ b/engines/drascula/rooms.cpp @@ -1643,7 +1643,6 @@ void DrasculaEngine::enterRoom(int roomIndex) { int soc, l, martin = 0, objIsExit = 0; float chiquez = 0, pequegnez = 0; char pant1[20], pant2[20], pant3[20], pant4[20]; - char buffer[256]; int palLevel = 0; _hasName = false; @@ -1656,61 +1655,61 @@ void DrasculaEngine::enterRoom(int roomIndex) { } int size = _arj.size(); - getIntFromLine(buffer, size, &roomNumber); - getIntFromLine(buffer, size, &roomMusic); - getStringFromLine(buffer, size, roomDisk); - getIntFromLine(buffer, size, &palLevel); + getIntFromLine(size, &roomNumber); + getIntFromLine(size, &roomMusic); + getStringFromLine(size, roomDisk); + getIntFromLine(size, &palLevel); if (currentChapter == 2) - getIntFromLine(buffer, size, &martin); + getIntFromLine(size, &martin); if (currentChapter == 2 && martin != 0) { curWidth = martin; - getIntFromLine(buffer, size, &curHeight); - getIntFromLine(buffer, size, &feetHeight); - getIntFromLine(buffer, size, &stepX); - getIntFromLine(buffer, size, &stepY); + getIntFromLine(size, &curHeight); + getIntFromLine(size, &feetHeight); + getIntFromLine(size, &stepX); + getIntFromLine(size, &stepY); - getStringFromLine(buffer, size, pant1); - getStringFromLine(buffer, size, pant2); - getStringFromLine(buffer, size, pant3); - getStringFromLine(buffer, size, pant4); + getStringFromLine(size, pant1); + getStringFromLine(size, pant2); + getStringFromLine(size, pant3); + getStringFromLine(size, pant4); strcpy(menuBackground, pant4); } - getIntFromLine(buffer, size, &numRoomObjs); + getIntFromLine(size, &numRoomObjs); for (l = 0; l < numRoomObjs; l++) { - getIntFromLine(buffer, size, &objectNum[l]); - getStringFromLine(buffer, size, objName[l]); - getIntFromLine(buffer, size, &x1[l]); - getIntFromLine(buffer, size, &y1[l]); - getIntFromLine(buffer, size, &x2[l]); - getIntFromLine(buffer, size, &y2[l]); - getIntFromLine(buffer, size, &roomObjX[l]); - getIntFromLine(buffer, size, &roomObjY[l]); - getIntFromLine(buffer, size, &trackObj[l]); - getIntFromLine(buffer, size, &visible[l]); - getIntFromLine(buffer, size, &isDoor[l]); + getIntFromLine(size, &objectNum[l]); + getStringFromLine(size, objName[l]); + getIntFromLine(size, &x1[l]); + getIntFromLine(size, &y1[l]); + getIntFromLine(size, &x2[l]); + getIntFromLine(size, &y2[l]); + getIntFromLine(size, &roomObjX[l]); + getIntFromLine(size, &roomObjY[l]); + getIntFromLine(size, &trackObj[l]); + getIntFromLine(size, &visible[l]); + getIntFromLine(size, &isDoor[l]); if (isDoor[l] != 0) { - getStringFromLine(buffer, size, _targetSurface[l]); - getIntFromLine(buffer, size, &_destX[l]); - getIntFromLine(buffer, size, &_destY[l]); - getIntFromLine(buffer, size, &trackCharacter_alkeva[l]); - getIntFromLine(buffer, size, &roomExits[l]); + getStringFromLine(size, _targetSurface[l]); + getIntFromLine(size, &_destX[l]); + getIntFromLine(size, &_destY[l]); + getIntFromLine(size, &trackCharacter_alkeva[l]); + getIntFromLine(size, &roomExits[l]); updateDoor(l); } } - getIntFromLine(buffer, size, &floorX1); - getIntFromLine(buffer, size, &floorY1); - getIntFromLine(buffer, size, &floorX2); - getIntFromLine(buffer, size, &floorY2); + getIntFromLine(size, &floorX1); + getIntFromLine(size, &floorY1); + getIntFromLine(size, &floorX2); + getIntFromLine(size, &floorY2); if (currentChapter != 2) { - getIntFromLine(buffer, size, &upperLimit); - getIntFromLine(buffer, size, &lowerLimit); + getIntFromLine(size, &upperLimit); + getIntFromLine(size, &lowerLimit); } _arj.close(); |