Skip to content

Commit 059ddfa

Browse files
committed
Merge remote-tracking branch 'upstream/master' into next
2 parents 1cd1b61 + c78d725 commit 059ddfa

File tree

31 files changed

+2016
-571
lines changed

31 files changed

+2016
-571
lines changed

Client/cefweb/CWebApp.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ void CWebApp::OnBeforeCommandLineProcessing(const CefString& process_type, CefRe
2626
// command_line->AppendSwitch("disable-d3d11");
2727
command_line->AppendSwitch("enable-begin-frame-scheduling");
2828

29+
// browser-signin switch(or lack thereof) produces crashes when GOOGLE API keys are present in the OS registry
30+
command_line->AppendSwitchWithValue("allow-browser-signin", "false");
31+
2932
if (process_type.empty())
3033
{
3134
command_line->AppendSwitchWithValue("autoplay-policy", "no-user-gesture-required");

Client/core/CChat.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ CChat::CChat(CGUI* pManager, const CVector2D& vecPosition)
6363
m_ePositionVertical = Chat::Position::Vertical::TOP;
6464
m_eTextAlign = Chat::Text::Align::LEFT;
6565
m_iSelectedInputHistoryEntry = -1;
66+
m_iCharacterLimit = m_iDefaultCharacterLimit;
6667

6768
// Background area
6869
m_pBackground = m_pManager->CreateStaticImage();
@@ -714,7 +715,7 @@ bool CChat::CharacterKeyHandler(CGUIKeyEventArgs KeyboardArgs)
714715
{
715716
// Check size if it's ok, then output
716717
SString strOutput = strCurrentInput.replace(iFound, std::string::npos, strPlayerName);
717-
if (MbUTF8ToUTF16(strOutput).size() < CHAT_MAX_CHAT_LENGTH)
718+
if (MbUTF8ToUTF16(strOutput).size() < m_iCharacterLimit)
718719
{
719720
bSuccess = true;
720721
m_strLastPlayerNamePart = strPlayerNamePart;
@@ -745,7 +746,7 @@ bool CChat::CharacterKeyHandler(CGUIKeyEventArgs KeyboardArgs)
745746
m_strLastPlayerName.clear();
746747

747748
// If we haven't exceeded the maximum number of characters per chat message, append the char to the message and update the input control
748-
if (MbUTF8ToUTF16(m_strInputText).size() < CHAT_MAX_CHAT_LENGTH)
749+
if (MbUTF8ToUTF16(m_strInputText).size() < m_iCharacterLimit)
749750
{
750751
if (KeyboardArgs.codepoint >= 32)
751752
{
@@ -865,7 +866,7 @@ void CChat::UpdateGUI()
865866
m_pBackground->SetSize(m_vecBackgroundSize);
866867

867868
// Make sure there is enough room for all the lines
868-
uint uiMaxNumLines = g_pCore->GetGraphics()->GetViewportHeight() / std::max(1.f, CChat::GetFontHeight(m_vecScale.fY)) - 3;
869+
uint uiMaxNumLines = g_pCore->GetGraphics()->GetViewportHeight() / std::max(1.f, CChat::GetFontHeight(m_vecScale.fY)) - m_iMaxInputLines;
869870
if (m_uiNumLines > uiMaxNumLines)
870871
SetNumLines(uiMaxNumLines);
871872

@@ -967,7 +968,7 @@ void CChat::SetInputText(const char* szText)
967968

968969
CChatLine* pLine = NULL;
969970

970-
while (szRemainingText && m_InputLine.m_ExtraLines.size() < 3)
971+
while (szRemainingText && m_InputLine.m_ExtraLines.size() < m_iMaxInputLines)
971972
{
972973
m_InputLine.m_ExtraLines.resize(m_InputLine.m_ExtraLines.size() + 1);
973974
CChatLine& line = *(m_InputLine.m_ExtraLines.end() - 1);
@@ -1077,6 +1078,11 @@ void CChat::DrawTextString(const char* szText, CRect2D DrawArea, float fZ, CRect
10771078
}
10781079
}
10791080

1081+
void CChat::SetCharacterLimit(int charLimit)
1082+
{
1083+
m_iCharacterLimit = charLimit;
1084+
}
1085+
10801086
CChatLine::CChatLine()
10811087
{
10821088
m_bActive = false;

Client/core/CChat.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ class CChatLineSection;
1919
#define CHAT_WIDTH 320 // Chatbox default width
2020
#define CHAT_TEXT_COLOR CColor(235, 221, 178) // Chatbox default text color
2121
#define CHAT_MAX_LINES 100 // Chatbox maximum chat lines
22-
#define CHAT_MAX_CHAT_LENGTH 96 // Chatbox maximum chat message length
2322
#define CHAT_BUFFER 1024 // Chatbox buffer size
2423
#define CHAT_INPUT_HISTORY_LENGTH 128 // Chatbox input history length
2524

@@ -203,6 +202,11 @@ class CChat
203202
void SetChatFont(eChatFont Font);
204203
void OnModLoad();
205204

205+
void SetCharacterLimit(int charLimit);
206+
int GetCharacterLimit() const { return m_iCharacterLimit; }
207+
constexpr int GetDefaultCharacterLimit() const { return m_iDefaultCharacterLimit; }
208+
constexpr int GetMaxCharacterLimit() const { return m_iMaxCharacterLimit; }
209+
206210
private:
207211
void LoadCVars();
208212

@@ -292,4 +296,9 @@ class CChat
292296
CTickCount m_lastRenderTargetCreationFail;
293297

294298
bool m_bNickCompletion;
299+
300+
int m_iCharacterLimit;
301+
static inline constexpr int m_iDefaultCharacterLimit = 96;
302+
static inline constexpr int m_iMaxCharacterLimit = 255;
303+
static inline constexpr int m_iMaxInputLines = 5;
295304
};

Client/core/CCore.cpp

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,47 @@ bool CCore::IsChatInputEnabled()
504504
return false;
505505
}
506506

507+
bool CCore::SetChatboxCharacterLimit(int charLimit)
508+
{
509+
CChat* pChat = m_pLocalGUI->GetChat();
510+
511+
if (!pChat)
512+
return false;
513+
514+
pChat->SetCharacterLimit(charLimit);
515+
return true;
516+
}
517+
518+
void CCore::ResetChatboxCharacterLimit()
519+
{
520+
CChat* pChat = m_pLocalGUI->GetChat();
521+
522+
if (!pChat)
523+
return;
524+
525+
pChat->SetCharacterLimit(pChat->GetDefaultCharacterLimit());
526+
}
527+
528+
int CCore::GetChatboxCharacterLimit()
529+
{
530+
CChat* pChat = m_pLocalGUI->GetChat();
531+
532+
if (!pChat)
533+
return 0;
534+
535+
return pChat->GetCharacterLimit();
536+
}
537+
538+
int CCore::GetChatboxMaxCharacterLimit()
539+
{
540+
CChat* pChat = m_pLocalGUI->GetChat();
541+
542+
if (!pChat)
543+
return 0;
544+
545+
return pChat->GetMaxCharacterLimit();
546+
}
547+
507548
bool CCore::IsSettingsVisible()
508549
{
509550
if (m_pLocalGUI)
@@ -1280,6 +1321,9 @@ void CCore::OnModUnload()
12801321

12811322
// Destroy tray icon
12821323
m_pTrayIcon->DestroyTrayIcon();
1324+
1325+
// Reset chatbox character limit
1326+
ResetChatboxCharacterLimit();
12831327
}
12841328

12851329
void CCore::RegisterCommands()

Client/core/CCore.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,10 @@ class CCore : public CCoreInterface, public CSingleton<CCore>
125125
bool IsChatInputEnabled();
126126
bool ClearChat();
127127
void OnGameTimerUpdate();
128+
bool SetChatboxCharacterLimit(int charLimit);
129+
void ResetChatboxCharacterLimit();
130+
int GetChatboxCharacterLimit();
131+
int GetChatboxMaxCharacterLimit();
128132

129133
// Screenshots
130134
void TakeScreenShot();

Client/loader-proxy/exports.def

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
; Do not edit this file manually because it has been generated by generator.cpp
2+
3+
EXPORTS
4+
CloseDriver=__EXPORT__0__ @4
5+
DefDriverProc=__EXPORT__1__ @5
6+
DriverCallback=__EXPORT__2__ @6
7+
DrvGetModuleHandle=__EXPORT__3__ @7
8+
GetDriverModuleHandle=__EXPORT__4__ @8
9+
NotifyCallbackData=__EXPORT__5__ @9
10+
OpenDriver=__EXPORT__6__ @10
11+
PlaySound=__EXPORT__7__ @11
12+
PlaySoundA=__EXPORT__8__ @12
13+
PlaySoundW=__EXPORT__9__ @13
14+
SendDriverMessage=__EXPORT__10__ @14
15+
WOW32DriverCallback=__EXPORT__11__ @15
16+
WOW32ResolveMultiMediaHandle=__EXPORT__12__ @16
17+
WOWAppExit=__EXPORT__13__ @17
18+
aux32Message=__EXPORT__14__ @18
19+
auxGetDevCapsA=__EXPORT__15__ @19
20+
auxGetDevCapsW=__EXPORT__16__ @20
21+
auxGetNumDevs=__EXPORT__17__ @21
22+
auxGetVolume=__EXPORT__18__ @22
23+
auxOutMessage=__EXPORT__19__ @23
24+
auxSetVolume=__EXPORT__20__ @24
25+
joy32Message=__EXPORT__21__ @25
26+
joyConfigChanged=__EXPORT__22__ @26
27+
joyGetDevCapsA=__EXPORT__23__ @27
28+
joyGetDevCapsW=__EXPORT__24__ @28
29+
joyGetNumDevs=__EXPORT__25__ @29
30+
joyGetPos=__EXPORT__26__ @30
31+
joyGetPosEx=__EXPORT__27__ @31
32+
joyGetThreshold=__EXPORT__28__ @32
33+
joyReleaseCapture=__EXPORT__29__ @33
34+
joySetCapture=__EXPORT__30__ @34
35+
joySetThreshold=__EXPORT__31__ @35
36+
mci32Message=__EXPORT__32__ @36
37+
mciDriverNotify=__EXPORT__33__ @37
38+
mciDriverYield=__EXPORT__34__ @38
39+
mciExecute=__EXPORT__35__ @3
40+
mciFreeCommandResource=__EXPORT__36__ @39
41+
mciGetCreatorTask=__EXPORT__37__ @40
42+
mciGetDeviceIDA=__EXPORT__38__ @41
43+
mciGetDeviceIDFromElementIDA=__EXPORT__39__ @42
44+
mciGetDeviceIDFromElementIDW=__EXPORT__40__ @43
45+
mciGetDeviceIDW=__EXPORT__41__ @44
46+
mciGetDriverData=__EXPORT__42__ @45
47+
mciGetErrorStringA=__EXPORT__43__ @46
48+
mciGetErrorStringW=__EXPORT__44__ @47
49+
mciGetYieldProc=__EXPORT__45__ @48
50+
mciLoadCommandResource=__EXPORT__46__ @49
51+
mciSendCommandA=__EXPORT__47__ @50
52+
mciSendCommandW=__EXPORT__48__ @51
53+
mciSendStringA=__EXPORT__49__ @52
54+
mciSendStringW=__EXPORT__50__ @53
55+
mciSetDriverData=__EXPORT__51__ @54
56+
mciSetYieldProc=__EXPORT__52__ @55
57+
mid32Message=__EXPORT__53__ @56
58+
midiConnect=__EXPORT__54__ @57
59+
midiDisconnect=__EXPORT__55__ @58
60+
midiInAddBuffer=__EXPORT__56__ @59
61+
midiInClose=__EXPORT__57__ @60
62+
midiInGetDevCapsA=__EXPORT__58__ @61
63+
midiInGetDevCapsW=__EXPORT__59__ @62
64+
midiInGetErrorTextA=__EXPORT__60__ @63
65+
midiInGetErrorTextW=__EXPORT__61__ @64
66+
midiInGetID=__EXPORT__62__ @65
67+
midiInGetNumDevs=__EXPORT__63__ @66
68+
midiInMessage=__EXPORT__64__ @67
69+
midiInOpen=__EXPORT__65__ @68
70+
midiInPrepareHeader=__EXPORT__66__ @69
71+
midiInReset=__EXPORT__67__ @70
72+
midiInStart=__EXPORT__68__ @71
73+
midiInStop=__EXPORT__69__ @72
74+
midiInUnprepareHeader=__EXPORT__70__ @73
75+
midiOutCacheDrumPatches=__EXPORT__71__ @74
76+
midiOutCachePatches=__EXPORT__72__ @75
77+
midiOutClose=__EXPORT__73__ @76
78+
midiOutGetDevCapsA=__EXPORT__74__ @77
79+
midiOutGetDevCapsW=__EXPORT__75__ @78
80+
midiOutGetErrorTextA=__EXPORT__76__ @79
81+
midiOutGetErrorTextW=__EXPORT__77__ @80
82+
midiOutGetID=__EXPORT__78__ @81
83+
midiOutGetNumDevs=__EXPORT__79__ @82
84+
midiOutGetVolume=__EXPORT__80__ @83
85+
midiOutLongMsg=__EXPORT__81__ @84
86+
midiOutMessage=__EXPORT__82__ @85
87+
midiOutOpen=__EXPORT__83__ @86
88+
midiOutPrepareHeader=__EXPORT__84__ @87
89+
midiOutReset=__EXPORT__85__ @88
90+
midiOutSetVolume=__EXPORT__86__ @89
91+
midiOutShortMsg=__EXPORT__87__ @90
92+
midiOutUnprepareHeader=__EXPORT__88__ @91
93+
midiStreamClose=__EXPORT__89__ @92
94+
midiStreamOpen=__EXPORT__90__ @93
95+
midiStreamOut=__EXPORT__91__ @94
96+
midiStreamPause=__EXPORT__92__ @95
97+
midiStreamPosition=__EXPORT__93__ @96
98+
midiStreamProperty=__EXPORT__94__ @97
99+
midiStreamRestart=__EXPORT__95__ @98
100+
midiStreamStop=__EXPORT__96__ @99
101+
mixerClose=__EXPORT__97__ @100
102+
mixerGetControlDetailsA=__EXPORT__98__ @101
103+
mixerGetControlDetailsW=__EXPORT__99__ @102
104+
mixerGetDevCapsA=__EXPORT__100__ @103
105+
mixerGetDevCapsW=__EXPORT__101__ @104
106+
mixerGetID=__EXPORT__102__ @105
107+
mixerGetLineControlsA=__EXPORT__103__ @106
108+
mixerGetLineControlsW=__EXPORT__104__ @107
109+
mixerGetLineInfoA=__EXPORT__105__ @108
110+
mixerGetLineInfoW=__EXPORT__106__ @109
111+
mixerGetNumDevs=__EXPORT__107__ @110
112+
mixerMessage=__EXPORT__108__ @111
113+
mixerOpen=__EXPORT__109__ @112
114+
mixerSetControlDetails=__EXPORT__110__ @113
115+
mmDrvInstall=__EXPORT__111__ @114
116+
mmGetCurrentTask=__EXPORT__112__ @115
117+
mmTaskBlock=__EXPORT__113__ @116
118+
mmTaskCreate=__EXPORT__114__ @117
119+
mmTaskSignal=__EXPORT__115__ @118
120+
mmTaskYield=__EXPORT__116__ @119
121+
mmioAdvance=__EXPORT__117__ @120
122+
mmioAscend=__EXPORT__118__ @121
123+
mmioClose=__EXPORT__119__ @122
124+
mmioCreateChunk=__EXPORT__120__ @123
125+
mmioDescend=__EXPORT__121__ @124
126+
mmioFlush=__EXPORT__122__ @125
127+
mmioGetInfo=__EXPORT__123__ @126
128+
mmioInstallIOProcA=__EXPORT__124__ @127
129+
mmioInstallIOProcW=__EXPORT__125__ @128
130+
mmioOpenA=__EXPORT__126__ @129
131+
mmioOpenW=__EXPORT__127__ @130
132+
mmioRead=__EXPORT__128__ @131
133+
mmioRenameA=__EXPORT__129__ @132
134+
mmioRenameW=__EXPORT__130__ @133
135+
mmioSeek=__EXPORT__131__ @134
136+
mmioSendMessage=__EXPORT__132__ @135
137+
mmioSetBuffer=__EXPORT__133__ @136
138+
mmioSetInfo=__EXPORT__134__ @137
139+
mmioStringToFOURCCA=__EXPORT__135__ @138
140+
mmioStringToFOURCCW=__EXPORT__136__ @139
141+
mmioWrite=__EXPORT__137__ @140
142+
mmsystemGetVersion=__EXPORT__138__ @141
143+
mod32Message=__EXPORT__139__ @142
144+
mxd32Message=__EXPORT__140__ @143
145+
sndPlaySoundA=__EXPORT__141__ @144
146+
sndPlaySoundW=__EXPORT__142__ @145
147+
tid32Message=__EXPORT__143__ @146
148+
timeBeginPeriod=__EXPORT__144__ @147
149+
timeEndPeriod=__EXPORT__145__ @148
150+
timeGetDevCaps=__EXPORT__146__ @149
151+
timeGetSystemTime=__EXPORT__147__ @150
152+
timeGetTime=__EXPORT__148__ @151
153+
timeKillEvent=__EXPORT__149__ @152
154+
timeSetEvent=__EXPORT__150__ @153
155+
waveInAddBuffer=__EXPORT__151__ @154
156+
waveInClose=__EXPORT__152__ @155
157+
waveInGetDevCapsA=__EXPORT__153__ @156
158+
waveInGetDevCapsW=__EXPORT__154__ @157
159+
waveInGetErrorTextA=__EXPORT__155__ @158
160+
waveInGetErrorTextW=__EXPORT__156__ @159
161+
waveInGetID=__EXPORT__157__ @160
162+
waveInGetNumDevs=__EXPORT__158__ @161
163+
waveInGetPosition=__EXPORT__159__ @162
164+
waveInMessage=__EXPORT__160__ @163
165+
waveInOpen=__EXPORT__161__ @164
166+
waveInPrepareHeader=__EXPORT__162__ @165
167+
waveInReset=__EXPORT__163__ @166
168+
waveInStart=__EXPORT__164__ @167
169+
waveInStop=__EXPORT__165__ @168
170+
waveInUnprepareHeader=__EXPORT__166__ @169
171+
waveOutBreakLoop=__EXPORT__167__ @170
172+
waveOutClose=__EXPORT__168__ @171
173+
waveOutGetDevCapsA=__EXPORT__169__ @172
174+
waveOutGetDevCapsW=__EXPORT__170__ @173
175+
waveOutGetErrorTextA=__EXPORT__171__ @174
176+
waveOutGetErrorTextW=__EXPORT__172__ @175
177+
waveOutGetID=__EXPORT__173__ @176
178+
waveOutGetNumDevs=__EXPORT__174__ @177
179+
waveOutGetPitch=__EXPORT__175__ @178
180+
waveOutGetPlaybackRate=__EXPORT__176__ @179
181+
waveOutGetPosition=__EXPORT__177__ @180
182+
waveOutGetVolume=__EXPORT__178__ @181
183+
waveOutMessage=__EXPORT__179__ @182
184+
waveOutOpen=__EXPORT__180__ @183
185+
waveOutPause=__EXPORT__181__ @184
186+
waveOutPrepareHeader=__EXPORT__182__ @185
187+
waveOutReset=__EXPORT__183__ @186
188+
waveOutRestart=__EXPORT__184__ @187
189+
waveOutSetPitch=__EXPORT__185__ @188
190+
waveOutSetPlaybackRate=__EXPORT__186__ @189
191+
waveOutSetVolume=__EXPORT__187__ @190
192+
waveOutUnprepareHeader=__EXPORT__188__ @191
193+
waveOutWrite=__EXPORT__189__ @192
194+
wid32Message=__EXPORT__190__ @193
195+
wod32Message=__EXPORT__191__ @194
196+
__NONAME__192__=__EXPORT__192__ @2 NONAME

0 commit comments

Comments
 (0)