-- Lua by JugadorXEI
-- Add "lua.speedpadstoring = true" into your map header to enable.

if (speedpadstore_initialized) then return end -- Check if the script has already been run

local SPEEDPAD = 1280

local function speedPadStoring(mobj)
	if 	mapheaderinfo[gamemap] == nil 					or
		mapheaderinfo[gamemap].speedpadstoring == false then
			return end

	local player 		= mobj.player
	mobj.dashPadStoring = $ or 0
	mobj.lastDriftAngle = $ or 0
	mobj.lastDriftValue = $ or 0

	local inSpeedPadFoF = P_ThingOnSpecial3DFloor(mobj)

	if inSpeedPadFoF ~= nil then
		inSpeedPadFoF = ($.special & SPEEDPAD) == SPEEDPAD
	end

	if ((P_PlayerTouchingSectorSpecial(player, 3, 5) ~= nil and
		P_IsObjectOnGround(mobj) == true) 					or
		inSpeedPadFoF 		== true)						and
		mobj.lastDriftAngle ~= 0							and
		mobj.dashPadStoring == 0 							then
		
		player.kartstuff[k_drift] 		= mobj.lastDriftAngle
		player.kartstuff[k_driftcharge] = mobj.lastDriftValue
		mobj.dashPadStoring = 3

	elseif mobj.dashPadStoring > 0 then
		mobj.dashPadStoring = $ - 1
	else
		mobj.lastDriftAngle = player.kartstuff[k_drift]
		mobj.lastDriftValue = player.kartstuff[k_driftcharge]
	end

end

addHook("MobjThinker", 	speedPadStoring, MT_PLAYER)

rawset(_G, "speedpadstore_initialized", true) -- The script ran, don't run it again