[Scummvm-cvs-logs] SF.net SVN: scummvm:[54794] scummvm/trunk/engines/mohawk
fuzzie at users.sourceforge.net
fuzzie at users.sourceforge.net
Sun Dec 5 23:58:13 CET 2010
Revision: 54794
http://scummvm.svn.sourceforge.net/scummvm/?rev=54794&view=rev
Author: fuzzie
Date: 2010-12-05 22:58:13 +0000 (Sun, 05 Dec 2010)
Log Message:
-----------
MOHAWK: implement kLBNotifyChangeMode
Modified Paths:
--------------
scummvm/trunk/engines/mohawk/livingbooks.cpp
scummvm/trunk/engines/mohawk/livingbooks.h
Modified: scummvm/trunk/engines/mohawk/livingbooks.cpp
===================================================================
--- scummvm/trunk/engines/mohawk/livingbooks.cpp 2010-12-05 22:11:07 UTC (rev 54793)
+++ scummvm/trunk/engines/mohawk/livingbooks.cpp 2010-12-05 22:58:13 UTC (rev 54794)
@@ -1041,8 +1041,10 @@
debug(2, "kLBNotifyChangeMode: %d", event.param);
quitGame();
} else {
- // FIXME
- warning("ignoring V2/V3 kLBNotifyChangeMode");
+ // TODO: what is entry.newUnknown?
+ if (!loadPage((LBMode)event.newMode, event.newPage, event.newSubpage))
+ error("kLBNotifyChangeMode failed to move to mode %d, page %d.%d",
+ event.newMode, event.newPage, event.newSubpage);
}
break;
@@ -2050,7 +2052,14 @@
if (entry->opcode == kLBNotifyGUIAction)
_vm->addNotifyEvent(NotifyEvent(entry->opcode, _itemId));
- else
+ else if (entry->opcode == kLBNotifyChangeMode && _vm->getGameType() != GType_LIVINGBOOKSV1) {
+ NotifyEvent event(entry->opcode, entry->param);
+ event.newUnknown = entry->newUnknown;
+ event.newMode = entry->newMode;
+ event.newPage = entry->newPage;
+ event.newSubpage = entry->newSubpage;
+ _vm->addNotifyEvent(event);
+ } else
_vm->addNotifyEvent(NotifyEvent(entry->opcode, entry->param));
} else {
if (entry->param != 0xffff) {
Modified: scummvm/trunk/engines/mohawk/livingbooks.h
===================================================================
--- scummvm/trunk/engines/mohawk/livingbooks.h 2010-12-05 22:11:07 UTC (rev 54793)
+++ scummvm/trunk/engines/mohawk/livingbooks.h 2010-12-05 22:58:13 UTC (rev 54794)
@@ -450,6 +450,12 @@
NotifyEvent(uint t, uint p) : type(t), param(p) { }
uint type;
uint param;
+
+ // kLBNotifyChangeMode
+ uint16 newUnknown;
+ uint16 newMode;
+ uint16 newPage;
+ uint16 newSubpage;
};
enum DelayedEventType {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list