]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/checkextension.qc
Add engine extension checks at VM startup and a nudgeoutofsolid fallback
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / checkextension.qc
1 #include "checkextension.qh"
2
3 void CheckEngineExtensions(void)
4 {
5         if (!cvar("pr_checkextension"))
6                 LOG_FATAL("Engine lacks the QC extension system.");
7
8         if (!checkextension("DP_QC_URI_GET") || !checkextension("DP_QC_URI_POST"))
9                 LOG_WARN("Engine lacks HTTP support, XonStat and map downloads are unavailable.");
10
11         if (!checkextension("DP_CRYPTO"))
12                 LOG_WARN("Engine lacks DP_CRYPTO, Player IDs (required for XonStat and CTS/CTF records) are unavailable.");
13
14 #ifdef SVQC // change to GAMEQC if/when we use nudgeoutofsolid in CSQC
15         if (!checkextension("DP_QC_NUDGEOUTOFSOLID"))
16         {
17                 LOG_WARN("Engine lacks DP_QC_NUDGEOUTOFSOLID, falling back to WarpZoneLib_MoveOutOfSolid().");
18                 // DP_QC_NUDGEOUTOFSOLID fixes many cases WarpZoneLib_MoveOutOfSolid() can't, usually in less CPU time
19                 nudgeoutofsolid = WarpZoneLib_MoveOutOfSolid;
20         }
21 #endif
22
23         // TODO: add proper warns/errors for other extensions we depend on
24 }