aboutsummaryrefslogtreecommitdiff
path: root/engines/lab/processroom.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2015-12-19 02:12:42 +0200
committerWillem Jan Palenstijn2015-12-23 21:35:27 +0100
commit3e8eaa2c3552df625c2654b7d76e9b1f35bc9e92 (patch)
treefb3fee9adb744cae914dd1b7df253c8f3ba59f90 /engines/lab/processroom.cpp
parenteb70efc900cd224c4ca301ddf49785ab21ab6132 (diff)
downloadscummvm-rg350-3e8eaa2c3552df625c2654b7d76e9b1f35bc9e92.tar.gz
scummvm-rg350-3e8eaa2c3552df625c2654b7d76e9b1f35bc9e92.tar.bz2
scummvm-rg350-3e8eaa2c3552df625c2654b7d76e9b1f35bc9e92.zip
LAB: Use Common::String for strings, removing a ton of memory leaks
Also, add a method to properly free room views
Diffstat (limited to 'engines/lab/processroom.cpp')
-rw-r--r--engines/lab/processroom.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/engines/lab/processroom.cpp b/engines/lab/processroom.cpp
index c21dce7f06..2cec365af9 100644
--- a/engines/lab/processroom.cpp
+++ b/engines/lab/processroom.cpp
@@ -69,7 +69,7 @@ bool LabEngine::checkConditions(int16 *condition) {
* Gets the current ViewDataPointer.
*/
ViewData *LabEngine::getViewData(uint16 roomNum, uint16 direction) {
- if (!_rooms[roomNum]._roomMsg)
+ if (_rooms[roomNum]._roomMsg == "")
_resource->readViews(roomNum);
ViewData *view = _rooms[roomNum]._view[direction];
@@ -135,7 +135,7 @@ CloseDataPtr LabEngine::findClosePtrMatch(CloseDataPtr closePtr, CloseDataPtr cl
/**
* Returns the current picture name.
*/
-char *LabEngine::getPictName(CloseDataPtr *closePtrList) {
+Common::String LabEngine::getPictName(CloseDataPtr *closePtrList) {
ViewData *viewPtr = getViewData(_roomNum, _direction);
if (*closePtrList) {
@@ -152,15 +152,15 @@ char *LabEngine::getPictName(CloseDataPtr *closePtrList) {
* Draws the current direction to the screen.
*/
void LabEngine::drawDirection(CloseDataPtr closePtr) {
- if (closePtr && closePtr->_message) {
- _graphics->drawMessage(closePtr->_message);
+ if (closePtr && closePtr->_message != "") {
+ _graphics->drawMessage(closePtr->_message.c_str());
return;
}
Common::String message;
- if (_rooms[_roomNum]._roomMsg) {
- message += _rooms[_roomNum]._roomMsg;
+ if (_rooms[_roomNum]._roomMsg != "") {
+ message = Common::String(_rooms[_roomNum]._roomMsg).c_str();
message += ", ";
}
@@ -228,7 +228,7 @@ void LabEngine::setCurrentClose(Common::Point pos, CloseDataPtr *closePtrList, b
else
target = Common::Rect(_utils->scaleX(closePtr->_x1), _utils->scaleY(closePtr->_y1), _utils->scaleX(closePtr->_x2), _utils->scaleY(closePtr->_y2));
- if (target.contains(pos) && closePtr->_graphicName) {
+ if (target.contains(pos) && closePtr->_graphicName != "") {
*closePtrList = closePtr;
return;
}
@@ -320,11 +320,11 @@ void LabEngine::doActions(Action *actionList, CloseDataPtr *closePtrList) {
break;
case SHOWCURPICT: {
- char *test = getPictName(closePtrList);
+ Common::String test = getPictName(closePtrList);
- if (strcmp(test, _curFileName) != 0) {
+ if (test != _curFileName) {
_curFileName = test;
- _graphics->readPict(_curFileName, true);
+ _graphics->readPict(_curFileName.c_str(), true);
}
}
break;