1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #include "ChatMessage.h"
- #include "Globals.h"
- ChatMessage::ChatMessage(char* data)
- : TextFeld(),
- lastWidth(0)
- {
- setStyle(Style::VCenter | Style::Sichtbar | Style::Mehrzeilig | Style::AutoLineBreak);
- setSchriftZ(dynamic_cast<Schrift*>(uiFactory.initParam.schrift->getThis()));
- setSchriftSize(12);
- setAutoLineBreakSpacing(" ");
-
- __int64 time = *(__int64*)data;
- short mLen = *(short*)(data + 8);
- char* message = new char[mLen + 1];
- memcpy(message, data + 10, mLen);
- message[mLen] = 0;
- char channelLen = *(data + 10 + mLen);
- char* channel = new char[channelLen + 1];
- memcpy(channel, data + 11 + mLen, channelLen);
- channel[channelLen] = 0;
- Framework::Text channelT = channel;
- delete[] channel;
- Zeit converter(time);
- Text* timeT = converter.getZeit("d.m.y h:i:s");
-
- setSchriftFarbe(0xFFFFFFFF);
- if (channelT.istGleich("system:INFO"))
- {
- setSchriftFarbe(0xFFA0A0A0);
- channelT = "[INFO]";
- }
- else if (channelT.istGleich("system:WARNING"))
- {
- setSchriftFarbe(0xFFFF7700);
- channelT = "[WARNING]";
- }
- else if (channelT.istGleich("system:ERROR"))
- {
- setSchriftFarbe(0xFFFF0000);
- channelT = "[ERROR]";
- }
- else if (channelT.hatAt(0, "player:"))
- {
- Text* tmp = channelT.getTeilText(7);
- channelT = *tmp;
- tmp->release();
- }
- Text tmp = *timeT + " " + channelT + " " + message;
- tmp.ersetzen("\n", "\n ");
- setText(tmp);
- timeT->release();
- delete[] message;
- }
- bool ChatMessage::tick(double tickVal)
- {
- if (getBreite() != lastWidth)
- {
- lastWidth = getBreite();
- setHeight(getNeededHeight());
- }
- return ZeichnungHintergrund::tick(tickVal);
- }
|