-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvex.asl
112 lines (84 loc) · 2.89 KB
/
vex.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
110
111
112
//Autosplitter and IGT for the hacked .exe of Vex, (currently limited to) Any%
state("vexspeed")
{
//This variable is a magic number. It should be 0x13371337.
//It's a variable of the main script.
int magicNumber : 0x007E8A60, 0x57C, 0x2c, 0x24, 0xE54, 0xE8;
//This variable is incremented whenever the player presses the start button.
//It's a variable of the main script.
int start : 0x007E8A60, 0x57C, 0x2c, 0x24, 0xE54, 0xEC;
//This variable is incremented whenever you beat a level.
//It's a variable of the main script.
int split : 0x007E8A60, 0x57C, 0x2c, 0x24, 0xE54, 0xF0;
//This variable counts frames, starting when start is inc'd.
//Stops when the last portal is reached.
//It's a variable of the main script.
int time : 0x007E8A60, 0x57C, 0x2c, 0x24, 0xE54, 0xF4;
//This variable is incremented whenever you reset the data.
//It's a variable of the main script.
int reset : 0x007E8A60, 0x57C, 0x2c, 0x24, 0xE54, 0xF8;
}
state("vexspeed", "alternative pointer paths")
{
//This variable is a magic number. It should be 0x13371337.
//It's a variable of the main script.
int magicNumber : 0x007E8A60, 0x158, 0x94, 0x1C, 0x4F8, 0x240, 0x18, 0xEB4, 0xE8;
//This variable is incremented whenever the player presses the start button.
//It's a variable of the main script.
int start : 0x007E8A60, 0x158, 0x94, 0x1C, 0x4F8, 0x240, 0x18, 0xEB4, 0xEC;
//This variable is incremented whenever you beat a level.
//It's a variable of the main script.
int split : 0x007E8A60, 0x158, 0x94, 0x1C, 0x4F8, 0x240, 0x18, 0xEB4, 0xF0;
//This variable counts frames, starting when start is inc'd.
//Stops when the last portal is reached.
//It's a variable of the main script.
int time : 0x007E8A60, 0x158, 0x94, 0x1C, 0x4F8, 0x240, 0x18, 0xEB4, 0xF4;
//This variable is incremented whenever you reset the data.
//It's a variable of the main script.
int reset : 0x007E8A60, 0x158, 0x94, 0x1C, 0x4F8, 0x240, 0x18, 0xEB4, 0xF8;
}
startup
{
//This seems to allow us to play around with the timer functions,
//we need this to reset when you exit the game.
vars.TimerModel = new TimerModel { CurrentState = timer };
settings.Add("pointers", false, "Use alternative pointer paths");
}
init
{
if(settings["pointers"]){
version = "alternative pointer paths";
}
}
update
{
int magicNumber = 0x13371337;
return magicNumber == current.magicNumber;
}
start
{
return current.start > old.start;
}
split
{
return current.split > old.split;
}
//I was told that this is needed to make LiveSplit use the "IGT"
isLoading{return true;}
gameTime
{
double frames = current.time;
double fps = 30;
double millis = (frames * 1000) / fps;
return TimeSpan.FromMilliseconds(millis);
}
reset{
return current.reset > old.reset;
}
exit
{
//If the reset setting is enabled and the run isn't finished ...
if(settings.ResetEnabled && !(timer.CurrentPhase == TimerPhase.Ended)){
vars.TimerModel.Reset();
}
}