diff options
Diffstat (limited to 'engines/agos/string.cpp')
-rw-r--r-- | engines/agos/string.cpp | 163 |
1 files changed, 160 insertions, 3 deletions
diff --git a/engines/agos/string.cpp b/engines/agos/string.cpp index 40506e4874..ed56cbd266 100644 --- a/engines/agos/string.cpp +++ b/engines/agos/string.cpp @@ -27,11 +27,12 @@ #include "common/file.h" +#include "gui/about.h" +#include "gui/message.h" + #include "agos/agos.h" #include "agos/intern.h" -using Common::File; - namespace AGOS { void AGOSEngine::uncompressText(byte *ptr) { @@ -265,7 +266,7 @@ uint AGOSEngine::loadTextFile(const char *filename, byte *dst) { } uint AGOSEngine::loadTextFile_simon1(const char *filename, byte *dst) { - File fo; + Common::File fo; fo.open(filename); uint32 size; @@ -561,6 +562,162 @@ void AGOSEngine::printScreenText(uint vgaSpriteId, uint color, const char *strin } #ifdef ENABLE_AGOS2 +// Swampy Adventures specific +void AGOSEngine_PuzzlePack::printInfoText(const char *itemText) { + const char *itemName = NULL; + int flag = (_mouse.y / 32) * 20 + (_mouse.x / 32) + 1300; + + switch (_variableArray[999]) { + case 80: + if (_variableArray[flag]) { + if (_variableArray[flag] == 201) + itemName = " Bridge: "; + if (_variableArray[flag] == 231 || _variableArray[flag] == 241) + itemName = " Log: "; + if (_variableArray[flag] == 281) + itemName = " Rubble: "; + if (_variableArray[flag] == 291) + itemName = " Boulder: "; + if (_variableArray[flag] == 311) + itemName = " Key: "; + if (_variableArray[flag] == 312) + itemName = " Spanner: "; + if (_variableArray[flag] == 321) + itemName = " Gate: "; + if (_variableArray[flag] == 331) + itemName = " Crate: "; + } else { + flag -= 300; + if (_variableArray[flag] == 2) + itemName = " Water: "; + if (_variableArray[flag] == 5) + itemName = " Exit: "; + if ((_variableArray[flag] == 5) && (_variableArray[81] == 10)) + itemName = " Gem: "; + if (_variableArray[flag] == 236 || _variableArray[flag] == 246) + itemName = " Floating Log: "; + if (_variableArray[flag] == 400) + itemName = " Valve: "; + } + break; + + case 81: + if (_variableArray[flag]) { + if (_variableArray[flag] == 281) + itemName = " Cracked Block: "; + if (_variableArray[flag] == 291) + itemName = " Boulder: "; + if (_variableArray[flag] == 331) + itemName = " Block: "; + if (_variableArray[flag] == 341) + itemName = " Switch: "; + if (_variableArray[flag] == 343) + itemName = " Button: "; + if ((_variableArray[flag] > 430) && (_variableArray[flag] < 480)) + itemName = " Mosaic Block: "; + } else { + flag -= 300; + if (_variableArray[flag] == 5) + itemName = " Exit: "; + if ((_variableArray[flag] == 5) && (_variableArray[82] == 10)) + itemName = " Gem: "; + } + break; + + case 82: + if (_variableArray[flag]) { + if (_variableArray[flag] == 201 || _variableArray[flag] == 211) + itemName = " Unstable Track: "; + if (_variableArray[flag] == 281) + itemName = " Rubble Pile: "; + if (_variableArray[flag] == 291) + itemName = " Boulder: "; + if (_variableArray[flag] == 331) + itemName = " Crate: "; + if (_variableArray[flag] == 401 || _variableArray[flag] == 405) + itemName = " Cart: "; + } else { + flag -= 300; + if (_variableArray[flag] == 4) + itemName = " Hole: "; + if (_variableArray[flag] == 5) + itemName = " Exit: "; + if ((_variableArray[flag] == 5) && (_variableArray[83] == 10)) + itemName = " Gem: "; + if ((_variableArray[flag] > 5) && (_variableArray[flag] < 10)) + itemName = " Buffer Track: "; + if ((_variableArray[flag] > 9) && (_variableArray[flag] < 40)) + itemName = " Track: "; + if (_variableArray[flag] == 300) + itemName = " Boulder: "; + } + break; + + case 83: + if (_variableArray[flag]) { + if (_variableArray[flag] == 201) + itemName = " Broken Floor: "; + if (_variableArray[flag] == 231 || _variableArray[flag] == 241) + itemName = " Barrel: "; + if (_variableArray[flag] == 281) + itemName = " Cracked Rock: "; + if (_variableArray[flag] == 291) + itemName = " Spacehopper: "; + if (_variableArray[flag] == 311) + itemName = " Key: "; + if (_variableArray[flag] == 321) + itemName = " Trapdoor: "; + if (_variableArray[flag] == 324) + itemName = " Trapdoor: "; + if (_variableArray[flag] == 331) + itemName = " Crate: "; + } else { + flag -= 300; + if (_variableArray[flag] == 4) + itemName = " Hole: "; + if (_variableArray[flag] == 239 || _variableArray[flag] == 249) + itemName = " Barrel: "; + } + break; + + case 84: + if (_variableArray[flag]) { + if (_variableArray[flag] == 201) + itemName = " Floating Platform: "; + if (_variableArray[flag] == 231) + itemName = " Cauldron: "; + if (_variableArray[flag] == 281) + itemName = " Cracked Block: "; + if (_variableArray[flag] == 311 || _variableArray[flag] == 312) + itemName = " Key: "; + if (_variableArray[flag] == 321 || _variableArray[flag] == 361 || _variableArray[flag] == 371) + itemName = " Gate: "; + if (_variableArray[flag] == 331) + itemName = " Chest: "; + if (_variableArray[flag] == 332) + itemName = " Jewel: "; + if (_variableArray[flag] == 351 || _variableArray[flag] == 352) + itemName = " Babies: "; + } else { + flag -= 300; + if (_variableArray[flag] == 6) + itemName = " Slime: "; + if (_variableArray[flag] == 334) + itemName = " Chest: "; + } + break; + + default: + break; + } + + if (itemName != NULL) { + Common::String buf = Common::String::format("%s\n%s", itemName, itemText); + GUI::TimedMessageDialog dialog(buf, 1500); + dialog.runModal(); + } +} + // The Feeble Files specific void AGOSEngine_Feeble::printScreenText(uint vgaSpriteId, uint color, const char *string, int16 x, int16 y, int16 width) { char convertedString[320]; |