mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 04:21:47 +00:00
Add stem
This commit is contained in:
parent
56652c035e
commit
f986cf48ad
2 changed files with 28 additions and 3 deletions
|
|
@ -29084,7 +29084,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
100, // mass
|
100, // mass
|
||||||
1, // damage
|
1, // damage
|
||||||
sfx_None, // activesound
|
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
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -429,6 +429,11 @@ static void UFOKillPiece(mobj_t *piece)
|
||||||
|
|
||||||
switch (ufo_piece_type(piece))
|
switch (ufo_piece_type(piece))
|
||||||
{
|
{
|
||||||
|
case UFO_PIECE_TYPE_STEM:
|
||||||
|
{
|
||||||
|
piece->tics = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
case UFO_PIECE_TYPE_ARM:
|
case UFO_PIECE_TYPE_ARM:
|
||||||
{
|
{
|
||||||
dir = piece->angle;
|
dir = piece->angle;
|
||||||
|
|
@ -589,9 +594,18 @@ void Obj_UFOPieceThink(mobj_t *piece)
|
||||||
piece->angle -= FixedMul(ANG2, FixedDiv(ufo_speed(ufo), UFO_BASE_SPEED));
|
piece->angle -= FixedMul(ANG2, FixedDiv(ufo_speed(ufo), UFO_BASE_SPEED));
|
||||||
break;
|
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:
|
default:
|
||||||
{
|
{
|
||||||
P_KillMobj(piece, NULL, NULL, DMG_NORMAL);
|
P_RemoveMobj(piece);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -690,6 +704,7 @@ static mobj_t *InitSpecialUFO(waypoint_t *start)
|
||||||
P_SetTarget(&ufo_pieces(ufo), piece);
|
P_SetTarget(&ufo_pieces(ufo), piece);
|
||||||
prevPiece = piece;
|
prevPiece = piece;
|
||||||
|
|
||||||
|
// Add the catcher arms.
|
||||||
for (i = 0; i < UFO_NUMARMS; i++)
|
for (i = 0; i < UFO_NUMARMS; i++)
|
||||||
{
|
{
|
||||||
piece = P_SpawnMobjFromMobj(ufo, 0, 0, 0, MT_SPECIAL_UFO_PIECE);
|
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_next(prevPiece), piece);
|
||||||
P_SetTarget(&ufo_piece_prev(piece), prevPiece);
|
P_SetTarget(&ufo_piece_prev(piece), prevPiece);
|
||||||
|
|
||||||
prevPiece = piece;
|
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;
|
return ufo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue