-- hi i am still maril
-- lets add old strafe and etc

freeslot("MT_OTHK", "SPR_OTHK")

mobjinfo[MT_OTHK] = {
	spawnstate = mobjinfo[MT_THOK].spawnstate,
	spawnsound = mobjinfo[MT_THOK].spawnsound,
	deathstate = mobjinfo[MT_THOK].deathstate,
	deathsound = mobjinfo[MT_THOK].deathsound
}

local oangleturn = nil

addHook("PlayerThink", function(p)
	if p.skin ~= #skins["xmassonic"] then return end
	p.pflags = $ & ~(PF_FLIPCAM|PF_ANALOGMODE|PF_DIRECTIONCHAR|PF_AUTOBRAKE|PF_APPLYAUTOBRAKE)
end)

addHook("PlayerCmd", function(p, cmd)
	if p.skin ~= #skins["xmassonic"] then return end
	
	if oangleturn == nil then oangleturn = cmd.angleturn end
	
	if cmd.buttons & BT_CUSTOM3 then
		cmd.sidemove = (input.gameControlDown(GC_TURNRIGHT) - input.gameControlDown(GC_TURNLEFT))*50
		cmd.angleturn = oangleturn
	else
		cmd.sidemove = 0
	end
	
	if p.pflags & PF_JUMPED then
		cmd.forwardmove = $ >> 2
		cmd.sidemove = $ >> 3
	end
	
	oangleturn = cmd.angleturn
end)

addHook("MobjThinker", function(thok)
	if thok.sprite == SPR_THOK then thok.sprite = SPR_OTHK end
end, MT_OTHK)