diff options
author | johndoe123 | 2011-07-09 18:45:51 +0000 |
---|---|---|
committer | Willem Jan Palenstijn | 2013-05-08 20:38:46 +0200 |
commit | 222cd4a6513770914d09630d1001a8159ba3d0f9 (patch) | |
tree | f8c9e71c549c9a9c6e41073d9b9d3c6c8729848a /engines/neverhood/scene.cpp | |
parent | 5c69ae21ddf535f862585a4fa5892a9a1146618f (diff) | |
download | scummvm-rg350-222cd4a6513770914d09630d1001a8159ba3d0f9.tar.gz scummvm-rg350-222cd4a6513770914d09630d1001a8159ba3d0f9.tar.bz2 scummvm-rg350-222cd4a6513770914d09630d1001a8159ba3d0f9.zip |
NEVERHOOD: More work on Scene1001 and Klayman
- Fix a bug in Klayman's walking
- The lever can now be used
- Other stuff is still missing
- Remove entity.cpp since it's not needed
Diffstat (limited to 'engines/neverhood/scene.cpp')
-rw-r--r-- | engines/neverhood/scene.cpp | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/engines/neverhood/scene.cpp b/engines/neverhood/scene.cpp index 9d7d550c2d..9e1f06bf0f 100644 --- a/engines/neverhood/scene.cpp +++ b/engines/neverhood/scene.cpp @@ -180,13 +180,13 @@ void Scene::update() { if (_smkFileHash != 0) { // TODO //**** ALL TODO - //_smackerPlayer = new SmackerPlayer(this, _smkFileHash, true, 0); + _smackerPlayer = new SmackerPlayer(_vm, this, _smkFileHash, true, 0); _savedUpdateHandlerCb = _updateHandlerCb; _savedMessageHandlerCb = _messageHandlerCb; SetUpdateHandler(&Scene::smackerUpdate); SetMessageHandler(&Scene::smackerHandleMessage); _smackerDone = false; - // smackerUpdate(); + smackerUpdate(); // g_screen->smackerPlayer = _smackerPlayer; _smkFileHash = 0; } else { @@ -219,7 +219,6 @@ void Scene::update() { } uint32 Scene::handleMessage(int messageNum, const MessageParam ¶m, Entity *sender) { - // TODO switch (messageNum) { case 0: // mouse moved #if 0 @@ -348,9 +347,8 @@ bool Scene::queryPositionRectList(int16 mouseX, int16 mouseY) { } } } - return true; } - return false; + return true; } void Scene::setMessageList(uint32 id, bool messageListFlag, bool systemCallbackFlag) { @@ -358,6 +356,7 @@ void Scene::setMessageList(uint32 id, bool messageListFlag, bool systemCallbackF } void Scene::setMessageList(MessageList *messageList, bool messageListFlag, bool systemCallbackFlag) { + debug("Scene::setMessageList(%p)", (void*)messageList); _messageList = messageList; _messageListCount = _messageList ? _messageList->size() : 0; _messageListIndex = 0; @@ -366,6 +365,13 @@ void Scene::setMessageList(MessageList *messageList, bool messageListFlag, bool _systemCallbackFlag = systemCallbackFlag; _messageListStatus = 1; _klayman->sendMessage(0x101C, 0, this); + + // DEBUG: Show message list + for (uint i = 0; i < messageList->size(); i++) { + debug("%02d: %04X, %08X", i, (*messageList)[i].messageNum, (*messageList)[i].messageValue); + } + debug("================================================================"); + } bool Scene::setMessageList2(uint32 id, bool messageListFlag, bool systemCallbackFlag) { @@ -404,24 +410,19 @@ bool Scene::setMessageList2(MessageList *messageList, bool messageListFlag, bool } _messageList2 = messageList; setMessageList(messageList, messageListFlag, systemCallbackFlag); + result = true; } return result; } void Scene::runMessageList() { + debug("Scene::runMessageList() _messageListFlag2 = %d; _messageListFlag1 = %d", _messageListFlag2, _messageListFlag1); - //debug("_messageListFlag2 = %d", _messageListFlag2); - - if (_messageListFlag2) + if (_messageListFlag2 || _messageListFlag1) return; _messageListFlag2 = true; - if (_messageListFlag1) { - _messageListFlag2 = false; - return; - } - if (!_messageList) { _messageList2 = NULL; _messageListStatus = 0; @@ -433,7 +434,7 @@ void Scene::runMessageList() { int messageNum = (*_messageList)[_messageListIndex].messageNum; uint32 messageParam = (*_messageList)[_messageListIndex].messageValue; - debug("$$$$$$$$$$$ Scene::runMessageList() %04X, %08X", messageNum, messageParam); + //debug("Scene::runMessageList() %04X, %08X", messageNum, messageParam); _messageListIndex++; if (_messageListIndex == _messageListCount) { |