aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoruruk2014-07-04 13:26:27 +0200
committeruruk2014-07-04 13:26:27 +0200
commita3071a00f98b4e322c28281e026ac85a751db071 (patch)
tree810dc685aa9c5ffc63bc565d4f3d007680911a0f
parentdbbafb5d8939453bba847dc49b7a87b534020d48 (diff)
downloadscummvm-rg350-a3071a00f98b4e322c28281e026ac85a751db071.tar.gz
scummvm-rg350-a3071a00f98b4e322c28281e026ac85a751db071.tar.bz2
scummvm-rg350-a3071a00f98b4e322c28281e026ac85a751db071.zip
CGE2: Replace addExt() wit setExtension().
-rw-r--r--engines/cge2/bitmap.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/engines/cge2/bitmap.cpp b/engines/cge2/bitmap.cpp
index 396610ad84..4d1fb6a043 100644
--- a/engines/cge2/bitmap.cpp
+++ b/engines/cge2/bitmap.cpp
@@ -53,8 +53,8 @@ Bitmap::Bitmap(CGE2Engine *vm, const char *fname) : _v(nullptr), _b(nullptr), _m
warning("Workaround for wrong VBM name: 11oqlist-");
} else
strcpy(pat, fname);
-
- strcpy(pat, addExt(pat).c_str());
+
+ strcpy(pat, setExtension(pat, ".VBM").c_str());
if (_vm->_resman->exist(pat)) {
EncryptedStream file(_vm, pat);
@@ -162,12 +162,16 @@ Bitmap &Bitmap::operator=(const Bitmap &bmp) {
return *this;
}
-Common::String Bitmap::addExt(const char *name) {
- Common::String fname;
- fname = Common::String::format("%s.VBM", name);
- if (fname.size() >= kMaxPath)
- error("Bitmap's filename is too long %s", name);
- return fname;
+// Blatant rip from hopkins engine where it's ripped from gob engine. Hi DrMcCoy, hi Strangerke! ;>
+Common::String Bitmap::setExtension(const Common::String &str, const Common::String &ext) {
+ if (str.empty())
+ return str;
+
+ const char *dot = strrchr(str.c_str(), '.');
+ if (dot)
+ return Common::String(str.c_str(), dot - str.c_str()) + ext;
+
+ return str + ext;
}
BitmapPtr Bitmap::code(uint8 *map) {