[Scummvm-cvs-logs] scummvm master -> a3985f38ac536b5a81c13aaeb31de165074e9c6d
sev-
sev at scummvm.org
Thu May 12 17:27:14 CEST 2016
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
ba8c9271cf AGOS: Safer string manipulation
b3a238a750 SKY: Safer string manipulation
c5ed11eaed SCUMM HE: Merge in quad and singles code
a3985f38ac SCUMM HE: Force full screen dirty on FOW drawing
Commit: ba8c9271cf548b9b578fa29b67c35db3fe652d06
https://github.com/scummvm/scummvm/commit/ba8c9271cf548b9b578fa29b67c35db3fe652d06
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-05-12T14:29:53+02:00
Commit Message:
AGOS: Safer string manipulation
Changed paths:
engines/agos/string.cpp
engines/agos/string_pn.cpp
diff --git a/engines/agos/string.cpp b/engines/agos/string.cpp
index 4f6c62c..cc443f2 100644
--- a/engines/agos/string.cpp
+++ b/engines/agos/string.cpp
@@ -126,14 +126,14 @@ const byte *AGOSEngine::getStringPtrByID(uint16 stringId, bool upperCase) {
_awaitTwoByteToken = 0;
uncompressText(ptr);
_textBuffer[_textCount] = 0;
- strcpy((char *)dst, (const char *)_textBuffer);
+ Common::strlcpy((char *)dst, (const char *)_textBuffer, 180);
} else {
if (stringId < 0x8000) {
stringPtr = _stringTabPtr[stringId];
} else {
stringPtr = getLocalStringByID(stringId);
}
- strcpy((char *)dst, (const char *)stringPtr);
+ Common::strlcpy((char *)dst, (const char *)stringPtr, 180);
}
// WORKAROUND bug #1538873: The French version of Simon 1 and the
@@ -796,7 +796,7 @@ void AGOSEngine_Feeble::printInteractText(uint16 num, const char *string) {
if (*string2 == 0x00) {
if (w == 0xFFFF)
w = pixels;
- strcpy(convertedString2, string);
+ Common::strlcpy(convertedString2, string, 320);
break;
}
while (*string2 != ' ') {
diff --git a/engines/agos/string_pn.cpp b/engines/agos/string_pn.cpp
index 7a364f3..06c8bbd 100644
--- a/engines/agos/string_pn.cpp
+++ b/engines/agos/string_pn.cpp
@@ -114,7 +114,7 @@ void AGOSEngine_PN::getObjectName(char *v, uint16 x) {
}
void AGOSEngine_PN::pcl(const char *s) {
- strcat(_sb, s);
+ Common::strlcat(_sb, s, 80);
if (strchr(s, '\n') == 0) {
for (char *str = _sb; *str; str++)
windowPutChar(_windowArray[_curWindow], *str);
Commit: b3a238a7508b51927c436f3beb1bf0dd556c44f3
https://github.com/scummvm/scummvm/commit/b3a238a7508b51927c436f3beb1bf0dd556c44f3
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-05-12T14:42:12+02:00
Commit Message:
SKY: Safer string manipulation
Changed paths:
engines/sky/control.cpp
diff --git a/engines/sky/control.cpp b/engines/sky/control.cpp
index 9f78234..99e6daa 100644
--- a/engines/sky/control.cpp
+++ b/engines/sky/control.cpp
@@ -167,7 +167,7 @@ ControlStatus::~ControlStatus() {
void ControlStatus::setToText(const char *newText) {
char tmpLine[256];
- strcpy(tmpLine, newText);
+ Common::strlcpy(tmpLine, newText, 256);
if (_textData) {
_statusText->flushForRedraw();
free(_textData);
Commit: c5ed11eaede54c6e7fafd210431a4c617708ca3e
https://github.com/scummvm/scummvm/commit/c5ed11eaede54c6e7fafd210431a4c617708ca3e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-05-12T15:41:13+02:00
Commit Message:
SCUMM HE: Merge in quad and singles code
Changed paths:
engines/scumm/he/moonbase/moonbase.cpp
diff --git a/engines/scumm/he/moonbase/moonbase.cpp b/engines/scumm/he/moonbase/moonbase.cpp
index 9dc58af..414a177 100644
--- a/engines/scumm/he/moonbase/moonbase.cpp
+++ b/engines/scumm/he/moonbase/moonbase.cpp
@@ -88,13 +88,25 @@ void Moonbase::blitT14WizImage(uint8 *dst, int dstw, int dsth, int dstPitch, con
int code = *codes - 2;
codes++;
- if (code == 0) { // quad
- for (int c = 0; c < 4; c++) {
+ if (code <= 0) { // quad or single
+ uint8 *src;
+ int cnt;
+ if (code == 0) { // quad
+ src = quadsOffset;
+ quadsOffset += 8;
+ cnt = 4; // 4 pixels
+ } else { // single
+ src = singlesOffset;
+ singlesOffset += 2;
+ cnt = 1;
+ }
+
+ for (int c = 0; c < cnt; c++) {
if (pixels >= sx) {
if (rawROP == 1) { // MMX_PREMUL_ALPHA_COPY
- WRITE_LE_UINT16(dst1, READ_LE_UINT16(quadsOffset));
+ WRITE_LE_UINT16(dst1, READ_LE_UINT16(src));
} else if (rawROP == 2) { // MMX_ADDITIVE
- uint16 color = READ_LE_UINT16(quadsOffset);
+ uint16 color = READ_LE_UINT16(src);
uint32 orig = READ_LE_UINT16(dst1);
uint32 r = MIN<uint32>(0x7c00, (orig & 0x7c00) + (color & 0x7c00));
@@ -104,26 +116,9 @@ void Moonbase::blitT14WizImage(uint8 *dst, int dstw, int dsth, int dstPitch, con
}
dst1 += 2;
}
- quadsOffset += 2;
+ src += 2;
pixels++;
}
- } else if (code < 0) { // single
- if (pixels >= sx) {
- if (rawROP == 1) { // MMX_PREMUL_ALPHA_COPY
- WRITE_LE_UINT16(dst1, READ_LE_UINT16(singlesOffset));
- } else if (rawROP == 2) { // MMX_ADDITIVE
- uint16 color = READ_LE_UINT16(singlesOffset);
- uint32 orig = READ_LE_UINT16(dst1);
-
- uint32 r = MIN<uint32>(0x7c00u, (orig & 0x7c00) + (color & 0x7c00));
- uint32 g = MIN<uint32>(0x03e0u, (orig & 0x03e0) + (color & 0x03e0));
- uint32 b = MIN<uint32>(0x001fu, (orig & 0x001f) + (color & 0x001f));
- WRITE_LE_UINT16(dst1, (r | g | b));
- }
- dst1 += 2;
- }
- singlesOffset += 2;
- pixels++;
} else { // skip
if ((code & 1) == 0) {
code >>= 1;
Commit: a3985f38ac536b5a81c13aaeb31de165074e9c6d
https://github.com/scummvm/scummvm/commit/a3985f38ac536b5a81c13aaeb31de165074e9c6d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-05-12T17:27:27+02:00
Commit Message:
SCUMM HE: Force full screen dirty on FOW drawing
Changed paths:
engines/scumm/he/wiz_he.cpp
diff --git a/engines/scumm/he/wiz_he.cpp b/engines/scumm/he/wiz_he.cpp
index 8e2ac8a..2a9f7ec 100644
--- a/engines/scumm/he/wiz_he.cpp
+++ b/engines/scumm/he/wiz_he.cpp
@@ -1577,6 +1577,10 @@ uint8 *Wiz::drawWizImage(int resNum, int state, int maskNum, int maskState, int
state == _vm->_moonbase->_fowSentinelState &&
conditionBits == _vm->_moonbase->_fowSentinelConditionBits) {
_vm->_moonbase->renderFOW(dst, dstPitch, dstType, cw, ch, flags);
+ x1 = 0;
+ y1 = 0;
+ width = rScreen.width();
+ height = rScreen.height();
} else {
drawWizImageEx(dst, dataPtr, mask, dstPitch, dstType, cw, ch, x1, y1, width, height,
state, &rScreen, flags, palPtr, transColor, _vm->_bytesPerPixel, xmapPtr, conditionBits);
More information about the Scummvm-git-logs
mailing list