Files
scummvm-cursorfix/engines/scumm/macgui/macgui_strings.cpp
2026-02-02 04:50:13 +01:00

779 lines
40 KiB
C++

/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#include "common/macresman.h"
#include "scumm/macgui/macgui_impl.h"
#include "scumm/scumm.h"
namespace Scumm {
Common::String MacGuiImpl::readCString(uint8 *&data) {
while (data[0] == '\0') {
data++;
}
Common::String result(reinterpret_cast<const char *>(data));
data += result.size() + 1;
debug(8, "MacGuiImpl::readCString(): %s", result.c_str());
return result;
}
Common::String MacGuiImpl::readPascalString(uint8 *&data) {
while (data[0] == '\0') {
data++;
}
Common::String result(reinterpret_cast<const char *>(&data[1]), (uint32)data[0]);
data += (uint32)data[0] + 1;
debug(8, "MacGuiImpl::readPascalString(): %s", result.c_str());
return result;
}
#define SKIP_C(x) { MacGuiImpl::kMSISkip, MacGuiImpl::kStrC, x }
#define SKIP_P(x) { MacGuiImpl::kMSISkip, MacGuiImpl::kStrPascal, x }
static const MacGuiImpl::MacSTRSParsingEntry strsIndy3Table[] = {
SKIP_C(6),
SKIP_P(2),
SKIP_C(2),
SKIP_P(1),
{ MacGuiImpl::kMSIAboutGameName, MacGuiImpl::kStrPascal, 1 },
SKIP_P(2),
{ MacGuiImpl::kMSIAreYouSureYouWantToRestart, MacGuiImpl::kStrC, 1 },
{ MacGuiImpl::kMSIAreYouSureYouWantToQuit, MacGuiImpl::kStrC, 1 },
SKIP_P(1),
{ MacGuiImpl::kMSIOpenGameFile, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSISaveGameFileAs, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIGameFile, MacGuiImpl::kStrPascal, 1 },
SKIP_P(2),
SKIP_C(2),
SKIP_P(1),
SKIP_C(67),
SKIP_P(2),
{ MacGuiImpl::kMSIAboutString1, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString2, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString3, MacGuiImpl::kStrC, 1 },
{ MacGuiImpl::kMSIAboutString4, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString5, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString6, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString7, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString8, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString9, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString10, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString11, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString12, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString13, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString14, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString15, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString16, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString17, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString18, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString19, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString20, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString21, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString22, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString23, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString24, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString25, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString26, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString27, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString28, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString29, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString30, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString31, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString32, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString33, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString34, MacGuiImpl::kStrPascal, 1 },
// SKIP_C(1),
// SKIP_P(4),
// SKIP_C(3),
// SKIP_P(2),
// SKIP_C(4),
// SKIP_P(1),
// SKIP_C(1),
// SKIP_P(5),
};
static const MacGuiImpl::MacSTRSParsingEntry strsLoomTable[] = {
SKIP_C(6),
SKIP_P(2),
SKIP_C(2),
SKIP_P(1),
{ MacGuiImpl::kMSIAboutGameName, MacGuiImpl::kStrPascal, 1 },
SKIP_P(2),
{ MacGuiImpl::kMSIAreYouSureYouWantToRestart, MacGuiImpl::kStrC, 1 },
{ MacGuiImpl::kMSIAreYouSureYouWantToQuit, MacGuiImpl::kStrC, 1 },
{ MacGuiImpl::kMSIOpenGameFile, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSISaveGameFileAs, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIGameFile, MacGuiImpl::kStrPascal, 1 },
SKIP_C(2),
SKIP_P(1),
SKIP_C(67),
SKIP_P(1),
{ MacGuiImpl::kMSIAboutString1, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString2, MacGuiImpl::kStrC, 1 },
{ MacGuiImpl::kMSIAboutString3, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString4, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString5, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString6, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString7, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString8, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString9, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString10, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString11, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString12, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString13, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString14, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString15, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString16, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString17, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString18, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString19, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString20, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString21, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString22, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString23, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString24, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString25, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString26, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString27, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString28, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString29, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString30, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString31, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString32, MacGuiImpl::kStrPascal, 1 },
// SKIP_C(1),
// SKIP_P(4),
// SKIP_C(3),
// SKIP_P(2),
// SKIP_C(4),
// SKIP_P(1),
// SKIP_C(1),
// SKIP_P(5),
// SKIP_C(7),
};
static const MacGuiImpl::MacSTRSParsingEntry strsMI1Table[] = {
SKIP_C(93),
SKIP_P(1),
{ MacGuiImpl::kMSIAboutGameName, MacGuiImpl::kStrPascal, 1 },
SKIP_C(1),
{ MacGuiImpl::kMSIAreYouSureYouWantToQuit, MacGuiImpl::kStrC, 1 },
{ MacGuiImpl::kMSIAreYouSureYouWantToRestart, MacGuiImpl::kStrC, 1 },
SKIP_C(1),
SKIP_P(1),
{ MacGuiImpl::kMSIGameName, MacGuiImpl::kStrPascal, 1 },
SKIP_C(1),
{ MacGuiImpl::kMSIOpenGameFile, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSISaveGameFileAs, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIGameFile, MacGuiImpl::kStrPascal, 1 },
SKIP_C(6),
SKIP_P(2),
{ MacGuiImpl::kMSIAboutString1, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString2, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString3, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString4, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString5, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString6, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString7, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString8, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString9, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString10, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString11, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString12, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString13, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString14, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString15, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString16, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString17, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString18, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString19, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString20, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString21, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString22, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString23, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString24, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString25, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString26, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString27, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString28, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString29, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString30, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString31, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString32, MacGuiImpl::kStrPascal, 1 },
// SKIP_C(75)
};
static const MacGuiImpl::MacSTRSParsingEntry strsMI2Variant1Table[] = {
SKIP_C(93),
SKIP_P(1),
{ MacGuiImpl::kMSIAboutGameName, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAreYouSureYouWantToQuit, MacGuiImpl::kStrC, 1 },
{ MacGuiImpl::kMSIRoughCommandMsg, MacGuiImpl::kStrC, 1 },
SKIP_C(1),
{ MacGuiImpl::kMSIAreYouSureYouWantToRestart, MacGuiImpl::kStrC, 1 },
SKIP_C(1),
SKIP_P(1),
{ MacGuiImpl::kMSIGameName, MacGuiImpl::kStrPascal, 1 },
SKIP_C(1),
{ MacGuiImpl::kMSIOpenGameFile, MacGuiImpl::kStrPascal, 1 },
SKIP_P(1),
SKIP_P(1),
{ MacGuiImpl::kMSISaveGameFileAs, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIGameFile, MacGuiImpl::kStrPascal, 1 },
SKIP_C(6),
SKIP_P(2),
{ MacGuiImpl::kMSIAboutString1, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString2, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString3, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString4, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString5, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString6, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString7, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString8, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString9, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString10, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString11, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString12, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString13, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString14, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString15, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString16, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString17, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString18, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString19, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString20, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString21, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString22, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString23, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString24, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString25, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString26, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString27, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString28, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString29, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString30, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString31, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString32, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString33, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString34, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString35, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString36, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString37, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString38, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString39, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString40, MacGuiImpl::kStrPascal, 1 },
// SKIP_C(95)
};
static const MacGuiImpl::MacSTRSParsingEntry strsMI2Variant2Table[] = {
SKIP_C(93),
SKIP_P(1),
{ MacGuiImpl::kMSIAboutGameName, MacGuiImpl::kStrPascal, 1 },
SKIP_C(2),
{ MacGuiImpl::kMSIAreYouSureYouWantToQuit, MacGuiImpl::kStrC, 1 },
{ MacGuiImpl::kMSIRoughCommandMsg, MacGuiImpl::kStrC, 1 },
SKIP_C(1),
{ MacGuiImpl::kMSIAreYouSureYouWantToRestart, MacGuiImpl::kStrC, 1 },
SKIP_C(1),
SKIP_P(1),
{ MacGuiImpl::kMSIGameName, MacGuiImpl::kStrPascal, 1 },
SKIP_C(1),
{ MacGuiImpl::kMSIOpenGameFile, MacGuiImpl::kStrPascal, 1 },
SKIP_P(1),
SKIP_P(1),
{ MacGuiImpl::kMSISaveGameFileAs, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIGameFile, MacGuiImpl::kStrPascal, 1 },
SKIP_C(6),
SKIP_P(2),
{ MacGuiImpl::kMSIAboutString1, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString2, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString3, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString4, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString5, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString6, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString7, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString8, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString9, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString10, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString11, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString12, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString13, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString14, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString15, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString16, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString17, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString18, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString19, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString20, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString21, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString22, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString23, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString24, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString25, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString26, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString27, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString28, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString29, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString30, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString31, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString32, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString33, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString34, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString35, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString36, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString37, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString38, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString39, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString40, MacGuiImpl::kStrPascal, 1 },
// SKIP_C(95)
};
static const MacGuiImpl::MacSTRSParsingEntry strsIndy4CDVariant1Table[] = {
SKIP_C(144),
SKIP_P(1),
SKIP_C(2),
SKIP_P(10),
SKIP_C(51),
SKIP_P(1),
{ MacGuiImpl::kMSIAboutGameName, MacGuiImpl::kStrPascal, 1 },
SKIP_P(2),
{ MacGuiImpl::kMSIAreYouSureYouWantToQuit, MacGuiImpl::kStrC, 1 },
{ MacGuiImpl::kMSIRoughCommandMsg, MacGuiImpl::kStrC, 1 },
SKIP_C(1),
{ MacGuiImpl::kMSIAreYouSureYouWantToRestart, MacGuiImpl::kStrC, 1 },
SKIP_C(1),
SKIP_P(1),
{ MacGuiImpl::kMSIGameName, MacGuiImpl::kStrPascal, 1 },
SKIP_C(1),
{ MacGuiImpl::kMSIOpenGameFile, MacGuiImpl::kStrPascal, 1 },
SKIP_P(1),
SKIP_P(1),
SKIP_P(1),
SKIP_P(1),
{ MacGuiImpl::kMSISaveGameFileAs, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIGameFile, MacGuiImpl::kStrPascal, 1 },
SKIP_C(6),
SKIP_P(2),
{ MacGuiImpl::kMSIAboutString1, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString2, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString3, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString4, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString5, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString6, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString7, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString8, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString9, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString10, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString11, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString12, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString13, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString14, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString15, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString16, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString17, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString18, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString19, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString20, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString21, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString22, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString23, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString24, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString25, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString26, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString27, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString28, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString29, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString30, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString31, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString32, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString33, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString34, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString35, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString36, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString37, MacGuiImpl::kStrPascal, 1 },
};
static const MacGuiImpl::MacSTRSParsingEntry strsIndy4CDVariant2Table[] = {
SKIP_C(97),
SKIP_P(1),
{ MacGuiImpl::kMSIAboutGameName, MacGuiImpl::kStrPascal, 1 },
SKIP_P(2),
{ MacGuiImpl::kMSIAreYouSureYouWantToQuit, MacGuiImpl::kStrC, 1 },
{ MacGuiImpl::kMSIRoughCommandMsg, MacGuiImpl::kStrC, 1 },
SKIP_C(1),
{ MacGuiImpl::kMSIAreYouSureYouWantToRestart, MacGuiImpl::kStrC, 1 },
SKIP_C(1),
SKIP_P(1),
{ MacGuiImpl::kMSIGameName, MacGuiImpl::kStrPascal, 1 },
SKIP_C(1),
{ MacGuiImpl::kMSIOpenGameFile, MacGuiImpl::kStrPascal, 1 },
SKIP_P(1),
SKIP_P(1),
SKIP_P(1),
SKIP_P(1),
{ MacGuiImpl::kMSISaveGameFileAs, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIGameFile, MacGuiImpl::kStrPascal, 1 },
SKIP_C(6),
SKIP_P(2),
{ MacGuiImpl::kMSIAboutString1, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString2, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString3, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString4, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString5, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString6, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString7, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString8, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString9, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString10, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString11, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString12, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString13, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString14, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString15, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString16, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString17, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString18, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString19, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString20, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString21, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString22, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString23, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString24, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString25, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString26, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString27, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString28, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString29, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString30, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString31, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString32, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString33, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString34, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString35, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString36, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString37, MacGuiImpl::kStrPascal, 1 },
};
static const MacGuiImpl::MacSTRSParsingEntry strsIndy4FloppyVariant1Table[] = {
SKIP_C(93),
SKIP_P(1),
{ MacGuiImpl::kMSIAboutGameName, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAreYouSureYouWantToQuit, MacGuiImpl::kStrC, 1 },
{ MacGuiImpl::kMSIRoughCommandMsg, MacGuiImpl::kStrC, 1 },
SKIP_C(1),
{ MacGuiImpl::kMSIAreYouSureYouWantToRestart, MacGuiImpl::kStrC, 1 },
SKIP_C(1),
SKIP_P(1),
{ MacGuiImpl::kMSIGameName, MacGuiImpl::kStrPascal, 1 },
SKIP_C(1),
{ MacGuiImpl::kMSIOpenGameFile, MacGuiImpl::kStrPascal, 1 },
SKIP_P(1),
SKIP_P(1),
SKIP_P(1),
SKIP_P(1),
{ MacGuiImpl::kMSISaveGameFileAs, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIGameFile, MacGuiImpl::kStrPascal, 1 },
SKIP_C(6),
SKIP_P(2),
{ MacGuiImpl::kMSIAboutString1, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString2, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString3, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString4, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString5, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString6, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString7, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString8, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString9, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString10, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString11, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString12, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString13, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString14, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString15, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString16, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString17, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString18, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString19, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString20, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString21, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString22, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString23, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString38, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString24, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString25, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString26, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString27, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString28, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString29, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString30, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString31, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString32, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString33, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString34, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString35, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString36, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString37, MacGuiImpl::kStrPascal, 1 },
};
static const MacGuiImpl::MacSTRSParsingEntry strsIndy4FloppyVariant2Table[] = {
SKIP_C(93),
SKIP_P(1),
{ MacGuiImpl::kMSIAboutGameName, MacGuiImpl::kStrPascal, 1 },
SKIP_P(2),
{ MacGuiImpl::kMSIAreYouSureYouWantToQuit, MacGuiImpl::kStrC, 1 },
{ MacGuiImpl::kMSIRoughCommandMsg, MacGuiImpl::kStrC, 1 },
SKIP_C(1),
{ MacGuiImpl::kMSIAreYouSureYouWantToRestart, MacGuiImpl::kStrC, 1 },
SKIP_C(1),
SKIP_P(1),
{ MacGuiImpl::kMSIGameName, MacGuiImpl::kStrPascal, 1 },
SKIP_C(1),
{ MacGuiImpl::kMSIOpenGameFile, MacGuiImpl::kStrPascal, 1 },
SKIP_P(1),
SKIP_P(1),
SKIP_P(1),
SKIP_P(1),
{ MacGuiImpl::kMSISaveGameFileAs, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIGameFile, MacGuiImpl::kStrPascal, 1 },
SKIP_C(6),
SKIP_P(2),
{ MacGuiImpl::kMSIAboutString1, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString2, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString3, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString4, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString5, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString6, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString7, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString8, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString9, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString10, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString11, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString12, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString13, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString14, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString15, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString16, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString17, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString18, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString19, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString20, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString21, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString22, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString23, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString38, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString24, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString25, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString26, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString27, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString28, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString29, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString30, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString31, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString32, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString33, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString34, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString35, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString36, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString37, MacGuiImpl::kStrPascal, 1 },
};
static const MacGuiImpl::MacSTRSParsingEntry strsIndy4DemoTable[] = {
SKIP_C(98),
SKIP_P(1),
{ MacGuiImpl::kMSIAboutGameName, MacGuiImpl::kStrPascal, 1 },
SKIP_C(1),
{ MacGuiImpl::kMSIAreYouSureYouWantToQuit, MacGuiImpl::kStrC, 1 },
{ MacGuiImpl::kMSIAreYouSureYouWantToRestart, MacGuiImpl::kStrC, 1 },
SKIP_C(1),
SKIP_P(1),
{ MacGuiImpl::kMSIGameName, MacGuiImpl::kStrPascal, 1 },
SKIP_C(9),
{ MacGuiImpl::kMSIAboutString1, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString2, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString3, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString4, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString5, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString6, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString7, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString8, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString9, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString10, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString11, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString12, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString13, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString14, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString15, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString16, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString17, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString18, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString19, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString20, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString21, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString22, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString23, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString24, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString25, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString26, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString27, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString29, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString30, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString31, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString32, MacGuiImpl::kStrPascal, 1 },
{ MacGuiImpl::kMSIAboutString33, MacGuiImpl::kStrPascal, 1 },
};
#undef SKIP_C
#undef SKIP_P
bool MacGuiImpl::readStrings() {
if (_vm->_game.version >= 6 || _vm->_game.id == GID_MANIAC) {
_strsStrings.clear();
_strsStrings.reserve(128);
for (int i = 0; i < 128; i++) {
_strsStrings.emplace_back("");
}
return true;
}
Common::MacResManager resource;
resource.open(_resourceFile);
uint32 strsLen = resource.getResLength(MKTAG('S', 'T', 'R', 'S'), 0);
if (strsLen <= 0)
return false;
Common::SeekableReadStream *strsStream = resource.getResource(MKTAG('S', 'T', 'R', 'S'), 0);
uint8 *strsBlock = (uint8 *)malloc(strsLen);
strsStream->read(strsBlock, strsLen);
uint8 *strsData = strsBlock;
const MacSTRSParsingEntry *parsingTable = nullptr;
int parsingTableSize = 0;
if (_vm->_game.id == GID_INDY3) {
switch (strsLen) {
case 2950:
// 1.7 8/17/90
parsingTable = strsIndy3Table;
parsingTableSize = ARRAYSIZE(strsIndy3Table);
break;
}
} else if (_vm->_game.id == GID_LOOM) {
switch (strsLen) {
case 3184:
// 1.2 25-JAN-91
parsingTable = strsLoomTable;
parsingTableSize = ARRAYSIZE(strsLoomTable);
break;
}
} else if (_vm->_game.id == GID_MONKEY) {
switch (strsLen) {
case 5986:
// version 2.4
parsingTable = strsMI1Table;
parsingTableSize = ARRAYSIZE(strsMI1Table);
break;
}
} else if (_vm->_game.id == GID_MONKEY2) {
switch (strsLen) {
case 6574:
parsingTable = strsMI2Variant1Table;
parsingTableSize = ARRAYSIZE(strsMI2Variant1Table);
break;
case 6602:
// v1.0 11/5/92 from the LucasArts Mac CD Game Pack II
parsingTable = strsMI2Variant2Table;
parsingTableSize = ARRAYSIZE(strsMI2Variant2Table);
break;
}
} else if (_vm->_game.id == GID_INDY4) {
switch (strsLen) {
case 6516:
parsingTable = strsIndy4FloppyVariant1Table;
parsingTableSize = ARRAYSIZE(strsIndy4FloppyVariant1Table);
break;
case 6612:
// V1.0 10-9-92 from the LucasArts Mac CD Game Pack II
parsingTable = strsIndy4FloppyVariant2Table;
parsingTableSize = ARRAYSIZE(strsIndy4FloppyVariant2Table);
break;
case 6836: // CD
// V1.0 10-9-92
parsingTable = strsIndy4CDVariant1Table;
parsingTableSize = ARRAYSIZE(strsIndy4CDVariant1Table);
break;
case 6772: // CD
// fate_v1.5
parsingTable = strsIndy4CDVariant2Table;
parsingTableSize = ARRAYSIZE(strsIndy4CDVariant2Table);
break;
case 6312: // Demo
parsingTable = strsIndy4DemoTable;
parsingTableSize = ARRAYSIZE(strsIndy4DemoTable);
break;
}
}
if (parsingTable)
parseSTRSBlock(strsData, parsingTable, parsingTableSize);
else
warning("MacGuiImpl::readStrings(): String parsing table not defined for this variant of the game; STRS resource %d bytes", strsLen);
free(strsBlock);
delete strsStream;
return parsingTable != nullptr;
}
void MacGuiImpl::parseSTRSBlock(uint8 *strsData, const MacSTRSParsingEntry *parsingTable, int parsingTableSize) {
_strsStrings.clear();
_strsStrings.reserve(128);
for (int i = 0; i < 128; i++) {
_strsStrings.emplace_back("");
}
for (int i = 0; i < parsingTableSize; i++) {
MacSTRSParsingEntry entry = parsingTable[i];
if (entry.strId == kMSISkip) {
for (int j = 0; j < entry.numStrings; j++) {
entry.parsingMethod == MacGuiImpl::kStrC ? readCString(strsData) : readPascalString(strsData);
}
} else {
for (int j = 0; j < entry.numStrings; j++) {
if (entry.parsingMethod == MacGuiImpl::kStrC) {
_strsStrings[entry.strId] = readCString(strsData);
} else if (entry.parsingMethod == MacGuiImpl::kStrPascal) {
_strsStrings[entry.strId] = readPascalString(strsData);
} else {
error("MacGuiImpl::parseSTRSBlock(): invalid parsing method encountered (%d)", entry.parsingMethod);
}
}
}
}
}
} // End of namespace Scumm