//Made with EU version of the game and PCSX2 Nightly
state("LiveSplit")
{
}

startup
{
    Assembly.Load(File.ReadAllBytes("Components/emu-help-v2")).CreateInstance("PS2");

    settings.Add("TH", true, "Thunderbirds");
        settings.Add("ANY", true, "Any% ", "TH");
            settings.Add("MISSION0", true, "Complete Training Mission", "ANY");
            settings.Add("MISSION1", true, "Complete Tick-Tock Goes the Clock", "ANY");
            settings.Add("MISSION2", true, "Complete Mayday! Mayday! Plane-X Down!", "ANY");
            settings.Add("MISSION3", true, "Complete Mega Storm!", "ANY");
            settings.Add("MISSION4", true, "Complete End of the line!", "ANY");
            settings.Add("MISSION5", true, "Complete Cosmic Capers!", "ANY");
            settings.Add("MISSION6", true, "Complete Dam of Disaster!", "ANY");
            settings.Add("MISSION7", true, "Complete Temple of Doom!", "ANY");
}

init
{
    vars.Helper.Load = (Func<dynamic, bool>)(emu => 
    {
        emu.Make<byte>("GameStart", 0x33B44C);
        emu.Make<byte>("MissionID", 0x2E1C24);
        emu.Make<byte>("ResultsScreen", 0x7DDD0D);

        return true;
    });

    vars.CompletedSplits = new HashSet<string>();
}

start
{
    //Starts when selecting Training Mission
    return current.GameStart == 1 && old.GameStart == 0;
}

split
{
    //Splits on each Missions Results Screen
    if(current.ResultsScreen == 1 && !vars.CompletedSplits.Contains("MISSION" + current.MissionID))
    {
        return settings["MISSION" + current.MissionID] && vars.CompletedSplits.Add("MISSION" + current.MissionID);
    }
}

onStart
{
    vars.CompletedSplits.Clear();
}