mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-25 11:10:47 +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)
|
else if (vm.g_sp->picnum != ORGANTIC)
|
||||||
{
|
{
|
||||||
// All other actors besides ORGANTIC don't update .floorz or
|
int32_t l;
|
||||||
// .ceilingz here.
|
|
||||||
|
// 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->zvel > 0)
|
||||||
{
|
{
|
||||||
if (vm.g_sp->z > actor[vm.g_i].floorz)
|
actor[vm.g_i].floorz = l = VM_GetFlorZOfSlope();
|
||||||
vm.g_sp->z = actor[vm.g_i].floorz;
|
if (vm.g_sp->z > l)
|
||||||
|
vm.g_sp->z = l;
|
||||||
vm.g_sp->z += A_GetWaterZOffset(vm.g_i);
|
vm.g_sp->z += A_GetWaterZOffset(vm.g_i);
|
||||||
}
|
}
|
||||||
else if (vm.g_sp->zvel < 0)
|
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))
|
if (vm.g_sp->z < l+(66<<8))
|
||||||
{
|
{
|
||||||
vm.g_sp->z = l+(66<<8);
|
vm.g_sp->z = l+(66<<8);
|
||||||
|
|
Loading…
Reference in a new issue