-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathDriverPL.asl
More file actions
119 lines (108 loc) · 4.19 KB
/
DriverPL.asl
File metadata and controls
119 lines (108 loc) · 4.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
state ("DriverParallelLines")
{
string20 mission : 0x2E72BC;
}
startup
{
settings.Add("missionStart", true, "Start of Mission", null);
settings.SetToolTip("missionStart",
@"Splits at the start of a mission (when the Briefing/Cutscene comes up).
For most missions, this will also split when you select the 'Lowdown' from the map.");
settings.Add("missions1978", true, "1978", "missionStart");
settings.Add("missions2006", true, "2006", "missionStart");
settings.CurrentDefaultParent = "missions1978";
settings.Add("mission_1_2.xmv", true, "Wheelman");
settings.Add("mission_1_3.xmv", true, "Gunman");
settings.Add("mission_1_35.xmv", true, "Pay Ray");
settings.SetToolTip("mission_1_35.xmv", "Mission starts automatically after Gunman");
settings.Add("mission_1_4.xmv", true, "Hot Wheels");
settings.Add("mission_2_3.xmv", true, "Repoman");
settings.Add("mission_2_1.xmv", true, "Bread Run");
settings.Add("mission_2_2.xmv", true, "Last Chance");
settings.Add("mission_3_1.xmv", true, "Rosalita Racer");
settings.Add("mission_4_1.xmv", true, "Paddy Wagon");
settings.Add("mission_4_2.xmv", true, "Turning the Screw");
settings.Add("mission_5_1.xmv", true, "Air Mail");
settings.Add("mission_4_3.xmv", true, "Jail Break");
settings.Add("mission_3_2.xmv", true, "Curcuit Breaker");
settings.Add("mission_6_3.xmv", true, "Gift Wrapped");
settings.Add("mission_7_1.xmv", true, "Kidnap");
settings.Add("mission_7_2.xmv", true, "Ransom");
settings.CurrentDefaultParent = "missions2006";
settings.Add("SCENE9.xmv", true, "The Mexican");
settings.Add("SCENE10.xmv", true, "Tailgate");
settings.SetToolTip("SCENE10.xmv", "Mission starts automatically after The Mexican");
settings.Add("mission_9_3.xmv", true, "Riding Shotgun");
settings.Add("mission_10_2.xmv", true, "Ram Raider (actual Mission)");
settings.Add("mission_10_3.xmv", true, "Rush Hour");
settings.Add("mission_9_2.xmv", true, "Gauntlet");
settings.Add("SCENE13.xmv", true, "Slink");
settings.Add("Scene12.xmv", true, "Candy");
settings.Add("mission_11_1.xmv", true, "Gate Crasher");
settings.Add("mission_12_1.xmv", true, "Home Wrecker");
settings.Add("mission_12_3.xmv", true, "Bear Cage");
settings.Add("mission_12_4.xmv", true, "Corrigan");
settings.CurrentDefaultParent = null;
settings.Add("other", true, "Other Splits");
settings.CurrentDefaultParent = "other";
settings.Add("SCENE3.xmv", false, "Cinematic after Hot Wheels");
settings.Add("SCENE4.xmv", false, "Cinematic at Safe House available");
settings.SetToolTip("SCENE4.xmv", "Occurs after Repoman, Bread Run or Last Chance (depending on play order)");
settings.Add("SCENE5.xmv", false, "Cinematic after last mission of Jail Break set of missions");
settings.Add("SCENE6.xmv", false, "Cinematic after Gift Wrapped");
settings.Add("SCENE7.xmv", false, "Cinematic after Kidnap");
settings.Add("SCENE8.xmv", false, "Cinematic after Ransom");
settings.Add("SCENE8b.xmv", false, "Cinematic start of 2006");
settings.Add("Scene11.xmv", false, "Cinematic at the end of Tailgate");
settings.Add("SCENE14.xmv", false, "Cinematic before Bishop comes available");
settings.Add("SCENE15.xmv", false, "Cinematic after Bishop");
settings.Add("SCENE16.xmv", true, "Final Cutscene");
settings.Add("CREDITS.xmv", false, "Credits");
Action<string> DebugOutput = (text) => {
print("[DPL Autosplitter] "+text);
};
vars.DebugOutput = DebugOutput;
}
init
{
// Already split splits during this attempt (until timer reset)
vars.split = new List<string>();
// Track timer phase
vars.PrevPhase = null;
Func<string, bool> TrySplit = (splitId) => {
vars.DebugOutput(splitId);
if (!settings[splitId]) {
return false;
}
if (!vars.split.Contains(splitId)) {
vars.split.Add(splitId);
vars.DebugOutput("Split: "+splitId);
return true;
}
return false;
};
vars.TrySplit = TrySplit;
}
update
{
// Clear list of already executed splits if timer is reset
if (timer.CurrentPhase != vars.PrevPhase)
{
if (timer.CurrentPhase == TimerPhase.NotRunning)
{
vars.split.Clear();
vars.DebugOutput("Cleared list of already executed splits");
}
vars.PrevPhase = timer.CurrentPhase;
}
}
split
{
if (current.mission != old.mission)
{
if (vars.TrySplit(current.mission))
{
return true;
}
}
}