aboutsummaryrefslogtreecommitdiff
path: root/engines/mutationofjb/hardcodedstrings.cpp
diff options
context:
space:
mode:
authorĽubomír Remák2018-10-28 13:08:41 +0100
committerĽubomír Remák2018-10-28 13:08:41 +0100
commitd5568906739da23154cacd17aca93802901a9baf (patch)
tree56e9a8060f2c513aade94d18078c1d572c25a31b /engines/mutationofjb/hardcodedstrings.cpp
parent0cf567de28fbdc0ee3c4aedf2c6da94c5b8ca129 (diff)
downloadscummvm-rg350-d5568906739da23154cacd17aca93802901a9baf.tar.gz
scummvm-rg350-d5568906739da23154cacd17aca93802901a9baf.tar.bz2
scummvm-rg350-d5568906739da23154cacd17aca93802901a9baf.zip
MUTATIONOFJB: Add support for combining items.
Introduce game screen and game widget. Add status bar to show currently hovered and picked items. Load hardcoded strings from game executable.
Diffstat (limited to 'engines/mutationofjb/hardcodedstrings.cpp')
-rw-r--r--engines/mutationofjb/hardcodedstrings.cpp169
1 files changed, 169 insertions, 0 deletions
diff --git a/engines/mutationofjb/hardcodedstrings.cpp b/engines/mutationofjb/hardcodedstrings.cpp
new file mode 100644
index 0000000000..5635c362b5
--- /dev/null
+++ b/engines/mutationofjb/hardcodedstrings.cpp
@@ -0,0 +1,169 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "mutationofjb/hardcodedstrings.h"
+
+#include "mutationofjb/game.h"
+#include "mutationofjb/util.h"
+
+#include "common/file.h"
+
+namespace MutationOfJB {
+
+HardcodedStrings::HardcodedStrings(Game &game) : _strings(STRING_TYPES_TOTAL) {
+ loadStrings(game.getLanguage());
+}
+
+const Common::String &HardcodedStrings::getString(HardcodedStrings::StringType strType) const {
+ const StringArray::size_type index = static_cast<StringArray::size_type>(strType);
+ assert(index < _strings.size());
+
+ return _strings[index];
+}
+
+void HardcodedStrings::loadStrings(Common::Language lang) {
+ Common::File file;
+ const char *const fileName = "jb.ex_";
+ if (!file.open(fileName)) {
+ reportFileMissingError(fileName);
+ return;
+ }
+
+ if (lang == Common::SK_SVK)
+ file.seek(0xBAA8);
+ else if (lang == Common::DE_DEU)
+ file.seek(0xBC48);
+ else
+ return;
+
+ Common::String str;
+
+ file.readPascalString(); // WALK TO
+ file.readPascalString(); // TALK TO
+ file.readPascalString(); // PICK UP
+ file.readPascalString(); // LOOK AT
+
+ str = file.readPascalString();
+ if (lang == Common::SK_SVK)
+ _strings[WALK] = str;
+
+ str = file.readPascalString();
+ if (lang == Common::DE_DEU)
+ _strings[WALK] = str;
+
+ str = file.readPascalString();
+ if (lang == Common::SK_SVK)
+ _strings[LOOK] = str;
+
+ file.readPascalString();
+ file.readPascalString();
+
+ str = file.readPascalString();
+ if (lang == Common::DE_DEU)
+ _strings[LOOK] = str;
+
+ str = file.readPascalString();
+ if (lang == Common::SK_SVK)
+ _strings[PICKUP] = str;
+
+ str = file.readPascalString();
+ if (lang == Common::DE_DEU)
+ _strings[PICKUP] = str;
+
+ str = file.readPascalString();
+ if (lang == Common::SK_SVK)
+ _strings[TALK] = str;
+
+ str = file.readPascalString();
+ if (lang == Common::DE_DEU)
+ _strings[TALK] = str;
+
+ file.readPascalString(); // USE
+
+ str = file.readPascalString();
+ if (lang == Common::SK_SVK)
+ _strings[USE] = str;
+
+ str = file.readPascalString();
+ if (lang == Common::DE_DEU)
+ _strings[USE] = str;
+
+
+ if (lang == Common::SK_SVK)
+ file.seek(0x1982F);
+ else if (lang == Common::DE_DEU)
+ file.seek(0x199F0);
+ else
+ return;
+
+ _strings[JOHNNY_CANNOT_USE_1] = file.readPascalString();
+ _strings[SKEPTO_CANNOT_USE_1] = file.readPascalString();
+ file.readPascalString();
+ _strings[JOHNNY_CANNOT_USE_2] = file.readPascalString();
+ _strings[SKEPTO_CANNOT_USE_2] = file.readPascalString();
+ file.readPascalString();
+ _strings[JOHNNY_CANNOT_USE_3] = file.readPascalString();
+ _strings[SKEPTO_CANNOT_USE_3] = file.readPascalString();
+ file.readPascalString();
+ _strings[JOHNNY_CANNOT_USE_4] = file.readPascalString();
+ _strings[SKEPTO_CANNOT_USE_4] = file.readPascalString();
+ file.readPascalString();
+ _strings[JOHNNY_CANNOT_TALK_1] = file.readPascalString();
+ _strings[SKEPTO_CANNOT_TALK_1] = file.readPascalString();
+ file.readPascalString();
+ _strings[JOHNNY_CANNOT_TALK_2] = file.readPascalString();
+ _strings[SKEPTO_CANNOT_TALK_2] = file.readPascalString();
+ file.readPascalString();
+ _strings[JOHNNY_CANNOT_TALK_3] = file.readPascalString();
+ _strings[SKEPTO_CANNOT_TALK_3] = file.readPascalString();
+ file.readPascalString();
+ _strings[JOHNNY_CANNOT_TALK_4] = file.readPascalString();
+ _strings[SKEPTO_CANNOT_TALK_4] = file.readPascalString();
+ file.readPascalString();
+ _strings[JOHNNY_CANNOT_LOOK_1] = file.readPascalString();
+ _strings[SKEPTO_CANNOT_LOOK_1] = file.readPascalString();
+ file.readPascalString();
+ _strings[JOHNNY_CANNOT_LOOK_2] = file.readPascalString();
+ _strings[SKEPTO_CANNOT_LOOK_2] = file.readPascalString();
+ file.readPascalString();
+ if (lang != Common::SK_SVK) // This sentence seems to be missing from the Slovak executable.
+ _strings[JOHNNY_CANNOT_LOOK_3] = file.readPascalString();
+ _strings[SKEPTO_CANNOT_LOOK_3] = file.readPascalString();
+ file.readPascalString();
+ _strings[JOHNNY_CANNOT_LOOK_4] = file.readPascalString();
+ _strings[SKEPTO_CANNOT_LOOK_4] = file.readPascalString();
+ file.readPascalString();
+ _strings[JOHNNY_CANNOT_PICKUP_1] = file.readPascalString();
+ _strings[SKEPTO_CANNOT_PICKUP_1] = file.readPascalString();
+ file.readPascalString();
+ if (lang != Common::SK_SVK) // This sentence seems to be missing from the Slovak executable.
+ _strings[JOHNNY_CANNOT_PICKUP_2] = file.readPascalString();
+ _strings[SKEPTO_CANNOT_PICKUP_2] = file.readPascalString();
+ file.readPascalString();
+ _strings[JOHNNY_CANNOT_PICKUP_3] = file.readPascalString();
+ _strings[SKEPTO_CANNOT_PICKUP_3] = file.readPascalString();
+ file.readPascalString();
+ _strings[JOHNNY_CANNOT_PICKUP_4] = file.readPascalString();
+ _strings[SKEPTO_CANNOT_PICKUP_4] = file.readPascalString();
+}
+
+}