-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTorinsPassage.asl
More file actions
42 lines (34 loc) · 1.17 KB
/
TorinsPassage.asl
File metadata and controls
42 lines (34 loc) · 1.17 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
state("scummvm") {}
startup {
Assembly.Load(File.ReadAllBytes("Components/scummvm-help")).CreateInstance("SCI");
settings.Add("splits", false, "Split on ...");
settings.Add("chapterSplits", true, "Chapter transitions", "splits");
settings.Add("end", true, "Finishing the game", "splits");
}
init {
vars.ScummVM.Init();
vars.ScummVM["room"] = vars.ScummVM.Watch<ushort>("_gamestate", "variables", 0x0, 11 * 0x4 + 0x2);
vars.ScummVM["score"] = vars.ScummVM.Watch<ushort>("_gamestate", "variables", 0x0, 15 * 0x4 + 0x2);
vars.ScummVM["chapter"] = vars.ScummVM.Watch<ushort>("_gamestate", "variables", 0x0, 202 * 0x4 + 0x2);
}
update {
vars.ScummVM.Update();
}
start {
// Start on selecting chapter 1 (The Lands Above) from the main menu
return current.chapter == 1 && old.chapter == 0;
}
reset {
// Reset on main menu
return current.room == 61100 && old.room != 61100;
}
split {
// Use magic book on Pecand
if (settings["end"] && current.room == 51400 && current.score == old.score + 18) {
return true;
}
// Chapter splits
else if (settings["chapterSplits"] && current.chapter == old.chapter + 1) {
return true;
}
}