aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/items_eob.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/kyra/items_eob.cpp')
-rw-r--r--engines/kyra/items_eob.cpp61
1 files changed, 32 insertions, 29 deletions
diff --git a/engines/kyra/items_eob.cpp b/engines/kyra/items_eob.cpp
index 6c331e80be..de5fe6b32a 100644
--- a/engines/kyra/items_eob.cpp
+++ b/engines/kyra/items_eob.cpp
@@ -192,10 +192,8 @@ int EobCoreEngine::validateInventorySlotForItem(Item item, int charIndex, int sl
if (item < 0)
return 0;
- int offset = (_flags.gameID == GI_EOB1) ? 11 : (_flags.lang == Common::DE_DEU ? 16 : 12);
-
if (slot == 17 && item && !itemUsableByCharacter(charIndex, item)) {
- _txt->printMessage(_itemExtraStrings[offset], -1, _characters[charIndex].name);
+ _txt->printMessage(_validateArmorString[0], -1, _characters[charIndex].name);
return 0;
}
@@ -203,7 +201,8 @@ int EobCoreEngine::validateInventorySlotForItem(Item item, int charIndex, int sl
int ex = _itemTypes[_items[itm].type].extraProperties & 0x7f;
if (slot < 2 && _items[itm].flags & 0x20 && ex > 0 && ex < 4) {
- _txt->printMessage(_itemExtraStrings[offset + 1], -1, _characters[charIndex].name);
+ if (_flags.gameID == GI_EOB2)
+ _txt->printMessage(_validateCursedString[0], -1, _characters[charIndex].name);
return 0;
}
@@ -211,7 +210,7 @@ int EobCoreEngine::validateInventorySlotForItem(Item item, int charIndex, int sl
if (v & _slotValidationFlags[slot])
return 1;
- _txt->printMessage(_itemExtraStrings[offset + (_flags.gameID == GI_EOB1 ? 1 : 2)]);
+ _txt->printMessage(_validateNoDropString[0]);
return 0;
}
@@ -317,7 +316,8 @@ void EobCoreEngine::printFullItemName(Item item) {
const char *tstr2 = 0;
const char *tstr3 = 0;
- int e = 0;
+
+ bool correctSuffixCase = false;
Common::String tmpString;
@@ -330,43 +330,46 @@ void EobCoreEngine::printFullItemName(Item item) {
if (v == 0)
tmpString = nameUnid;
else if (v < 0)
- tmpString = Common::String::format(_itemExtraStrings[3], v, nameUnid);
+ tmpString = Common::String::format(_cursedString[0], v, nameUnid);
else
- tmpString = Common::String::format(_itemExtraStrings[4], v, nameUnid);
+ tmpString = Common::String::format(_enchantedString[0], v, nameUnid);
break;
case 9:
- tstr2 = _itemExtraStrings[5];
+ tstr2 = _magicObjectStrings[0];
tstr3 = _spells[v].name;
- e = 1;
+ correctSuffixCase = true;
break;
case 10:
- tstr2 = _itemExtraStrings[6];
+ tstr2 = _magicObjectStrings[1];
tstr3 = _spells[_flags.gameID == GI_EOB1 ? (_clericSpellOffset + v) : v].name;
- e = 1;
+ correctSuffixCase = true;
break;
case 14:
- tstr2 = _itemExtraStrings[8];
- tstr3 = _itemSuffixStrings[8];
+ tstr2 = _magicObjectStrings[3];
+ if (_flags.gameID == GI_EOB1)
+ v--;
+ tstr3 = _suffixStringsPotions[v];
break;
case 16:
- tstr2 = _itemExtraStrings[7];
- tstr3 = _itemSuffixStrings[v + 6];
- e = 0;
+ tstr2 = _magicObjectStrings[2];
+ tstr3 = _suffixStringsRings[v];
break;
case 18:
- if (v == 5) {
- tstr2 = _itemExtraStrings[_flags.lang == Common::EN_ANY ? 9 : 10];
- e = 1;
+ if (_flags.gameID == GI_EOB2 && v == 5) {
+ if (_flags.lang == Common::DE_DEU)
+ tstr2 = _magicObjectString5[0];
+ else
+ tstr3 = _magicObjectString5[0];
+ correctSuffixCase = true;
} else {
- tstr2 = _itemExtraStrings[9];
- e = 0;
+ tstr2 = _magicObjectStrings[4];
}
- tstr3 = _itemSuffixStrings[v + (_flags.lang == Common::EN_ANY ? 11 : 15)];
+ tstr3 = _suffixStringsWands[v];
break;
default:
@@ -377,15 +380,15 @@ void EobCoreEngine::printFullItemName(Item item) {
if (tstr3) {
if (!tstr2) {
- tmpString = Common::String::format(_itemExtraStrings[_flags.lang == Common::EN_ANY ? 10 : 11], tstr3);
+ tmpString = tstr3;
} else {
- if (e == 1) {
- if (tstr2 == _itemExtraStrings[12])
- tmpString = Common::String::format(_itemExtraStrings[_flags.lang == Common::EN_ANY ? 11 : 14], tstr2, tstr3);
+ if (correctSuffixCase) {
+ if (tstr2 == _magicObjectString5[0])
+ tmpString = Common::String::format(_patternGrFix2[0], tstr2, tstr3);
else
- tmpString = Common::String::format(_itemExtraStrings[_flags.gameID == GI_EOB1 ? 10 : (_flags.lang == Common::EN_ANY ? 11 : 13)], tstr2, tstr3);
+ tmpString = Common::String::format(_patternGrFix1[0], tstr2, tstr3);
} else {
- tmpString = Common::String::format(_itemExtraStrings[_flags.gameID == GI_EOB1 ? 10 : (_flags.lang == Common::EN_ANY ? 11 : 15)], tstr2, tstr3);
+ tmpString = Common::String::format(_patternSuffix[0], tstr2, tstr3);
}
}
}