Skip to content

Commit 4974d94

Browse files
committed
Fix edge case where a multiplayer auto-save could be created after a desync had happened
1 parent 318a4c1 commit 4974d94

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/recon_kick.asm

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
;;; broadcast a REMOVEPLAYER message to everyone.
77

88
cextern SavesDisabled
9+
cextern IsDoingMPSaveNextFrame
910

10-
sstring str_PlayerOutOfSync, "Player has gone out of sync"
11+
sstring str_PlayerOutOfSync, "Player has gone out of sync and has been removed from the game."
1112
@LJNZ 0x005B4F5F, _Execute_DoList_dont_recon
1213

1314
section .bss
@@ -73,6 +74,11 @@ _Execute_DoList_dont_recon:
7374
pop ebx
7475
pop esi
7576

77+
; Disable auto-saving
78+
mov dword [AutoSaveGame], -1
79+
mov byte [SavesDisabled], 1
80+
mov byte [IsDoingMPSaveNextFrame], 0
81+
7682
lea eax, [esi+ebx] ; Write SYNC file
7783
and eax, dword 0xFFF
7884
lea ecx, [eax+eax*2]
@@ -89,6 +95,7 @@ _Execute_DoList_dont_recon:
8995
hack 0x00494EE4
9096
mov dword [AutoSaveGame], -1
9197
mov byte [SavesDisabled], 1
98+
mov byte [IsDoingMPSaveNextFrame], 0
9299
mov eax, [esi+0x6]
93100
cmp byte [OutOfSyncArray+eax], 1
94101
jz 0x00494F1D

0 commit comments

Comments
 (0)