diff options
author | D G Turner | 2011-06-02 18:02:12 +0100 |
---|---|---|
committer | D G Turner | 2011-06-02 18:02:12 +0100 |
commit | 5015d12142ea80aec251e7fd4953019df964c0ff (patch) | |
tree | a712b437c259bc9d4571bfac3cbe123bddaca2c5 | |
parent | 477d6233c3672d9a60cceea3570bc775df3d9253 (diff) | |
download | scummvm-rg350-5015d12142ea80aec251e7fd4953019df964c0ff.tar.gz scummvm-rg350-5015d12142ea80aec251e7fd4953019df964c0ff.tar.bz2 scummvm-rg350-5015d12142ea80aec251e7fd4953019df964c0ff.zip |
TUCKER: Replace snprintf() usage with Common::String::format()
Safer and less portability issues.
-rw-r--r-- | engines/tucker/detection.cpp | 3 | ||||
-rw-r--r-- | engines/tucker/resource.cpp | 113 | ||||
-rw-r--r-- | engines/tucker/saveload.cpp | 4 | ||||
-rw-r--r-- | engines/tucker/sequences.cpp | 21 |
4 files changed, 65 insertions, 76 deletions
diff --git a/engines/tucker/detection.cpp b/engines/tucker/detection.cpp index 9b466d682d..31d9caef73 100644 --- a/engines/tucker/detection.cpp +++ b/engines/tucker/detection.cpp @@ -201,8 +201,7 @@ public: } for (int slot = 0; slot <= Tucker::kLastSaveSlot; ++slot) { if (slotsTable[slot]) { - char description[64]; - snprintf(description, sizeof(description), "savegm.%02d", slot); + Common::String description = Common::String::format("savegm.%02d", slot); saveList.push_back(SaveStateDescriptor(slot, description)); } } diff --git a/engines/tucker/resource.cpp b/engines/tucker/resource.cpp index 467500b121..bee09f7391 100644 --- a/engines/tucker/resource.cpp +++ b/engines/tucker/resource.cpp @@ -160,39 +160,37 @@ public: }; uint8 *TuckerEngine::loadFile(const char *fname, uint8 *p) { - char filename[80]; - strcpy(filename, fname); + Common::String filename; + filename = fname; if (_gameLang == Common::DE_DEU) { - if (strcmp(filename, "bgtext.c") == 0) { - strcpy(filename, "bgtextgr.c"); - } else if (strcmp(filename, "charname.c") == 0) { - strcpy(filename, "charnmgr.c"); - } else if (strcmp(filename, "data5.c") == 0) { - strcpy(filename, "data5gr.c"); - } else if (strcmp(filename, "infobar.txt") == 0) { - strcpy(filename, "infobrgr.txt"); - } else if (strcmp(filename, "charsize.dta") == 0) { - strcpy(filename, "charszgr.dta"); - } else if (strncmp(filename, "objtxt", 6) == 0) { - const char num = filename[6]; - snprintf(filename, sizeof(filename), "objtx%cgr.c", num); - } else if (strncmp(filename, "pt", 2) == 0) { - const char num = filename[2]; - snprintf(filename, sizeof(filename), "pt%ctxtgr.c", num); + if (filename == "bgtext.c") { + filename = "bgtextgr.c"; + } else if (filename == "charname.c") { + filename = "charnmgr.c"; + } else if (filename == "data5.c") { + filename = "data5gr.c"; + } else if (filename == "infobar.txt") { + filename = "infobrgr.txt"; + } else if (filename == "charsize.dta") { + filename = "charszgr.dta"; + } else if (filename.hasPrefix("objtxt")) { + filename = Common::String::format("objtx%cgr.c", filename[6]); + } else if (filename.hasPrefix("pt")) { + filename = Common::String::format("pt%ctxtgr.c", filename[2]); } } _fileLoadSize = 0; bool decode = false; if (_gameFlags & kGameFlagEncodedData) { - char *ext = strrchr(filename, '.'); - if (ext && strcmp(ext + 1, "c") == 0) { - strcpy(ext + 1, "enc"); + if (filename.hasSuffix(".c")) { + filename.deleteLastChar(); + filename += "enc"; decode = true; } } Common::File f; if (!f.open(filename)) { - warning("Unable to open '%s'", filename); + warning("Unable to open '%s'", filename.c_str()); return 0; } const int sz = f.size(); @@ -389,23 +387,23 @@ void TuckerEngine::loadBudSpr(int startOffset) { int spriteOffset = 0; for (int i = startOffset; i < endOffset; ++i) { if (framesCount[frame] == i) { - char filename[40]; + Common::String filename; switch (_flagsTable[137]) { case 0: if ((_gameFlags & kGameFlagDemo) != 0) { - snprintf(filename, sizeof(filename), "budl00_%d.pcx", frame + 1); + filename = Common::String::format("budl00_%d.pcx", frame + 1); } else { - snprintf(filename, sizeof(filename), "bud_%d.pcx", frame + 1); + filename = Common::String::format("bud_%d.pcx", frame + 1); } break; case 1: - snprintf(filename, sizeof(filename), "peg_%d.pcx", frame + 1); + filename = Common::String::format("peg_%d.pcx", frame + 1); break; default: - snprintf(filename, sizeof(filename), "mac_%d.pcx", frame + 1); + filename = Common::String::format("mac_%d.pcx", frame + 1); break; } - loadImage(filename, _loadTempBuf, 0); + loadImage(filename.c_str(), _loadTempBuf, 0); ++frame; } int sz = Graphics::encodeRLE(_loadTempBuf + _spriteFramesTable[i].sourceOffset, _spritesGfxBuf + spriteOffset, _spriteFramesTable[i].xSize, _spriteFramesTable[i].ySize); @@ -479,30 +477,30 @@ void TuckerEngine::loadCTable02(int fl) { } void TuckerEngine::loadLoc() { - char filename[40]; + Common::String filename; int i = _locationWidthTable[_locationNum]; _locationHeight = (_locationNum < 73) ? 140 : 200; - snprintf(filename, sizeof(filename), (i == 1) ? "loc%02d.pcx" : "loc%02da.pcx", _locationNum); - copyLocBitmap(filename, 0, false); + filename = Common::String::format((i == 1) ? "loc%02d.pcx" : "loc%02da.pcx", _locationNum); + copyLocBitmap(filename.c_str(), 0, false); Graphics::copyRect(_quadBackgroundGfxBuf, 320, _locationBackgroundGfxBuf, 640, 320, _locationHeight); if (_locationHeight == 200) { return; } - snprintf(filename, sizeof(filename), (i != 2) ? "path%02d.pcx" : "path%02da.pcx", _locationNum); - copyLocBitmap(filename, 0, true); + filename = Common::String::format((i != 2) ? "path%02d.pcx" : "path%02da.pcx", _locationNum); + copyLocBitmap(filename.c_str(), 0, true); if (i > 1) { - snprintf(filename, sizeof(filename), "loc%02db.pcx", _locationNum); - copyLocBitmap(filename, 320, false); + filename = Common::String::format("loc%02db.pcx", _locationNum); + copyLocBitmap(filename.c_str(), 320, false); Graphics::copyRect(_quadBackgroundGfxBuf + 44800, 320, _locationBackgroundGfxBuf + 320, 640, 320, _locationHeight); if (i == 2) { - snprintf(filename, sizeof(filename), "path%02db.pcx", _locationNum); - copyLocBitmap(filename, 320, true); + filename = Common::String::format("path%02db.pcx", _locationNum); + copyLocBitmap(filename.c_str(), 320, true); } } if (i > 2) { - snprintf(filename, sizeof(filename), "loc%02dc.pcx", _locationNum); - copyLocBitmap(filename, 0, false); + filename = Common::String::format("loc%02dc.pcx", _locationNum); + copyLocBitmap(filename.c_str(), 0, false); Graphics::copyRect(_quadBackgroundGfxBuf + 89600, 320, _locationBackgroundGfxBuf, 640, 320, 140); } if (_locationNum == 1) { @@ -510,8 +508,8 @@ void TuckerEngine::loadLoc() { loadImage("rochpath.pcx", _loadLocBufPtr, 0); } if (i > 3) { - snprintf(filename, sizeof(filename), "loc%02dd.pcx", _locationNum); - copyLocBitmap(filename, 0, false); + filename = Common::String::format("loc%02dd.pcx", _locationNum); + copyLocBitmap(filename.c_str(), 0, false); Graphics::copyRect(_quadBackgroundGfxBuf + 134400, 320, _locationBackgroundGfxBuf + 320, 640, 320, 140); } _fullRedraw = true; @@ -540,13 +538,13 @@ void TuckerEngine::loadObj() { } _currentPartNum = _partNum; - char filename[40]; - snprintf(filename, sizeof(filename), "objtxt%d.c", _partNum); + Common::String filename; + filename = Common::String::format("objtxt%d.c", _partNum); free(_objTxtBuf); - _objTxtBuf = loadFile(filename, 0); - snprintf(filename, sizeof(filename), "pt%dtext.c", _partNum); + _objTxtBuf = loadFile(filename.c_str(), 0); + filename = Common::String::format("pt%dtext.c", _partNum); free(_ptTextBuf); - _ptTextBuf = loadFile(filename, 0); + _ptTextBuf = loadFile(filename.c_str(), 0); _characterSpeechDataPtr = _ptTextBuf; loadData(); loadPanObj(); @@ -584,9 +582,8 @@ void TuckerEngine::loadData() { _dataCount = maxCount; int offset = 0; for (int i = 0; i < count; ++i) { - char filename[40]; - snprintf(filename, sizeof(filename), "scrobj%d%d.pcx", _partNum, i); - loadImage(filename, _loadTempBuf, 0); + Common::String filename = Common::String::format("scrobj%d%d.pcx", _partNum, i); + loadImage(filename.c_str(), _loadTempBuf, 0); offset = loadDataHelper(offset, i); } } @@ -603,9 +600,8 @@ int TuckerEngine::loadDataHelper(int offset, int index) { } void TuckerEngine::loadPanObj() { - char filename[40]; - snprintf(filename, sizeof(filename), "panobjs%d.pcx", _partNum); - loadImage(filename, _loadTempBuf, 0); + Common::String filename = Common::String::format("panobjs%d.pcx", _partNum); + loadImage(filename.c_str(), _loadTempBuf, 0); int offset = 0; for (int y = 0; y < 5; ++y) { for (int x = 0; x < 10; ++x) { @@ -812,9 +808,8 @@ void TuckerEngine::loadSprA02_01() { unloadSprA02_01(); const int count = _sprA02LookupTable[_locationNum]; for (int i = 1; i < count + 1; ++i) { - char filename[40]; - snprintf(filename, sizeof(filename), "sprites/a%02d_%02d.spr", _locationNum, i); - _sprA02Table[i] = loadFile(filename, 0); + Common::String filename = Common::String::format("sprites/a%02d_%02d.spr", _locationNum, i); + _sprA02Table[i] = loadFile(filename.c_str(), 0); } _sprA02Table[0] = _sprA02Table[1]; } @@ -831,9 +826,8 @@ void TuckerEngine::loadSprC02_01() { unloadSprC02_01(); const int count = _sprC02LookupTable[_locationNum]; for (int i = 1; i < count + 1; ++i) { - char filename[40]; - snprintf(filename, sizeof(filename), "sprites/c%02d_%02d.spr", _locationNum, i); - _sprC02Table[i] = loadFile(filename, 0); + Common::String filename = Common::String::format("sprites/c%02d_%02d.spr", _locationNum, i); + _sprC02Table[i] = loadFile(filename.c_str(), 0); } _sprC02Table[0] = _sprC02Table[1]; _spritesCount = _sprC02LookupTable2[_locationNum]; @@ -942,8 +936,7 @@ void TuckerEngine::loadSound(Audio::Mixer::SoundType type, int num, int volume, default: return; } - char fileName[64]; - snprintf(fileName, sizeof(fileName), fmt, num); + Common::String fileName = Common::String::format(fmt, num); Common::File *f = new Common::File; if (f->open(fileName)) { stream = Audio::makeWAVStream(f, DisposeAfterUse::YES); diff --git a/engines/tucker/saveload.cpp b/engines/tucker/saveload.cpp index 9a2e97986a..5bc51acf84 100644 --- a/engines/tucker/saveload.cpp +++ b/engines/tucker/saveload.cpp @@ -36,9 +36,7 @@ Common::String generateGameStateFileName(const char *target, int slot, bool pref if (prefixOnly) { name += ".*"; } else { - char slotStr[16]; - snprintf(slotStr, sizeof(slotStr), ".%d", slot); - name += slotStr; + name += Common::String::format(".%d", slot); } return name; } diff --git a/engines/tucker/sequences.cpp b/engines/tucker/sequences.cpp index 23ae3380cd..775fd6f1a0 100644 --- a/engines/tucker/sequences.cpp +++ b/engines/tucker/sequences.cpp @@ -115,31 +115,31 @@ void TuckerEngine::handleCreditsSequence() { _fadePaletteCounter = 0; clearSprites(); ++num; - char filename[40]; + Common::String filename; if (num == 6) { for (int i = 0; i < 16; ++i) { - snprintf(filename, sizeof(filename), "cogs%04d.pcx", i + 1); - loadImage(filename, imgBuf + i * 64000, 2); + filename = Common::String::format("cogs%04d.pcx", i + 1); + loadImage(filename.c_str(), imgBuf + i * 64000, 2); } } else { switch (num) { case 1: - strcpy(filename, "loc75.pcx"); + filename = "loc75.pcx"; break; case 2: - strcpy(filename, "loc76.pcx"); + filename = "loc76.pcx"; break; case 3: - strcpy(filename, "paper-3.pcx"); + filename = "paper-3.pcx"; break; case 4: - strcpy(filename, "loc77.pcx"); + filename = "loc77.pcx"; break; case 5: - strcpy(filename, "loc78.pcx"); + filename = "loc78.pcx"; break; } - loadImage(filename, _quadBackgroundGfxBuf, 2); + loadImage(filename.c_str(), _quadBackgroundGfxBuf, 2); } _spritesCount = _creditsSequenceSpriteCounts[num]; ++_flagsTable[236]; @@ -584,8 +584,7 @@ Audio::RewindableAudioStream *AnimationSequencePlayer::loadSound(int index, Anim if (stream) return stream; - char fileName[64]; - snprintf(fileName, sizeof(fileName), "audio/%s", _audioFileNamesTable[index]); + Common::String fileName = Common::String::format("audio/%s", _audioFileNamesTable[index]); Common::File f; if (f.open(fileName)) { int size = 0, rate = 0; |