aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorFilippos Karapetis2017-03-22 04:11:49 +0200
committerFilippos Karapetis2017-03-22 04:11:49 +0200
commitf3e81b5f17872186f7c67a551876dd78f268865c (patch)
tree3465c6ec7a4664cee4b7e893e8e0e0d3c5845603 /engines
parent728b23af2ad939e3da920a41b85730689a1aa71f (diff)
downloadscummvm-rg350-f3e81b5f17872186f7c67a551876dd78f268865c.tar.gz
scummvm-rg350-f3e81b5f17872186f7c67a551876dd78f268865c.tar.bz2
scummvm-rg350-f3e81b5f17872186f7c67a551876dd78f268865c.zip
FULLPIPE: Use Common::String in all scene object names
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/behavior.cpp10
-rw-r--r--engines/fullpipe/gfx.cpp6
-rw-r--r--engines/fullpipe/gfx.h6
-rw-r--r--engines/fullpipe/interaction.cpp11
-rw-r--r--engines/fullpipe/interaction.h2
-rw-r--r--engines/fullpipe/motion.cpp11
-rw-r--r--engines/fullpipe/motion.h2
-rw-r--r--engines/fullpipe/objects.h4
-rw-r--r--engines/fullpipe/scene.cpp28
-rw-r--r--engines/fullpipe/scene.h4
-rw-r--r--engines/fullpipe/sound.cpp4
-rw-r--r--engines/fullpipe/stateloader.cpp29
-rw-r--r--engines/fullpipe/statics.cpp8
-rw-r--r--engines/fullpipe/utils.cpp25
-rw-r--r--engines/fullpipe/utils.h4
15 files changed, 68 insertions, 86 deletions
diff --git a/engines/fullpipe/behavior.cpp b/engines/fullpipe/behavior.cpp
index 80542afcb6..694f7d0799 100644
--- a/engines/fullpipe/behavior.cpp
+++ b/engines/fullpipe/behavior.cpp
@@ -64,13 +64,13 @@ void BehaviorManager::initBehavior(Scene *sc, GameVar *var) {
for (GameVar *subvar = behvar->_subVars; subvar; subvar = subvar->_nextVarObj) {
debugC(3, kDebugBehavior, "BehaviorManager::initBehavior. subVar %s", transCyrillic(subvar->_varName));
- if (!strcmp(subvar->_varName, "AMBIENT")) {
+ if (subvar->_varName == "AMBIENT") {
behinfo = new BehaviorInfo;
behinfo->initAmbientBehavior(subvar, sc);
_behaviors.push_back(behinfo);
} else {
- StaticANIObject *ani = sc->getStaticANIObject1ByName(subvar->_varName, -1);
+ StaticANIObject *ani = sc->getStaticANIObject1ByName((char *)subvar->_varName.c_str(), -1);
if (ani) {
for (uint i = 0; i < sc->_staticANIObjectList1.size(); i++) {
if (((StaticANIObject *)sc->_staticANIObjectList1[i])->_id == ani->_id) {
@@ -279,7 +279,7 @@ void BehaviorInfo::initObjectBehavior(GameVar *var, Scene *sc, StaticANIObject *
if (strcmp(var->_value.stringValue, "ROOT"))
break;
- GameVar *v1 = g_fp->getGameLoaderGameVar()->getSubVarByName("BEHAVIOR")->getSubVarByName(ani->getName());
+ GameVar *v1 = g_fp->getGameLoaderGameVar()->getSubVarByName("BEHAVIOR")->getSubVarByName(ani->getName().c_str());
if (v1 == var)
return;
@@ -317,7 +317,7 @@ BehaviorAnim::BehaviorAnim(GameVar *var, Scene *sc, StaticANIObject *ani, int *m
_flags = 0;
_behaviorMoves = 0;
- Statics *st = ani->getStaticsByName(var->_varName);
+ Statics *st = ani->getStaticsByName((char *)var->_varName.c_str());
if (st)
_staticsId = st->_staticsId;
@@ -346,7 +346,7 @@ BehaviorMove::BehaviorMove(GameVar *subvar, Scene *sc, int *delay) {
_delay = 0;
_percent = 0;
_flags = 0;
- _messageQueue = sc->getMessageQueueByName(subvar->_varName);
+ _messageQueue = sc->getMessageQueueByName((char *)subvar->_varName.c_str());
GameVar *vart = subvar->getSubVarByName("dwDelay");
if (vart)
diff --git a/engines/fullpipe/gfx.cpp b/engines/fullpipe/gfx.cpp
index 619f41d6da..6fd720a52d 100644
--- a/engines/fullpipe/gfx.cpp
+++ b/engines/fullpipe/gfx.cpp
@@ -41,7 +41,6 @@ Background::Background() {
_bigPictureArray1Count = 0;
_bigPictureArray2Count = 0;
_bigPictureArray = 0;
- _bgname = 0;
_palette = 0;
}
@@ -260,7 +259,6 @@ GameObject::GameObject() {
_priority = 0;
_field_20 = 0;
_field_8 = 0;
- _objectName = 0;
}
GameObject::GameObject(GameObject *src) {
@@ -268,8 +266,7 @@ GameObject::GameObject(GameObject *src) {
_flags = 0;
_id = src->_id;
- _objectName = (char *)calloc(strlen(src->_objectName) + 1, 1);
- strncpy(_objectName, src->_objectName, strlen(src->_objectName));
+ _objectName = src->_objectName;
_ox = src->_ox;
_oy = src->_oy;
@@ -279,7 +276,6 @@ GameObject::GameObject(GameObject *src) {
}
GameObject::~GameObject() {
- free(_objectName);
}
bool GameObject::load(MfcArchive &file) {
diff --git a/engines/fullpipe/gfx.h b/engines/fullpipe/gfx.h
index 43c23b49bc..6c0bf70f44 100644
--- a/engines/fullpipe/gfx.h
+++ b/engines/fullpipe/gfx.h
@@ -133,7 +133,7 @@ class GameObject : public CObject {
int _field_8;
int16 _flags;
int16 _id;
- char *_objectName;
+ Common::String _objectName;
int _ox;
int _oy;
int _priority;
@@ -150,7 +150,7 @@ class GameObject : public CObject {
void renumPictures(Common::Array<PictureObject *> *lst);
void setFlags(int16 flags) { _flags = flags; }
void clearFlags() { _flags = 0; }
- const char *getName() { return _objectName; }
+ Common::String getName() { return _objectName; }
bool getPicAniInfo(PicAniInfo *info);
bool setPicAniInfo(PicAniInfo *info);
@@ -186,7 +186,7 @@ class Background : public CObject {
public:
Common::Array<PictureObject *> _picObjList;
- char *_bgname;
+ Common::String _bgname;
int _x;
int _y;
int16 _messageQueueId;
diff --git a/engines/fullpipe/interaction.cpp b/engines/fullpipe/interaction.cpp
index 84b8fbc3c5..856552a8b1 100644
--- a/engines/fullpipe/interaction.cpp
+++ b/engines/fullpipe/interaction.cpp
@@ -428,7 +428,6 @@ Interaction::Interaction() {
_staticsId2 = 0;
_field_28 = 0;
_sceneId = -1;
- _actionName = 0;
}
Interaction::~Interaction() {
@@ -438,8 +437,6 @@ Interaction::~Interaction() {
}
delete _messageQueue;
-
- free(_actionName);
}
bool Interaction::load(MfcArchive &file) {
@@ -496,20 +493,20 @@ bool Interaction::canInteract(GameObject *obj1, GameObject *obj2, int invId) {
if (_objectState1) {
if (_flags & 0x10) {
- if ((g_fp->getObjectState(obj1->getName()) & _objectState1) == 0)
+ if ((g_fp->getObjectState(obj1->getName().c_str()) & _objectState1) == 0)
return false;
} else {
- if (g_fp->getObjectState(obj1->getName()) != _objectState1)
+ if (g_fp->getObjectState(obj1->getName().c_str()) != _objectState1)
return false;
}
}
if (_objectState2) {
if (_flags & 0x10) {
- if ((g_fp->getObjectState(obj2->getName()) & _objectState2) == 0)
+ if ((g_fp->getObjectState(obj2->getName().c_str()) & _objectState2) == 0)
return false;
} else {
- if (g_fp->getObjectState(obj2->getName()) != _objectState2)
+ if (g_fp->getObjectState(obj2->getName().c_str()) != _objectState2)
return false;
}
}
diff --git a/engines/fullpipe/interaction.h b/engines/fullpipe/interaction.h
index 40df9035e9..89af8d7a8f 100644
--- a/engines/fullpipe/interaction.h
+++ b/engines/fullpipe/interaction.h
@@ -50,7 +50,7 @@ class Interaction : public CObject {
int _sceneId;
int _field_28;
uint _flags;
- char *_actionName;
+ Common::String _actionName;
public:
Interaction();
diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp
index 05f13d4a8b..47d0591daa 100644
--- a/engines/fullpipe/motion.cpp
+++ b/engines/fullpipe/motion.cpp
@@ -54,7 +54,7 @@ void MotionController::enableLinks(const char *linkName, bool enable) {
MovGraphLink *lnk = (MovGraphLink *)*l;
- if (!strcmp(lnk->_name, linkName)) {
+ if (lnk->_name == linkName) {
if (enable)
lnk->_flags |= 0x20000000;
else
@@ -82,7 +82,7 @@ MovGraphLink *MotionController::getLinkByName(const char *name) {
MovGraphLink *lnk = (MovGraphLink *)*l;
- if (!strcmp(lnk->_name, name))
+ if (lnk->_name == name)
return lnk;
}
}
@@ -97,7 +97,7 @@ MovGraphLink *MotionController::getLinkByName(const char *name) {
MovGraphLink *lnk = (MovGraphLink *)*l;
- if (!strcmp(lnk->_name, name))
+ if (lnk->_name == name)
return lnk;
}
}
@@ -391,7 +391,7 @@ int MctlLadder::findObjectPos(StaticANIObject *obj) {
bool MctlLadder::initMovement(StaticANIObject *ani, MctlLadderMovement *movement) {
debugC(4, kDebugPathfinding, "MctlLadder::initMovement(*%d, ...)", ani->_id);
- GameVar *v = g_fp->getGameLoaderGameVar()->getSubVarByName(ani->getName());
+ GameVar *v = g_fp->getGameLoaderGameVar()->getSubVarByName(ani->getName().c_str());
if (!v)
return false;
@@ -1744,7 +1744,7 @@ bool MctlGraph::fillData(StaticANIObject *obj, MctlAni *item) {
item->_obj = obj;
item->_objectId = obj->_id;
- GameVar *var = g_fp->getGameLoaderGameVar()->getSubVarByName(obj->_objectName);
+ GameVar *var = g_fp->getGameLoaderGameVar()->getSubVarByName(obj->_objectName.c_str());
if (!var)
return false;
@@ -2900,7 +2900,6 @@ MovGraphLink::MovGraphLink() {
_field_3C = 0;
_field_38 = 0;
_movGraphReact = 0;
- _name = 0;
_objtype = kObjTypeMovGraphLink;
}
diff --git a/engines/fullpipe/motion.h b/engines/fullpipe/motion.h
index 4eecd98536..7c25080485 100644
--- a/engines/fullpipe/motion.h
+++ b/engines/fullpipe/motion.h
@@ -228,7 +228,7 @@ class MovGraphLink : public CObject {
double _length;
double _angle;
MovGraphReact *_movGraphReact;
- char *_name;
+ Common::String _name;
public:
MovGraphLink();
diff --git a/engines/fullpipe/objects.h b/engines/fullpipe/objects.h
index 12ad6105d3..57f7864f1b 100644
--- a/engines/fullpipe/objects.h
+++ b/engines/fullpipe/objects.h
@@ -33,7 +33,7 @@ class SceneTagList;
class GameProject : public CObject {
public:
int _field_4;
- char *_headerFilename;
+ Common::String _headerFilename;
SceneTagList *_sceneTagList;
int _field_10;
@@ -80,7 +80,7 @@ class GameVar : public CObject {
GameVar *_parentVarObj;
GameVar *_subVars;
GameVar *_field_14;
- char *_varName;
+ Common::String _varName;
VarValue _value;
int _varType;
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);
diff --git a/engines/fullpipe/scene.h b/engines/fullpipe/scene.h
index 55f07fbaac..324c8b9a2a 100644
--- a/engines/fullpipe/scene.h
+++ b/engines/fullpipe/scene.h
@@ -38,7 +38,7 @@ class Scene : public Background {
Shadows *_shadows;
SoundList *_soundList;
int16 _sceneId;
- char *_sceneName;
+ Common::String _sceneName;
int _field_BC;
NGIArchive *_libHandle;
@@ -94,7 +94,7 @@ class Scene : public Background {
class SceneTag : public CObject {
public:
CObject *_field_4;
- char *_tag;
+ Common::String _tag;
Scene *_scene;
int16 _sceneId;
diff --git a/engines/fullpipe/sound.cpp b/engines/fullpipe/sound.cpp
index 1a88e47134..187ed16fec 100644
--- a/engines/fullpipe/sound.cpp
+++ b/engines/fullpipe/sound.cpp
@@ -273,7 +273,7 @@ void FullpipeEngine::setSceneMusicParameters(GameVar *gvar) {
while (sub) {
if (_musicAllowed & sub->_value.intValue) {
- Common::strlcpy(_sceneTracks[_numSceneTracks], sub->_varName, 260);
+ Common::strlcpy(_sceneTracks[_numSceneTracks], sub->_varName.c_str(), 260);
_numSceneTracks++;
}
@@ -445,7 +445,7 @@ void FullpipeEngine::playTrack(GameVar *sceneVar, const char *name, bool delayed
while (sub) {
if (_musicAllowed & sub->_value.intValue) {
- Common::strlcpy(_sceneTracks[_numSceneTracks], sub->_varName, 260);
+ Common::strlcpy(_sceneTracks[_numSceneTracks], sub->_varName.c_str(), 260);
_numSceneTracks++;
}
diff --git a/engines/fullpipe/stateloader.cpp b/engines/fullpipe/stateloader.cpp
index fa663b27bc..54d6fbbf3f 100644
--- a/engines/fullpipe/stateloader.cpp
+++ b/engines/fullpipe/stateloader.cpp
@@ -256,11 +256,10 @@ void GameLoader::addVar(GameVar *var, GameVar *subvar) {
subvar->_value.intValue = var->_value.intValue;
for (GameVar *v = var->_subVars; v; v = v->_nextVarObj) {
- GameVar *nv = subvar->getSubVarByName(v->_varName);
+ GameVar *nv = subvar->getSubVarByName(v->_varName.c_str());
if (!nv) {
nv = new GameVar;
- nv->_varName = (char *)calloc(strlen(v->_varName) + 1, 1);
- strcpy(nv->_varName, v->_varName);
+ nv->_varName = v->_varName;
nv->_varType = v->_varType;
subvar->addSubVar(nv);
@@ -361,7 +360,6 @@ bool FullpipeEngine::loadGam(const char *fname, int scene) {
GameProject::GameProject() {
_field_4 = 0;
- _headerFilename = 0;
_field_10 = 12;
_sceneTagList = 0;
@@ -371,7 +369,6 @@ bool GameProject::load(MfcArchive &file) {
debugC(5, kDebugLoading, "GameProject::load()");
_field_4 = 0;
- _headerFilename = 0;
_field_10 = 12;
g_fp->_gameProjectVersion = file.readUint32LE();
@@ -383,7 +380,7 @@ bool GameProject::load(MfcArchive &file) {
debugC(1, kDebugLoading, "_gameProjectVersion = %d", g_fp->_gameProjectVersion);
debugC(1, kDebugLoading, "_pictureScale = %d", g_fp->_pictureScale);
debugC(1, kDebugLoading, "_scrollSpeed = %d", g_fp->_scrollSpeed);
- debugC(1, kDebugLoading, "_headerFilename = %s", _headerFilename);
+ debugC(1, kDebugLoading, "_headerFilename = %s", _headerFilename.c_str());
_sceneTagList = new SceneTagList();
@@ -401,8 +398,6 @@ bool GameProject::load(MfcArchive &file) {
}
GameProject::~GameProject() {
- free(_headerFilename);
-
delete _sceneTagList;
}
@@ -414,7 +409,6 @@ GameVar::GameVar() {
_field_14 = 0;
_varType = 0;
_value.floatValue = 0;
- _varName = 0;
_objtype = kObjTypeGameVar;
}
@@ -455,8 +449,6 @@ GameVar::~GameVar() {
delete s;
s = _field_14;
}
-
- free(_varName);
}
bool GameVar::load(MfcArchive &file) {
@@ -478,9 +470,12 @@ bool GameVar::load(MfcArchive &file) {
_value.intValue = file.readUint32LE(); // FIXME
debugC(6, kDebugLoading, "f --> %f", _value.floatValue);
break;
- case 2:
- _value.stringValue = file.readPascalString();
+ case 2: {
+ Common::String str = file.readPascalString();
+ _value.stringValue = (char *)calloc(str.size() + 1, 1);
+ Common::strlcpy(_value.stringValue, str.c_str(), str.size() + 1);
debugC(6, kDebugLoading, "s --> %s", _value.stringValue);
+ }
break;
default:
error("Unknown var type: %d (0x%x)", _varType, _varType);
@@ -502,7 +497,7 @@ GameVar *GameVar::getSubVarByName(const char *name) {
if (_subVars != 0) {
sv = _subVars;
- for (;sv && scumm_stricmp(sv->_varName, name); sv = sv->_nextVarObj)
+ for (;sv && scumm_stricmp(sv->_varName.c_str(), name); sv = sv->_nextVarObj)
;
}
return sv;
@@ -523,8 +518,7 @@ bool GameVar::setSubVarAsInt(const char *name, int value) {
var = new GameVar();
var->_varType = 0;
var->_value.intValue = value;
- var->_varName = (char *)calloc(strlen(name) + 1, 1);
- strcpy(var->_varName, name);
+ var->_varName = name;
return addSubVar(var);
}
@@ -547,8 +541,7 @@ GameVar *GameVar::addSubVarAsInt(const char *name, int value) {
var->_varType = 0;
var->_value.intValue = value;
- var->_varName = (char *)calloc(strlen(name) + 1, 1);
- strcpy(var->_varName, name);
+ var->_varName = name;
return (addSubVar(var) != 0) ? var : 0;
}
diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp
index 5dee183aff..5c83114e10 100644
--- a/engines/fullpipe/statics.cpp
+++ b/engines/fullpipe/statics.cpp
@@ -452,7 +452,7 @@ int StaticANIObject::getMovementIdById(int itemId) {
Movement *StaticANIObject::getMovementByName(char *name) {
for (uint i = 0; i < _movements.size(); i++)
- if (!strcmp(_movements[i]->_objectName, name))
+ if (_movements[i]->_objectName == name)
return _movements[i];
return 0;
@@ -681,7 +681,7 @@ void StaticANIObject::draw2() {
}
MovTable *StaticANIObject::countMovements() {
- GameVar *preloadSubVar = g_fp->getGameLoaderGameVar()->getSubVarByName(getName())->getSubVarByName("PRELOAD");
+ GameVar *preloadSubVar = g_fp->getGameLoaderGameVar()->getSubVarByName(getName().c_str())->getSubVarByName("PRELOAD");
if (!preloadSubVar || preloadSubVar->getSubVarsCount() == 0)
return 0;
@@ -695,7 +695,7 @@ MovTable *StaticANIObject::countMovements() {
movTable->movs[i] = 2;
for (GameVar *sub = preloadSubVar->_subVars; sub; sub = sub->_nextVarObj) {
- if (scumm_stricmp(_movements[i]->getName(), sub->_varName) == 0) {
+ if (scumm_stricmp(_movements[i]->getName().c_str(), sub->_varName.c_str()) == 0) {
movTable->movs[i] = 1;
break;
}
@@ -706,7 +706,7 @@ MovTable *StaticANIObject::countMovements() {
}
void StaticANIObject::setSpeed(int speed) {
- GameVar *var = g_fp->getGameLoaderGameVar()->getSubVarByName(getName())->getSubVarByName("SpeedUp");
+ GameVar *var = g_fp->getGameLoaderGameVar()->getSubVarByName(getName().c_str())->getSubVarByName("SpeedUp");
if (!var)
return;
diff --git a/engines/fullpipe/utils.cpp b/engines/fullpipe/utils.cpp
index d06354cb91..689491d11d 100644
--- a/engines/fullpipe/utils.cpp
+++ b/engines/fullpipe/utils.cpp
@@ -92,9 +92,10 @@ bool DWordArray::load(MfcArchive &file) {
return true;
}
-char *MfcArchive::readPascalString(bool twoByte) {
+Common::String MfcArchive::readPascalString(bool twoByte) {
char *tmp;
int len;
+ Common::String result;
if (twoByte)
len = readUint16LE();
@@ -103,21 +104,23 @@ char *MfcArchive::readPascalString(bool twoByte) {
tmp = (char *)calloc(len + 1, 1);
read(tmp, len);
+ result = tmp;
+ free(tmp);
- debugC(9, kDebugLoading, "readPascalString: %d <%s>", len, transCyrillic(tmp));
+ debugC(9, kDebugLoading, "readPascalString: %d <%s>", len, transCyrillic(result));
- return tmp;
+ return result;
}
-void MfcArchive::writePascalString(const char *str, bool twoByte) {
- int len = strlen(str);
+void MfcArchive::writePascalString(Common::String str, bool twoByte) {
+ int len = str.size();
if (twoByte)
writeUint16LE(len);
else
writeByte(len);
- write(str, len);
+ write(str.c_str(), len);
}
MemoryObject::MemoryObject() {
@@ -388,7 +391,7 @@ CObject *MfcArchive::readClass() {
}
CObject *MfcArchive::parseClass(bool *isCopyReturned) {
- char *name;
+ Common::String name;
int objectId = 0;
CObject *res = 0;
@@ -404,13 +407,13 @@ CObject *MfcArchive::parseClass(bool *isCopyReturned) {
debugC(7, kDebugLoading, "parseClass::schema = %d", schema);
name = readPascalString(true);
- debugC(7, kDebugLoading, "parseClass::class <%s>", name);
+ debugC(7, kDebugLoading, "parseClass::class <%s>", name.c_str());
- if (!_classMap.contains(name)) {
- error("Unknown class in MfcArchive: <%s>", name);
+ if (!_classMap.contains(name.c_str())) {
+ error("Unknown class in MfcArchive: <%s>", name.c_str());
}
- objectId = _classMap[name];
+ objectId = _classMap[name.c_str()];
debugC(7, kDebugLoading, "tag: %d 0x%x (%x)", _objectMap.size() - 1, _objectMap.size() - 1, objectId);
diff --git a/engines/fullpipe/utils.h b/engines/fullpipe/utils.h
index 9630df6153..101fe20e1b 100644
--- a/engines/fullpipe/utils.h
+++ b/engines/fullpipe/utils.h
@@ -67,8 +67,8 @@ public:
MfcArchive(Common::SeekableReadStream *file);
MfcArchive(Common::WriteStream *file);
- char *readPascalString(bool twoByte = false);
- void writePascalString(const char *str, bool twoByte = false);
+ Common::String readPascalString(bool twoByte = false);
+ void writePascalString(Common::String str, bool twoByte = false);
int readCount();
double readDouble();
CObject *parseClass(bool *isCopyReturned);