This commit is contained in:
Sally Coolatta 2022-11-27 19:37:32 -05:00
parent 56652c035e
commit f986cf48ad
2 changed files with 28 additions and 3 deletions

View file

@ -29084,7 +29084,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_NOGRAVITY|MF_DONTENCOREMAP|MF_NOSQUISH, // flags
S_NULL // raisestate
},
};

View file

@ -429,6 +429,11 @@ static void UFOKillPiece(mobj_t *piece)
switch (ufo_piece_type(piece))
{
case UFO_PIECE_TYPE_STEM:
{
piece->tics = 1;
return;
}
case UFO_PIECE_TYPE_ARM:
{
dir = piece->angle;
@ -589,9 +594,18 @@ void Obj_UFOPieceThink(mobj_t *piece)
piece->angle -= FixedMul(ANG2, FixedDiv(ufo_speed(ufo), UFO_BASE_SPEED));
break;
}
case UFO_PIECE_TYPE_STEM:
{
fixed_t stemZ = ufo->z + (294 * piece->scale);
fixed_t sc = FixedDiv(FixedDiv(ufo->ceilingz - stemZ, piece->scale), 15 * FRACUNIT);
UFOMoveTo(piece, ufo->x, ufo->y, stemZ);
piece->spriteyscale = sc;
break;
}
default:
{
P_KillMobj(piece, NULL, NULL, DMG_NORMAL);
P_RemoveMobj(piece);
return;
}
}
@ -690,6 +704,7 @@ static mobj_t *InitSpecialUFO(waypoint_t *start)
P_SetTarget(&ufo_pieces(ufo), piece);
prevPiece = piece;
// Add the catcher arms.
for (i = 0; i < UFO_NUMARMS; i++)
{
piece = P_SpawnMobjFromMobj(ufo, 0, 0, 0, MT_SPECIAL_UFO_PIECE);
@ -702,10 +717,20 @@ static mobj_t *InitSpecialUFO(waypoint_t *start)
P_SetTarget(&ufo_piece_next(prevPiece), piece);
P_SetTarget(&ufo_piece_prev(piece), prevPiece);
prevPiece = piece;
}
// Add the stem.
piece = P_SpawnMobjFromMobj(ufo, 0, 0, 0, MT_SPECIAL_UFO_PIECE);
P_SetTarget(&ufo_piece_owner(piece), ufo);
P_SetMobjState(piece, S_SPECIAL_UFO_STEM);
ufo_piece_type(piece) = UFO_PIECE_TYPE_STEM;
P_SetTarget(&ufo_piece_next(prevPiece), piece);
P_SetTarget(&ufo_piece_prev(piece), prevPiece);
prevPiece = piece;
return ufo;
}