mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-03-30 22:50:51 +00:00
Initial checkpoint for NiGHTS LE triggers
This commit is contained in:
parent
c09991d3d4
commit
3d72c105df
3 changed files with 112 additions and 45 deletions
147
src/p_spec.c
147
src/p_spec.c
|
@ -1374,6 +1374,48 @@ void P_ChangeSectorTag(UINT32 sector, INT16 newtag)
|
|||
}
|
||||
}
|
||||
|
||||
//
|
||||
// P_RunNightserizeExecutors
|
||||
//
|
||||
void P_RunNightserizeExecutors(mobj_t *actor)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < numlines; i++)
|
||||
{
|
||||
if (lines[i].special == 323 || lines[i].special == 324)
|
||||
P_RunTriggerLinedef(&lines[i], actor, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// P_RunDeNightserizeExecutors
|
||||
//
|
||||
void P_RunDeNightserizeExecutors(mobj_t *actor)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < numlines; i++)
|
||||
{
|
||||
if (lines[i].special == 325 || lines[i].special == 326)
|
||||
P_RunTriggerLinedef(&lines[i], actor, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// P_RunNightsLapExecutors
|
||||
//
|
||||
void P_RunNightsLapExecutors(mobj_t *actor)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < numlines; i++)
|
||||
{
|
||||
if (lines[i].special == 327 || lines[i].special == 328)
|
||||
P_RunTriggerLinedef(&lines[i], actor, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
/** Hashes the sector tags across the sectors and linedefs.
|
||||
*
|
||||
* \sa P_FindSectorFromTag, P_ChangeSectorTag
|
||||
|
@ -1667,6 +1709,69 @@ boolean P_RunTriggerLinedef(line_t *triggerline, mobj_t *actor, sector_t *caller
|
|||
return false;
|
||||
}
|
||||
break;
|
||||
case 323: // each time
|
||||
case 324: // once
|
||||
{ // nightserize
|
||||
INT32 mareinput = sides[triggerline->sidenum[0]].textureoffset>>FRACBITS;
|
||||
INT32 lapinput = sides[triggerline->sidenum[0]].rowoffset>>FRACBITS;
|
||||
BOOL ltemare = triggerline->flags & ML_NOCLIMB;
|
||||
BOOL gtemare = triggerline->flags & ML_BLOCKMONSTERS;
|
||||
BOOL ltelap = triggerline->flags & ML_EFFECT1;
|
||||
BOOL gtelap = triggerline->flags & ML_EFFECT2;
|
||||
BOOL lapfrombonustime = triggerline->flags & ML_EFFECT3;
|
||||
BOOL doglobal = triggerline->flags & ML_EFFECT4;
|
||||
BOOL donomares = triggerline->flags & ML_EFFECT5; // unused for nights lap
|
||||
BOOL fromnonights = triggerline->flags & ML_BOUNCY; // unused for nights lap
|
||||
|
||||
CONS_Printf("Trigger Nightserize %i\n", triggerline->special);
|
||||
CONS_Printf("M-I %i | M-V %i | M-GTE %i | M-LTE %i | L-I %i | L-V %i/%i | L-GTE %i | L-LTE %i\n"
|
||||
, mareinput, actor->player->mare, gtemare, ltemare
|
||||
, lapinput, actor->player->marebonuslap, actor->player->marelap, gtelap, ltelap);
|
||||
CONS_Printf("L-Bonus %i | Global %i | No Mares %i | From No NiGHTS %i\n", lapfrombonustime, doglobal, donomares, fromnonights);
|
||||
}
|
||||
break;
|
||||
case 325: // each time
|
||||
case 326: // once
|
||||
{ // denightserize
|
||||
INT32 mareinput = sides[triggerline->sidenum[0]].textureoffset>>FRACBITS;
|
||||
INT32 lapinput = sides[triggerline->sidenum[0]].rowoffset>>FRACBITS;
|
||||
BOOL ltemare = triggerline->flags & ML_NOCLIMB;
|
||||
BOOL gtemare = triggerline->flags & ML_BLOCKMONSTERS;
|
||||
BOOL ltelap = triggerline->flags & ML_EFFECT1;
|
||||
BOOL gtelap = triggerline->flags & ML_EFFECT2;
|
||||
BOOL lapfrombonustime = triggerline->flags & ML_EFFECT3;
|
||||
BOOL doglobal = triggerline->flags & ML_EFFECT4;
|
||||
BOOL donomares = triggerline->flags & ML_EFFECT5; // all no nights // unused for nights lap
|
||||
BOOL fromnonights = triggerline->flags & ML_BOUNCY; // unused for nights lap
|
||||
|
||||
CONS_Printf("Trigger DeNightserize %i\n", triggerline->special);
|
||||
CONS_Printf("M-I %i | M-V %i | M-GTE %i | M-LTE %i | L-I %i | L-V %i/%i | L-GTE %i | L-LTE %i\n"
|
||||
, mareinput, actor->player->mare, gtemare, ltemare
|
||||
, lapinput, actor->player->marebonuslap, actor->player->marelap, gtelap, ltelap);
|
||||
CONS_Printf("L-Bonus %i | Global %i | No Mares %i | From No NiGHTS %i\n", lapfrombonustime, doglobal, donomares, fromnonights);
|
||||
}
|
||||
break;
|
||||
case 327: // each time
|
||||
case 328: // once
|
||||
{ // nights lap
|
||||
INT32 mareinput = sides[triggerline->sidenum[0]].textureoffset>>FRACBITS;
|
||||
INT32 lapinput = sides[triggerline->sidenum[0]].rowoffset>>FRACBITS;
|
||||
BOOL ltemare = triggerline->flags & ML_NOCLIMB;
|
||||
BOOL gtemare = triggerline->flags & ML_BLOCKMONSTERS;
|
||||
BOOL ltelap = triggerline->flags & ML_EFFECT1;
|
||||
BOOL gtelap = triggerline->flags & ML_EFFECT2;
|
||||
BOOL lapfrombonustime = triggerline->flags & ML_EFFECT3;
|
||||
BOOL doglobal = triggerline->flags & ML_EFFECT4;
|
||||
BOOL donomares = triggerline->flags & ML_EFFECT5; // unused for nights lap
|
||||
BOOL fromnonights = triggerline->flags & ML_BOUNCY; // unused for nights lap
|
||||
|
||||
CONS_Printf("Trigger NiGHTS Lap %i\n", triggerline->special);
|
||||
CONS_Printf("M-I %i | M-V %i | M-GTE %i | M-LTE %i | L-I %i | L-V %i/%i | L-GTE %i | L-LTE %i\n"
|
||||
, mareinput, actor->player->mare, gtemare, ltemare
|
||||
, lapinput, actor->player->marebonuslap, actor->player->marelap, gtelap, ltelap);
|
||||
CONS_Printf("L-Bonus %i | Global %i | No Mares %i | From No NiGHTS %i\n", lapfrombonustime, doglobal, donomares, fromnonights);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -5487,48 +5592,6 @@ static void P_RunLevelLoadExecutors(void)
|
|||
}
|
||||
}
|
||||
|
||||
//
|
||||
// P_RunNightserizeExecutors
|
||||
//
|
||||
static void P_RunNightserizeExecutors(mobj_t *actor)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < numlines; i++)
|
||||
{
|
||||
if (lines[i].special == 323 || lines[i].special == 324)
|
||||
P_RunTriggerLinedef(&lines[i], actor, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// P_RunDeNightserizeExecutors
|
||||
//
|
||||
static void P_RunDeNightserizeExecutors(mobj_t *actor)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < numlines; i++)
|
||||
{
|
||||
if (lines[i].special == 325 || lines[i].special == 326)
|
||||
P_RunTriggerLinedef(&lines[i], actor, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// P_RunNightsLapExecutors
|
||||
//
|
||||
static void P_RunNightsLapExecutors(mobj_t *actor)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < numlines; i++)
|
||||
{
|
||||
if (lines[i].special == 327 || lines[i].special == 328)
|
||||
P_RunTriggerLinedef(&lines[i], actor, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
/** Before things are loaded, initialises certain stuff in case they're needed
|
||||
* by P_ResetDynamicSlopes or P_LoadThings. This was split off from
|
||||
* P_SpawnSpecials, in case you couldn't tell.
|
||||
|
|
|
@ -66,6 +66,9 @@ void P_SwitchWeather(INT32 weathernum);
|
|||
boolean P_RunTriggerLinedef(line_t *triggerline, mobj_t *actor, sector_t *caller);
|
||||
void P_LinedefExecute(INT16 tag, mobj_t *actor, sector_t *caller);
|
||||
void P_ChangeSectorTag(UINT32 sector, INT16 newtag);
|
||||
void P_RunNightserizeExecutors(mobj_t *actor);
|
||||
void P_RunDeNightserizeExecutors(mobj_t *actor);
|
||||
void P_RunNightsLapExecutors(mobj_t *actor);
|
||||
|
||||
ffloor_t *P_GetFFloorByID(sector_t *sec, UINT16 id);
|
||||
|
||||
|
|
|
@ -639,7 +639,7 @@ static void P_DeNightserizePlayer(player_t *player)
|
|||
// Restore from drowning music
|
||||
P_RestoreMusic(player);
|
||||
|
||||
P_RunDeNightserizeExecutors();
|
||||
P_RunDeNightserizeExecutors(player->mo);
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -774,9 +774,10 @@ void P_NightserizePlayer(player_t *player, INT32 nighttime)
|
|||
player->texttimer = (UINT8)(110 - timeinmap);
|
||||
}
|
||||
|
||||
player->powers[pw_carry] = CR_NIGHTSMODE;
|
||||
|
||||
// Do this before setting CR_NIGHTSMODE so we can tell if player was non-NiGHTS
|
||||
P_RunNightserizeExecutors(player->mo);
|
||||
|
||||
player->powers[pw_carry] = CR_NIGHTSMODE;
|
||||
}
|
||||
|
||||
pflags_t P_GetJumpFlags(player_t *player)
|
||||
|
|
Loading…
Reference in a new issue