return false;
}
-#if defined(CSQC) || defined(MENUQC)
-string(string filename) whichpack = #503;
-#endif
string _MapInfo_CheckArenaFile(string pFilename, string pMapname)
{
// returns the file name if valid, otherwise returns ""
vector(string) stov = #117;
string(string s) strzone = #118;
void(string s) strunzone = #119;
+void(string s, float chan, float vol) localsound = #177;
// FTEQW range #200-#299
//When caseinsensitive is set, the CRC is calculated of the lower cased string.
float(float caseinsensitive, string s, ...) crc16 = #494;
+//DP_QC_WHICHPACK
+//idea: divVerent
+//darkplaces implementation: divVerent
+//builtin definitions:
+string(string filename) whichpack = #503;
+//description:
+//for files in a pak/pk3/whatever, returns the pack's file name in FRIK_FILE name space.
+//for physical files, returns "".
+//in case of error, returns string_null.
+
//DP_QC_URI_ESCAPE
//idea: divVerent
//darkplaces implementation: divVerent
vector gettaginfo_right;
vector gettaginfo_up;
float checkpvs(vector viewpos, entity viewee) = #240;
+// bones_was_here: commented as QC wants to use this but we still need to support div0-stable:
+//float mod(float dividend, float divisor) = #245;
//idea: divVerent
//darkplaces implementation: divVerent
//builtin definitions:
-entity(.string fld, float match, .entity tofield) findradius_tofield = #22;
+entity(vector org, float rad, .entity tofield) findradius_tofield = #22;
entity(.string fld, string match, .entity tofield) findchain_tofield = #402;
-entity(.string fld, float match, .entity tofield) findchainflags_tofield = #450;
-entity(.string fld, float match, .entity tofield) findchainfloat_tofield = #403;
+entity(.float fld, float match, .entity tofield) findchainflags_tofield = #450;
+entity(.float fld, float match, .entity tofield) findchainfloat_tofield = #403;
//description:
//similar to findchain() etc, but stores the chain into .tofield instead of .chain
//actually, the .entity tofield is an optional field of the the existing findchain* functions
//description:
//extension to search_begin (DP_QC_FS_SEARCH), performs a filename search with the specified pattern (for example "maps/*.bsp") and stores the results in a search slot (minimum of 128 supported by any engine with this extension), the other functions take this returned search slot number, be sure to search_free when done (they are also freed on progs reload).
//only searches for files within the specified packfile, which is expected to match the results of whichpack().
+
+//EXT_CSQC (registercommand for CSQC, now also available in SVQC)
+//idea: probably Spoike
+//darkplaces implementation: Cloudwalk
+//builtin definitions:
+void(string cmdname) registercommand = #352;
+//engine-called QC prototypes:
+//float CSQC_ConsoleCommand(string command);
+//float ConsoleCmd(string command);
+//description:
+//Adds a new console command which will take priority over a previous command of the same name (including engine commands) and in CSQC is removed when the VM shuts down. This will call CSQC_ConsoleCommand(string command) or ConsoleCmd(string command) in SVQC. Return value should be true if QC handled the command, otherwise return false to have the engine handle it.
+
+
+//DP_QC_FINDBOX
+//idea: Mario
+//darkplaces implementation: bones_was_here
+//builtin definitions:
+entity(vector mins, vector maxs) findbox = #566;
+entity(vector mins, vector maxs, .entity tofield) findbox_tofield = #566;
+//description:
+//Returns a chain of entities that are touching a box (a simpler findradius); supports DP_QC_FINDCHAIN_TOFIELD
+
+// bones_was_here: commented as QC wants to use this but we still need to support div0-stable:
+//float(float dividend, float divisor) mod = #245;
//if the given digest is not supported, string_null is returned
//the digest string is matched case sensitively, use "MD4", not "md4"!
+//DP_QC_WHICHPACK
+//idea: divVerent
+//darkplaces implementation: divVerent
+//builtin definitions:
+string(string filename) whichpack = #503;
+//description:
+//for files in a pak/pk3/whatever, returns the pack's file name in FRIK_FILE name space.
+//for physical files, returns "".
+//in case of error, returns string_null.
+
//DP_QC_URI_ESCAPE
//idea: div0
//darkplaces implementation: div0
float FL_MONSTER = 32;
float FL_GODMODE = 64; // player cheat
float FL_NOTARGET = 128; // player cheat
-float FL_ITEM = 256; // extra wide size for bonus items
+float FL_ITEM = 256; // extra wide size for bonus items IF sv_legacy_bbox_expand is 1
float FL_ONGROUND = 512; // standing on something
float FL_PARTIALGROUND = 1024; // not all corners are valid
float FL_WATERJUMP = 2048; // player jumping out of water
APPEND_TO_STRING(un_bannedservers, " ", s);
break;
}
- case "E":
+ case "H":
{
- if(cvar("menu_updatecheck_getpacks"))
- APPEND_TO_STRING(un_emergency_pk3s, " ", s);
+ // Hotfix (version-specific pk3 supported in >= 0.8.6)
+ // replaces "E" (missing-file-specific pk3 supported in <= 0.8.5)
+ APPEND_TO_STRING(un_emergency_pk3s, " ", s);
break;
}
case "P":
allgood = true;
for(i = 0; i+1 < n; i += 2)
{
- if(fexists(argv(i+1)))
+ if(strcmp(argv(i+1), cvar_string("g_xonoticversion"))) // these aren't the versions we're looking for
continue;
+ string packfn = whichpack("hotfix-autoexec.cfg");
+ if(packfn) // we have the cfg we're looking for in some pk3
+ {
+ if(!strncmp(packfn, "dlcache/", 8)) // it's in dlcache
+ packfn = substring(packfn, 8, strlen(packfn)); // strip prefix "dlcache/"
+ if(strstrofs(argv(i), packfn, strlen(argv(i)) - strlen(packfn)) > 0) // last chars of url == packfn
+ continue; // the pk3 we're looking for already provides the cfg we're looking for
+ }
allgood = false;
if(_Nex_ExtResponseSystem_PacksStep == 1) // first run
localcmd("\ncurl --pak \"", argv(i), "\"\n");
if(!Menu_Active)
cvar_set("_menu_initialized", "0");
// HACK: cause m_hide call on next start
- localcmd("\nmenu_restart\n");
+ //localcmd("\nmenu_restart\n"); // <= 0.8.5
+ localcmd("\nexec hotfix-autoexec.cfg\n");
}
_Nex_ExtResponseSystem_PacksStep = 0;
}
else
_Nex_ExtResponseSystem_PacksStep = 2;
}
-
}
float preMenuInit()
set cl_effects_lightningarc_branchfactor_start 0.25
set cl_effects_lightningarc_branchfactor_add 0.1
-set menu_updatecheck_getpacks 1 "get update packs from update server"
-
seta cl_loddistance1 1024
seta cl_loddistance2 3072
seta cl_playerdetailreduction 4 "the higher, the less detailed player models are displayed (LOD)"