aboutsummaryrefslogtreecommitdiff
path: root/engines/lastexpress/entities
diff options
context:
space:
mode:
authorLittleboy2014-06-11 23:22:08 -0400
committerLittleboy2014-06-16 18:46:31 -0400
commit94861cd73c400ac95b6af951db8050f9dce81c04 (patch)
tree486fcbaa49c7c43b11437ae5825c2ee80ed4b7c1 /engines/lastexpress/entities
parentbe563f3c195833ea8208c2cd0e6a645b60adbc1a (diff)
downloadscummvm-rg350-94861cd73c400ac95b6af951db8050f9dce81c04.tar.gz
scummvm-rg350-94861cd73c400ac95b6af951db8050f9dce81c04.tar.bz2
scummvm-rg350-94861cd73c400ac95b6af951db8050f9dce81c04.zip
LASTEXPRESS: Check for resulting sequence size in August logic code. CID 1003264
Diffstat (limited to 'engines/lastexpress/entities')
-rw-r--r--engines/lastexpress/entities/august.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/engines/lastexpress/entities/august.cpp b/engines/lastexpress/entities/august.cpp
index a63a104ae4..14dcf200f0 100644
--- a/engines/lastexpress/entities/august.cpp
+++ b/engines/lastexpress/entities/august.cpp
@@ -452,11 +452,17 @@ IMPLEMENT_FUNCTION_I(20, August, function20, bool)
}
if (params->param1) {
- strcpy((char *)&parameters->seq2, Common::String::format("%s%s", (char *)&parameters->seq1, "Gc").c_str());
+ Common::String sequence = Common::String::format("%s%s", (char *)&parameters->seq1, "Gc");
+ assert(sequence.size() <= 13);
+
+ strcpy((char *)&parameters->seq2, sequence.c_str());
getObjects()->update(kObjectCompartment3, kEntityPlayer, kObjectLocation1, kCursorKeepValue, kCursorKeepValue);
} else {
- strcpy((char *)&parameters->seq2, Common::String::format("%s%s", (char *)&parameters->seq1, "Ec").c_str());
+ Common::String sequence = Common::String::format("%s%s", (char *)&parameters->seq1, "Ec");
+ assert(sequence.size() <= 13);
+
+ strcpy((char *)&parameters->seq2, sequence.c_str());
}
setCallback(1);
@@ -484,15 +490,22 @@ IMPLEMENT_FUNCTION_I(20, August, function20, bool)
setCallback(2);
setup_playSound("AUG2094");
}
+
}
break;
case 2:
- case 3:
+ case 3: {
getSavePoints()->push(kEntityAugust, kEntityMertens, kAction269436673);
- strcpy((char *)&parameters->seq2, Common::String::format("%s%s", (char *)&parameters->seq1, "Qc").c_str());
+
+ Common::String sequence = Common::String::format("%s%s", (char *)&parameters->seq1, "Qc");
+ assert(sequence.size() <= 13);
+
+ strcpy((char *)&parameters->seq2, sequence.c_str());
getEntities()->drawSequenceLeft(kEntityAugust, (char *)&parameters->seq2);
+
+ }
break;
}
break;