Skip to content

Commit 68b4e17

Browse files
Merge pull request #243 from cleolibrary/CMessages_fixes
CMessages fixes and updates.
2 parents 5198f68 + a1a504c commit 68b4e17

File tree

7 files changed

+333
-253
lines changed

7 files changed

+333
-253
lines changed

plugin_III/game_III/CMessages.cpp

Lines changed: 86 additions & 88 deletions
Large diffs are not rendered by default.

plugin_III/game_III/CMessages.h

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -44,49 +44,50 @@ class CMessages {
4444
static tBigMessage *BIGMessages; // static BigMessage BIGMessages[6];
4545

4646
static void Init();
47-
static int GetWideStringLength(wchar_t* str);
48-
static int WideStringCopy(wchar_t* dst, wchar_t* src, unsigned short size);
49-
static bool WideStringCompare(wchar_t* str1, wchar_t* str2, unsigned short size);
47+
static int GetWideStringLength(const wchar_t* str);
48+
static int WideStringCopy(wchar_t* dst, const wchar_t* src, unsigned short size);
49+
static bool WideStringCompare(const wchar_t* str1, const wchar_t* str2, unsigned short size);
5050
static void Process();
5151
static void Display();
52-
static void AddMessage(wchar_t* text, unsigned int time, unsigned short flag);
53-
static void AddMessageJumpQ(wchar_t* text, unsigned int time, unsigned short flag);
54-
static void AddMessageSoon(wchar_t* text, unsigned int time, unsigned short flag);
52+
static void AddMessage(const wchar_t* text, unsigned int time, unsigned short flag);
53+
static void AddMessageJumpQ(const wchar_t* text, unsigned int time, unsigned short flag);
54+
static void AddMessageSoon(const wchar_t* text, unsigned int time, unsigned short flag);
5555
static void ClearMessages();
5656
static void ClearSmallMessagesOnly();
57-
static void AddBigMessage(wchar_t* text, unsigned int time, unsigned short flag);
58-
static void AddBigMessageQ(wchar_t* text, unsigned int time, unsigned short flag);
59-
static void AddToPreviousBriefArray(wchar_t* text, int n1, int n2, int n3, int n4, int n5, int n6, wchar_t* str);
60-
static void InsertNumberInString(wchar_t* src, int n1, int n2, int n3, int n4, int n5, int n6, wchar_t* dst);
57+
static void AddBigMessage(const wchar_t* text, unsigned int time, unsigned short flag);
58+
static void AddBigMessageQ(const wchar_t* text, unsigned int time, unsigned short flag);
59+
static void AddToPreviousBriefArray(const wchar_t* text, int n1, int n2, int n3, int n4, int n5, int n6, const wchar_t* str);
60+
static void InsertNumberInString(const wchar_t* src, int n1, int n2, int n3, int n4, int n5, int n6, wchar_t* dst);
6161
static void InsertStringInString(wchar_t* text, wchar_t* str);
6262
static void InsertPlayerControlKeysInString(wchar_t* text);
63-
static void AddMessageWithNumber(wchar_t* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
64-
static void AddMessageJumpQWithNumber(wchar_t* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
65-
static void AddMessageSoonWithNumber(wchar_t* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
66-
static void AddBigMessageWithNumber(wchar_t* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
67-
static void AddBigMessageWithNumberQ(wchar_t* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
68-
static void AddMessageWithString(wchar_t* text, unsigned int time, unsigned short flag, wchar_t* str);
69-
static void AddMessageJumpQWithString(wchar_t* text, unsigned int time, unsigned short flag, wchar_t* str);
70-
static void ClearThisPrint(wchar_t* text);
71-
static void ClearThisBigPrint(wchar_t* text);
63+
static void AddMessageWithNumber(const wchar_t* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
64+
static void AddMessageJumpQWithNumber(const wchar_t* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
65+
static void AddMessageSoonWithNumber(const wchar_t* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
66+
static void AddBigMessageWithNumber(const wchar_t* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
67+
static void AddBigMessageWithNumberQ(const wchar_t* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
68+
static void AddMessageWithString(const wchar_t* text, unsigned int time, unsigned short flag, const wchar_t* str);
69+
static void AddMessageJumpQWithString(const wchar_t* text, unsigned int time, unsigned short flag, const wchar_t* str);
70+
static void ClearThisPrint(const wchar_t* text);
71+
static void ClearThisBigPrint(const wchar_t* text);
7272
static void ClearAllMessagesDisplayedByGame();
7373

74-
static void AddMessage(char* text, unsigned int time, unsigned short flag);
75-
static void AddMessageJumpQ(char* text, unsigned int time, unsigned short flag);
76-
static void AddMessageSoon(char* text, unsigned int time, unsigned short flag);
77-
static void AddBigMessage(char* text, unsigned int time, unsigned short flag);
78-
static void AddBigMessageQ(char* text, unsigned int time, unsigned short flag);
79-
static void AddToPreviousBriefArray(char* text, int n1, int n2, int n3, int n4, int n5, int n6, char* str);
80-
static void InsertNumberInString(char* src, int n1, int n2, int n3, int n4, int n5, int n6, char* dst);
81-
static void InsertStringInString(char* text, char* str);
74+
// automatic conversion to wide characters
75+
static void AddMessage(const char* text, unsigned int time, unsigned short flag);
76+
static void AddMessageJumpQ(const char* text, unsigned int time, unsigned short flag);
77+
static void AddMessageSoon(const char* text, unsigned int time, unsigned short flag);
78+
static void AddBigMessage(const char* text, unsigned int time, unsigned short flag);
79+
static void AddBigMessageQ(const char* text, unsigned int time, unsigned short flag);
80+
static void AddToPreviousBriefArray(const char* text, int n1, int n2, int n3, int n4, int n5, int n6, const char* str);
81+
static void InsertNumberInString(const char* src, int n1, int n2, int n3, int n4, int n5, int n6, char* dst);
82+
static void InsertStringInString(char* text, const char* str);
8283
static void InsertPlayerControlKeysInString(char* text);
83-
static void AddMessageWithNumber(char* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
84-
static void AddMessageJumpQWithNumber(char* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
85-
static void AddMessageSoonWithNumber(char* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
86-
static void AddBigMessageWithNumber(char* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
87-
static void AddBigMessageWithNumberQ(char* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
88-
static void AddMessageWithString(char* text, unsigned int time, unsigned short flag, char* str);
89-
static void AddMessageJumpQWithString(char* text, unsigned int time, unsigned short flag, char* str);
90-
static void ClearThisPrint(char* text);
91-
static void ClearThisBigPrint(char* text);
84+
static void AddMessageWithNumber(const char* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
85+
static void AddMessageJumpQWithNumber(const char* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
86+
static void AddMessageSoonWithNumber(const char* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
87+
static void AddBigMessageWithNumber(const char* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
88+
static void AddBigMessageWithNumberQ(const char* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6);
89+
static void AddMessageWithString(const char* text, unsigned int time, unsigned short flag, const char* str);
90+
static void AddMessageJumpQWithString(const char* text, unsigned int time, unsigned short flag, const char* str);
91+
static void ClearThisPrint(const char* text);
92+
static void ClearThisBigPrint(const char* text);
9293
};

plugin_sa/game_sa/CMessages.cpp

Lines changed: 40 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -38,33 +38,28 @@
3838
#define FUNC_CMessages__AddBigMessage 0x69F2B0
3939
#define FUNC_CMessages__AddBigMessageQ 0x69F370
4040

41-
tPreviousBrief *CMessages::PreviousBriefs = (tPreviousBrief *)0xC1A570;
42-
43-
tMessage *CMessages::BriefMessages = (tMessage *)0xC1A7F0;
44-
45-
tBigMessage *CMessages::BIGMessages = (tBigMessage *)0xC1A970;
4641

4742
// Returns length of a string
48-
unsigned int CMessages::GetStringLength(char *string)
43+
unsigned int CMessages::GetStringLength(const char* text)
4944
{
50-
return ((unsigned int (__cdecl *)(char *))FUNC_CMessages__GetStringLength)(string);
45+
return ((unsigned int (__cdecl *)(const char*))FUNC_CMessages__GetStringLength)(text);
5146
}
5247

5348
// Copies string src to dest
54-
void CMessages::StringCopy(char *dest, char *src, unsigned short len)
49+
void CMessages::StringCopy(char* dest, const char* src, unsigned short len)
5550
{
56-
((void (__cdecl *)(char *, char *, unsigned short))FUNC_CMessages__StringCopy)(dest, src, len);
51+
((void (__cdecl *)(char*, const char*, unsigned short))FUNC_CMessages__StringCopy)(dest, src, len);
5752
}
5853

5954
// Compares 2 strings
60-
unsigned char CMessages::StringCompare(char *str1, char *str2, unsigned short len)
55+
unsigned char CMessages::StringCompare(const char* str1, const char* str2, unsigned short len)
6156
{
62-
return ((unsigned char (__cdecl *)(char *, char *, unsigned short))FUNC_CMessages__StringCompare)(str1, str2, len);
57+
return ((unsigned char (__cdecl *)(const char*, const char*, unsigned short))FUNC_CMessages__StringCompare)(str1, str2, len);
6358
}
6459

65-
void CMessages::CutString(int count, char *str, char **dest)
60+
void CMessages::CutString(int count, const char* str, char** dest)
6661
{
67-
((void (__cdecl *)(int, char *, char **))FUNC_CMessages__CutString)(count, str, dest);
62+
((void (__cdecl *)(int, const char*, char**))FUNC_CMessages__CutString)(count, str, dest);
6863
}
6964

7065
// Removes registered messages
@@ -80,9 +75,9 @@ void CMessages::ClearSmallMessagesOnly()
8075
}
8176

8277
// Adds message to previous brief
83-
void CMessages::AddToPreviousBriefArray(char *text, int n1, int n2, int n3, int n4, int n5, int n6, char *string)
78+
void CMessages::AddToPreviousBriefArray(const char* text, int n1, int n2, int n3, int n4, int n5, int n6, const char* string)
8479
{
85-
((void (__cdecl *)(char *, int, int, int, int, int, int, char *))FUNC_CMessages__AddToPreviousBriefArray)(text, n1, n2, n3, n4, n5, n6, string);
80+
((void (__cdecl *)(const char*, int, int, int, int, int, int, const char*))FUNC_CMessages__AddToPreviousBriefArray)(text, n1, n2, n3, n4, n5, n6, string);
8681
}
8782

8883
// Removes messages from previous brief
@@ -92,69 +87,69 @@ void CMessages::ClearPreviousBriefArray()
9287
}
9388

9489
// Inserts numbers into string
95-
void CMessages::InsertNumberInString(char *src, int n1, int n2, int n3, int n4, int n5, int n6, char *dst)
90+
void CMessages::InsertNumberInString(const char* src, int n1, int n2, int n3, int n4, int n5, int n6, char* dst)
9691
{
97-
((void (__cdecl *)(char *, int, int, int, int, int, int, char *))FUNC_CMessages__InsertNumberInString)(src, n1, n2, n3, n4, n5, n6, dst);
92+
((void (__cdecl *)(const char*, int, int, int, int, int, int, const char*))FUNC_CMessages__InsertNumberInString)(src, n1, n2, n3, n4, n5, n6, dst);
9893
}
9994

10095
// Inserts string into src
101-
void CMessages::InsertStringInString(char *src, char *string)
96+
void CMessages::InsertStringInString(char* text, const char* string)
10297
{
103-
((void (__cdecl *)(char *, char *))FUNC_CMessages__InsertStringInString)(src, string);
98+
((void (__cdecl *)(char*, const char*))FUNC_CMessages__InsertStringInString)(text, string);
10499
}
105100

106101
// Inserts key events into string
107-
void CMessages::InsertPlayerControlKeysInString(char *string)
102+
void CMessages::InsertPlayerControlKeysInString(char* string)
108103
{
109-
((void (__cdecl *)(char *))FUNC_CMessages__InsertPlayerControlKeysInString)(string);
104+
((void (__cdecl *)(char*))FUNC_CMessages__InsertPlayerControlKeysInString)(string);
110105
}
111106

112107
// Adds message with numbers to queue
113-
void CMessages::AddMessageWithNumber(char *text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6, bool bPreviousBrief)
108+
void CMessages::AddMessageWithNumber(const char* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6, bool bPreviousBrief)
114109
{
115-
((void (__cdecl *)(char *, unsigned int, unsigned short, int, int, int, int, int, int, bool))FUNC_CMessages__AddMessageWithNumber)(text, time, flag, n1, n2, n3, n4, n5, n6, bPreviousBrief);
110+
((void (__cdecl *)(const char*, unsigned int, unsigned short, int, int, int, int, int, int, bool))FUNC_CMessages__AddMessageWithNumber)(text, time, flag, n1, n2, n3, n4, n5, n6, bPreviousBrief);
116111
}
117112

118113
// Adds message with numbers and shows it instantly
119-
void CMessages::AddMessageJumpQWithNumber(char *text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6, bool bPreviousBrief)
114+
void CMessages::AddMessageJumpQWithNumber(const char* text, unsigned int time, unsigned short flag, int n1, int n2, int n3, int n4, int n5, int n6, bool bPreviousBrief)
120115
{
121-
((void (__cdecl *)(char *, unsigned int, unsigned short, int, int, int, int, int, int, bool))FUNC_CMessages__AddMessageJumpQWithNumber)(text, time, flag, n1, n2, n3, n4, n5, n6, bPreviousBrief);
116+
((void (__cdecl *)(const char*, unsigned int, unsigned short, int, int, int, int, int, int, bool))FUNC_CMessages__AddMessageJumpQWithNumber)(text, time, flag, n1, n2, n3, n4, n5, n6, bPreviousBrief);
122117
}
123118

124119
// Adds big message with numbers and shows it instantly , see eMessageStyle
125-
void CMessages::AddBigMessageWithNumber(char *text, unsigned int time, unsigned short style, int n1, int n2, int n3, int n4, int n5, int n6)
120+
void CMessages::AddBigMessageWithNumber(const char* text, unsigned int time, unsigned short style, int n1, int n2, int n3, int n4, int n5, int n6)
126121
{
127-
((void (__cdecl *)(char *, unsigned int, unsigned short, int, int, int, int, int, int))FUNC_CMessages__AddBigMessageWithNumber)(text, time, style, n1, n2, n3, n4, n5, n6);
122+
((void (__cdecl *)(const char*, unsigned int, unsigned short, int, int, int, int, int, int))FUNC_CMessages__AddBigMessageWithNumber)(text, time, style, n1, n2, n3, n4, n5, n6);
128123
}
129124

130125
// Adds big message with numbers to queue , see eMessageStyle
131-
void CMessages::AddBigMessageWithNumberQ(char *text, unsigned int time, unsigned short style, int n1, int n2, int n3, int n4, int n5, int n6)
126+
void CMessages::AddBigMessageWithNumberQ(const char* text, unsigned int time, unsigned short style, int n1, int n2, int n3, int n4, int n5, int n6)
132127
{
133-
((void (__cdecl *)(char *, unsigned int, unsigned short, int, int, int, int, int, int))FUNC_CMessages__AddBigMessageWithNumberQ)(text, time, style, n1, n2, n3, n4, n5, n6);
128+
((void (__cdecl *)(const char*, unsigned int, unsigned short, int, int, int, int, int, int))FUNC_CMessages__AddBigMessageWithNumberQ)(text, time, style, n1, n2, n3, n4, n5, n6);
134129
}
135130

136131
// Adds message with string to queue
137-
void CMessages::AddMessageWithString(char *text, unsigned int time, unsigned short flag, char *string, char bPreviousBrief)
132+
void CMessages::AddMessageWithString(const char* text, unsigned int time, unsigned short flag, char* string, char bPreviousBrief)
138133
{
139-
((void (__cdecl *)(char *, unsigned int, unsigned short, char *, char))FUNC_CMessages__AddMessageWithString)(text, time, flag, string, bPreviousBrief);
134+
((void (__cdecl *)(const char*, unsigned int, unsigned short, char*, char))FUNC_CMessages__AddMessageWithString)(text, time, flag, string, bPreviousBrief);
140135
}
141136

142137
// Adds message with string and shows it instantly
143-
void CMessages::AddMessageJumpQWithString(char *text, unsigned int time, unsigned short flag, char *string, char bPreviousBrief)
138+
void CMessages::AddMessageJumpQWithString(const char* text, unsigned int time, unsigned short flag, char* string, char bPreviousBrief)
144139
{
145-
((void (__cdecl *)(char *, unsigned int, unsigned short, char *, char))FUNC_CMessages__AddMessageJumpQWithString)(text, time, flag, string, bPreviousBrief);
140+
((void (__cdecl *)(const char*, unsigned int, unsigned short, char*, char))FUNC_CMessages__AddMessageJumpQWithString)(text, time, flag, string, bPreviousBrief);
146141
}
147142

148143
// Removes small message with this text
149-
void CMessages::ClearThisPrint(char *text)
144+
void CMessages::ClearThisPrint(const char* text)
150145
{
151-
((void (__cdecl *)(char *))FUNC_CMessages__ClearThisPrint)(text);
146+
((void (__cdecl *)(const char*))FUNC_CMessages__ClearThisPrint)(text);
152147
}
153148

154149
// Removes big message with this text
155-
void CMessages::ClearThisBigPrint(char *text)
150+
void CMessages::ClearThisBigPrint(const char* text)
156151
{
157-
((void (__cdecl *)(char *))FUNC_CMessages__ClearThisBigPrint)(text);
152+
((void (__cdecl *)(const char*))FUNC_CMessages__ClearThisBigPrint)(text);
158153
}
159154

160155
// Removes first big message in messages stack , see eMessageStyle
@@ -188,25 +183,25 @@ void CMessages::Display(bool flag)
188183
}
189184

190185
// Adds message to queue
191-
void CMessages::AddMessage(char *text, unsigned int time, unsigned short flag, bool bPreviousBrief)
186+
void CMessages::AddMessage(const char* text, unsigned int time, unsigned short flag, bool bPreviousBrief)
192187
{
193-
((void (__cdecl *)(char *, unsigned int, unsigned short, bool))FUNC_CMessages__AddMessage)(text, time, flag, bPreviousBrief);
188+
((void (__cdecl *)(const char*, unsigned int, unsigned short, bool))FUNC_CMessages__AddMessage)(text, time, flag, bPreviousBrief);
194189
}
195190

196191
// Adds message and shows it instantly
197-
void CMessages::AddMessageJumpQ(char *text, unsigned int time, unsigned short flag, bool bPreviousBrief)
192+
void CMessages::AddMessageJumpQ(const char* text, unsigned int time, unsigned short flag, bool bPreviousBrief)
198193
{
199-
((void (__cdecl *)(char *, unsigned int, unsigned short, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief);
194+
((void (__cdecl *)(const char*, unsigned int, unsigned short, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief);
200195
}
201196

202197
// Adds big message and shows it instantly , see eMessageStyle
203-
void CMessages::AddBigMessage(char *text, unsigned int time, unsigned short style)
198+
void CMessages::AddBigMessage(const char* text, unsigned int time, unsigned short style)
204199
{
205-
((void (__cdecl *)(char *, unsigned int, unsigned short))FUNC_CMessages__AddBigMessage)(text, time, style);
200+
((void (__cdecl *)(const char*, unsigned int, unsigned short))FUNC_CMessages__AddBigMessage)(text, time, style);
206201
}
207202

208203
// Adds big message to queue , see eMessageStyle
209-
void CMessages::AddBigMessageQ(char *text, unsigned int time, unsigned short style)
204+
void CMessages::AddBigMessageQ(const char* text, unsigned int time, unsigned short style)
210205
{
211-
((void (__cdecl *)(char *, unsigned int, unsigned short))FUNC_CMessages__AddBigMessageQ)(text, time, style);
206+
((void (__cdecl *)(const char*, unsigned int, unsigned short))FUNC_CMessages__AddBigMessageQ)(text, time, style);
212207
}

0 commit comments

Comments
 (0)