2256: 0.7 Compatibility layer r=def- a=Learath2
This turned out much uglier then expected but I just don't have it in me to scrap this again.
This "mostly" works, what remains is:
- [ ] Map Conversions
- [x] Whispers
- [x] Serverinfo
Co-authored-by: Tim Schumacher <tim@timakro.de>
Co-authored-by: Learath <learath2@gmail.com>
Co-authored-by: def <dennis@felsin9.de>
2245: Stop playing map sound when demo player is paused r=heinrich5991 a=def-
Noticed on Shooting Range map
2266: Reset hook & collision in prediction after kill r=heinrich5991 a=def-
Thanks to Pipou for reporting
Co-authored-by: def <dennis@felsin9.de>
2276: Fix segmentation fault when creating sql tables failed r=heinrich5991 a=Zwelf
`GameServer()->OnShutdown(true);` (which would wait on running threads to exit)
wasn't called if an error occured in the server init. Therefore `CServer` was
freed before the init-thread finished executing, causing a use after free from
`CSqlConnector::ms_ppSqlReadServers` pointing to `CServer->m_apSqlReadServers`.
Fixes#2271
Note that the server exits when creating tables failed. Since the tables are created by default, it has to be disabled explicitly (e.g. `add_sqlserver r teeworlds record teeworlds PASSWORD "localhost" 3306 0`) if the servers should start even when the database connection fails.
Co-authored-by: Zwelf <zwelf@strct.cc>
`GameServer()->OnShutdown(true);` (which would wait on running threads to exit)
wasn't called if an error occured in the server init. Therefore `CServer` was
freed before the init-thread finished executing, causing a use after free from
`CSqlConnector::ms_ppSqlReadServers` pointing to `CServer->m_apSqlReadServers`.