/** ** Set message to display. ** ** @param fmt To be displayed in text overlay. */ void SetMessage(const char *fmt, ...) { char temp[512]; va_list va; va_start(va, fmt); vsnprintf(temp, sizeof(temp) - 1, fmt, va); temp[sizeof(temp) - 1] = '\0'; va_end(va); allmessages.AddUniqueMessage(temp); }
/** ** Set message to display. ** ** @param pos Message pos map origin. ** @param fmt To be displayed in text overlay. ** ** @note FIXME: vladi: I know this can be just separated func w/o msg but ** it is handy to stick all in one call, someone? */ void SetMessageEvent(const Vec2i &pos, const char *fmt, ...) { Assert(Map.Info.IsPointOnMap(pos)); char temp[256]; va_list va; va_start(va, fmt); vsnprintf(temp, sizeof(temp) - 1, fmt, va); temp[sizeof(temp) - 1] = '\0'; va_end(va); allmessages.AddUniqueMessage(temp); if (MessagesEventCount == MESSAGES_MAX) { ShiftMessagesEvent(); } strcpy_s(MessagesEvent[MessagesEventCount], sizeof(MessagesEvent[MessagesEventCount]), temp); MessagesEventPos[MessagesEventCount] = pos; MessagesEventIndex = MessagesEventCount; ++MessagesEventCount; }
/** ** Set message to display. ** ** @param x Message X map origin. ** @param y Message Y map origin. ** @param fmt To be displayed in text overlay. */ void SetMessageEvent(int x, int y, const char *fmt, ...) { char temp[128]; va_list va; va_start(va, fmt); vsnprintf(temp, sizeof(temp) - 1, fmt, va); temp[sizeof(temp) - 1] = '\0'; va_end(va); allmessages.AddUniqueMessage(temp); if (MessagesEventCount == MESSAGES_MAX) { ShiftMessagesEvent(); } if (x != -1) { strcpy_s(MessagesEvent[MessagesEventCount], sizeof(MessagesEvent[MessagesEventCount]), temp); MessagesEventX[MessagesEventCount] = x; MessagesEventY[MessagesEventCount] = y; MessagesEventIndex = MessagesEventCount; ++MessagesEventCount; } }