- {
- // Get new messages from error log buffer
- while(!chat_log_error_buf.empty())
- {
- chat_backend.addMessage(L"", narrow_to_wide(
- chat_log_error_buf.get()));
- }
- // Get new messages from client
- std::wstring message;
- while(client.getChatMessage(message))
- {
- chat_backend.addUnparsedMessage(message);
- }
- // Remove old messages
- chat_backend.step(dtime);
-
- // Display all messages in a static text element
- u32 recent_chat_count = chat_backend.getRecentBuffer().getLineCount();
- std::wstring recent_chat = chat_backend.getRecentChat();
- guitext_chat->setText(recent_chat.c_str());
-
- // Update gui element size and position
- s32 chat_y = 5+(text_height+5);
- if(show_debug)
- chat_y += (text_height+5);
- core::rect<s32> rect(
- 10,
- chat_y,
- screensize.X - 10,
- chat_y + guitext_chat->getTextHeight()
- );
- guitext_chat->setRelativePosition(rect);
-
- // Don't show chat if disabled or empty or profiler is enabled
- guitext_chat->setVisible(show_chat && recent_chat_count != 0
- && !show_profiler);
- }
+ updateChat(client, dtime, show_debug, screensize, show_chat,
+ show_profiler, chat_backend, guitext_chat, font);