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", "S_TOAD",
// Nights-specific stuff // Nights-specific stuff
"S_NIGHTSDRONE1", "S_NIGHTSDRONE_MAN1",
"S_NIGHTSDRONE2", "S_NIGHTSDRONE_MAN2",
"S_NIGHTSDRONE_SPARKLING1", "S_NIGHTSDRONE_SPARKLING1",
"S_NIGHTSDRONE_SPARKLING2", "S_NIGHTSDRONE_SPARKLING2",
"S_NIGHTSDRONE_SPARKLING3", "S_NIGHTSDRONE_SPARKLING3",
@ -5970,10 +5970,10 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_NIGHTSDRONE_SPARKLING14", "S_NIGHTSDRONE_SPARKLING14",
"S_NIGHTSDRONE_SPARKLING15", "S_NIGHTSDRONE_SPARKLING15",
"S_NIGHTSDRONE_SPARKLING16", "S_NIGHTSDRONE_SPARKLING16",
"S_NIGHTSGOAL1", "S_NIGHTSDRONE_GOAL1",
"S_NIGHTSGOAL2", "S_NIGHTSDRONE_GOAL2",
"S_NIGHTSGOAL3", "S_NIGHTSDRONE_GOAL3",
"S_NIGHTSGOAL4", "S_NIGHTSDRONE_GOAL4",
"S_NIGHTSPARKLE1", "S_NIGHTSPARKLE1",
"S_NIGHTSPARKLE2", "S_NIGHTSPARKLE2",
@ -6825,7 +6825,9 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
"MT_AXISTRANSFER", "MT_AXISTRANSFER",
"MT_AXISTRANSFERLINE", "MT_AXISTRANSFERLINE",
"MT_NIGHTSDRONE", "MT_NIGHTSDRONE",
"MT_NIGHTSGOAL", "MT_NIGHTSDRONE_MAN",
"MT_NIGHTSDRONE_SPARKLING",
"MT_NIGHTSDRONE_GOAL",
"MT_NIGHTSPARKLE", "MT_NIGHTSPARKLE",
"MT_NIGHTSLOOPHELPER", "MT_NIGHTSLOOPHELPER",
"MT_NIGHTSBUMPER", // NiGHTS Bumper "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 {SPR_TOAD, 0, -1, {NULL}, 0, 0, S_NULL}, // S_TOAD
// Nights Drone // Nights Drone
{SPR_NDRN, 0, -1, {NULL}, 0, 0, S_NIGHTSDRONE2}, // S_NIGHTSDRONE1 {SPR_NDRN, 0, -1, {NULL}, 0, 0, S_NIGHTSDRONE_MAN2}, // S_NIGHTSDRONE_MAN1
{SPR_NDRN, 0, -1, {NULL}, 0, 0, S_NIGHTSDRONE1}, // S_NIGHTSDRONE2 {SPR_NDRN, 0, -1, {NULL}, 0, 0, S_NIGHTSDRONE_MAN1}, // S_NIGHTSDRONE_MAN2
// Sparkling point (RETURN TO THE GOAL, etc) // Sparkling point (RETURN TO THE GOAL, etc)
{SPR_IVSP, 0, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING2}, // S_NIGHTSDRONE_SPARKLING1 {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 {SPR_IVSP, 30, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING1}, // S_NIGHTSDRONE_SPARKLING16
// NiGHTS GOAL banner (inside the sparkles!) // NiGHTS GOAL banner (inside the sparkles!)
{SPR_GOAL, 0, 4, {NULL}, 0, 0, S_NIGHTSGOAL2}, // S_NIGHTSGOAL1 {SPR_GOAL, 0, 4, {NULL}, 0, 0, S_NIGHTSDRONE_GOAL2}, // S_NIGHTSDRONE_GOAL1
{SPR_GOAL, 1, 4, {NULL}, 0, 0, S_NIGHTSGOAL3}, // S_NIGHTSGOAL2 {SPR_GOAL, 1, 4, {NULL}, 0, 0, S_NIGHTSDRONE_GOAL3}, // S_NIGHTSDRONE_GOAL2
{SPR_GOAL, 2, 4, {NULL}, 0, 0, S_NIGHTSGOAL4}, // S_NIGHTSGOAL3 {SPR_GOAL, 2, 4, {NULL}, 0, 0, S_NIGHTSDRONE_GOAL4}, // S_NIGHTSDRONE_GOAL3
{SPR_GOAL, 3, 4, {NULL}, 0, 0, S_NIGHTSGOAL1}, // S_NIGHTSGOAL4 {SPR_GOAL, 3, 4, {NULL}, 0, 0, S_NIGHTSDRONE_GOAL1}, // S_NIGHTSDRONE_GOAL4
// Nights Sparkle // Nights Sparkle
{SPR_NSPK, FF_FULLBRIGHT, 140, {NULL}, 0, 0, S_NIGHTSPARKLE2}, // S_NIGHTSPARKLE1 {SPR_NSPK, FF_FULLBRIGHT, 140, {NULL}, 0, 0, S_NIGHTSPARKLE2}, // S_NIGHTSPARKLE1
@ -16100,7 +16100,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
{ // MT_NIGHTSDRONE { // MT_NIGHTSDRONE
1703, // doomednum 1703, // doomednum
S_NIGHTSDRONE1, // spawnstate S_INVISIBLE, // spawnstate
120, // spawnhealth 120, // spawnhealth
S_NULL, // seestate S_NULL, // seestate
sfx_None, // seesound sfx_None, // seesound
@ -16125,9 +16125,36 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate 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 -1, // doomednum
S_NIGHTSGOAL1, // spawnstate S_INVISIBLE, // spawnstate
1000, // spawnhealth 1000, // spawnhealth
S_NULL, // seestate S_NULL, // seestate
sfx_None, // seesound sfx_None, // seesound
@ -16136,7 +16163,34 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL, // painstate S_NULL, // painstate
255, // painchance 255, // painchance
sfx_None, // painsound 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, // missilestate
S_NULL, // deathstate S_NULL, // deathstate
S_NULL, // xdeathstate S_NULL, // xdeathstate

View file

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

View file

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