aboutsummaryrefslogtreecommitdiff
path: root/engines/neverhood/entity.h
diff options
context:
space:
mode:
authorjohndoe1232011-07-13 18:38:40 +0000
committerWillem Jan Palenstijn2013-05-08 20:38:47 +0200
commit436f8952bbd168c53481bd19f9d79372dd0561c9 (patch)
tree94147d8897b9c2706ca848d038b89eaec20726d1 /engines/neverhood/entity.h
parentb611b65bf42a3f2d710199fa69428ec1012a0108 (diff)
downloadscummvm-rg350-436f8952bbd168c53481bd19f9d79372dd0561c9.tar.gz
scummvm-rg350-436f8952bbd168c53481bd19f9d79372dd0561c9.tar.bz2
scummvm-rg350-436f8952bbd168c53481bd19f9d79372dd0561c9.zip
NEVERHOOD: More work on Scene1002, Klayman and the rest
- Add "heavy debug" output to Entity (display which update/message handler is called) - Also add more debug output - Error out when a StaticData resource could not be found
Diffstat (limited to 'engines/neverhood/entity.h')
-rw-r--r--engines/neverhood/entity.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/engines/neverhood/entity.h b/engines/neverhood/entity.h
index 7538b36ce2..18c6b7e7b9 100644
--- a/engines/neverhood/entity.h
+++ b/engines/neverhood/entity.h
@@ -23,6 +23,7 @@
#ifndef NEVERHOOD_ENTITY_H
#define NEVERHOOD_ENTITY_H
+#include "common/str.h"
#include "neverhood/neverhood.h"
#include "neverhood/gamevars.h"
#include "neverhood/graphics.h"
@@ -71,12 +72,16 @@ protected:
// TODO: Constructors for the param types...
};
-#define SetUpdateHandler(handler) _updateHandlerCb = static_cast <void (Entity::*)(void)> (handler)
-#define SetMessageHandler(handler) _messageHandlerCb = static_cast <uint32 (Entity::*)(int messageNum, const MessageParam &param, Entity *sender)> (handler)
+// TODO: Disable heavy debug stuff in release mode
+
+#define SetUpdateHandler(handler) _updateHandlerCb = static_cast <void (Entity::*)(void)> (handler); debug("SetUpdateHandler(" #handler ")"); _updateHandlerCbName = #handler
+#define SetMessageHandler(handler) _messageHandlerCb = static_cast <uint32 (Entity::*)(int messageNum, const MessageParam &param, Entity *sender)> (handler); debug("SetMessageHandler(" #handler ")"); _messageHandlerCbName = #handler
class Entity {
public:
Common::String _name; // Entity name for debugging purposes
+ Common::String _updateHandlerCbName;
+ Common::String _messageHandlerCbName;
Entity(NeverhoodEngine *vm, int priority)
: _vm(vm), _updateHandlerCb(NULL), _messageHandlerCb(NULL), _priority(priority), _name("Entity") {
}
@@ -86,11 +91,13 @@ public:
}
void handleUpdate() {
//debug("Entity(%s).handleUpdate", _name.c_str());
+ debug(2, "handleUpdate() -> [%s]", _updateHandlerCbName.c_str());
if (_updateHandlerCb)
(this->*_updateHandlerCb)();
}
bool hasMessageHandler() const { return _messageHandlerCb != NULL; }
uint32 sendMessage(int messageNum, const MessageParam &param, Entity *sender) {
+ debug(2, "sendMessage(%04X) -> [%s]", messageNum, _messageHandlerCbName.c_str());
return _messageHandlerCb ? (this->*_messageHandlerCb)(messageNum, param, sender) : 0;
}
// NOTE: These were overloaded before for the various message parameter types