Nights Drone mobj and state entries

* New entries: NIGHTSDRONE_MAN, NIGHTSDRONE_SPARKLING
* NIGHTSGOAL renamed to NIGHTSDRONE_GOAL
* MT_NIGHTSDRONE repurposed as an invisble, no-gravity hitbox
This commit is contained in:
mazmazz 2018-08-10 18:24:31 -04:00
parent 30e4d2cd51
commit e0e77d873b
4 changed files with 84 additions and 26 deletions

View File

@ -5952,8 +5952,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_TOAD",
// Nights-specific stuff
"S_NIGHTSDRONE1",
"S_NIGHTSDRONE2",
"S_NIGHTSDRONE_MAN1",
"S_NIGHTSDRONE_MAN2",
"S_NIGHTSDRONE_SPARKLING1",
"S_NIGHTSDRONE_SPARKLING2",
"S_NIGHTSDRONE_SPARKLING3",
@ -5970,10 +5970,10 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_NIGHTSDRONE_SPARKLING14",
"S_NIGHTSDRONE_SPARKLING15",
"S_NIGHTSDRONE_SPARKLING16",
"S_NIGHTSGOAL1",
"S_NIGHTSGOAL2",
"S_NIGHTSGOAL3",
"S_NIGHTSGOAL4",
"S_NIGHTSDRONE_GOAL1",
"S_NIGHTSDRONE_GOAL2",
"S_NIGHTSDRONE_GOAL3",
"S_NIGHTSDRONE_GOAL4",
"S_NIGHTSPARKLE1",
"S_NIGHTSPARKLE2",
@ -6825,7 +6825,9 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
"MT_AXISTRANSFER",
"MT_AXISTRANSFERLINE",
"MT_NIGHTSDRONE",
"MT_NIGHTSGOAL",
"MT_NIGHTSDRONE_MAN",
"MT_NIGHTSDRONE_SPARKLING",
"MT_NIGHTSDRONE_GOAL",
"MT_NIGHTSPARKLE",
"MT_NIGHTSLOOPHELPER",
"MT_NIGHTSBUMPER", // NiGHTS Bumper

View File

