Skip to content

Commit 0831783

Browse files
committed
fix double restart issue and only speedhack on recording
1 parent 18bcfd4 commit 0831783

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/hooks.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ void CCScheduler_update(CCScheduler* self, float dt) {
1616
const auto fps = rs.get_replay().get_fps();
1717
auto speedhack = self->getTimeScale();
1818

19-
dt *= rs.speed_hack;
19+
if (rs.is_recording())
20+
dt *= rs.speed_hack;
2021

2122
const float target_dt = 1.f / fps / speedhack;
2223

@@ -220,6 +221,12 @@ void PauseLayer_onResume(gd::PauseLayer* self, CCObject* sender) {
220221
orig<&PauseLayer_onResume>(self, sender);
221222
}
222223

224+
void PauseLayer_onRestart(gd::PauseLayer* self, CCObject* sender) {
225+
auto& rs = ReplaySystem::get();
226+
rs.should_restart_next_time = false;
227+
orig<&PauseLayer_onRestart>(self, sender);
228+
}
229+
223230
bool PlayLayer_init(gd::PlayLayer* self, gd::GJGameLevel* level) {
224231
if (!orig<&PlayLayer_init>(self, level)) return false;
225232

@@ -249,6 +256,7 @@ void Hooks::init() {
249256

250257
add_hook<&PauseLayer_init>(gd::base + 0x1E4620);
251258
add_hook<&PauseLayer_onResume>(gd::base + 0x1e5fa0);
259+
add_hook<&PauseLayer_onRestart>(gd::base + 0x1e6040);
252260

253261
add_hook<&PlayerObject_ringJump>(gd::base + 0x1f4ff0);
254262
add_hook<&GameObject_activateObject>(gd::base + 0xef0e0);

0 commit comments

Comments
 (0)