GOB: Replaced many uses of strdupcpy by Common::String

svn-id: r41077
This commit is contained in:
Max Horn 2009-05-31 16:59:45 +00:00
parent 010fbadf01
commit 400d2b10af
21 changed files with 67 additions and 86 deletions

View file

@ -215,9 +215,7 @@ int16 DataIO::file_open(const char *path) {
if (i == MAX_FILES)
return -1;
file_getHandle(i)->open(path);
if (file_getHandle(i)->isOpen())
if (file_getHandle(i)->open(path))
return i;
return -1;

View file

@ -128,7 +128,7 @@ void DemoPlayer::playVideo(const char *fileName) {
uint32 waitTime = 0;
char *file, *filePtr;
file = filePtr = strdupcpy(fileName);
file = filePtr = strdup(fileName);
// Trimming spaces front
while (*file == ' ')
@ -168,7 +168,7 @@ void DemoPlayer::playVideo(const char *fileName) {
}
delete[] filePtr;
free(filePtr);
}
void DemoPlayer::playVideoNormal() {
@ -177,11 +177,9 @@ void DemoPlayer::playVideoNormal() {
void DemoPlayer::playVideoDoubled() {
const char *fileNameOpened = _vm->_vidPlayer->getFileName();
char *fileName = strdupcpy(fileNameOpened);
_vm->_vidPlayer->primaryClose();
if (_vm->_vidPlayer->primaryOpen(fileName, 0, -1, VideoPlayer::kFlagOtherSurface)) {
if (_vm->_vidPlayer->primaryOpen(fileNameOpened, 0, -1, VideoPlayer::kFlagOtherSurface)) {
for (int i = 0; i < _vm->_vidPlayer->getFramesCount(); i++) {
if (_vm->_vidPlayer->primaryPlay(i, i))
break;
@ -200,8 +198,6 @@ void DemoPlayer::playVideoDoubled() {
_vm->_video->retrace();
}
}
delete[] fileName;
}
void DemoPlayer::evaluateVideoMode(const char *mode) {

View file

@ -3468,14 +3468,14 @@ namespace Gob {
void GobEngine::initGame(const GOBGameDescription *gd) {
if (gd->startTotBase == 0)
_startTot = strdupcpy("intro.tot");
_startTot = "intro.tot";
else
_startTot = strdupcpy(gd->startTotBase);
_startTot = gd->startTotBase;
if (gd->startStkBase == 0)
_startStk = strdupcpy("intro.stk");
_startStk = "intro.stk";
else
_startStk = strdupcpy(gd->startStkBase);
_startStk = gd->startStkBase;
_demoIndex = gd->demoIndex;

View file

@ -106,9 +106,6 @@ GobEngine::~GobEngine() {
// Stop all mixer streams (except for the permanent ones).
_vm->_mixer->stopAll();
delete[] _startStk;
delete[] _startTot;
}
const char *GobEngine::getLangDesc(int16 language) const {
@ -191,7 +188,7 @@ Common::Error GobEngine::run() {
}
_video->setSize(is640());
_video->init(_targetName.c_str());
_video->init();
// On some systems it's not safe to run CD audio games from the CD.
if (isCD())
@ -413,7 +410,7 @@ bool GobEngine::initGameParts() {
_map = new Map_v4(this);
_goblin = new Goblin_v4(this);
_scenery = new Scenery_v2(this);
_saveLoad = new SaveLoad(this, _targetName.c_str());
_saveLoad = new SaveLoad(this);
break;
case kGameTypeAdibou4:

View file

@ -162,8 +162,8 @@ public:
uint16 _height;
uint8 _mode;
char *_startStk;
char *_startTot;
Common::String _startStk;
Common::String _startTot;
uint32 _demoIndex;
bool _copyProtection;

View file

@ -91,10 +91,10 @@ void Init::initGame() {
initVideo();
if (!_vm->isDemo()) {
handle2 = _vm->_dataIO->openData(_vm->_startStk);
handle2 = _vm->_dataIO->openData(_vm->_startStk.c_str());
if (handle2 >= 0) {
_vm->_dataIO->closeData(handle2);
_vm->_dataIO->openDataFile(_vm->_startStk);
_vm->_dataIO->openDataFile(_vm->_startStk.c_str());
}
}
@ -167,7 +167,7 @@ void Init::initGame() {
delete[] infBuf;
}
strcpy(buffer, _vm->_startTot);
strcpy(buffer, _vm->_startTot.c_str());
handle = _vm->_dataIO->openData(buffer);
if (handle >= 0) {

View file

@ -1136,7 +1136,7 @@ bool Inter_v1::o1_callSub(OpFuncParams &params) {
// Skipping the copy protection screen in Gobliiins
if (!_vm->_copyProtection && (_vm->getGameType() == kGameTypeGob1) && (offset == 3905)
&& !scumm_stricmp(_vm->_game->_curTotFile, _vm->_startTot)) {
&& !scumm_stricmp(_vm->_game->_curTotFile, _vm->_startTot.c_str())) {
debugC(2, kDebugGameFlow, "Skipping copy protection screen");
return false;
}

View file

@ -34,16 +34,14 @@
namespace Gob {
SaveConverter::SaveConverter(GobEngine *vm, const char *fileName) : _vm(vm) {
_fileName = strdupcpy(fileName);
SaveConverter::SaveConverter(GobEngine *vm, const Common::String &fileName)
: _vm(vm), _fileName(fileName) {
_data = 0;
_stream = 0;
}
SaveConverter::~SaveConverter() {
delete[] _fileName;
delete _stream;
delete[] _data;
}
@ -56,16 +54,13 @@ void SaveConverter::clear() {
_stream = 0;
}
void SaveConverter::setFileName(const char *fileName) {
void SaveConverter::setFileName(const Common::String &fileName) {
clear();
delete[] _fileName;
_fileName = strdupcpy(fileName);
_fileName = fileName;
}
Common::InSaveFile *SaveConverter::openSave() const {
if (!_fileName)
if (_fileName.empty())
return 0;
Common::SaveFileManager *saveMan = g_system->getSavefileManager();

View file

@ -40,13 +40,13 @@ class SaveWriter;
/** A wrapping stream class for old saves. */
class SaveConverter : public Common::SeekableReadStream {
public:
SaveConverter(GobEngine *vm, const char *fileName = 0);
SaveConverter(GobEngine *vm, const Common::String &fileName);
virtual ~SaveConverter();
/** Clear the converter. */
virtual void clear();
/** Set the filename on which to operate. */
virtual void setFileName(const char *fileName);
virtual void setFileName(const Common::String &fileName);
/** Is it actually an old save? */
virtual int isOldSave(Common::InSaveFile **save = 0) const = 0;
@ -74,7 +74,7 @@ public:
protected:
GobEngine *_vm;
char *_fileName;
Common::String _fileName;
byte *_data;
Common::MemoryReadStream *_stream;

View file

@ -783,10 +783,9 @@ bool SaveContainer::isSave(Common::SeekableReadStream &stream) {
}
SaveReader::SaveReader(uint32 partCount, uint32 slot, const char *fileName) :
SaveContainer(partCount, slot) {
SaveReader::SaveReader(uint32 partCount, uint32 slot, const Common::String &fileName) :
SaveContainer(partCount, slot), _fileName(fileName) {
_fileName = strdupcpy(fileName);
_stream = 0;
_loaded = false;
@ -795,14 +794,12 @@ SaveReader::SaveReader(uint32 partCount, uint32 slot, const char *fileName) :
SaveReader::SaveReader(uint32 partCount, uint32 slot, Common::SeekableReadStream &stream) :
SaveContainer(partCount, slot) {
_fileName = 0;
_stream = &stream;
_loaded = false;
}
SaveReader::~SaveReader() {
delete[] _fileName;
}
// Open the save and read it
@ -811,7 +808,7 @@ bool SaveReader::load() {
Common::InSaveFile *in = 0;
Common::SeekableReadStream *stream;
if (_fileName) {
if (!_fileName.empty()) {
in = openSave();
if (!in)
@ -852,8 +849,8 @@ bool SaveReader::readPart(uint32 partN, SavePart *part) const {
return true;
}
Common::InSaveFile *SaveReader::openSave(const char *fileName) {
if (!fileName)
Common::InSaveFile *SaveReader::openSave(const Common::String &fileName) {
if (fileName.empty())
return 0;
Common::SaveFileManager *saveMan = g_system->getSavefileManager();
@ -899,7 +896,7 @@ bool SaveReader::getInfo(Common::SeekableReadStream &stream, SavePartInfo &info)
return result;
}
bool SaveReader::getInfo(const char *fileName, SavePartInfo &info) {
bool SaveReader::getInfo(const Common::String &fileName, SavePartInfo &info) {
Common::InSaveFile *in = openSave(fileName);
if (!in)
@ -912,14 +909,15 @@ bool SaveReader::getInfo(const char *fileName, SavePartInfo &info) {
return result;
}
SaveWriter::SaveWriter(uint32 partCount, uint32 slot, const char *fileName) :
SaveWriter::SaveWriter(uint32 partCount, uint32 slot) :
SaveContainer(partCount, slot) {
}
_fileName = strdupcpy(fileName);
SaveWriter::SaveWriter(uint32 partCount, uint32 slot, const Common::String &fileName) :
SaveContainer(partCount, slot), _fileName(fileName) {
}
SaveWriter::~SaveWriter() {
delete[] _fileName;
}
bool SaveWriter::writePart(uint32 partN, const SavePart *part) {
@ -958,14 +956,15 @@ bool SaveWriter::save() {
}
bool SaveWriter::canSave() const {
if (!_fileName)
// FIXME: The logic here is the opposite from what I (Fingolfin) would expect ?!?
if (!_fileName.empty())
return false;
return true;
}
Common::OutSaveFile *SaveWriter::openSave(const char *fileName) {
if (!fileName)
Common::OutSaveFile *SaveWriter::openSave(const Common::String &fileName) {
if (fileName.empty())
return 0;
Common::SaveFileManager *saveMan = g_system->getSavefileManager();

View file

@ -296,7 +296,7 @@ protected:
/** Reads a save. */
class SaveReader : public SaveContainer {
public:
SaveReader(uint32 partCount, uint32 slot, const char *fileName);
SaveReader(uint32 partCount, uint32 slot, const Common::String &fileName);
SaveReader(uint32 partCount, uint32 slot, Common::SeekableReadStream &stream);
~SaveReader();
@ -308,22 +308,23 @@ public:
/** Find and read the save's info part. */
static bool getInfo(Common::SeekableReadStream &stream, SavePartInfo &info);
/** Find and read the save's info part. */
static bool getInfo(const char *fileName, SavePartInfo &info);
static bool getInfo(const Common::String &fileName, SavePartInfo &info);
protected:
char *_fileName;
Common::String _fileName;
Common::SeekableReadStream *_stream;
bool _loaded;
static Common::InSaveFile *openSave(const char *fileName);
static Common::InSaveFile *openSave(const Common::String &fileName);
Common::InSaveFile *openSave();
};
/** Writes a save. */
class SaveWriter: public SaveContainer {
public:
SaveWriter(uint32 partCount, uint32 slot, const char *fileName = 0);
SaveWriter(uint32 partCount, uint32 slot);
SaveWriter(uint32 partCount, uint32 slot, const Common::String &fileName);
~SaveWriter();
bool writePart(uint32 partN, const SavePart *part);
@ -333,12 +334,12 @@ public:
protected:
bool save();
char *_fileName;
Common::String _fileName;
/** Is everything ready for saving? */
bool canSave() const;
static Common::OutSaveFile *openSave(const char *fileName);
static Common::OutSaveFile *openSave(const Common::String &fileName);
Common::OutSaveFile *openSave();
};

View file

@ -35,12 +35,10 @@
namespace Gob {
SaveLoad::SaveLoad(GobEngine *vm, const char *targetName) : _vm(vm) {
_targetName = strdupcpy(targetName);
SaveLoad::SaveLoad(GobEngine *vm) : _vm(vm) {
}
SaveLoad::~SaveLoad() {
delete[] _targetName;
}
const char *SaveLoad::stripPath(const char *fileName) {

View file

@ -48,7 +48,7 @@ public:
*
* @param targetName The game's target name. Used as a base for the save names.
*/
SaveLoad(GobEngine *vm, const char *targetName);
SaveLoad(GobEngine *vm);
virtual ~SaveLoad();
/** "foo\bar\quux.bla" => "quux.bla". */
@ -67,8 +67,6 @@ public:
protected:
GobEngine *_vm;
char *_targetName;
virtual SaveHandler *getHandler(const char *fileName) const;
virtual const char *getDescription(const char *fileName) const;
};

View file

@ -260,10 +260,10 @@ void SaveLoad_v2::GameHandler::buildIndex(byte *buffer) const {
SaveLoad_v2::SaveLoad_v2(GobEngine *vm, const char *targetName) :
SaveLoad(vm, targetName) {
SaveLoad(vm) {
_gameHandler = new GameHandler(vm, _targetName);
_notesHandler = new NotesHandler(600, vm, _targetName);
_gameHandler = new GameHandler(vm, targetName);
_notesHandler = new NotesHandler(600, vm, targetName);
_tempSpriteHandler = new TempSpriteHandler(vm);
_saveFiles[0].handler = _gameHandler;

View file

@ -491,21 +491,21 @@ bool SaveLoad_v3::ScreenshotHandler::save(int16 dataVar, int32 size, int32 offse
SaveLoad_v3::SaveLoad_v3(GobEngine *vm, const char *targetName, ScreenshotType sShotType) :
SaveLoad(vm, targetName) {
SaveLoad(vm) {
_sShotType = sShotType;
// The Amiga version doesn't use screenshots
if (_vm->getPlatform() == Common::kPlatformAmiga) {
_gameHandler = new GameHandler(vm, _targetName, false);
_gameHandler = new GameHandler(vm, targetName, false);
_screenshotHandler = 0;
} else {
_gameHandler = new GameHandler(vm, _targetName, true);
_gameHandler = new GameHandler(vm, targetName, true);
_screenshotHandler = new ScreenshotHandler(vm, _gameHandler, sShotType);
}
_tempSpriteHandler = new TempSpriteHandler(vm);
_notesHandler = new NotesHandler(2560, vm, _targetName);
_notesHandler = new NotesHandler(2560, vm, targetName);
_saveFiles[0].handler = _gameHandler;
_saveFiles[1].handler = _screenshotHandler;

View file

@ -485,9 +485,9 @@ bool SaveLoad_v4::ScreenPropsHandler::save(int16 dataVar, int32 size, int32 offs
SaveLoad_v4::SaveLoad_v4(GobEngine *vm, const char *targetName) :
SaveLoad(vm, targetName) {
SaveLoad(vm) {
_gameHandler = new GameHandler(vm, _targetName);
_gameHandler = new GameHandler(vm, targetName);
_curProps = new CurScreenPropsHandler(vm);
for (int i = 0; i < 10; i++)
_props[i] = new ScreenPropsHandler(vm, i, _curProps, _gameHandler);

View file

@ -281,9 +281,9 @@ void SaveLoad_v6::GameHandler::refreshProps() {
SaveLoad_v6::SaveLoad_v6(GobEngine *vm, const char *targetName) :
SaveLoad(vm, targetName) {
SaveLoad(vm) {
_gameHandler = new GameHandler(vm, _targetName);
_gameHandler = new GameHandler(vm, targetName);
_saveFiles[0].handler = _gameHandler;
}

View file

@ -183,7 +183,7 @@ public:
int16 srcHeight, int16 x, int16 y, int16 transp,
SurfaceDesc *destDesc) = 0;
virtual void init(const char *target = "") { }
virtual void init() {}
virtual void setPrePalette() { }
@ -233,7 +233,7 @@ public:
virtual void fillRect(SurfaceDesc *dest, int16 left, int16 top,
int16 right, int16 bottom, int16 color);
virtual void init(const char *target = "");
virtual void init();
virtual void setPrePalette();

View file

@ -57,7 +57,7 @@ void Video_v6::setPrePalette() {
}
void Video_v6::init(const char *target) {
void Video_v6::init() {
initOSD();
buildPalLUT();

View file

@ -41,7 +41,7 @@ namespace Gob {
const char *VideoPlayer::_extensions[] = { "IMD", "VMD", "RMD" };
VideoPlayer::Video::Video(GobEngine *vm) : _vm(vm), _fileName(0), _stream(0), _video(0) {
VideoPlayer::Video::Video(GobEngine *vm) : _vm(vm), _stream(0), _video(0) {
}
VideoPlayer::Video::~Video() {
@ -78,7 +78,7 @@ bool VideoPlayer::Video::open(const char *fileName, Type which) {
return false;
}
_fileName = strdupcpy(fileName);
_fileName = fileName;
_defaultX = _video->getX();
_defaultY = _video->getY();
@ -89,11 +89,9 @@ bool VideoPlayer::Video::open(const char *fileName, Type which) {
void VideoPlayer::Video::close() {
delete _video;
delete _stream;
delete[] _fileName;
_video = 0;
_stream = 0;
_fileName = 0;
memset(&_state, 0, sizeof(Graphics::CoktelVideo::State));
_defaultX = _defaultY = 0;
}
@ -103,7 +101,7 @@ bool VideoPlayer::Video::isOpen() const {
}
const char *VideoPlayer::Video::getFileName() const {
return _fileName ? _fileName : "";
return _fileName.c_str();
}
Graphics::CoktelVideo *VideoPlayer::Video::getVideo() {

View file

@ -27,6 +27,7 @@
#define GOB_VIDEOPLAYER_H
#include "common/array.h"
#include "common/str.h"
#include "graphics/video/coktelvideo/coktelvideo.h"
@ -126,7 +127,7 @@ private:
private:
GobEngine *_vm;
char *_fileName;
Common::String _fileName;
DataStream *_stream;
Graphics::CoktelVideo *_video;
Graphics::CoktelVideo::State _state;