		addHook("PostThinkFrame", function(player)
		for player in players.iterate
		if (gamemap == 98 or gamemap == 97 or gamemap == 96 or gamemap == 79)
			local cam_still = CV_FindVar("cam_still")
			CV_Set(cam_still, 1)
			player.mo.angle = R_PointToAngle2(0, 0, 0, 0)
			player.camerascale = 2*FRACUNIT
			camera.aiming = FixedAngle(-10*FRACUNIT)
			camera.chase = true
			camera.angle = 0
			end
		end
	end)
	addHook("MobjThinker", function(mobj)
	mobj.momz = 0
	mobj.scale = FRACUNIT/4
	end, MT_TOAD)
	
addHook("BossThinker", function(mobj)
	if mobj.state == S_METALSONIC_SHOOT
		for player in players.iterate() do
				local ciro = P_SpawnMissile(mobj, player.mo, MT_ENERGYBALL)
				ciro.target = mobj
				ciro.scale = 5*FRACUNIT
				P_StartQuake(25*FRACUNIT, 1)
		end
	end
	mobj.spritexscale = FRACUNIT/4
	mobj.spriteyscale = FRACUNIT/4
end)
addHook("BossThinker", function(mobj)
	if mobj.state == S_METALSONIC_DASH
		for player in players.iterate() do
		if leveltime % TICRATE == 1
				P_HomingAttack(mobj,player.mo)
				P_StartQuake(30*FRACUNIT, 1)
				end
			end
		end
	end)

addHook("PlayerSpawn", function(player)
if gamemap == 79
print("models turned off due to cirno replacing metal sonic")
print("sorry")
COM_BufInsertText(player, "gr_models off")
	end
end)