addHook("PlayerThink", function(player)
	player.debug = false
	if player.data == "true" then
		player.canfloat = true
	end
	if player.data == "false" then
		player.canfloat = false
	end
	if player.mo.skin == "whitesonic" then
					player.powers[pw_invulnerability] = 10*TICRATE
					player.mo.sparklespower = true
					end
	if player.mo.color != SKINCOLOR_BLARE and player.mo.skin == "whitesonic"  then
			player.mo.color = SKINCOLOR_BLARE
			print("lol no")
			end
		if player.mo.skin == "whitesonic" and gamemap == 01 and player.rings >= 200 then
		G_SetCustomExitVars(1001)
	  end
	  if player.mo.skin != "whitesonic" and gamemap == 1001 then
	   player.mo.skin = "whitesonic"
	   print("white sonic only :)")
	  end
	  	if player.mo.skin == "whitesonic" and gamemap == 1001 then
	   player.canfloat = true
	  end
	  
	if player.canfloat == true then
	if player.mo.skin == "whitesonic" and not P_IsObjectOnGround(player.mo) and not player.mo.standingslope and not (player.mo.eflags & MFE_SPRUNG) and  player.cmd.buttons&BT_CUSTOM1 then
			player.floating = true
			player.pflags = $|PF_THOKKED
			player.mo.state = S_PLAY_CLIMB
			player.mo.momz = 0
	if  player.mo.skin == "whitesonic" and  not (player.cmd.buttons & BT_CUSTOM1) and not P_IsObjectOnGround(player.mo) then
		player.floating = false
		player.mo.state = S_PLAY_FALL
		player.mo.sprite2 = SPR2_FALL
		end
			if player.mo.skin == "whitesonic" and player.floating and player.cmd.buttons&BT_JUMP then
					P_SetObjectMomZ(player.mo, 13*FRACUNIT, true)
						end
					if player.mo.skin == "whitesonic" and player.floating and player.cmd.buttons&BT_SPIN then
				P_SetObjectMomZ(player.mo, -13*FRACUNIT, true)
			end
				if player.mo.skin == "whitesonic" and player.floating and player.mo.momx < 1*FRACUNIT 
					P_SetObjectMomZ(player.mo, -6*FRACUNIT, true)
					end
				end
			end
		end
	
	
)
addHook("AbilitySpecial", function(player)
if player.mo.skin == "whitesonic" then
	if player.pflags&PF_THOKKED
	return true
	end
	local zjump = player.mo.momz + 10*FRACUNIT
	player.mo.momz =  zjump
	P_InstaThrust(player.mo, player.mo.angle, 84*FRACUNIT)
	P_FlashPal(player, PAL_WHITE, 5)
	S_StartSound(player.mo, sfx_zoom)
	player.pflags = $|PF_THOKKED
	return true
	end
end
)
addHook("JumpSpinSpecial", function(player)
if player.mo.skin == "whitesonic" then
	if player.pflags&PF_THOKKED
	return true
	end
	local radiurs = player.mo.radius + 1286*FRACUNIT
	P_FlashPal(player, PAL_WHITE, 5)
	player.mo.state = S_PLAY_SUPER_TRANS1
	P_NukeEnemies(player.mo, player.mo, radiurs)
	S_StartSound(player.mo, sfx_s3k9f)
	player.pflags = $|PF_THOKKED
	end
end
)