--- deliantra/server/include/player.h 2007/08/15 05:01:25 1.67 +++ deliantra/server/include/player.h 2007/08/16 11:34:29 1.69 @@ -203,6 +203,35 @@ MTH void set_observe (object *ob); + void send_msg (int color, const char *type, const char *msg) + { + ns->send_msg (color, type, msg); + } + + // a prominent box that can easily be escaped away or so + // should be used for informative output such as who, maps etc. + // will stay on-screen + void infobox (const char *msg, int color = NDI_BLACK) + { + send_msg (NDI_REPLY, LOG_CHANNEL, msg); + } + + // a prominent msg that signifies some important event, + // an improvement potion effect potion. should not be long. + // might time out after a while + void statusmsg (const char *msg, int color = NDI_BLACK) + { + send_msg (NDI_REPLY | color, INFO_CHANNEL, msg); + } + + // a prominent box that signifies some error such as a failed + // improvement potion. should not be long. + void failmsg (const char *msg, int color = NDI_RED) + { + play_sound (sound_find ("generic_failure")); + statusmsg (msg, color); + } + ~player (); private: @@ -218,3 +247,14 @@ for (unsigned _i = 0; _i < ::players.size (); ++_i) \ statementvar (player *, var, ::players [_i]) +inline void +object::statusmsg (const char *msg, int color) +{ + if (expect_true (contr)) contr->statusmsg (msg, color); +} + +inline void +object::failmsg (const char *msg, int color) +{ + if (expect_true (contr)) contr->failmsg (msg, color); +}