Skip to content

Commit 30adc30

Browse files
committed
ChatRoom: add chatroom accessible with Y key
also disabled game input when overlay/chat is active (might be worth adding option to allow controller inputs though...)
1 parent a55518e commit 30adc30

File tree

9 files changed

+381
-27
lines changed

9 files changed

+381
-27
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,6 @@
1010
[submodule "external/imgui"]
1111
path = external/imgui
1212
url = https://github.com/ocornut/imgui.git
13+
[submodule "external/IXWebSocket"]
14+
path = external/IXWebSocket
15+
url = https://github.com/machinezone/IXWebSocket.git

CMakeLists.txt

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,15 @@ FetchContent_Declare(jsoncpp
128128
)
129129
FetchContent_MakeAvailable(jsoncpp)
130130

131+
message(STATUS "Fetching zlib (v1.3.1)...")
132+
FetchContent_Declare(zlib
133+
GIT_REPOSITORY
134+
"https://github.com/madler/zlib"
135+
GIT_TAG
136+
v1.3.1
137+
)
138+
FetchContent_MakeAvailable(zlib)
139+
131140
# Target: spdlog
132141
set(spdlog_SOURCES
133142
cmake.toml
@@ -159,6 +168,98 @@ set(outrun2006tweaks_SOURCES
159168
OutRun2006Tweaks.ini
160169
OutRun2006Tweaks.lods.ini
161170
cmake.toml
171+
"external/IXWebSocket/ixwebsocket/IXBase64.h"
172+
"external/IXWebSocket/ixwebsocket/IXBench.cpp"
173+
"external/IXWebSocket/ixwebsocket/IXBench.h"
174+
"external/IXWebSocket/ixwebsocket/IXCancellationRequest.cpp"
175+
"external/IXWebSocket/ixwebsocket/IXCancellationRequest.h"
176+
"external/IXWebSocket/ixwebsocket/IXConnectionState.cpp"
177+
"external/IXWebSocket/ixwebsocket/IXConnectionState.h"
178+
"external/IXWebSocket/ixwebsocket/IXDNSLookup.cpp"
179+
"external/IXWebSocket/ixwebsocket/IXDNSLookup.h"
180+
"external/IXWebSocket/ixwebsocket/IXExponentialBackoff.cpp"
181+
"external/IXWebSocket/ixwebsocket/IXExponentialBackoff.h"
182+
"external/IXWebSocket/ixwebsocket/IXGetFreePort.cpp"
183+
"external/IXWebSocket/ixwebsocket/IXGetFreePort.h"
184+
"external/IXWebSocket/ixwebsocket/IXGzipCodec.cpp"
185+
"external/IXWebSocket/ixwebsocket/IXGzipCodec.h"
186+
"external/IXWebSocket/ixwebsocket/IXHttp.cpp"
187+
"external/IXWebSocket/ixwebsocket/IXHttp.h"
188+
"external/IXWebSocket/ixwebsocket/IXHttpClient.cpp"
189+
"external/IXWebSocket/ixwebsocket/IXHttpClient.h"
190+
"external/IXWebSocket/ixwebsocket/IXHttpServer.cpp"
191+
"external/IXWebSocket/ixwebsocket/IXHttpServer.h"
192+
"external/IXWebSocket/ixwebsocket/IXNetSystem.cpp"
193+
"external/IXWebSocket/ixwebsocket/IXNetSystem.h"
194+
"external/IXWebSocket/ixwebsocket/IXProgressCallback.h"
195+
"external/IXWebSocket/ixwebsocket/IXSelectInterrupt.cpp"
196+
"external/IXWebSocket/ixwebsocket/IXSelectInterrupt.h"
197+
"external/IXWebSocket/ixwebsocket/IXSelectInterruptEvent.cpp"
198+
"external/IXWebSocket/ixwebsocket/IXSelectInterruptEvent.h"
199+
"external/IXWebSocket/ixwebsocket/IXSelectInterruptFactory.cpp"
200+
"external/IXWebSocket/ixwebsocket/IXSelectInterruptFactory.h"
201+
"external/IXWebSocket/ixwebsocket/IXSelectInterruptPipe.cpp"
202+
"external/IXWebSocket/ixwebsocket/IXSelectInterruptPipe.h"
203+
"external/IXWebSocket/ixwebsocket/IXSetThreadName.cpp"
204+
"external/IXWebSocket/ixwebsocket/IXSetThreadName.h"
205+
"external/IXWebSocket/ixwebsocket/IXSocket.cpp"
206+
"external/IXWebSocket/ixwebsocket/IXSocket.h"
207+
"external/IXWebSocket/ixwebsocket/IXSocketAppleSSL.cpp"
208+
"external/IXWebSocket/ixwebsocket/IXSocketAppleSSL.h"
209+
"external/IXWebSocket/ixwebsocket/IXSocketConnect.cpp"
210+
"external/IXWebSocket/ixwebsocket/IXSocketConnect.h"
211+
"external/IXWebSocket/ixwebsocket/IXSocketFactory.cpp"
212+
"external/IXWebSocket/ixwebsocket/IXSocketFactory.h"
213+
"external/IXWebSocket/ixwebsocket/IXSocketMbedTLS.cpp"
214+
"external/IXWebSocket/ixwebsocket/IXSocketMbedTLS.h"
215+
"external/IXWebSocket/ixwebsocket/IXSocketOpenSSL.cpp"
216+
"external/IXWebSocket/ixwebsocket/IXSocketOpenSSL.h"
217+
"external/IXWebSocket/ixwebsocket/IXSocketServer.cpp"
218+
"external/IXWebSocket/ixwebsocket/IXSocketServer.h"
219+
"external/IXWebSocket/ixwebsocket/IXSocketTLSOptions.cpp"
220+
"external/IXWebSocket/ixwebsocket/IXSocketTLSOptions.h"
221+
"external/IXWebSocket/ixwebsocket/IXStrCaseCompare.cpp"
222+
"external/IXWebSocket/ixwebsocket/IXStrCaseCompare.h"
223+
"external/IXWebSocket/ixwebsocket/IXUdpSocket.cpp"
224+
"external/IXWebSocket/ixwebsocket/IXUdpSocket.h"
225+
"external/IXWebSocket/ixwebsocket/IXUniquePtr.h"
226+
"external/IXWebSocket/ixwebsocket/IXUrlParser.cpp"
227+
"external/IXWebSocket/ixwebsocket/IXUrlParser.h"
228+
"external/IXWebSocket/ixwebsocket/IXUserAgent.cpp"
229+
"external/IXWebSocket/ixwebsocket/IXUserAgent.h"
230+
"external/IXWebSocket/ixwebsocket/IXUtf8Validator.h"
231+
"external/IXWebSocket/ixwebsocket/IXUuid.cpp"
232+
"external/IXWebSocket/ixwebsocket/IXUuid.h"
233+
"external/IXWebSocket/ixwebsocket/IXWebSocket.cpp"
234+
"external/IXWebSocket/ixwebsocket/IXWebSocket.h"
235+
"external/IXWebSocket/ixwebsocket/IXWebSocketCloseConstants.cpp"
236+
"external/IXWebSocket/ixwebsocket/IXWebSocketCloseConstants.h"
237+
"external/IXWebSocket/ixwebsocket/IXWebSocketCloseInfo.h"
238+
"external/IXWebSocket/ixwebsocket/IXWebSocketErrorInfo.h"
239+
"external/IXWebSocket/ixwebsocket/IXWebSocketHandshake.cpp"
240+
"external/IXWebSocket/ixwebsocket/IXWebSocketHandshake.h"
241+
"external/IXWebSocket/ixwebsocket/IXWebSocketHandshakeKeyGen.h"
242+
"external/IXWebSocket/ixwebsocket/IXWebSocketHttpHeaders.cpp"
243+
"external/IXWebSocket/ixwebsocket/IXWebSocketHttpHeaders.h"
244+
"external/IXWebSocket/ixwebsocket/IXWebSocketInitResult.h"
245+
"external/IXWebSocket/ixwebsocket/IXWebSocketMessage.h"
246+
"external/IXWebSocket/ixwebsocket/IXWebSocketMessageType.h"
247+
"external/IXWebSocket/ixwebsocket/IXWebSocketOpenInfo.h"
248+
"external/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflate.cpp"
249+
"external/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflate.h"
250+
"external/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflateCodec.cpp"
251+
"external/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflateCodec.h"
252+
"external/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflateOptions.cpp"
253+
"external/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflateOptions.h"
254+
"external/IXWebSocket/ixwebsocket/IXWebSocketProxyServer.cpp"
255+
"external/IXWebSocket/ixwebsocket/IXWebSocketProxyServer.h"
256+
"external/IXWebSocket/ixwebsocket/IXWebSocketSendData.h"
257+
"external/IXWebSocket/ixwebsocket/IXWebSocketSendInfo.h"
258+
"external/IXWebSocket/ixwebsocket/IXWebSocketServer.cpp"
259+
"external/IXWebSocket/ixwebsocket/IXWebSocketServer.h"
260+
"external/IXWebSocket/ixwebsocket/IXWebSocketTransport.cpp"
261+
"external/IXWebSocket/ixwebsocket/IXWebSocketTransport.h"
262+
"external/IXWebSocket/ixwebsocket/IXWebSocketVersion.h"
162263
"external/ModUtils/MemoryMgr.h"
163264
"external/ModUtils/Patterns.cpp"
164265
"external/ModUtils/Patterns.h"
@@ -197,6 +298,7 @@ set(outrun2006tweaks_SOURCES
197298
"src/hooks_textures.cpp"
198299
"src/hooks_uiscaling.cpp"
199300
"src/network.cpp"
301+
"src/overlay/chatroom.cpp"
200302
"src/overlay/course_editor.cpp"
201303
"src/overlay/hooks_overlay.cpp"
202304
"src/overlay/notifications.hpp"
@@ -240,6 +342,7 @@ target_include_directories(outrun2006tweaks PUBLIC
240342
"external/xxHash/"
241343
"external/miniz/"
242344
"external/imgui/"
345+
"external/IXWebSocket/"
243346
)
244347

245348
target_link_libraries(outrun2006tweaks PUBLIC

cmake.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ ogg = { git = "https://github.com/xiph/ogg", tag = "v1.3.5" }
6060
flac = { git = "https://github.com/xiph/flac", tag = "1.4.3" }
6161
miniupnpc = { git = "https://github.com/miniupnp/miniupnp", tag = "miniupnpd_2_3_7", subdir = "miniupnpc" }
6262
jsoncpp = { git = "https://github.com/open-source-parsers/jsoncpp.git", tag = "1.9.6" }
63+
zlib = { git = "https://github.com/madler/zlib", tag = "v1.3.1" }
6364

6465
[target.outrun2006tweaks]
6566
type = "shared"
@@ -74,14 +75,16 @@ sources = ["*.ini", "src/**.cpp", "src/**.c", "src/**.def", "src/Resource.rc",
7475
"external/imgui/imgui_draw.cpp",
7576
"external/imgui/imgui_tables.cpp",
7677
"external/imgui/imgui_widgets.cpp",
78+
"external/IXWebSocket/ixwebsocket/**"
7779
]
7880
headers = ["src/**.hpp", "src/**.h", "external/ModUtils/Patterns.h", "external/ModUtils/MemoryMgr.h", "external/xxHash/xxhash.h", "external/miniz/miniz.h", "external/ini-cpp/ini/ini.h"]
7981
include-directories = ["shared/", "src/", "include/",
8082
"external/ModUtils/",
8183
"external/ini-cpp/ini/",
8284
"external/xxHash/",
8385
"external/miniz/",
84-
"external/imgui/"
86+
"external/imgui/",
87+
"external/IXWebSocket/"
8588
]
8689
compile-options = ["/GR-", "/GS-", "/bigobj", "/EHa", "/MP"]
8790
link-options = ["/DEBUG", "/OPT:REF", "/OPT:ICF"]

external/IXWebSocket

Submodule IXWebSocket added at fb5a1f0

src/hooks_framerate.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "hook_mgr.hpp"
22
#include "plugin.hpp"
33
#include "game_addrs.hpp"
4+
#include "overlay/overlay.hpp"
45

56
// from timeapi.h, which we can't include since our proxy timeBeginPeriod etc funcs will conflict...
67
typedef struct timecaps_tag {
@@ -295,7 +296,8 @@ class ReplaceGameUpdateLoop : public Hook
295296
// (do this inside our update-loop so that any hooked game funcs have accurate state...)
296297
Input::Update();
297298

298-
Game::ReadIO();
299+
if (!Overlay::IsActive)
300+
Game::ReadIO();
299301
Game::SoundControl_mb();
300302
Game::LinkControlReceive();
301303
Game::ModeControl();

0 commit comments

Comments
 (0)