add ghost proximity transparency + cv

This commit is contained in:
Not 2023-10-11 18:24:31 +02:00
parent 418f9b01f7
commit d9df5d6940
1 changed files with 26 additions and 10 deletions

View File

@ -35,6 +35,8 @@ local mapChecksum = lb_map_checksum
local Transmitter = lb_transmitter
local Reciever = lb_reciever
local Player
local Client
local Server
@ -174,6 +176,24 @@ local function GhostTable(header)
return t
end
local transProximity = 150
local function calcTrans(mobj)
local dist = R_PointToDist2(mobj.x, mobj.y, Player.mo.x, Player.mo.y)
local i = dist / transProximity
local tr = 9 - min(9, FixedInt(i * 9))
return tr << FF_TRANSSHIFT
end
CV_RegisterVar({
name = "lb_ghost_trans_prox",
defaultvalue = 150,
flags = CV_CALL,
PossibleValue = CV_NATURAL,
func = function(cv)
transProximity = cv.value
end
})
local function ghost_think(mobj)
if mobj.done then return end
if leveltime < 1 then return end
@ -186,7 +206,6 @@ local function ghost_think(mobj)
local ghost = Ghosts:getData(mobj.playerName)
local frame = ghost:frame(leveltime)
if frame == nil then
--ghost.flags = $ | MF_NOTHINK
mobj.done = true
mobj.state = S_KART_STND1
mobj.momx, mobj.momy = ghost:thrust(leveltime-1)
@ -196,14 +215,10 @@ local function ghost_think(mobj)
P_MoveOrigin(mobj, frame.x, frame.y, frame.z)
mobj.angle = frame.angle
mobj.state = frame.state
mobj.frame = mobj.frame & (~FF_TRANSMASK)
mobj.frame = mobj.frame | FF_TRANS30
--if leveltime < TICRATE * 10 then
-- mobj.flags2 = $ | MF2_DONTDRAW
--else
-- mobj.flags2 = $ & (~MF2_DONTDRAW)
--end
mobj.frame
= mobj.frame
& (~FF_TRANSMASK)
| calcTrans(mobj)
return true
end
@ -320,7 +335,8 @@ end
addHook("ThinkFrame", function()
if not Recording then return end
local p = singlePlayer()
Player = singlePlayer()
local p = Player
if not p then
Server:stop()
Client:stop()