# Crosshair alpha (opaqueness, between 0 and 255).
crosshair_alpha (Crosshair alpha) int 255 0 255
+# Maximum number of recent chat items to show
+recent_chat_size (Recent Chat Messages) int 6 3 99
+
# Whether node texture animations should be desynchronized per mapblock.
desynchronize_mapblock_texture_animation (Desynchronize block animation) bool true
return formatted_count - rows;
}
+void ChatBuffer::resize(u32 scrollback) {
+ m_scrollback = scrollback;
+ if (m_unformatted.size() > m_scrollback)
+ {
+ deleteOldest(m_unformatted.size() - m_scrollback);
+ }
+}
ChatPrompt::ChatPrompt(const std::wstring &prompt, u32 history_limit):
m_recent_buffer.clear();
}
+
+void ChatBackend::applySettings(Settings* settings) {
+ m_recent_buffer.resize(settings->getU32("recent_chat_size"));
+}
+
void ChatBackend::step(float dtime)
{
m_recent_buffer.step(dtime);
#include "irrlichttypes.h"
#include "util/enriched_string.h"
+#include "settings.h"
// Chat console related classes
u32 formatChatLine(const ChatLine& line, u32 cols,
std::vector<ChatFormattedLine>& destination) const;
+ void resize(u32 scrollback);
protected:
s32 getTopScrollPos() const;
s32 getBottomScrollPos() const;
void scrollPageDown();
void scrollPageUp();
+ // Resize recent buffer based on settings
+ void applySettings(Settings* settings);
+
private:
ChatBuffer m_console_buffer;
ChatBuffer m_recent_buffer;
settings->setDefault("node_highlighting", "box");
settings->setDefault("crosshair_color", "(255,255,255)");
settings->setDefault("crosshair_alpha", "255");
+ settings->setDefault("recent_chat_size", "6");
settings->setDefault("hud_scaling", "1.0");
settings->setDefault("gui_scaling", "1.0");
settings->setDefault("gui_scaling_filter", "false");
// Remove stale "recent" chat messages from previous connections
chat_backend->clearRecentChat();
+ // Make sure the size of the recent messages buffer is right
+ chat_backend->applySettings(g_settings);
+
// Chat backend and console
gui_chat_console = new GUIChatConsole(guienv, guienv->getRootGUIElement(),
-1, chat_backend, client, &g_menumgr);