[Scummvm-cvs-logs] SF.net SVN: scummvm:[45221] scummvm/trunk/engines/kyra
athrxx at users.sourceforge.net
athrxx at users.sourceforge.net
Sun Oct 18 14:47:54 CEST 2009
Revision: 45221
http://scummvm.svn.sourceforge.net/scummvm/?rev=45221&view=rev
Author: athrxx
Date: 2009-10-18 12:47:54 +0000 (Sun, 18 Oct 2009)
Log Message:
-----------
LOL: this should fix a valgrind warning
Modified Paths:
--------------
scummvm/trunk/engines/kyra/items_lol.cpp
scummvm/trunk/engines/kyra/lol.h
scummvm/trunk/engines/kyra/script_lol.cpp
scummvm/trunk/engines/kyra/sprites_lol.cpp
Modified: scummvm/trunk/engines/kyra/items_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/items_lol.cpp 2009-10-18 12:44:51 UTC (rev 45220)
+++ scummvm/trunk/engines/kyra/items_lol.cpp 2009-10-18 12:47:54 UTC (rev 45221)
@@ -245,7 +245,7 @@
return &_itemsInPlay[index];
}
-void LoLEngine::runItemScript(int charNum, int item, int sub, int next, int reg4) {
+void LoLEngine::runItemScript(int charNum, int item, int flags, int next, int reg4) {
EMCState scriptState;
memset(&scriptState, 0, sizeof(EMCState));
@@ -256,14 +256,14 @@
_emc->init(&scriptState, &_itemScript);
_emc->start(&scriptState, func);
- scriptState.regs[0] = sub;
+ scriptState.regs[0] = flags;
scriptState.regs[1] = charNum;
scriptState.regs[2] = item;
scriptState.regs[3] = next;
scriptState.regs[4] = reg4;
if (_emc->isValid(&scriptState)) {
- if (*(scriptState.ip - 1) & sub) {
+ if (*(scriptState.ip - 1) & flags) {
while (_emc->isValid(&scriptState))
_emc->run(&scriptState);
}
Modified: scummvm/trunk/engines/kyra/lol.h
===================================================================
--- scummvm/trunk/engines/kyra/lol.h 2009-10-18 12:44:51 UTC (rev 45220)
+++ scummvm/trunk/engines/kyra/lol.h 2009-10-18 12:47:54 UTC (rev 45221)
@@ -633,8 +633,8 @@
// emc scripts
void runInitScript(const char *filename, int optionalFunc);
void runInfScript(const char *filename);
- void runLevelScript(int block, int sub);
- void runLevelScriptCustom(int block, int sub, int charNum, int item, int reg3, int reg4);
+ void runLevelScript(int block, int flags);
+ void runLevelScriptCustom(int block, int flags, int charNum, int item, int reg3, int reg4);
bool checkSceneUpdateNeed(int func);
EMCData _scriptData;
@@ -1204,7 +1204,7 @@
bool testUnkItemFlags(int itemIndex);
void deleteItem(int itemIndex);
ItemInPlay *findObject(uint16 index);
- void runItemScript(int charNum, int item, int sub, int next, int reg4);
+ void runItemScript(int charNum, int item, int flags, int next, int reg4);
void setHandItem(uint16 itemIndex);
bool itemEquipped(int charNum, uint16 itemType);
Modified: scummvm/trunk/engines/kyra/script_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_lol.cpp 2009-10-18 12:44:51 UTC (rev 45220)
+++ scummvm/trunk/engines/kyra/script_lol.cpp 2009-10-18 12:47:54 UTC (rev 45221)
@@ -64,11 +64,11 @@
runLevelScript(0x400, -1);
}
-void LoLEngine::runLevelScript(int block, int sub) {
- runLevelScriptCustom(block, sub, -1, 0, 0, 0);
+void LoLEngine::runLevelScript(int block, int flags) {
+ runLevelScriptCustom(block, flags, -1, 0, 0, 0);
}
-void LoLEngine::runLevelScriptCustom(int block, int sub, int charNum, int item, int reg3, int reg4) {
+void LoLEngine::runLevelScriptCustom(int block, int flags, int charNum, int item, int reg3, int reg4) {
EMCState scriptState;
memset(&scriptState, 0, sizeof(EMCState));
@@ -76,7 +76,7 @@
_emc->init(&scriptState, &_scriptData);
_emc->start(&scriptState, block);
- scriptState.regs[0] = sub;
+ scriptState.regs[0] = flags;
scriptState.regs[1] = charNum;
scriptState.regs[2] = item;
scriptState.regs[3] = reg3;
@@ -85,7 +85,7 @@
scriptState.regs[6] = _scriptDirection;
if (_emc->isValid(&scriptState)) {
- if (*(scriptState.ip - 1) & sub) {
+ if (*(scriptState.ip - 1) & flags) {
while (_emc->isValid(&scriptState))
_emc->run(&scriptState);
}
Modified: scummvm/trunk/engines/kyra/sprites_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sprites_lol.cpp 2009-10-18 12:44:51 UTC (rev 45220)
+++ scummvm/trunk/engines/kyra/sprites_lol.cpp 2009-10-18 12:47:54 UTC (rev 45221)
@@ -71,16 +71,15 @@
}
_monsterAnimType[monsterIndex] = animType & 0xff;
- uint8 *tsh = _screen->makeShapeCopy(p, 16);
+ uint8 *palShape = _screen->makeShapeCopy(p, 16);
_screen->clearPage(3);
- _screen->drawShape(2, tsh, 0, 0, 0, 0);
+ _screen->drawShape(2, palShape, 0, 0, 0, 0);
uint8 *tmpPal1 = new uint8[64];
uint8 *tmpPal2 = new uint8[256];
uint16 *tmpPal3 = new uint16[256];
memset(tmpPal1, 0, 64);
- memset(tmpPal2, 0, 256);
for (int i = 0; i < 64; i++) {
tmpPal1[i] = *p;
@@ -91,8 +90,10 @@
for (int i = 0; i < 16; i++) {
int pos = (monsterIndex << 4) + i;
- memcpy(tmpPal2, _monsterShapes[pos] + 10, 256);
- memset(tmpPal3, 0xff, 512);
+ uint16 sz = MIN(_screen->getShapeSize(_monsterShapes[pos]) - 10, 256);
+ memset(tmpPal2, 0, 256);
+ memcpy(tmpPal2, _monsterShapes[pos] + 10, sz);
+ memset(tmpPal3, 0xff, 256 * sizeof(uint16));
uint8 numCol = *tmpPal2;
for (int ii = 0; ii < numCol; ii++) {
@@ -103,7 +104,8 @@
}
for (int ii = 0; ii < 8; ii++) {
- memcpy(tmpPal2, _monsterShapes[pos] + 10, 256);
+ memset(tmpPal2, 0, 256);
+ memcpy(tmpPal2, _monsterShapes[pos] + 10, sz);
for (int iii = 0; iii < numCol; iii++) {
if (tmpPal3[iii] == 0xffff)
continue;
@@ -117,7 +119,7 @@
delete[] tmpPal1;
delete[] tmpPal2;
delete[] tmpPal3;
- delete[] tsh;
+ delete[] palShape;
}
void LoLEngine::releaseMonsterShapes(int monsterIndex) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list