Battle UFO: fix tractor descending past FOFs

This commit is contained in:
James R 2024-01-09 22:38:53 -08:00
parent 84fd5d58d7
commit 20353f2a84
4 changed files with 14 additions and 11 deletions

View file

@ -31041,7 +31041,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
0, // mass
0, // damage
sfx_None, // activesound
MF_NOGRAVITY|MF_NOCLIP|MF_DONTENCOREMAP, // flags
MF_SCENERY|MF_NOGRAVITY|MF_NOCLIP|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},

View file

@ -247,9 +247,4 @@ INT32 Obj_RandomBattleUFOSpawnerID(void)
void Obj_BattleUFOBeamThink(mobj_t *beam)
{
P_SetObjectMomZ(beam, beam->info->speed, true);
if (P_IsObjectOnGround(beam))
{
P_RemoveMobj(beam);
}
}

View file

@ -785,6 +785,11 @@ static BlockItReturn_t PIT_CheckThing(mobj_t *thing)
return BMIT_CONTINUE; // overhead
}
if (tm.thing->z + tm.thing->height < thing->floorz)
{
return BMIT_CONTINUE; // underneath
}
if (!tm.thing->player || !tm.thing->player->fastfall)
{
fixed_t tractorHeight = 211*mapobjectscale;

View file

@ -3167,6 +3167,14 @@ boolean P_SceneryZMovement(mobj_t *mo)
return false;
}
break;
case MT_BATTLEUFO_BEAM:
Obj_BattleUFOBeamThink(mo);
if (mo->momz <= 0 && mo->z + mo->momz <= mo->floorz)
{
P_RemoveMobj(mo);
return false;
}
break;
default:
break;
}
@ -9013,11 +9021,6 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
Obj_BattleUFOLegThink(mobj);
break;
}
case MT_BATTLEUFO_BEAM:
{
Obj_BattleUFOBeamThink(mobj);
break;
}
case MT_ROCKETSNEAKER:
if (!mobj->target || !mobj->target->health)
{