Add initial support for KQ6 Mac. Wrapper functions for read/writing to pointers are now used (found in util.*) for code that has different endianness in SCI1.1+ Mac games. Add support for Mac 'snd ' and 'CURS' resources. QFG1 Mac is not yet playable due to script compression.
svn-id: r49070
This commit is contained in:
parent
0fe2ba6a0d
commit
3dda73d9a2
18 changed files with 404 additions and 180 deletions
|
@ -294,6 +294,19 @@ reg_t kMemory(EngineState *s, int argc, reg_t *argv) {
|
|||
return s->r_acc;
|
||||
}
|
||||
|
||||
// kIconBar is really a subop of kPlatform for SCI1.1 Mac
|
||||
reg_t kIconBar(EngineState *s, int argc, reg_t *argv) {
|
||||
// TODO...
|
||||
|
||||
if (argv[0].toUint16() == 4 && argv[1].toUint16() == 0)
|
||||
for (int i = 0; i < argv[2].toUint16(); i++)
|
||||
warning("kIconBar: Icon Object %d = %04x:%04x", i, PRINT_REG(argv[i + 3]));
|
||||
|
||||
// Other calls seem to handle selecting/deselecting them
|
||||
|
||||
return NULL_REG;
|
||||
}
|
||||
|
||||
enum kSciPlatforms {
|
||||
kSciPlatformDOS = 1,
|
||||
kSciPlatformWindows = 2
|
||||
|
@ -337,6 +350,9 @@ reg_t kPlatform(EngineState *s, int argc, reg_t *argv) {
|
|||
warning("STUB: kPlatform(CDCheck)");
|
||||
break;
|
||||
case kPlatformUnk0:
|
||||
if (g_sci->getPlatform() == Common::kPlatformMacintosh && getSciVersion() == SCI_VERSION_1_1)
|
||||
return kIconBar(s, argc - 1, argv + 1);
|
||||
// Otherwise, fall through
|
||||
case kPlatformGetPlatform:
|
||||
return make_reg(0, (isWindows) ? kSciPlatformWindows : kSciPlatformDOS);
|
||||
case kPlatformUnk5:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue