5 Commits

Author SHA1 Message Date
Not
c83dc1d070 don't allow retry on battlemaps 2022-09-03 00:42:18 +02:00
Not
c150ed6be1 reinitialize lb only if ST_SEP has changed 2022-08-25 00:56:17 +02:00
Not
499f00b6f4 noinit cv_spb_combined 2022-08-25 00:32:03 +02:00
Not
a840a5fa83 revert maploaded cvars 2022-08-24 16:18:24 +02:00
Not
bd5e3f24c6 add extra checks for spbattack 2022-08-23 17:10:10 +02:00

View File

@ -12,7 +12,6 @@ local splits = {}
local PATCH = nil
local help = true
local EncoreInitial = nil
local cv_teamchange
local scoreTable
@ -91,6 +90,10 @@ local ticsToTime
local allowJoin
---------------
-- cvars
local cv_teamchange
local cv_spbatk
local cv_gui = CV_RegisterVar({
name = "lb_gui",
defaultvalue = GUI_ON,
@ -209,17 +212,21 @@ end
local cv_spb_separate = CV_RegisterVar({
name = "lb_spb_combined",
defaultvalue = 1,
flags = CV_NETVAR | CV_CALL,
flags = CV_NETVAR | CV_CALL | CV_NOINIT,
PossibleValue = CV_YesNo,
func = function(v)
local curSep = ST_SEP
if v.value then
ST_SEP = F_SPBATK
else
ST_SEP = F_SPBATK | F_SPBBIG | F_SPBEXP
end
if curSep != ST_SEP then
reinit_lb()
end
end
})
local function score_t(map, name, skin, color, time, splits, flags, stat)
@ -367,6 +374,12 @@ end
local function retry(player, ...)
if doyoudare(player) then
-- Verify valid race level
if not (mapheaderinfo[gamemap].typeoflevel & (TOL_SP | TOL_RACE)) then
CONS_Printf(player, "Battle maps are not supported")
return
end
-- Prevents bind crash
if leveltime < 20 then
return
@ -1379,10 +1392,15 @@ local function think()
end
end
end
if not cv_spbatk then
cv_spbatk = CV_FindVar("spbatk")
end
-- Gamemode flags
Flags = $ & !(F_SPBATK | F_SPBEXP | F_SPBBIG | F_SPBJUS)
if leveltime > START_TIME - (3 * TICRATE) / 2 and server.SPBArunning then
if server.SPBArunning
and cv_spbatk.value
and leveltime > START_TIME - (3 * TICRATE) / 2 then
Flags = $ | F_SPBATK
if server.SPBAexpert then
Flags = $ | F_SPBEXP
@ -1405,10 +1423,18 @@ local function think()
end
end
-- make sure the spb actually spawned
if leveltime == START_TIME - 1 then
if not (server.SPBAbomb and server.SPBAbomb.valid) then
-- it didn't spawn, clear spb flags
Flags = $ & !(F_SPBATK | F_SPBEXP | F_SPBBIG | F_SPBJUS)
end
if not (Flags & F_SPBATK) then
end
else
hud.enable("freeplay")
end
end
scoreTable = getScoreTable(gamemap, Flags)