fabiangreffrath / crispy-doom

Crispy Doom is a limit-removing enhanced-resolution Doom source port based on Chocolate Doom.
https://fabiangreffrath.github.io/crispy-homepage
GNU General Public License v2.0
808 stars 132 forks source link

Heretic demo desyncs #1169

Closed kitchen-ace closed 9 months ago

kitchen-ace commented 9 months ago

Unfortunately #1138 seems like it causes desyncs in some demos. Doesn't affect inter-heretic oddly enough.

Here's a wad with a demo I made with inter-heretic, plays back fine in dsda-doom and Crispy 6.0. swamp.zip

As another example, https://dsdarchive.com/files/demos/heretic/74453/h1m-3333.zip also desyncs in Crispy after that commit, on the 4th map.

p.s. sorry for swarming everyone with different issues/etc across multiple projects today. Take your time.

JNechaevsky commented 9 months ago

I apologize, this is my oversight. Should be:

+++ /crispy-doom/src/heretic/p_mobj.c
@@ -1280,7 +1280,7 @@
     mobj_t *puff;

     z += safe ? (Crispy_SubRandom() << 10) : (P_SubRandom() << 10);
-    puff = P_SpawnMobj(x, y, z, PuffType);
+    puff = P_SpawnMobjSafe(x, y, z, PuffType, safe);
     if (puff->info->attacksound)
     {
         S_StartSound(puff, puff->info->attacksound);

Will make PR right now.