@ -3239,8 +3239,8 @@ state_t states[NUMSTATES] =
{SPR_TOAD, 0, -1, {NULL}, 0, 0, S_NULL}, // S_TOAD
// Nights Drone
{SPR_NDRN, 0, -1, {NULL}, 0, 0, S_NIGHTSDRONE2}, // S_NIGHTSDRONE1
{SPR_NDRN, 0, -1, {NULL}, 0, 0, S_NIGHTSDRONE1}, // S_NIGHTSDRONE2
{SPR_NDRN, 0, -1, {NULL}, 0, 0, S_NIGHTSDRONE_MAN2}, // S_NIGHTSDRONE_MAN1
{SPR_NDRN, 0, -1, {NULL}, 0, 0, S_NIGHTSDRONE_MAN1}, // S_NIGHTSDRONE_MAN2
// Sparkling point (RETURN TO THE GOAL, etc)
{SPR_IVSP, 0, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING2}, // S_NIGHTSDRONE_SPARKLING1
@ -3261,10 +3261,10 @@ state_t states[NUMSTATES] =
{SPR_IVSP, 30, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING1}, // S_NIGHTSDRONE_SPARKLING16
// NiGHTS GOAL banner (inside the sparkles!)
{SPR_GOAL, 0, 4, {NULL}, 0, 0, S_NIGHTSGOAL2}, // S_NIGHTSGOAL1
{SPR_GOAL, 1, 4, {NULL}, 0, 0, S_NIGHTSGOAL3}, // S_NIGHTSGOAL2
{SPR_GOAL, 2, 4, {NULL}, 0, 0, S_NIGHTSGOAL4}, // S_NIGHTSGOAL3
{SPR_GOAL, 3, 4, {NULL}, 0, 0, S_NIGHTSGOAL1}, // S_NIGHTSGOAL4
{SPR_GOAL, 0, 4, {NULL}, 0, 0, S_NIGHTSDRONE_GOAL2}, // S_NIGHTSDRONE_GOAL1
{SPR_GOAL, 1, 4, {NULL}, 0, 0, S_NIGHTSDRONE_GOAL3}, // S_NIGHTSDRONE_GOAL2
{SPR_GOAL, 2, 4, {NULL}, 0, 0, S_NIGHTSDRONE_GOAL4}, // S_NIGHTSDRONE_GOAL3
{SPR_GOAL, 3, 4, {NULL}, 0, 0, S_NIGHTSDRONE_GOAL1}, // S_NIGHTSDRONE_GOAL4
// Nights Sparkle
{SPR_NSPK, FF_FULLBRIGHT, 140, {NULL}, 0, 0, S_NIGHTSPARKLE2}, // S_NIGHTSPARKLE1
@ -16100,7 +16100,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
{ // MT_NIGHTSDRONE
1703, // doomednum
S_NIGHTSDRONE1, // spawnstate
S_INVISIBLE, // spawnstate
120, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
@ -16125,9 +16125,36 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_NIGHTSGOAL
{ // MT_NIGHTSDRONE_MAN
-1, // doomednum
S_INVISIBLE, // spawnstate
120, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
0, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
255, // painchance
sfx_None, // painsound
S_NIGHTSDRONE_MAN1, // meleestate
S_NULL, // missilestate
S_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
0, // speed
16*FRACUNIT, // radius
56*FRACUNIT, // height
1, // display offset
1000, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_NIGHTSDRONE_SPARKLING
-1, // doomednum
S_NIGHTSGOAL1, // spawnstate
S_INVISIBLE, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
@ -16136,7 +16163,34 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL, // painstate
255, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NIGHTSDRONE_SPARKLING1, // meleestate
S_NULL, // missilestate
S_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
0, // speed
16*FRACUNIT, // radius
56*FRACUNIT, // height
1, // display offset
1000, // mass
0, // damage
sfx_None, // activesound
MF_NOGRAVITY|MF_NOBLOCKMAP|MF_NOCLIP|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_NIGHTSDRONE_GOAL
-1, // doomednum
S_INVISIBLE, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
0, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
255, // painchance
sfx_None, // painsound
S_NIGHTSDRONE_GOAL1, // meleestate
S_NULL, // missilestate
S_NULL, // deathstate
S_NULL, // xdeathstate

View File

@ -3305,8 +3305,8 @@ typedef enum state
S_TOAD,
// Nights-specific stuff
S_NIGHTSDRONE1,
S_NIGHTSDRONE2,
S_NIGHTSDRONE_MAN1,
S_NIGHTSDRONE_MAN2,
S_NIGHTSDRONE_SPARKLING1,
S_NIGHTSDRONE_SPARKLING2,
S_NIGHTSDRONE_SPARKLING3,
@ -3323,10 +3323,10 @@ typedef enum state
S_NIGHTSDRONE_SPARKLING14,
S_NIGHTSDRONE_SPARKLING15,
S_NIGHTSDRONE_SPARKLING16,
S_NIGHTSGOAL1,
S_NIGHTSGOAL2,
S_NIGHTSGOAL3,
S_NIGHTSGOAL4,
S_NIGHTSDRONE_GOAL1,
S_NIGHTSDRONE_GOAL2,
S_NIGHTSDRONE_GOAL3,
S_NIGHTSDRONE_GOAL4,
S_NIGHTSPARKLE1,
S_NIGHTSPARKLE2,
@ -4198,7 +4198,9 @@ typedef enum mobj_type
MT_AXISTRANSFER,
MT_AXISTRANSFERLINE,
MT_NIGHTSDRONE,
MT_NIGHTSGOAL,
MT_NIGHTSDRONE_MAN,
MT_NIGHTSDRONE_SPARKLING,
MT_NIGHTSDRONE_GOAL,
MT_NIGHTSPARKLE,
MT_NIGHTSLOOPHELPER,
MT_NIGHTSBUMPER, // NiGHTS Bumper

View File

@ -7848,7 +7848,7 @@ void P_MobjThinker(mobj_t *mobj)
mobj->flags &= ~MF_NOGRAVITY;
mobj->flags2 |= MF2_DONTDRAW;
P_SetMobjState(mobj, S_NIGHTSDRONE1);
//P_SetMobjState(mobj, S_NIGHTSDRONE);
}
}
// Invisible/bouncing mode.
@ -7880,7 +7880,7 @@ void P_MobjThinker(mobj_t *mobj)
mobj->z += (mobj->spawnpoint->options >> ZSHIFT)<<FRACBITS;
CONS_Debug(DBG_NIGHTSBASIC, "Adding goal post\n");
P_SetTarget(&mobj->target, P_SpawnMobjFromMobj(mobj, 0, 0, FRACUNIT, MT_NIGHTSGOAL));
P_SetTarget(&mobj->target, P_SpawnMobjFromMobj(mobj, 0, 0, FRACUNIT, MT_NIGHTSDRONE_GOAL));
mobj->flags2 &= ~MF2_DONTDRAW;
mobj->flags |= MF_NOGRAVITY;