mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-02-07 08:52:01 +00:00
Removed a hack that caused the groundpound spinfire to hurt you if you lost your shield.
This commit is contained in:
parent
436dfbb24f
commit
f34a28e80e
6 changed files with 26 additions and 66 deletions
|
@ -4783,7 +4783,6 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
"S_SPIKEBALL8",
|
"S_SPIKEBALL8",
|
||||||
|
|
||||||
// Elemental Shield's Spawn
|
// Elemental Shield's Spawn
|
||||||
"S_SPINFIRE0",
|
|
||||||
"S_SPINFIRE1",
|
"S_SPINFIRE1",
|
||||||
"S_SPINFIRE2",
|
"S_SPINFIRE2",
|
||||||
"S_SPINFIRE3",
|
"S_SPINFIRE3",
|
||||||
|
@ -4791,15 +4790,6 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
"S_SPINFIRE5",
|
"S_SPINFIRE5",
|
||||||
"S_SPINFIRE6",
|
"S_SPINFIRE6",
|
||||||
|
|
||||||
// Elemental Shield's FLYING Spawn
|
|
||||||
"S_AIRSPINFIRE_FLY1",
|
|
||||||
"S_AIRSPINFIRE_FLY2",
|
|
||||||
"S_AIRSPINFIRE_FLY3",
|
|
||||||
"S_AIRSPINFIRE_FLY4",
|
|
||||||
"S_AIRSPINFIRE_FLY5",
|
|
||||||
"S_AIRSPINFIRE_FLY6",
|
|
||||||
"S_AIRSPINFIRE_DIE",
|
|
||||||
|
|
||||||
// Spikes
|
// Spikes
|
||||||
"S_SPIKE1",
|
"S_SPIKE1",
|
||||||
"S_SPIKE2",
|
"S_SPIKE2",
|
||||||
|
|
|
@ -158,7 +158,7 @@ extern FILE *logstream;
|
||||||
|
|
||||||
// Does this version require an added patch file?
|
// Does this version require an added patch file?
|
||||||
// Comment or uncomment this as necessary.
|
// Comment or uncomment this as necessary.
|
||||||
//#define USE_PATCH_DTA
|
#define USE_PATCH_DTA
|
||||||
|
|
||||||
// Modification options
|
// Modification options
|
||||||
// If you want to take advantage of the Master Server's ability to force clients to update
|
// If you want to take advantage of the Master Server's ability to force clients to update
|
||||||
|
|
39
src/info.c
39
src/info.c
|
@ -1124,7 +1124,6 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_SPIK, 7, 1, {A_RotateSpikeBall}, 0, 0, S_SPIKEBALL1}, // S_SPIKEBALL8
|
{SPR_SPIK, 7, 1, {A_RotateSpikeBall}, 0, 0, S_SPIKEBALL1}, // S_SPIKEBALL8
|
||||||
|
|
||||||
// Elemental Shield's Spawn
|
// Elemental Shield's Spawn
|
||||||
{SPR_SFLM, FF_FULLBRIGHT|5, 2, {A_SetFuse}, 6*TICRATE, 0, S_SPINFIRE1}, // S_SPINFIRE0
|
|
||||||
{SPR_SFLM, FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_SPINFIRE2}, // S_SPINFIRE1
|
{SPR_SFLM, FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_SPINFIRE2}, // S_SPINFIRE1
|
||||||
{SPR_SFLM, FF_FULLBRIGHT|1, 2, {NULL}, 0, 0, S_SPINFIRE3}, // S_SPINFIRE2
|
{SPR_SFLM, FF_FULLBRIGHT|1, 2, {NULL}, 0, 0, S_SPINFIRE3}, // S_SPINFIRE2
|
||||||
{SPR_SFLM, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_SPINFIRE4}, // S_SPINFIRE3
|
{SPR_SFLM, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_SPINFIRE4}, // S_SPINFIRE3
|
||||||
|
@ -1132,15 +1131,6 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_SFLM, FF_FULLBRIGHT|4, 2, {NULL}, 0, 0, S_SPINFIRE6}, // S_SPINFIRE5
|
{SPR_SFLM, FF_FULLBRIGHT|4, 2, {NULL}, 0, 0, S_SPINFIRE6}, // S_SPINFIRE5
|
||||||
{SPR_SFLM, FF_FULLBRIGHT|5, 2, {NULL}, 0, 0, S_SPINFIRE1}, // S_SPINFIRE6
|
{SPR_SFLM, FF_FULLBRIGHT|5, 2, {NULL}, 0, 0, S_SPINFIRE1}, // S_SPINFIRE6
|
||||||
|
|
||||||
// Elemental Shield's FLYING Spawn
|
|
||||||
{SPR_SFLM, FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_AIRSPINFIRE_FLY2}, //S_AIRSPINFIRE_FLY1,
|
|
||||||
{SPR_SFLM, FF_FULLBRIGHT|1, 2, {NULL}, 0, 0, S_AIRSPINFIRE_FLY3}, //S_AIRSPINFIRE_FLY2,
|
|
||||||
{SPR_SFLM, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_AIRSPINFIRE_FLY4}, //S_AIRSPINFIRE_FLY3,
|
|
||||||
{SPR_SFLM, FF_FULLBRIGHT|3, 2, {NULL}, 0, 0, S_AIRSPINFIRE_FLY5}, //S_AIRSPINFIRE_FLY4,
|
|
||||||
{SPR_SFLM, FF_FULLBRIGHT|4, 2, {NULL}, 0, 0, S_AIRSPINFIRE_FLY6}, //S_AIRSPINFIRE_FLY5,
|
|
||||||
{SPR_SFLM, FF_FULLBRIGHT|5, 2, {NULL}, 0, 0, S_AIRSPINFIRE_FLY1}, //S_AIRSPINFIRE_FLY6,
|
|
||||||
{SPR_SFLM, FF_FULLBRIGHT, 0, {A_SpawnObjectRelative}, 0, MT_SPINFIRE, S_NULL}, //S_AIRSPINFIRE_DIE,
|
|
||||||
|
|
||||||
// Floor Spike
|
// Floor Spike
|
||||||
{SPR_USPK, 0,-1, {A_SpikeRetract}, 1, 0, S_SPIKE2}, // S_SPIKE1 -- Fully extended
|
{SPR_USPK, 0,-1, {A_SpikeRetract}, 1, 0, S_SPIKE2}, // S_SPIKE1 -- Fully extended
|
||||||
{SPR_USPK, 5, 2, {A_Pain}, 0, 0, S_SPIKE3}, // S_SPIKE2
|
{SPR_USPK, 5, 2, {A_Pain}, 0, 0, S_SPIKE3}, // S_SPIKE2
|
||||||
|
@ -5404,7 +5394,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
|
|
||||||
{ // MT_SPINFIRE
|
{ // MT_SPINFIRE
|
||||||
-1, // doomednum
|
-1, // doomednum
|
||||||
S_SPINFIRE0, // spawnstate
|
S_SPINFIRE1, // spawnstate
|
||||||
1, // spawnhealth
|
1, // spawnhealth
|
||||||
S_NULL, // seestate
|
S_NULL, // seestate
|
||||||
sfx_None, // seesound
|
sfx_None, // seesound
|
||||||
|
@ -5429,33 +5419,6 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // MT_AIRSPINFIRE
|
|
||||||
-1, // doomednum
|
|
||||||
S_AIRSPINFIRE_FLY1, // spawnstate
|
|
||||||
1000, // spawnhealth
|
|
||||||
S_NULL, // seestate
|
|
||||||
sfx_None, // seesound
|
|
||||||
8, // reactiontime
|
|
||||||
sfx_None, // attacksound
|
|
||||||
S_NULL, // painstate
|
|
||||||
0, // painchance
|
|
||||||
sfx_None, // painsound
|
|
||||||
S_NULL, // meleestate
|
|
||||||
S_NULL, // missilestate
|
|
||||||
S_AIRSPINFIRE_DIE, // deathstate
|
|
||||||
S_NULL, // xdeathstate
|
|
||||||
sfx_None, // deathsound
|
|
||||||
10*FRACUNIT, // speed
|
|
||||||
8*FRACUNIT, // radius
|
|
||||||
14*FRACUNIT, // height
|
|
||||||
0, // display offset
|
|
||||||
100, // mass
|
|
||||||
1, // damage
|
|
||||||
sfx_None, // activesound
|
|
||||||
MF_NOBLOCKMAP|MF_MISSILE|MF_FIRE, // flags
|
|
||||||
S_NULL // raisestate
|
|
||||||
},
|
|
||||||
|
|
||||||
{ // MT_SPIKE
|
{ // MT_SPIKE
|
||||||
523, // doomednum
|
523, // doomednum
|
||||||
S_SPIKE1, // spawnstate
|
S_SPIKE1, // spawnstate
|
||||||
|
|
11
src/info.h
11
src/info.h
|
@ -1634,7 +1634,6 @@ typedef enum state
|
||||||
S_SPIKEBALL8,
|
S_SPIKEBALL8,
|
||||||
|
|
||||||
// Elemental Shield's Spawn
|
// Elemental Shield's Spawn
|
||||||
S_SPINFIRE0,
|
|
||||||
S_SPINFIRE1,
|
S_SPINFIRE1,
|
||||||
S_SPINFIRE2,
|
S_SPINFIRE2,
|
||||||
S_SPINFIRE3,
|
S_SPINFIRE3,
|
||||||
|
@ -1642,15 +1641,6 @@ typedef enum state
|
||||||
S_SPINFIRE5,
|
S_SPINFIRE5,
|
||||||
S_SPINFIRE6,
|
S_SPINFIRE6,
|
||||||
|
|
||||||
// Elemental Shield's FLYING Spawn
|
|
||||||
S_AIRSPINFIRE_FLY1,
|
|
||||||
S_AIRSPINFIRE_FLY2,
|
|
||||||
S_AIRSPINFIRE_FLY3,
|
|
||||||
S_AIRSPINFIRE_FLY4,
|
|
||||||
S_AIRSPINFIRE_FLY5,
|
|
||||||
S_AIRSPINFIRE_FLY6,
|
|
||||||
S_AIRSPINFIRE_DIE,
|
|
||||||
|
|
||||||
// Spikes
|
// Spikes
|
||||||
S_SPIKE1,
|
S_SPIKE1,
|
||||||
S_SPIKE2,
|
S_SPIKE2,
|
||||||
|
@ -3143,7 +3133,6 @@ typedef enum mobj_type
|
||||||
MT_SPIKEBALL, // Spike Ball
|
MT_SPIKEBALL, // Spike Ball
|
||||||
MT_SPECIALSPIKEBALL,
|
MT_SPECIALSPIKEBALL,
|
||||||
MT_SPINFIRE,
|
MT_SPINFIRE,
|
||||||
MT_AIRSPINFIRE, // Elemental flame flying through the air
|
|
||||||
MT_SPIKE,
|
MT_SPIKE,
|
||||||
MT_STARPOST,
|
MT_STARPOST,
|
||||||
MT_BIGMINE,
|
MT_BIGMINE,
|
||||||
|
|
16
src/p_mobj.c
16
src/p_mobj.c
|
@ -2377,6 +2377,19 @@ static boolean P_ZMovement(mobj_t *mo)
|
||||||
mo->flags |= MF_NOGRAVITY;
|
mo->flags |= MF_NOGRAVITY;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case MT_SPINFIRE:
|
||||||
|
if (P_CheckDeathPitCollide(mo))
|
||||||
|
{
|
||||||
|
P_RemoveMobj(mo);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (mo->z <= mo->floorz && mo->momz)
|
||||||
|
{
|
||||||
|
mo->flags |= MF_NOGRAVITY;
|
||||||
|
mo->momx = mo->momy = mo->momz = 0;
|
||||||
|
mo->z = mo->floorz;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case MT_GOOP:
|
case MT_GOOP:
|
||||||
if (P_CheckDeathPitCollide(mo))
|
if (P_CheckDeathPitCollide(mo))
|
||||||
{
|
{
|
||||||
|
@ -7338,10 +7351,13 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case MT_SPINFIRE:
|
case MT_SPINFIRE:
|
||||||
|
if (mobj->flags & MF_NOGRAVITY)
|
||||||
|
{
|
||||||
if (mobj->eflags & MFE_VERTICALFLIP)
|
if (mobj->eflags & MFE_VERTICALFLIP)
|
||||||
mobj->z = mobj->ceilingz - mobj->height;
|
mobj->z = mobj->ceilingz - mobj->height;
|
||||||
else
|
else
|
||||||
mobj->z = mobj->floorz;
|
mobj->z = mobj->floorz;
|
||||||
|
}
|
||||||
// THERE IS NO BREAK HERE ON PURPOSE
|
// THERE IS NO BREAK HERE ON PURPOSE
|
||||||
default:
|
default:
|
||||||
// check mobj against possible water content, before movement code
|
// check mobj against possible water content, before movement code
|
||||||
|
|
|
@ -6224,9 +6224,11 @@ void P_ElementalFire(player_t *player, boolean cropcircle)
|
||||||
#define numangles 8
|
#define numangles 8
|
||||||
for (i = 0; i < numangles; i++)
|
for (i = 0; i < numangles; i++)
|
||||||
{
|
{
|
||||||
flame = P_SpawnMobj(player->mo->x, player->mo->y, ground, MT_AIRSPINFIRE);
|
flame = P_SpawnMobj(player->mo->x, player->mo->y, ground, MT_SPINFIRE);
|
||||||
|
flame->flags &= ~MF_NOGRAVITY;
|
||||||
P_SetTarget(&flame->target, player->mo);
|
P_SetTarget(&flame->target, player->mo);
|
||||||
flame->angle = travelangle + i*(ANGLE_MAX/numangles);
|
flame->angle = travelangle + i*(ANGLE_MAX/numangles);
|
||||||
|
flame->fuse = TICRATE*7; // takes about an extra second to hit the ground
|
||||||
flame->destscale = player->mo->scale;
|
flame->destscale = player->mo->scale;
|
||||||
P_SetScale(flame, player->mo->scale);
|
P_SetScale(flame, player->mo->scale);
|
||||||
flame->eflags = (flame->eflags & ~MFE_VERTICALFLIP)|(player->mo->eflags & MFE_VERTICALFLIP);
|
flame->eflags = (flame->eflags & ~MFE_VERTICALFLIP)|(player->mo->eflags & MFE_VERTICALFLIP);
|
||||||
|
@ -6255,7 +6257,7 @@ void P_ElementalFire(player_t *player, boolean cropcircle)
|
||||||
flame = P_SpawnMobj(newx, newy, ground, MT_SPINFIRE);
|
flame = P_SpawnMobj(newx, newy, ground, MT_SPINFIRE);
|
||||||
P_SetTarget(&flame->target, player->mo);
|
P_SetTarget(&flame->target, player->mo);
|
||||||
flame->angle = travelangle;
|
flame->angle = travelangle;
|
||||||
// flame->fuse = TICRATE*6; // now done in spawnstate
|
flame->fuse = TICRATE*6;
|
||||||
flame->destscale = player->mo->scale;
|
flame->destscale = player->mo->scale;
|
||||||
P_SetScale(flame, player->mo->scale);
|
P_SetScale(flame, player->mo->scale);
|
||||||
flame->eflags = (flame->eflags & ~MFE_VERTICALFLIP)|(player->mo->eflags & MFE_VERTICALFLIP);
|
flame->eflags = (flame->eflags & ~MFE_VERTICALFLIP)|(player->mo->eflags & MFE_VERTICALFLIP);
|
||||||
|
|
Loading…
Reference in a new issue