aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra
diff options
context:
space:
mode:
authorJohannes Schickel2008-04-27 14:03:51 +0000
committerJohannes Schickel2008-04-27 14:03:51 +0000
commit77bae0119547c75c8858dcb64525ebd3ba58b9e7 (patch)
tree7faa5d86c780173a47f08fbe8786057b93cb6db0 /engines/kyra
parent7eef01cec48ac26d406a73a431120e56d919f63b (diff)
downloadscummvm-rg350-77bae0119547c75c8858dcb64525ebd3ba58b9e7.tar.gz
scummvm-rg350-77bae0119547c75c8858dcb64525ebd3ba58b9e7.tar.bz2
scummvm-rg350-77bae0119547c75c8858dcb64525ebd3ba58b9e7.zip
- Fixed bug in itemInventoryMagic
- Fixed original game bug when creating item 7 (Bent nail-on-a-string), now it should award points when creating it with scene item and also in french version when creating it in inventory svn-id: r31753
Diffstat (limited to 'engines/kyra')
-rw-r--r--engines/kyra/items_v3.cpp30
1 files changed, 12 insertions, 18 deletions
diff --git a/engines/kyra/items_v3.cpp b/engines/kyra/items_v3.cpp
index 489afbbd82..275537705f 100644
--- a/engines/kyra/items_v3.cpp
+++ b/engines/kyra/items_v3.cpp
@@ -546,6 +546,12 @@ bool KyraEngine_v3::itemListMagic(int handItem, int itemSlot) {
if (_lang != 1)
updateItemCommand(resItem, 3, 0xFF);
+ // Unlike the original we give points for when combining with scene items
+ if (resItem == 7) {
+ updateScore(35, 100);
+ delay(60, true);
+ }
+
return true;
}
@@ -577,19 +583,6 @@ bool KyraEngine_v3::itemInventoryMagic(int handItem, int invSlot) {
return true;
}
- if (_mainCharacter.sceneId == 51 && queryGameFlag(0x19B) && !queryGameFlag(0x19C)
- && ((item == 63 && handItem == 56) || (item == 56 && handItem == 63))) {
- if (queryGameFlag(0x1AC)) {
- setGameFlag(0x19C);
- setGameFlag(0x1AD);
- } else {
- setGameFlag(0x1AE);
- }
-
- _timer->setCountdown(12, 1);
- _timer->enable(12);
- }
-
for (int i = 0; _itemMagicTable[i] != 0xFF; i += 4) {
if (_itemMagicTable[i+0] != handItem || _itemMagicTable[i+1] != item)
continue;
@@ -611,12 +604,13 @@ bool KyraEngine_v3::itemInventoryMagic(int handItem, int invSlot) {
setHandItem(newItem);
_screen->showMouse();
- if (_lang != 1) {
- if (resItem == 7) {
- updateScore(35, 100);
- delay(60, true);
- }
+ if (_lang != 1)
updateItemCommand(resItem, 3, 0xFF);
+
+ // Unlike the original we give points for every language
+ if (resItem == 7) {
+ updateScore(35, 100);
+ delay(60, true);
}
return true;