[Scummvm-cvs-logs] scummvm master -> 5015d12142ea80aec251e7fd4953019df964c0ff

digitall digitall at scummvm.org
Thu Jun 2 19:04:44 CEST 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
5015d12142 TUCKER: Replace snprintf() usage with Common::String::format()


Commit: 5015d12142ea80aec251e7fd4953019df964c0ff
    https://github.com/scummvm/scummvm/commit/5015d12142ea80aec251e7fd4953019df964c0ff
Author: D G Turner (digitall at scummvm.org)
Date: 2011-06-02T10:02:12-07:00

Commit Message:
TUCKER: Replace snprintf() usage with Common::String::format()

Safer and less portability issues.

Changed paths:
    engines/tucker/detection.cpp
    engines/tucker/resource.cpp
    engines/tucker/saveload.cpp
    engines/tucker/sequences.cpp



diff --git a/engines/tucker/detection.cpp b/engines/tucker/detection.cpp
index 9b466d6..31d9cae 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 467500b..bee09f7 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 9a2e979..5bc51ac 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 23ae338..775fd6f 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;






More information about the Scummvm-git-logs mailing list