aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/parser_ns.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/parallaction/parser_ns.cpp')
-rw-r--r--engines/parallaction/parser_ns.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/engines/parallaction/parser_ns.cpp b/engines/parallaction/parser_ns.cpp
index 35f6f20346..9681d67a8b 100644
--- a/engines/parallaction/parser_ns.cpp
+++ b/engines/parallaction/parser_ns.cpp
@@ -1275,11 +1275,15 @@ void Parallaction_ns::parseGetData(Script &script, Zone *z) {
if (!scumm_stricmp(_tokens[0], "file")) {
data->_cnv = _disk->loadStatic(_tokens[1]);
- data->_backup = (byte*)malloc(data->_cnv->w*data->_cnv->h);
+
+ Common::Rect r;
+ data->_cnv->getRect(0, r);
+
+ data->_backup = (byte*)malloc(r.width() * r.height());
if ((z->_flags & kFlagsRemove) == 0) {
_gfx->backupGetBackground(data, z->_left, z->_top);
- _gfx->flatBlitCnv(data->_cnv, z->_left, z->_top, Gfx::kBitBack);
+ _gfx->flatBlitCnv(data->_cnv, 0, z->_left, z->_top, Gfx::kBitBack);
}
}
@@ -1303,6 +1307,7 @@ void Parallaction_ns::parseExamineData(Script &script, Zone *z) {
if (!scumm_stricmp(_tokens[0], "file")) {
data->_filename = strdup(_tokens[1]);
+ data->_cnv = _disk->loadStatic(_tokens[1]);
}
if (!scumm_stricmp(_tokens[0], "desc")) {
data->_description = parseComment(script);