Compare commits
2 Commits
e6aac8b7a1
...
dfecef7225
Author | SHA1 | Date | |
---|---|---|---|
dfecef7225 | |||
e03c9beecc |
@ -1221,9 +1221,45 @@ local function writeStats()
|
||||
end
|
||||
end
|
||||
|
||||
local function saveTime(player)
|
||||
local function checkFlags(p)
|
||||
local flags = 0
|
||||
|
||||
scoreTable = $ or {}
|
||||
-- Encore
|
||||
if encoremode then
|
||||
flags = $ | F_ENCORE
|
||||
end
|
||||
|
||||
if not cv_spbatk then
|
||||
cv_spbatk = CV_FindVar("spbatk")
|
||||
end
|
||||
|
||||
-- SPBAttack
|
||||
if server.SPBArunning and cv_spbatk.value then
|
||||
flags = $ | F_SPBATK
|
||||
|
||||
if server.SPBAexpert then
|
||||
flags = $ | F_SPBEXP
|
||||
end
|
||||
if p.SPBAKARTBIG then
|
||||
flags = $ | F_SPBBIG
|
||||
end
|
||||
if p.SPBAjustice then
|
||||
flags = $ | F_SPBJUS
|
||||
end
|
||||
end
|
||||
|
||||
return flags
|
||||
end
|
||||
|
||||
local function saveTime(player)
|
||||
-- Disqualify if the flags changed mid trial.
|
||||
if checkFlags(player) != Flags then
|
||||
print("Game mode change detected! Time has been disqualified.")
|
||||
S_StartSound(nil, 110)
|
||||
return
|
||||
end
|
||||
|
||||
scoreTable = $ or {}
|
||||
|
||||
local pskin = skins[player.mo.skin]
|
||||
local newscore = score_t(
|
||||
@ -1387,13 +1423,7 @@ local function think()
|
||||
end
|
||||
|
||||
-- Autospec
|
||||
-- Encore
|
||||
if leveltime == 1 then
|
||||
Flags = $ & !F_ENCORE
|
||||
if encoremode then
|
||||
Flags = $ | F_ENCORE
|
||||
end
|
||||
|
||||
if p then
|
||||
for s in players.iterate do
|
||||
if s.valid and s.spectator then
|
||||
@ -1402,49 +1432,30 @@ 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 server.SPBArunning
|
||||
and cv_spbatk.value
|
||||
and leveltime > START_TIME - (3 * TICRATE) / 2 then
|
||||
Flags = $ | F_SPBATK
|
||||
if server.SPBAexpert then
|
||||
Flags = $ | F_SPBEXP
|
||||
end
|
||||
Flags = 0
|
||||
if leveltime > START_TIME - (3 * TICRATE) / 2 then
|
||||
if clearcheats then
|
||||
clearcheats = false
|
||||
for q in players.iterate do
|
||||
q.SPBAKARTBIG = false
|
||||
q.SPBAjustice = false
|
||||
q.SPBAshutup = false
|
||||
if p then
|
||||
p.SPBAKARTBIG = false
|
||||
p.SPBAjustice = false
|
||||
p.SPBAshutup = false
|
||||
end
|
||||
end
|
||||
|
||||
if p then
|
||||
if p.SPBAKARTBIG then
|
||||
Flags = $ | F_SPBBIG
|
||||
end
|
||||
if p.SPBAjustice then
|
||||
Flags = $ | F_SPBJUS
|
||||
end
|
||||
end
|
||||
Flags = checkFlags(p)
|
||||
|
||||
-- make sure the spb actually spawned
|
||||
if leveltime == START_TIME - 1 then
|
||||
if server.SPBArunning and 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
|
||||
end
|
||||
|
||||
else
|
||||
hud.enable("freeplay")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
scoreTable = getScoreTable(gamemap, Flags)
|
||||
@ -1454,6 +1465,12 @@ local function think()
|
||||
end
|
||||
|
||||
if p then
|
||||
-- must be done before browser control
|
||||
if p.laps >= mapheaderinfo[gamemap].numlaps and timeFinished == 0 then
|
||||
timeFinished = p.realtime
|
||||
saveTime(p)
|
||||
end
|
||||
|
||||
-- Scroll controller
|
||||
-- Spectators can't input buttons so let the gamer do it
|
||||
if drawState == DS_SCROLL then
|
||||
@ -1478,7 +1495,7 @@ local function think()
|
||||
end
|
||||
|
||||
-- disable spba hud
|
||||
if server.SPBAdone then
|
||||
if server.SPBArunning and server.SPBAdone then
|
||||
server.SPBArunning = false
|
||||
p.pflags = $ & !(PF_TIMEOVER)
|
||||
p.exiting = 100
|
||||
@ -1509,10 +1526,6 @@ local function think()
|
||||
end
|
||||
end
|
||||
|
||||
if p.laps >= mapheaderinfo[gamemap].numlaps and timeFinished == 0 then
|
||||
timeFinished = p.realtime
|
||||
saveTime(p)
|
||||
end
|
||||
regLap(p)
|
||||
elseif cv_teamchange.value == 0 then
|
||||
allowJoin(true)
|
||||
|
Loading…
Reference in New Issue
Block a user