diff options
author | johndoe123 | 2011-07-13 18:38:40 +0000 |
---|---|---|
committer | Willem Jan Palenstijn | 2013-05-08 20:38:47 +0200 |
commit | 436f8952bbd168c53481bd19f9d79372dd0561c9 (patch) | |
tree | 94147d8897b9c2706ca848d038b89eaec20726d1 /engines/neverhood/entity.h | |
parent | b611b65bf42a3f2d710199fa69428ec1012a0108 (diff) | |
download | scummvm-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.h | 11 |
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 ¶m, 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 ¶m, 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 ¶m, 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 |