aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/cge2/bitmap.cpp18
-rw-r--r--engines/cge2/bitmap.h2
2 files changed, 9 insertions, 11 deletions
diff --git a/engines/cge2/bitmap.cpp b/engines/cge2/bitmap.cpp
index 93818c05bf..396610ad84 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);
-
- forceExt(pat, pat, ".VBM");
+
+ strcpy(pat, addExt(pat).c_str());
if (_vm->_resman->exist(pat)) {
EncryptedStream file(_vm, pat);
@@ -162,14 +162,12 @@ Bitmap &Bitmap::operator=(const Bitmap &bmp) {
return *this;
}
-char *Bitmap::forceExt(char *buf, const char *name, const char *ext) {
- strcpy(buf, name);
- char *dot = strrchr(buf, '.');
- if (dot)
- *dot = '\0';
- strcat(buf, ext);
-
- return buf;
+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;
}
BitmapPtr Bitmap::code(uint8 *map) {
diff --git a/engines/cge2/bitmap.h b/engines/cge2/bitmap.h
index e7a4637b87..3d71635b67 100644
--- a/engines/cge2/bitmap.h
+++ b/engines/cge2/bitmap.h
@@ -58,7 +58,7 @@ struct HideDesc {
class Bitmap {
CGE2Engine *_vm;
- char *forceExt(char *buf, const char *name, const char *ext);
+ static Common::String addExt(const char *name);
bool loadVBM(EncryptedStream *f);
public:
static uint8 *kSLDesign;