mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-03-21 18:32:08 +00:00
Added bubble form of spin dust
This commit is contained in:
parent
ce97c1e986
commit
47c67472ff
5 changed files with 24 additions and 11 deletions
|
@ -5571,6 +5571,10 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_SPINDUST2",
|
||||
"S_SPINDUST3",
|
||||
"S_SPINDUST4",
|
||||
"S_SPINDUST_BUBBLE1",
|
||||
"S_SPINDUST_BUBBLE2",
|
||||
"S_SPINDUST_BUBBLE3",
|
||||
"S_SPINDUST_BUBBLE4",
|
||||
|
||||
"S_FOG1",
|
||||
"S_FOG2",
|
||||
|
|
|
@ -2281,11 +2281,14 @@ state_t states[NUMSTATES] =
|
|||
{SPR_WZAP, FF_TRANS10|FF_ANIMATE|FF_RANDOMANIM, 4, {NULL}, 3, 2, S_NULL}, // S_WATERZAP
|
||||
|
||||
// Spindash dust
|
||||
// TODO: other spin dust types
|
||||
{SPR_DUST, 0, 7, {NULL}, 0, 0, S_SPINDUST2}, // S_SPINDUST1
|
||||
{SPR_DUST, 1, 6, {NULL}, 0, 0, S_SPINDUST3}, // S_SPINDUST2
|
||||
{SPR_DUST, FF_TRANS30|2, 4, {NULL}, 0, 0, S_SPINDUST4}, // S_SPINDUST3
|
||||
{SPR_DUST, FF_TRANS60|3, 3, {NULL}, 0, 0, S_NULL}, // S_SPINDUST4
|
||||
{SPR_BUBL, 0, 7, {NULL}, 0, 0, S_SPINDUST_BUBBLE2}, // S_SPINDUST_BUBBLE1
|
||||
{SPR_BUBL, 0, 6, {NULL}, 0, 0, S_SPINDUST_BUBBLE3}, // S_SPINDUST_BUBBLE2
|
||||
{SPR_BUBL, FF_TRANS30|0, 4, {NULL}, 0, 0, S_SPINDUST_BUBBLE4}, // S_SPINDUST_BUBBLE3
|
||||
{SPR_BUBL, FF_TRANS60|0, 3, {NULL}, 0, 0, S_NULL}, // S_SPINDUST_BUBBLE4
|
||||
|
||||
{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50, 2, {NULL}, 0, 0, S_FOG2}, // S_FOG1
|
||||
{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|1, 2, {NULL}, 0, 0, S_FOG3}, // S_FOG2
|
||||
|
|
|
@ -2463,6 +2463,10 @@ typedef enum state
|
|||
S_SPINDUST2,
|
||||
S_SPINDUST3,
|
||||
S_SPINDUST4,
|
||||
S_SPINDUST_BUBBLE1,
|
||||
S_SPINDUST_BUBBLE2,
|
||||
S_SPINDUST_BUBBLE3,
|
||||
S_SPINDUST_BUBBLE4,
|
||||
|
||||
S_FOG1,
|
||||
S_FOG2,
|
||||
|
|
|
@ -7541,6 +7541,13 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
mobj->momx = FixedMul(mobj->momx, (3*FRACUNIT)/4); // originally 50000
|
||||
mobj->momy = FixedMul(mobj->momy, (3*FRACUNIT)/4); // same
|
||||
//mobj->momz = mobj->momz+P_MobjFlip(mobj)/3; // no meaningful change in value to be frank
|
||||
if (mobj->state >= &states[S_SPINDUST_BUBBLE1] && mobj->state <= &states[S_SPINDUST_BUBBLE4]) // bubble dust!
|
||||
{
|
||||
P_MobjCheckWater(mobj);
|
||||
if (mobj->watertop != mobj->subsector->sector->floorheight - 1000*FRACUNIT
|
||||
&& mobj->z+mobj->height >= mobj->watertop - 5*FRACUNIT)
|
||||
mobj->flags2 |= MF2_DONTDRAW;
|
||||
}
|
||||
break;
|
||||
case MT_SPINFIRE:
|
||||
if (mobj->eflags & MFE_VERTICALFLIP)
|
||||
|
|
15
src/p_user.c
15
src/p_user.c
|
@ -3671,19 +3671,14 @@ static void P_DoSpinDashDust(player_t *player)
|
|||
{
|
||||
UINT32 i;
|
||||
mobj_t *particle;
|
||||
UINT32 prandom[3];
|
||||
INT32 prandom[3];
|
||||
for (i = 0; i <= (leveltime%7)/2; i++) { // 1, 2, 3 or 4 particles
|
||||
particle = P_SpawnMobjFromMobj(player->mo, 0, 0, 0, MT_SPINDUST);
|
||||
|
||||
if (player->powers[pw_shield] == SH_ELEMENTAL && !(player->mo->eflags & (MFE_TOUCHWATER|MFE_UNDERWATER))) {
|
||||
//P_SetMobjState(particle, S_FIREDUST1);
|
||||
//particle->bubble = false;
|
||||
} else if (player->mo->eflags & (MFE_TOUCHWATER|MFE_UNDERWATER)) {
|
||||
//P_SetMobjState(particle, S_BUBBLEDUST1);
|
||||
//particle->bubble = true;
|
||||
} else {
|
||||
//P_SetMobjState(particle, S_SPINDUST1);
|
||||
//particle->bubble = false;
|
||||
/*if (player->powers[pw_shield] == SH_ELEMENTAL && !(player->mo->eflags & (MFE_TOUCHWATER|MFE_UNDERWATER))) {
|
||||
P_SetMobjState(particle, S_SPINDUST_FIRE;
|
||||
} else */if (player->mo->eflags & (MFE_TOUCHWATER|MFE_UNDERWATER)) {
|
||||
P_SetMobjState(particle, S_SPINDUST_BUBBLE1);
|
||||
}
|
||||
P_SetTarget(&particle->target, player->mo);
|
||||
particle->destscale = (2*player->mo->scale)/3;
|
||||
|
|
Loading…
Reference in a new issue