diff options
author | Benjamin Haisch | 2008-06-18 11:01:51 +0000 |
---|---|---|
committer | Benjamin Haisch | 2008-06-18 11:01:51 +0000 |
commit | 7bceafb3f2cff0f80b5b489d21e8bff90ddb5fbe (patch) | |
tree | 5bd254aeca2d3963bc6461aa530e10f43c6021b4 /engines/made/database.cpp | |
parent | 9b910eedba4b7f01e9b0aa7c90831904409ba98a (diff) | |
download | scummvm-rg350-7bceafb3f2cff0f80b5b489d21e8bff90ddb5fbe.tar.gz scummvm-rg350-7bceafb3f2cff0f80b5b489d21e8bff90ddb5fbe.tar.bz2 scummvm-rg350-7bceafb3f2cff0f80b5b489d21e8bff90ddb5fbe.zip |
- Fixed sprite drawing in Rodney's Funscreen
- Handle mouse button up events and event number fixes in MadeEngine::handleEvents()
- Use milliseconds -> game ticks calculation based on Windows version of the original engine
- "Rodney's Fun Screen" -> "Rodney's Funscreen"
svn-id: r32731
Diffstat (limited to 'engines/made/database.cpp')
-rw-r--r-- | engines/made/database.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/engines/made/database.cpp b/engines/made/database.cpp index 55e0e90732..3497b5b46f 100644 --- a/engines/made/database.cpp +++ b/engines/made/database.cpp @@ -88,10 +88,7 @@ int16 Object::getVectorItem(int16 index) { if (getClass() == 0x7FFF) { byte *vector = (byte*)getData(); return vector[index]; - } else if (getClass() == 0x7FFE) { - int16 *vector = (int16*)getData(); - return READ_LE_UINT16(&vector[index]); - } else if (getClass() < 0x7FFE) { + } else if (getClass() <= 0x7FFE) { int16 *vector = (int16*)getData(); return READ_LE_UINT16(&vector[index]); } else { @@ -372,7 +369,7 @@ void GameDatabaseV2::load(Common::SeekableReadStream &sourceS) { debug(2, "textOffs = %08X; textSize = %08X; objectCount = %d; varObjectCount = %d; gameStateSize = %d; objectsOffs = %08X; objectsSize = %d\n", textOffs, textSize, objectCount, varObjectCount, _gameStateSize, objectsOffs, objectsSize); _gameState = new byte[_gameStateSize + 2]; - memset(_gameState, 0, _gameStateSize); + memset(_gameState, 0, _gameStateSize + 2); setVar(1, objectCount); sourceS.seek(textOffs); @@ -441,7 +438,7 @@ int16 *GameDatabaseV2::findObjectProperty(int16 objectIndex, int16 propertyId, i int16 *propPtr2 = prop + count2; // First see if the property exists in the given object - while (count2-- > 0) { + while (count2--) { if ((READ_LE_UINT16(prop) & 0x7FFF) == propertyId) { propertyFlag = obj->getFlags() & 1; return propPtr1; @@ -467,8 +464,8 @@ int16 *GameDatabaseV2::findObjectProperty(int16 objectIndex, int16 propertyId, i propPtr1 = propPtr2 + count1 - count2; int16 *propertyPtr = prop + count1; - while (count2-- > 0) { - if (!(READ_LE_UINT16(prop) & 0x8000)) { + while (count2--) { + if ((READ_LE_UINT16(prop) & 0x8000) == 0) { if ((READ_LE_UINT16(prop) & 0x7FFF) == propertyId) { propertyFlag = obj->getFlags() & 1; return propPtr1; |