--FixedLerp
local function FixedLerp(a, b, w)
    return FixedMul((FRACUNIT - w), a) + FixedMul(w, b)
end



addHook("PostThinkFrame", function()
	for player in players.iterate()
		local mo = player.mo
		if not (mo and mo.valid) continue end
		if (player == nil) or (player.playerstate != PST_LIVE) continue end
		if (G_RingSlingerGametype())continue end
	
		if (mo.previousx == nil) or (mo.previousy == nil) or (mo.previousz == nil)
			mo.previousx = mo.x
			mo.previousy = mo.y
			mo.previousz = mo.z
		end
		

		if (player.mo.skin == "flame")
		and player.ftd.thoktrail == 1

			for i = 0, 9
				local percent = FRACUNIT * (i * 10) / 100
				local trail = P_SpawnGhostMobj(player.mo)
				local tx = FixedLerp(mo.x,mo.previousx,percent)
				local ty = FixedLerp(mo.y,mo.previousy,percent)
				local tz = FixedLerp(mo.z + 3*FRACUNIT,mo.previousz + 4*FRACUNIT,percent)
				P_TeleportMove(trail, tx, ty, tz - 7 * FRACUNIT)
				trail.color = mo.color
				trail.colorized = true
				trail.fuse = 13
				trail.scalespeed = FRACUNIT/12
				trail.scale = (FRACUNIT * 5/6) - (i * FRACUNIT/120)
				trail.destscale = 0
                trail.blendmode = AST_ADD
			end
		end

		mo.previousx = mo.x
		mo.previousy = mo.y
		mo.previousz = mo.z
	end
end)
///P_SpawnGhostMobj(p.mo)