diff --git a/default_sc.cfg b/default_sc.cfg index 520d128..73c5f23 100644 --- a/default_sc.cfg +++ b/default_sc.cfg @@ -8,6 +8,10 @@ alias pronoun_xey "impulse 26" alias pronoun_ze_hir "impulse 27" alias pronoun_ze_zir "impulse 28" +set sc_cheats 0 +set sc_lives 0 +set sc_dist_ammo 0 + echo "To change your pronouns in-game use one of the pronoun_ commands." echo "You can get a list by typing 'pronoun_' and pressing tab." diff --git a/source/defs.qc b/source/defs.qc index 99c26af..25f204e 100644 --- a/source/defs.qc +++ b/source/defs.qc @@ -269,6 +269,8 @@ string(string s) precache_file2 = #77; // registered version only // set parm1... to the values at level start for coop respawn void(entity e) setspawnparms = #78; +float(string s) checkextension = #99; + // constants -----------------------------------------------------------------| const vector VEC_ORIGIN = '0 0 0'; @@ -632,6 +634,8 @@ float sf_dist_ammo; float player_respawned; float all_players_are_dead; +float ext_con_set; + // fields --------------------------------------------------------------------| // world fields diff --git a/source/world.qc b/source/world.qc index 6767499..ac9ae2d 100644 --- a/source/world.qc +++ b/source/world.qc @@ -17,6 +17,12 @@ void() worldspawn = { lastspawn = world; InitBodyQue(); + if(cvar("pr_checkextension")) { + if(checkextension("DP_CON_SET")) { + ext_con_set = TRUE; + } + } + // custom map attributes if(self.model == "maps/e1m8.bsp") { cvar_set("sv_gravity", "100"); @@ -184,12 +190,18 @@ void() StartFrame = { teamplay = cvar("teamplay"); skill = cvar("skill"); - temp1flag = cvar("temp1"); framecount = framecount + 1; - sf_cheats = (temp1flag & SF_CHEATS) != 0; - sf_lives = bit_shift_right(temp1flag & SF_LIVES_MSK, SF_LIVES_BEG); - sf_dist_ammo = (temp1flag & SF_DIST_AMMO) != 0; + if(ext_con_set) { + sf_cheats = cvar("sc_cheats"); + sf_lives = cvar("sc_lives"); + sf_dist_ammo = cvar("sc_dist_ammo"); + } else { + temp1flag = cvar("temp1"); + sf_cheats = (temp1flag & SF_CHEATS) != 0; + sf_lives = bit_shift_right(temp1flag & SF_LIVES_MSK, SF_LIVES_BEG); + sf_dist_ammo = (temp1flag & SF_DIST_AMMO) != 0; + } if(all_players_are_dead) { delta = time - all_players_are_dead; diff --git a/todo b/todo index e668344..c7aa565 100644 --- a/todo +++ b/todo @@ -9,11 +9,12 @@ rename all functions to be lower_underscore core features: -add registercvar support +all done useful features: configurable enemy stats +impulse command for spectating indicators for where other players are users can cancel map ends (" initiated travel to ") @@ -28,6 +29,7 @@ third person player weapon models done: +add registercvar support corpse pickups have keys custom pronouns distributed ammo