Skip to content

Commit ffa98d8

Browse files
Fix game time flickering in chapter-start cutscenes
1 parent 1954629 commit ffa98d8

File tree

4 files changed

+18
-29
lines changed

4 files changed

+18
-29
lines changed

SwiftSplit.xcodeproj/project.pbxproj

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
CD7CDBFE256F5DFC002AE46F /* MemoryScanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD7CDBF8256F5DFC002AE46F /* MemoryScanner.swift */; };
1515
CD7CDBFF256F5DFC002AE46F /* CelesteScanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD7CDBF9256F5DFC002AE46F /* CelesteScanner.swift */; };
1616
CD7CDC00256F5DFC002AE46F /* memory_scanner.c in Sources */ = {isa = PBXBuildFile; fileRef = CD7CDBFD256F5DFC002AE46F /* memory_scanner.c */; };
17-
CD7CDC01256F5DFC002AE46F /* CelesteEventGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD7CDBFB256F5DFC002AE46F /* CelesteEventGenerator.swift */; };
1817
CD7CDC03256F626D002AE46F /* LiveSplitServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD7CDC02256F626D002AE46F /* LiveSplitServer.swift */; };
1918
CD7CDC05256F7304002AE46F /* SimpleWebSocketServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD7CDC04256F7304002AE46F /* SimpleWebSocketServer.swift */; };
2019
CD7CDC2825717D2D002AE46F /* CelesteSplitter.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD7CDC2725717D2D002AE46F /* CelesteSplitter.swift */; };
@@ -35,7 +34,6 @@
3534
CD7CDBF8256F5DFC002AE46F /* MemoryScanner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemoryScanner.swift; sourceTree = "<group>"; };
3635
CD7CDBF9256F5DFC002AE46F /* CelesteScanner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CelesteScanner.swift; sourceTree = "<group>"; };
3736
CD7CDBFA256F5DFC002AE46F /* memory_scanner.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = memory_scanner.h; sourceTree = "<group>"; };
38-
CD7CDBFB256F5DFC002AE46F /* CelesteEventGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CelesteEventGenerator.swift; sourceTree = "<group>"; };
3937
CD7CDBFC256F5DFC002AE46F /* CelesteMemoryLayout.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = CelesteMemoryLayout.md; sourceTree = "<group>"; };
4038
CD7CDBFD256F5DFC002AE46F /* memory_scanner.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = memory_scanner.c; sourceTree = "<group>"; };
4139
CD7CDC02256F626D002AE46F /* LiveSplitServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveSplitServer.swift; sourceTree = "<group>"; };
@@ -108,7 +106,6 @@
108106
CD7CDBF4256F5DDB002AE46F /* SwiftSplit-Bridging-Header.h */,
109107
CD7CDBFC256F5DFC002AE46F /* CelesteMemoryLayout.md */,
110108
CD7CDBF9256F5DFC002AE46F /* CelesteScanner.swift */,
111-
CD7CDBFB256F5DFC002AE46F /* CelesteEventGenerator.swift */,
112109
);
113110
path = SwiftSplit;
114111
sourceTree = "<group>";
@@ -243,7 +240,6 @@
243240
CD7CDC03256F626D002AE46F /* LiveSplitServer.swift in Sources */,
244241
CD7CDBFE256F5DFC002AE46F /* MemoryScanner.swift in Sources */,
245242
CD7CDC00256F5DFC002AE46F /* memory_scanner.c in Sources */,
246-
CD7CDC01256F5DFC002AE46F /* CelesteEventGenerator.swift in Sources */,
247243
CD7CDBE7256F5D0D002AE46F /* ViewController.swift in Sources */,
248244
CDA94457257382D300DB2A85 /* RouteBox.swift in Sources */,
249245
CD7CDBFF256F5DFC002AE46F /* CelesteScanner.swift in Sources */,

SwiftSplit/CelesteEventGenerator.swift

Lines changed: 0 additions & 12 deletions
This file was deleted.

SwiftSplit/CelesteSplitter.swift

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -50,20 +50,17 @@ class CelesteSplitter {
5050
let events = getEvents(from: autoSplitterInfo, to: info)
5151
autoSplitterInfo = info
5252

53-
if routeConfig.useFileTime {
54-
server.setGameTime(seconds: autoSplitterInfo.fileTime)
55-
} else {
56-
server.setGameTime(seconds: autoSplitterInfo.chapterTime)
57-
}
58-
if autoSplitterInfo.timerActive {
59-
if !gameTimeRunning {
60-
server.resumeGameTime()
61-
gameTimeRunning = true
62-
}
63-
} else if gameTimeRunning {
64-
server.pauseGameTime()
65-
gameTimeRunning = false
53+
let time = routeConfig.useFileTime ? autoSplitterInfo.fileTime : autoSplitterInfo.chapterTime
54+
server.setGameTime(seconds: time)
55+
56+
// when using the chapter time, `timerActive` will be true before the chapter time starts ticking.
57+
// This is because the *file* timer is active even before the *chapter* timer is active
58+
let timerActive = autoSplitterInfo.timerActive && time != 0
59+
if timerActive != gameTimeRunning {
60+
server.setGameTime(running: timerActive)
61+
gameTimeRunning = timerActive
6662
}
63+
6764
processEvents(events)
6865
return events
6966
}

SwiftSplit/Core/LiveSplitServer.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,12 @@ class LiveSplitServer {
8787
public func resumeGameTime() {
8888
send("resumegametime")
8989
}
90+
91+
public func setGameTime(running: Bool) {
92+
if running {
93+
resumeGameTime()
94+
} else {
95+
pauseGameTime()
96+
}
97+
}
9098
}

0 commit comments

Comments
 (0)