aboutsummaryrefslogtreecommitdiff
path: root/engines/m4/animation.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2010-06-29 10:40:24 +0000
committerPaul Gilbert2010-06-29 10:40:24 +0000
commitb91ba9c56ea0bad8ae194149bfb2b370c8f01a95 (patch)
tree36e1ac705851fdbce230eb3bf01c39136370ceef /engines/m4/animation.cpp
parentf75a6a6f479dbde58fc0e9778d4811ca9a05419f (diff)
downloadscummvm-rg350-b91ba9c56ea0bad8ae194149bfb2b370c8f01a95.tar.gz
scummvm-rg350-b91ba9c56ea0bad8ae194149bfb2b370c8f01a95.tar.bz2
scummvm-rg350-b91ba9c56ea0bad8ae194149bfb2b370c8f01a95.zip
Bugfixes to reading in the animation font name correctly, as well as converted some Common::String usage to char buffers to fix incorrect String usage
svn-id: r50488
Diffstat (limited to 'engines/m4/animation.cpp')
-rw-r--r--engines/m4/animation.cpp40
1 files changed, 25 insertions, 15 deletions
diff --git a/engines/m4/animation.cpp b/engines/m4/animation.cpp
index 4dc645991e..192c096640 100644
--- a/engines/m4/animation.cpp
+++ b/engines/m4/animation.cpp
@@ -57,10 +57,10 @@ MadsAnimation::~MadsAnimation() {
if (_field12) {
_view->_spriteSlots.deleteSprites(_spriteListIndexes[_spriteListIndex]);
}
-
- delete _font;
}
+#define FILENAME_SIZE 13
+
/**
* Initialises and loads the data of an animation
*/
@@ -93,25 +93,35 @@ void MadsAnimation::initialise(const Common::String &filename, uint16 flags, M4S
_scrollTicks = animStream->readUint16LE();
animStream->skip(8);
- animStream->read(buffer, 13);
- _interfaceFile = Common::String(buffer, 13);
+ animStream->read(buffer, FILENAME_SIZE);
+ buffer[FILENAME_SIZE] = '\0';
+ _interfaceFile = Common::String(buffer);
for (int i = 0; i < 10; ++i) {
- animStream->read(buffer, 13);
- _spriteSetNames[i] = Common::String(buffer, 13);
+ animStream->read(buffer, FILENAME_SIZE);
+ buffer[FILENAME_SIZE] = '\0';
+ _spriteSetNames[i] = Common::String(buffer);
}
animStream->skip(81);
- animStream->read(buffer, 13);
- _lbmFilename = Common::String(buffer, 13);
- animStream->read(buffer, 13);
- _spritesFilename = Common::String(buffer, 13);
+ animStream->read(buffer, FILENAME_SIZE);
+ buffer[FILENAME_SIZE] = '\0';
+ _lbmFilename = Common::String(buffer);
+
+ animStream->skip(365);
+ animStream->read(buffer, FILENAME_SIZE);
+ buffer[FILENAME_SIZE] = '\0';
+ _spritesFilename = Common::String(buffer);
+
animStream->skip(48);
- animStream->read(buffer, 13);
- _soundName = Common::String(buffer, 13);
+ animStream->read(buffer, FILENAME_SIZE);
+ buffer[FILENAME_SIZE] = '\0';
+ _soundName = Common::String(buffer);
+
animStream->skip(26);
- animStream->read(buffer, 13);
- Common::String fontResource(buffer, 13);
+ animStream->read(buffer, FILENAME_SIZE);
+ buffer[FILENAME_SIZE] = '\0';
+ Common::String fontResource(buffer);
if (_animMode == 4)
flags |= 0x4000;
@@ -205,7 +215,7 @@ void MadsAnimation::initialise(const Common::String &filename, uint16 flags, M4S
fontName += fontResource;
if (fontName != "")
- _font = _vm->_font->getFont(fontName);
+ _font = _vm->_font->getFont(fontName.c_str());
else
warning("Attempted to set a font with an empty name");
}