summaryrefslogtreecommitdiffstats
path: root/src/text
diff options
context:
space:
mode:
authorSergeanur <s.anureev@yandex.ua>2019-10-20 19:33:16 +0200
committerSergeanur <s.anureev@yandex.ua>2019-10-20 19:33:16 +0200
commit383f70d1e7fe838b193f77d8a11400457a92f4ee (patch)
tree48029fec01e093594632068d5b3c2162f3d0125d /src/text
parentCText encoding fixes (diff)
downloadre3-383f70d1e7fe838b193f77d8a11400457a92f4ee.tar
re3-383f70d1e7fe838b193f77d8a11400457a92f4ee.tar.gz
re3-383f70d1e7fe838b193f77d8a11400457a92f4ee.tar.bz2
re3-383f70d1e7fe838b193f77d8a11400457a92f4ee.tar.lz
re3-383f70d1e7fe838b193f77d8a11400457a92f4ee.tar.xz
re3-383f70d1e7fe838b193f77d8a11400457a92f4ee.tar.zst
re3-383f70d1e7fe838b193f77d8a11400457a92f4ee.zip
Diffstat (limited to 'src/text')
-rw-r--r--src/text/Messages.cpp26
-rw-r--r--src/text/Messages.h56
2 files changed, 82 insertions, 0 deletions
diff --git a/src/text/Messages.cpp b/src/text/Messages.cpp
new file mode 100644
index 00000000..9b5342ac
--- /dev/null
+++ b/src/text/Messages.cpp
@@ -0,0 +1,26 @@
+#include "common.h"
+#include "patcher.h"
+#include "Messages.h"
+
+WRAPPER void CMessages::Display(void) { EAXJMP(0x529800); }
+WRAPPER void CMessages::ClearAllMessagesDisplayedByGame(void) { EAXJMP(0x52B670); }
+WRAPPER int CMessages::WideStringCopy(wchar* dst, wchar* src, unsigned short size) { EAXJMP(0x5294B0); }
+WRAPPER char CMessages::WideStringCompare(wchar* str1, wchar* str2, unsigned short size) { EAXJMP(0x529510); }
+WRAPPER void CMessages::InsertNumberInString(wchar* src, int n1, int n2, int n3, int n4, int n5, int n6, wchar* dst) { EAXJMP(0x52A1A0); }
+WRAPPER void CMessages::InsertPlayerControlKeysInString(wchar* src) { EAXJMP(0x52A490); }
+WRAPPER int CMessages::GetWideStringLength(wchar* src) { EAXJMP(0x529490); }
+WRAPPER void CMessages::AddBigMessage(wchar* key, uint32 time, uint16 pos) { EAXJMP(0x529EB0); }
+WRAPPER void CMessages::AddBigMessageWithNumber(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6) { EAXJMP(0x52AD10); }
+WRAPPER void CMessages::AddBigMessageWithNumberQ(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6) { EAXJMP(0x52AE00); }
+WRAPPER void CMessages::AddMessage(wchar* key, uint32 time, uint16 pos) { EAXJMP(0x529900); }
+WRAPPER void CMessages::AddMessageJumpQ(wchar* key, uint32 time, uint16 pos) { EAXJMP(0x529A10); }
+WRAPPER void CMessages::AddMessageSoon(wchar* key, uint32 time, uint16 pos) { EAXJMP(0x529AF0); }
+WRAPPER void CMessages::AddMessageWithNumber(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6) { EAXJMP(0x52A850); }
+WRAPPER void CMessages::AddMessageJumpQWithNumber(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6) { EAXJMP(0x52A9A0); }
+WRAPPER void CMessages::AddMessageSoonWithNumber(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6) { EAXJMP(0x52AAC0); }
+WRAPPER void CMessages::ClearMessages() { EAXJMP(0x529CE0); }
+WRAPPER void CMessages::Init() { EAXJMP(0x529310); }
+WRAPPER void CMessages::Process() { EAXJMP(0x529580); }
+tPreviousBrief *CMessages::PreviousBriefs = (tPreviousBrief *)0x713C08;
+tMessage *CMessages::BriefMessages = (tMessage *)0x8786E0;
+tBigMessage *CMessages::BIGMessages = (tBigMessage *)0x773628;
diff --git a/src/text/Messages.h b/src/text/Messages.h
new file mode 100644
index 00000000..7caf5786
--- /dev/null
+++ b/src/text/Messages.h
@@ -0,0 +1,56 @@
+#pragma once
+
+struct tMessage
+{
+ wchar *m_pText;
+ uint16 m_nFlag;
+private:
+ int8 _pad6[2];
+public:
+ uint32 m_nTime;
+ uint32 m_nStartTime;
+ int32 m_nNumber[6];
+ wchar *m_pString;
+};
+
+struct tBigMessage
+{
+ tMessage m_Current;
+ tMessage m_Stack[3];
+};
+
+struct tPreviousBrief
+{
+ wchar *m_pText;
+ int32 m_nNumber[6];
+ wchar *m_pString;
+};
+
+class CMessages
+{
+public:
+ static tPreviousBrief *PreviousBriefs;
+ static tMessage *BriefMessages;
+ static tBigMessage *BIGMessages;
+
+public:
+ static void Display(void);
+ static void ClearAllMessagesDisplayedByGame(void);
+ static int WideStringCopy(wchar* dst, wchar* src, unsigned short size);
+ static char WideStringCompare(wchar* str1, wchar* str2, unsigned short size);
+ static void InsertNumberInString(wchar* src, int n1, int n2, int n3, int n4, int n5, int n6, wchar* dst);
+ static void InsertPlayerControlKeysInString(wchar* src);
+ static int GetWideStringLength(wchar *src);
+ static void AddBigMessage(wchar* key, uint32 time, uint16 pos);
+ static void AddBigMessageWithNumber(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6);
+ static void AddBigMessageWithNumberQ(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6);
+ static void AddMessage(wchar* key, uint32 time, uint16 pos);
+ static void AddMessageJumpQ(wchar* key, uint32 time, uint16 pos);
+ static void AddMessageSoon(wchar* key, uint32 time, uint16 pos);
+ static void AddMessageWithNumber(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6);
+ static void AddMessageJumpQWithNumber(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6);
+ static void AddMessageSoonWithNumber(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6);
+ static void ClearMessages();
+ static void Init();
+ static void Process();
+};