diff options
author | Littleboy | 2014-06-11 23:22:08 -0400 |
---|---|---|
committer | Littleboy | 2014-06-16 18:46:31 -0400 |
commit | 94861cd73c400ac95b6af951db8050f9dce81c04 (patch) | |
tree | 486fcbaa49c7c43b11437ae5825c2ee80ed4b7c1 | |
parent | be563f3c195833ea8208c2cd0e6a645b60adbc1a (diff) | |
download | scummvm-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
-rw-r--r-- | engines/lastexpress/entities/august.cpp | 21 |
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 *)¶meters->seq2, Common::String::format("%s%s", (char *)¶meters->seq1, "Gc").c_str()); + Common::String sequence = Common::String::format("%s%s", (char *)¶meters->seq1, "Gc"); + assert(sequence.size() <= 13); + + strcpy((char *)¶meters->seq2, sequence.c_str()); getObjects()->update(kObjectCompartment3, kEntityPlayer, kObjectLocation1, kCursorKeepValue, kCursorKeepValue); } else { - strcpy((char *)¶meters->seq2, Common::String::format("%s%s", (char *)¶meters->seq1, "Ec").c_str()); + Common::String sequence = Common::String::format("%s%s", (char *)¶meters->seq1, "Ec"); + assert(sequence.size() <= 13); + + strcpy((char *)¶meters->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 *)¶meters->seq2, Common::String::format("%s%s", (char *)¶meters->seq1, "Qc").c_str()); + + Common::String sequence = Common::String::format("%s%s", (char *)¶meters->seq1, "Qc"); + assert(sequence.size() <= 13); + + strcpy((char *)¶meters->seq2, sequence.c_str()); getEntities()->drawSequenceLeft(kEntityAugust, (char *)¶meters->seq2); + + } break; } break; |