mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 08:52:00 +00:00
gameexec.c: in VM_Move(), update actor[].{floor,ceiling}z for enemies.
Previously, that was the case only with DRONE and COMMANDER. This makes non-falling enemies pass properly through TROR bunches. git-svn-id: https://svn.eduke32.com/eduke32@4975 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
7cc1067a3d
commit
c18ae15dc5
1 changed files with 9 additions and 6 deletions
|
@ -788,18 +788,21 @@ dead:
|
|||
}
|
||||
else if (vm.g_sp->picnum != ORGANTIC)
|
||||
{
|
||||
// All other actors besides ORGANTIC don't update .floorz or
|
||||
// .ceilingz here.
|
||||
int32_t l;
|
||||
|
||||
// In Duke3D, all other actors don't update .floorz or
|
||||
// .ceilingz here. In EDuke32, they do.
|
||||
|
||||
if (vm.g_sp->zvel > 0)
|
||||
{
|
||||
if (vm.g_sp->z > actor[vm.g_i].floorz)
|
||||
vm.g_sp->z = actor[vm.g_i].floorz;
|
||||
actor[vm.g_i].floorz = l = VM_GetFlorZOfSlope();
|
||||
if (vm.g_sp->z > l)
|
||||
vm.g_sp->z = l;
|
||||
vm.g_sp->z += A_GetWaterZOffset(vm.g_i);
|
||||
}
|
||||
else if (vm.g_sp->zvel < 0)
|
||||
{
|
||||
const int32_t l = VM_GetCeilZOfSlope();
|
||||
|
||||
actor[vm.g_i].ceilingz = l = VM_GetCeilZOfSlope();
|
||||
if (vm.g_sp->z < l+(66<<8))
|
||||
{
|
||||
vm.g_sp->z = l+(66<<8);
|
||||
|
|
Loading…
Reference in a new issue