Skip to content

Commit c51a23e

Browse files
Added splits using extended chapter info
1 parent 8cb6e8d commit c51a23e

File tree

4 files changed

+208
-136
lines changed

4 files changed

+208
-136
lines changed

SwiftSplit/CelesteScanner.swift

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class CelesteScanner {
3939
func findHeader() throws {
4040
print("Scanning for the AutoSplitterData object header")
4141

42-
extendedInfo = try process.findPointer(by: "11efbeadde11")
42+
extendedInfo = try process.findPointer(by: "1100efbeadde0011")
4343
if let info = extendedInfo {
4444
try Mono.debugMemory(around: info, before: 64, after: 64)
4545
}
@@ -59,11 +59,11 @@ class CelesteScanner {
5959

6060
}
6161

62-
func readExtended() throws -> ExtendedAutoSplitterData? {
62+
func getExtendedInfo() throws -> ExtendedAutoSplitterInfo? {
6363
guard let extendedInfo = extendedInfo else {
6464
return nil
6565
}
66-
return try ExtendedAutoSplitterData(from: extendedInfo)
66+
return try ExtendedAutoSplitterInfo(from: extendedInfo)
6767
}
6868

6969
func getInfo() throws -> AutoSplitterInfo? {
@@ -251,27 +251,21 @@ class AutoSplitterInfo {
251251
}
252252
}
253253

254-
struct ExtendedAutoSplitterData {
255-
var madelineX: Float
256-
var madelineY: Float
257-
var fileDeaths: Int32
254+
struct ExtendedAutoSplitterInfo {
255+
var chapterDeaths: Int32
258256
var levelDeaths: Int32
259257
var areaName: String
260258
var areaSID: String
261259
var levelSet: String
262-
var completeScreenName: String
263260

264261
init(from pointer: RmaPointer) throws {
265-
// offset to skip the `11deadbeef11`
266-
let body = try pointer.offset(by: 8).preload(size: 48)
267-
madelineX = body.value(at: 0)
268-
madelineY = body.value(at: 4)
269-
fileDeaths = body.value(at: 8)
270-
levelDeaths = body.value(at: 12)
271-
areaName = try Mono.readString(at: body.value(at: 16)) ?? ""
272-
areaSID = try Mono.readString(at: body.value(at: 24)) ?? ""
273-
levelSet = try Mono.readString(at: body.value(at: 32)) ?? ""
274-
completeScreenName = try Mono.readString(at: body.value(at: 40)) ?? ""
262+
// offset to skip the `1100deadbeef0011`
263+
let body = try pointer.offset(by: 8).preload(size: 40)
264+
chapterDeaths = body.value(at: 0)
265+
levelDeaths = body.value(at: 4)
266+
areaName = try Mono.readString(at: body.value(at: 8)) ?? ""
267+
areaSID = try Mono.readString(at: body.value(at: 16)) ?? ""
268+
levelSet = try Mono.readString(at: body.value(at: 24)) ?? ""
275269
}
276270
}
277271

0 commit comments

Comments
 (0)