Amend r4378 to hopefully make "stuck in water" fix work properly.

NOTE: lizmen may walk on water. I don't yet know why.

git-svn-id: https://svn.eduke32.com/eduke32@4575 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
helixhorned 2014-08-20 17:58:21 +00:00
parent ceaa661304
commit 21b630d294

View file

@ -961,20 +961,20 @@ static void VM_Fall(int32_t g_i, spritetype *g_sp)
int32_t moveScriptOfs = AC_MOVE_ID(vm.g_t); int32_t moveScriptOfs = AC_MOVE_ID(vm.g_t);
#endif #endif
// fix for flying/jumping monsters getting stuck in water // fix for flying/jumping monsters getting stuck in water
if ((AC_MOVFLAGS(g_sp, &actor[vm.g_i]) & jumptoplayer_bits) == jumptoplayer_only || if ((AC_MOVFLAGS(g_sp, &actor[vm.g_i]) & jumptoplayer_only) ||
(G_HaveActor(g_sp->picnum) && (G_HaveActor(g_sp->picnum) &&
#if !defined LUNATIC #if !defined LUNATIC
(unsigned)moveScriptOfs < (unsigned)g_scriptSize-1 && script[moveScriptOfs + 1] (unsigned)moveScriptOfs < (unsigned)g_scriptSize-1 && script[moveScriptOfs + 1] != 0
#else #else
actor[g_i].mv.vvel != 0 actor[g_i].mv.vvel != 0
#endif #endif
)) ))
{ {
// OSD_Printf("%d\n", script[moveScriptOfs + 1]); // OSD_Printf("%d\n", (int)script[moveScriptOfs + 1]);
break; break;
} }
// OSD_Printf("hitag: %d\n",g_sp->hitag); // OSD_Printf("movflags: %d | %d\n", AC_MOVFLAGS(g_sp, &actor[vm.g_i]), totalclock);
g_sp->z += ACTOR_ONWATER_ADDZ; g_sp->z += ACTOR_ONWATER_ADDZ;
break; break;
} }