X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fmiscfunctions.qc;h=b0521975abaa6afcb6f6f4bc0b3131bbf7bff0df;hb=960db199ba59b839a5043aa9ee8e801b8ceeb115;hp=7eb10de0f736c0e974b3dd20def2a09203027c1e;hpb=94588f208d5a2320813cd5caddfc6bfd8584fe98;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/miscfunctions.qc b/qcsrc/server/miscfunctions.qc index 7eb10de0f..b0521975a 100644 --- a/qcsrc/server/miscfunctions.qc +++ b/qcsrc/server/miscfunctions.qc @@ -1209,6 +1209,8 @@ void readlevelcvars(void) sv_gentle = cvar("sv_gentle"); sv_foginterval = cvar("sv_foginterval"); g_cloaked = cvar("g_cloaked"); + if(g_cts) + g_cloaked = 1; // always enable cloak in CTS g_jump_grunt = cvar("g_jump_grunt"); g_footsteps = cvar("g_footsteps"); g_grappling_hook = cvar("g_grappling_hook"); @@ -1748,6 +1750,14 @@ void objerror(string s) objerror_builtin(s); } +.float remove_except_protected_forbidden; +void remove_except_protected(entity e) +{ + if(e.remove_except_protected_forbidden) + error("not allowed to remove this at this point"); + remove_builtin(e); +} + void remove_unsafely(entity e) { remove_builtin(e); @@ -1798,6 +1808,11 @@ void InitializeEntitiesRun() entity startoflist; startoflist = initialize_entity_first; initialize_entity_first = world; + remove = remove_except_protected; + for (self = startoflist; self; self = self.initialize_entity_next) + { + self.remove_except_protected_forbidden = 1; + } for (self = startoflist; self; ) { entity e; @@ -1807,6 +1822,7 @@ void InitializeEntitiesRun() self.initialize_entity_order = 0; self.initialize_entity = func_null; self.initialize_entity_next = world; + self.remove_except_protected_forbidden = 0; if (self.classname == "initialize_entity") { entity e_old; @@ -1824,6 +1840,7 @@ void InitializeEntitiesRun() } self = e; } + remove = remove_unsafely; } .float uncustomizeentityforclient_set;