mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-01-18 07:22:28 +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",
|
||||
|
||||
// Elemental Shield's Spawn
|
||||
"S_SPINFIRE0",
|
||||
"S_SPINFIRE1",
|
||||
"S_SPINFIRE2",
|
||||
"S_SPINFIRE3",
|
||||
|
@ -4791,15 +4790,6 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_SPINFIRE5",
|
||||
"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
|
||||
"S_SPIKE1",
|
||||
"S_SPIKE2",
|
||||
|
|
|
@ -158,7 +158,7 @@ extern FILE *logstream;
|
|||
|
||||
// Does this version require an added patch file?
|
||||
// Comment or uncomment this as necessary.
|
||||
//#define USE_PATCH_DTA
|
||||
#define USE_PATCH_DTA
|
||||
|
||||
// Modification options
|
||||
// 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
|
||||
|
||||
// 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|1, 2, {NULL}, 0, 0, S_SPINFIRE3}, // S_SPINFIRE2
|
||||
{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|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
|
||||
{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
|
||||
|
@ -5404,7 +5394,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
|
||||
{ // MT_SPINFIRE
|
||||
-1, // doomednum
|
||||
S_SPINFIRE0, // spawnstate
|
||||
S_SPINFIRE1, // spawnstate
|
||||
1, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
sfx_None, // seesound
|
||||
|
@ -5429,33 +5419,6 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
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
|
||||
523, // doomednum
|
||||
S_SPIKE1, // spawnstate
|
||||
|
|
11
src/info.h
11
src/info.h
|
@ -1634,7 +1634,6 @@ typedef enum state
|
|||
S_SPIKEBALL8,
|
||||
|
||||
// Elemental Shield's Spawn
|
||||
S_SPINFIRE0,
|
||||
S_SPINFIRE1,
|
||||
S_SPINFIRE2,
|
||||
S_SPINFIRE3,
|
||||
|
@ -1642,15 +1641,6 @@ typedef enum state
|
|||
S_SPINFIRE5,
|
||||
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
|
||||
S_SPIKE1,
|
||||
S_SPIKE2,
|
||||
|
@ -3143,7 +3133,6 @@ typedef enum mobj_type
|
|||
MT_SPIKEBALL, // Spike Ball
|
||||
MT_SPECIALSPIKEBALL,
|
||||
MT_SPINFIRE,
|
||||
MT_AIRSPINFIRE, // Elemental flame flying through the air
|
||||
MT_SPIKE,
|
||||
MT_STARPOST,
|
||||
MT_BIGMINE,
|
||||
|
|
24
src/p_mobj.c
24
src/p_mobj.c
|
@ -2377,6 +2377,19 @@ static boolean P_ZMovement(mobj_t *mo)
|
|||
mo->flags |= MF_NOGRAVITY;
|
||||
}
|
||||
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:
|
||||
if (P_CheckDeathPitCollide(mo))
|
||||
{
|
||||
|
@ -7338,10 +7351,13 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
#endif
|
||||
break;
|
||||
case MT_SPINFIRE:
|
||||
if (mobj->eflags & MFE_VERTICALFLIP)
|
||||
mobj->z = mobj->ceilingz - mobj->height;
|
||||
else
|
||||
mobj->z = mobj->floorz;
|
||||
if (mobj->flags & MF_NOGRAVITY)
|
||||
{
|
||||
if (mobj->eflags & MFE_VERTICALFLIP)
|
||||
mobj->z = mobj->ceilingz - mobj->height;
|
||||
else
|
||||
mobj->z = mobj->floorz;
|
||||
}
|
||||
// THERE IS NO BREAK HERE ON PURPOSE
|
||||
default:
|
||||
// check mobj against possible water content, before movement code
|
||||
|
|
|
@ -6224,9 +6224,11 @@ void P_ElementalFire(player_t *player, boolean cropcircle)
|
|||
#define numangles 8
|
||||
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);
|
||||
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;
|
||||
P_SetScale(flame, player->mo->scale);
|
||||
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);
|
||||
P_SetTarget(&flame->target, player->mo);
|
||||
flame->angle = travelangle;
|
||||
// flame->fuse = TICRATE*6; // now done in spawnstate
|
||||
flame->fuse = TICRATE*6;
|
||||
flame->destscale = player->mo->scale;
|
||||
P_SetScale(flame, player->mo->scale);
|
||||
flame->eflags = (flame->eflags & ~MFE_VERTICALFLIP)|(player->mo->eflags & MFE_VERTICALFLIP);
|
||||
|
|
Loading…
Reference in a new issue