summaryrefslogtreecommitdiffstats
path: root/src/render/Console.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/render/Console.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/render/Console.cpp b/src/render/Console.cpp
new file mode 100644
index 00000000..b4a10e54
--- /dev/null
+++ b/src/render/Console.cpp
@@ -0,0 +1,43 @@
+#include "Console.h"
+
+#include "Font.h"
+#include "Timer.h"
+
+#define CONSOLE_MESSAGE_SHOW_TIME 20000
+#define CONSOLE_MESSAGE_HEIGHT 12.0f
+#define CONSOLE_MESSAGE_X_OFFSET 30.0f
+#define CONSOLE_MESSAGE_Y_OFFSET 10.0f
+#define CONSOLE_MESSAGE_X_SHADOW_OFFSET 1.0f
+#define CONSOLE_MESSAGE_Y_SHADOW_OFFSET 1.0f
+
+CConsole& TheConsole = *(CConsole*)0x8F6498;
+
+void CConsole::Display()
+{
+ CFont::SetPropOn();
+ CFont::SetBackgroundOff();
+ CFont::SetScale(0.6f, 0.6f);
+ CFont::SetCentreOff();
+ CFont::SetRightJustifyOff();
+ CFont::SetBackGroundOnlyTextOff();
+ CFont::SetFontStyle(0);
+ CFont::SetPropOff();
+ CFont::SetWrapx(RsGlobal.width);
+ while (m_nActiveMessages != 0 && CTimer::GetTimeInMilliseconds() - m_anTimeStart[m_nCurrentMessage] > CONSOLE_MESSAGE_SHOW_TIME) {
+ m_nActiveMessages--;
+ m_nCurrentMessage = (m_nCurrentMessage + 1) % NUM_CONSOLEMESSAGES;
+ }
+ for (int i = 0; i < m_nActiveMessages; i++) {
+ int actualIndex = (i + m_nCurrentMessage) % NUM_CONSOLEMESSAGES;
+ CFont::SetColor(CRGBA(0, 0, 0, 200));
+ CFont::PrintString(
+ CONSOLE_MESSAGE_X_OFFSET + CONSOLE_MESSAGE_X_SHADOW_OFFSET,
+ CONSOLE_MESSAGE_Y_OFFSET + CONSOLE_MESSAGE_Y_SHADOW_OFFSET + i * CONSOLE_MESSAGE_HEIGHT,
+ m_asMessages[actualIndex]);
+ CFont::SetColor(CRGBA(m_anColourRed[actualIndex], m_anColourGreen[actualIndex], m_anColourBlue[actualIndex], 200));
+ CFont::PrintString(
+ CONSOLE_MESSAGE_X_OFFSET,
+ CONSOLE_MESSAGE_Y_OFFSET + i * CONSOLE_MESSAGE_HEIGHT,
+ m_asMessages[actualIndex]);
+ }
+} \ No newline at end of file