From 728b23af2ad939e3da920a41b85730689a1aa71f Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Wed, 22 Mar 2017 04:07:33 +0200 Subject: FULLPIPE: Change transCyrillic() to accept a Common::String --- engines/fullpipe/scene.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/fullpipe/scene.cpp') diff --git a/engines/fullpipe/scene.cpp b/engines/fullpipe/scene.cpp index 4e3678bfb4..f7a9458403 100644 --- a/engines/fullpipe/scene.cpp +++ b/engines/fullpipe/scene.cpp @@ -165,7 +165,7 @@ bool Scene::load(MfcArchive &file) { _sceneId = file.readUint16LE(); _sceneName = file.readPascalString(); - debug(0, "scene: <%s> %d", transCyrillic((byte *)_sceneName), _sceneId); + debug(0, "scene: <%s> %d", transCyrillic(_sceneName), _sceneId); int count = file.readUint16LE(); debugC(7, kDebugLoading, "scene.ani: %d", count); -- cgit v1.2.3 From f3e81b5f17872186f7c67a551876dd78f268865c Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Wed, 22 Mar 2017 04:11:49 +0200 Subject: FULLPIPE: Use Common::String in all scene object names --- engines/fullpipe/scene.cpp | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) (limited to 'engines/fullpipe/scene.cpp') diff --git a/engines/fullpipe/scene.cpp b/engines/fullpipe/scene.cpp index f7a9458403..a4086734b2 100644 --- a/engines/fullpipe/scene.cpp +++ b/engines/fullpipe/scene.cpp @@ -72,7 +72,6 @@ bool SceneTagList::load(MfcArchive &file) { SceneTag::SceneTag() { _field_4 = 0; _scene = 0; - _tag = 0; _sceneId = 0; } @@ -86,14 +85,12 @@ bool SceneTag::load(MfcArchive &file) { _tag = file.readPascalString(); - debugC(6, kDebugLoading, "sceneId: %d tag: %s", _sceneId, _tag); + debugC(6, kDebugLoading, "sceneId: %d tag: %s", _sceneId, _tag.c_str()); return true; } SceneTag::~SceneTag() { - free(_tag); - delete _scene; delete _field_4; } @@ -130,7 +127,6 @@ Scene::Scene() { _shadows = 0; _soundList = 0; _libHandle = 0; - _sceneName = 0; } Scene::~Scene() { @@ -153,8 +149,6 @@ Scene::~Scene() { delete _libHandle; // delete _field_BC; - - free(_sceneName); } bool Scene::load(MfcArchive &file) { @@ -221,10 +215,10 @@ bool Scene::load(MfcArchive &file) { _libHandle = g_fp->_currArchive; - if (_picObjList.size() > 0 && _bgname && strlen(_bgname) > 1) { + if (_picObjList.size() > 0 && _bgname.size() > 1) { char fname[260]; - strcpy(fname, _bgname); + strcpy(fname, _bgname.c_str()); strcpy(strrchr(fname, '.') + 1, "col"); MemoryObject *col = new MemoryObject(); @@ -312,7 +306,7 @@ StaticANIObject *Scene::getStaticANIObject1ById(int obj, int a3) { StaticANIObject *Scene::getStaticANIObject1ByName(char *name, int a3) { for (uint i = 0; i < _staticANIObjectList1.size(); i++) { - if (!strcmp(_staticANIObjectList1[i]->_objectName, name) && (a3 == -1 || _staticANIObjectList1[i]->_odelay == a3)) + if (_staticANIObjectList1[i]->_objectName == name && (a3 == -1 || _staticANIObjectList1[i]->_odelay == a3)) return _staticANIObjectList1[i]; } @@ -373,7 +367,7 @@ PictureObject *Scene::getPictureObjectById(int objId, int flags) { PictureObject *Scene::getPictureObjectByName(const char *objName, int flags) { for (uint i = 0; i < _picObjList.size(); i++) { - if (!strcmp(((PictureObject *)_picObjList[i])->_objectName, objName) && (((PictureObject *)_picObjList[i])->_odelay == flags || flags == -1)) + if (((PictureObject *)_picObjList[i])->_objectName == objName && (((PictureObject *)_picObjList[i])->_odelay == flags || flags == -1)) return (PictureObject *)_picObjList[i]; } @@ -413,14 +407,14 @@ void Scene::preloadMovements(GameVar *var) { return; for (GameVar *i = preload->_subVars; i; i = i->_nextVarObj) { - StaticANIObject *ani = getStaticANIObject1ByName(i->_varName, -1); + StaticANIObject *ani = getStaticANIObject1ByName((char *)i->_varName.c_str(), -1); if (ani) { GameVar *subVars = i->_subVars; if (subVars) { for (;subVars; subVars = subVars->_nextVarObj) { - Movement *mov = ani->getMovementByName(subVars->_varName); + Movement *mov = ani->getMovementByName((char *)subVars->_varName.c_str()); if (mov) mov->loadPixelData(); @@ -442,9 +436,9 @@ void Scene::initObjectCursors(const char *varname) { int minId = 0xffff; for (GameVar *sub = cursorsVar->_subVars; sub; sub = sub->_nextVarObj) { - GameObject *obj = getPictureObjectByName(sub->_varName, -1); + GameObject *obj = getPictureObjectByName((char *)sub->_varName.c_str(), -1); - if (obj || (obj = getStaticANIObject1ByName(sub->_varName, -1)) != 0) { + if (obj || (obj = getStaticANIObject1ByName((char *)sub->_varName.c_str(), -1)) != 0) { if (obj->_id < minId) minId = obj->_id; if (obj->_id > maxId) @@ -458,10 +452,10 @@ void Scene::initObjectCursors(const char *varname) { g_fp->_objectIdCursors.resize(maxId - minId + 1); for (GameVar *sub = cursorsVar->_subVars; sub; sub = sub->_nextVarObj) { - GameObject *obj = getPictureObjectByName(sub->_varName, -1); + GameObject *obj = getPictureObjectByName((char *)sub->_varName.c_str(), -1); if (!obj) - obj = getStaticANIObject1ByName(sub->_varName, -1); + obj = getStaticANIObject1ByName((char *)sub->_varName.c_str(), -1); PictureObject *pic = getGameLoaderInventory()->getScene()->getPictureObjectByName(sub->_value.stringValue, -1); -- cgit v1.2.3 From 93982b2ca9b67cd143f603f516570e269f28fa32 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Wed, 22 Mar 2017 04:32:23 +0200 Subject: FULLPIPE: Change more object-related functions to use Common::String --- engines/fullpipe/scene.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'engines/fullpipe/scene.cpp') diff --git a/engines/fullpipe/scene.cpp b/engines/fullpipe/scene.cpp index a4086734b2..3dc8acdbcd 100644 --- a/engines/fullpipe/scene.cpp +++ b/engines/fullpipe/scene.cpp @@ -304,9 +304,9 @@ StaticANIObject *Scene::getStaticANIObject1ById(int obj, int a3) { return 0; } -StaticANIObject *Scene::getStaticANIObject1ByName(char *name, int a3) { +StaticANIObject *Scene::getStaticANIObject1ByName(Common::String &name, int a3) { for (uint i = 0; i < _staticANIObjectList1.size(); i++) { - if (_staticANIObjectList1[i]->_objectName == name && (a3 == -1 || _staticANIObjectList1[i]->_odelay == a3)) + if ((_staticANIObjectList1[i]->_objectName == name) && (a3 == -1 || _staticANIObjectList1[i]->_odelay == a3)) return _staticANIObjectList1[i]; } @@ -365,9 +365,9 @@ PictureObject *Scene::getPictureObjectById(int objId, int flags) { return 0; } -PictureObject *Scene::getPictureObjectByName(const char *objName, int flags) { +PictureObject *Scene::getPictureObjectByName(Common::String objName, int flags) { for (uint i = 0; i < _picObjList.size(); i++) { - if (((PictureObject *)_picObjList[i])->_objectName == objName && (((PictureObject *)_picObjList[i])->_odelay == flags || flags == -1)) + if ((((PictureObject *)_picObjList[i])->_objectName == objName) && (((PictureObject *)_picObjList[i])->_odelay == flags || flags == -1)) return (PictureObject *)_picObjList[i]; } @@ -393,9 +393,9 @@ MessageQueue *Scene::getMessageQueueById(int messageId) { return 0; } -MessageQueue *Scene::getMessageQueueByName(char *name) { +MessageQueue *Scene::getMessageQueueByName(Common::String &name) { for (uint i = 0; i < _messageQueueList.size(); i++) - if (!strcmp(_messageQueueList[i]->_queueName.c_str(), name)) + if (_messageQueueList[i]->_queueName == name) return _messageQueueList[i]; return 0; @@ -407,14 +407,14 @@ void Scene::preloadMovements(GameVar *var) { return; for (GameVar *i = preload->_subVars; i; i = i->_nextVarObj) { - StaticANIObject *ani = getStaticANIObject1ByName((char *)i->_varName.c_str(), -1); + StaticANIObject *ani = getStaticANIObject1ByName(i->_varName, -1); if (ani) { GameVar *subVars = i->_subVars; if (subVars) { for (;subVars; subVars = subVars->_nextVarObj) { - Movement *mov = ani->getMovementByName((char *)subVars->_varName.c_str()); + Movement *mov = ani->getMovementByName(subVars->_varName); if (mov) mov->loadPixelData(); @@ -436,9 +436,9 @@ void Scene::initObjectCursors(const char *varname) { int minId = 0xffff; for (GameVar *sub = cursorsVar->_subVars; sub; sub = sub->_nextVarObj) { - GameObject *obj = getPictureObjectByName((char *)sub->_varName.c_str(), -1); + GameObject *obj = getPictureObjectByName(sub->_varName, -1); - if (obj || (obj = getStaticANIObject1ByName((char *)sub->_varName.c_str(), -1)) != 0) { + if (obj || (obj = getStaticANIObject1ByName(sub->_varName, -1)) != 0) { if (obj->_id < minId) minId = obj->_id; if (obj->_id > maxId) @@ -452,10 +452,10 @@ void Scene::initObjectCursors(const char *varname) { g_fp->_objectIdCursors.resize(maxId - minId + 1); for (GameVar *sub = cursorsVar->_subVars; sub; sub = sub->_nextVarObj) { - GameObject *obj = getPictureObjectByName((char *)sub->_varName.c_str(), -1); + GameObject *obj = getPictureObjectByName(sub->_varName, -1); if (!obj) - obj = getStaticANIObject1ByName((char *)sub->_varName.c_str(), -1); + obj = getStaticANIObject1ByName(sub->_varName, -1); PictureObject *pic = getGameLoaderInventory()->getScene()->getPictureObjectByName(sub->_value.stringValue, -1); -- cgit v1.2.3 From 2649e2b1fc9d0ab0d5d648602f3d6b936e94dbdb Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Wed, 22 Mar 2017 04:50:37 +0200 Subject: FULLPIPE: Change genFileName() and loadFile() to use Common::String --- engines/fullpipe/scene.cpp | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) (limited to 'engines/fullpipe/scene.cpp') diff --git a/engines/fullpipe/scene.cpp b/engines/fullpipe/scene.cpp index 3dc8acdbcd..cd563258dc 100644 --- a/engines/fullpipe/scene.cpp +++ b/engines/fullpipe/scene.cpp @@ -96,11 +96,11 @@ SceneTag::~SceneTag() { } void SceneTag::loadScene() { - char *archname = genFileName(0, _sceneId, "nl"); + Common::String archname = genFileName(0, _sceneId, "nl"); Common::Archive *arch = makeNGIArchive(archname); - char *fname = genFileName(0, _sceneId, "sc"); + Common::String fname = genFileName(0, _sceneId, "sc"); Common::SeekableReadStream *file = arch->createReadStreamForMember(fname); @@ -116,9 +116,6 @@ void SceneTag::loadScene() { delete file; g_fp->_currArchive = 0; - - free(fname); - free(archname); } Scene::Scene() { @@ -166,7 +163,7 @@ bool Scene::load(MfcArchive &file) { for (int i = 0; i < count; i++) { int aniNum = file.readUint16LE(); - char *aniname = genFileName(0, aniNum, "ani"); + Common::String aniname = genFileName(0, aniNum, "ani"); Common::SeekableReadStream *f = g_fp->_currArchive->createReadStreamForMember(aniname); @@ -180,7 +177,6 @@ bool Scene::load(MfcArchive &file) { _staticANIObjectList1.push_back(ani); delete f; - free(aniname); } count = file.readUint16LE(); @@ -188,7 +184,7 @@ bool Scene::load(MfcArchive &file) { for (int i = 0; i < count; i++) { int qNum = file.readUint16LE(); - char *qname = genFileName(0, qNum, "qu"); + Common::String qname = genFileName(0, qNum, "qu"); Common::SeekableReadStream *f = g_fp->_currArchive->createReadStreamForMember(qname); MfcArchive archive(f); @@ -202,7 +198,6 @@ bool Scene::load(MfcArchive &file) { _messageQueueList.push_back(mq); delete f; - free(qname); } count = file.readUint16LE(); @@ -227,33 +222,27 @@ bool Scene::load(MfcArchive &file) { _palette = col; } - char *shdname = genFileName(0, _sceneId, "shd"); + Common::String shdname = genFileName(0, _sceneId, "shd"); Shadows *shd = new Shadows(); if (shd->loadFile(shdname)) _shadows = shd; - free(shdname); - - char *slsname = genFileName(0, _sceneId, "sls"); + Common::String slsname = genFileName(0, _sceneId, "sls"); if (g_fp->_soundEnabled) { _soundList = new SoundList(); if (g_fp->_flgSoundList) { - char *nlname = genFileName(17, _sceneId, "nl"); + Common::String nlname = genFileName(17, _sceneId, "nl"); _soundList->loadFile(slsname, nlname); - - free(nlname); } else { _soundList->loadFile(slsname, 0); } } - free(slsname); - initStaticANIObjects(); if (file.size() - file.pos() > 0) -- cgit v1.2.3 From af874d469e1ccead8e397fe566de06afb904131e Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Wed, 22 Mar 2017 22:17:36 +0200 Subject: FULLPIPE: Code optimization Checking for an empty string is what the original code does, according to sev, so the check for a string of size 1 was wrong --- engines/fullpipe/scene.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/fullpipe/scene.cpp') diff --git a/engines/fullpipe/scene.cpp b/engines/fullpipe/scene.cpp index cd563258dc..fa4f955832 100644 --- a/engines/fullpipe/scene.cpp +++ b/engines/fullpipe/scene.cpp @@ -210,7 +210,7 @@ bool Scene::load(MfcArchive &file) { _libHandle = g_fp->_currArchive; - if (_picObjList.size() > 0 && _bgname.size() > 1) { + if (_picObjList.size() > 0 && !_bgname.empty()) { char fname[260]; strcpy(fname, _bgname.c_str()); -- cgit v1.2.3