-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathCODBlackOps.asl
109 lines (96 loc) · 3.01 KB
/
CODBlackOps.asl
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
state("BlackOps")
{
string35 currentlevelName : 0x21033E8; // Doesn't work for langagues other than English (idk why)
long Loader : 0x2AEA4B0; // Changed based on timing method changes by community vote
}
startup
{
settings.Add("missions", true, "All Missions"); // Decided to add this just so it's like all the other ones
vars.missions = new Dictionary<string,string>
{
{"vorkuta", "Vorkuta"},
{"pentagon", "USDD"},
{"flashpoint", "Executive Order"},
{"khe_sanh", "SOG"},
{"hue_city", "The Defector"},
{"kowloon", "Numbers"},
{"fullahead", "Project Nova"},
{"creek_1", "Victor Charlie"},
{"river", "Crash Site"},
{"wmd_sr71", "WMD"},
{"pow", "Payback"},
{"rebirth", "Rebirth"},
{"int_escape", "Revelations"},
{"underwaterbase", "Redemption"},
{"outro", "Menu Screen"},
};
foreach (var Tag in vars.missions)
{
settings.Add(Tag.Key, true, Tag.Value, "missions");
};
if (timer.CurrentTimingMethod == TimingMethod.RealTime)
{
var timingMessage = MessageBox.Show
(
"This game uses Time without Loads (Game Time) as the main timing method.\n"+
"LiveSplit is currently set to show Real Time (RTA).\n"+
"Would you like to set the timing method to Game Time? This will make verification easier",
"LiveSplit | Call of Duty: Black Ops",
MessageBoxButtons.YesNo,MessageBoxIcon.Question
);
if (timingMessage == DialogResult.Yes)
{
timer.CurrentTimingMethod = TimingMethod.GameTime;
}
}
}
init
{
vars.currentTime = new TimeSpan(0, 0, 0); //TimeSpan object used to add a timer offset on entering USDD
vars.USDDtime = false;
}
update
{
vars.currentTime = timer.CurrentTime.GameTime; //keep the variable updated with the current time on the timer
}
start
{
return ((current.currentlevelName == "cuba") && (current.Loader != 0));
}
onStart
{
vars.USDDtime = false;
}
isLoading
{
return (current.Loader == 0) ||
(current.currentlevelName == "pentagon") || // Adding this because of the new timing method changed based on community vote
(current.currentlevelName == "frontend"); // Adding this just in case it because of the fact that sometimes frontend leaks during the crashed helicopter scenes (thanks 3arc)
}
reset
{
return ((current.currentlevelName == "frontend") && (old.currentlevelName != "pentagon")); // Adding the old.map thing just because of new timing rules, prolly runners don't want to reset when leaving USDD
}
split
{
if ((settings[current.currentlevelName]) && (current.currentlevelName != old.currentlevelName)) // If setting is true, and on a different map
{
if (current.currentlevelName == "pentagon") // if were on USDD
{
vars.USDDtime = true; // adds game time of 4:55
return true;
}
else // if not on USDD split
{
return true;
}
}
}
gameTime
{
if (vars.USDDtime == true)
{
vars.USDDtime = false;
return vars.currentTime.Add(new TimeSpan (0, 4, 55)); //Time taken from the mean of most of the submitted any% runs
}
}