state("Autopsy Simulator"){}

startup
{
	vars.Log = (Action<object>)(output => print("[Autopsy Simulator] " + output));
	Assembly.Load(File.ReadAllBytes("Components/asl-help")).CreateInstance("Unity");
	vars.Helper.GameName = "Autopsy Simulator";
	vars.Helper.LoadSceneManager = true;

	dynamic[,] _settings =
	{
		{ "Splits", true, "Splits (MANUAL FINAL SPLIT)", null },
			{ "ch01s01_Jacks_Apartment", true, "Prologue", "Splits" },
			{ "ch02s01_Jacks_Apartment", true, "Chapter 1", "Splits" },
			{ "ch03s01_Jacks_Apartment", true, "Chapter 2", "Splits" },
			{ "ch05s02_Autopsy_Complex", true, "Chapter 3", "Splits" },
			{ "ch06s01_Autopsy_Complex", true, "Chapter 4", "Splits" },
	};
	
	vars.Helper.Settings.Create(_settings);
	vars.CompletedSplits = new HashSet<string>();
}

init
{
	current.activeScene = "";
}

update
{
	current.activeScene = vars.Helper.Scenes.Active.Name == null ? current.activeScene : vars.Helper.Scenes.Active.Name;
	if(current.activeScene != old.activeScene) vars.Log("active: Old: \"" + old.activeScene + "\", Current: \"" + current.activeScene + "\"");
}

onStart
{
	// This makes sure the timer always starts at 0.00
	timer.IsGameTimePaused = true;
	vars.CompletedSplits.Clear();
}
start
{
	return old.activeScene == "Base_Scene_MainMenu" && current.activeScene == "Base_Scene_Loading";
}

split
{
	if ((old.activeScene != current.activeScene) && settings.ContainsKey(current.activeScene) && !vars.CompletedSplits.Contains(current.activeScene))
		{
			vars.CompletedSplits.Add(current.activeScene);
			return true;
		}
}

isLoading
{
	return current.activeScene == "Base_Scene_Loading"
		|| current.activeScene == "ch0s02_Autopsy_Complex"
		|| current.activeScene == "ch0s03_Autopsy_Nightmare"
		|| current.activeScene == "ch01s01_Jacks_Apartment"
		|| current.activeScene == "ch01s02_Autopsy_Complex"
		|| current.activeScene == "ch01s03_Jacks_Apartment"
		|| current.activeScene == "ch02s01_Jacks_Apartment"
		|| current.activeScene == "ch02s02_Jacks_Apartment"
		|| current.activeScene == "ch02s03_Autopsy_Complex"
		|| current.activeScene == "ch02s04_Jacks_Apartment"
		|| current.activeScene == "ch03s01_Jacks_Apartment"
		|| current.activeScene == "ch03s02_Autopsy_Complex"
		|| current.activeScene == "ch05s02_Autopsy_Complex"
		|| current.activeScene == "ch0s04_Autopsy_Nightmare_2"
		|| current.activeScene == "ch06s01_Autopsy_Complex";
}