diff --git a/src/client/component/party.cpp b/src/client/component/party.cpp index 2e0c9f98..83523d8f 100644 --- a/src/client/component/party.cpp +++ b/src/client/component/party.cpp @@ -31,10 +31,34 @@ namespace party return server_queries; } + void stop_zombies_intro_when_needed() + { + if (game::Com_SessionMode_GetMode() != game::MODE_ZOMBIES) + { + return; + } + + scheduler::once([] + { + scheduler::schedule([] + { + if (!game::Sys_IsDatabaseReady()) + { + return scheduler::cond_continue; + } + + game::Cinematic_StopPlayback(0, true); + return scheduler::cond_end; + }, scheduler::main); + }, scheduler::main, 15s); + } + void connect_to_lobby(const game::netadr_t& addr, const std::string& mapname, const std::string& gamemode) { game::XSESSION_INFO info{}; game::CL_ConnectFromLobby(0, &info, &addr, 1, 0, mapname.data(), gamemode.data()); + + stop_zombies_intro_when_needed(); } void launch_mode(const game::eModes mode) diff --git a/src/client/game/symbols.hpp b/src/client/game/symbols.hpp index b3b2194d..84ec178c 100644 --- a/src/client/game/symbols.hpp +++ b/src/client/game/symbols.hpp @@ -43,13 +43,16 @@ namespace game WEAK symbol MSG_ReadByte{0x142155EB0, 0x14050D1B0}; // NET - WEAK symbol NET_SendPacket{0x142332F70, 0x140596E40}; + WEAK symbol NET_SendPacket{ + 0x142332F70, 0x140596E40 + }; WEAK symbol NET_StringToAdr{0x1421731E0, 0x140515110}; // Sys WEAK symbol Sys_Milliseconds{0x142333430}; - WEAK symbol Sys_ShowConsole{0x142333F80, 0x140597E40 }; + WEAK symbol Sys_ShowConsole{0x142333F80, 0x140597E40}; WEAK symbol Sys_GetTLS{0x142184210, 0x140525EB0}; + WEAK symbol Sys_IsDatabaseReady{0x1421844C0}; // Dvar WEAK symbol Dvar_FindVar{0x1422BD730, 0x140575540}; @@ -61,6 +64,8 @@ namespace game 0x1422C7F60 }; + WEAK symbol Cinematic_StopPlayback{0x1412BEA70}; + // Rendering WEAK symbol R_AddCmdDrawText{