diff --git a/src/p_mobj.c b/src/p_mobj.c index 301536ef4..99ffdc871 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -8765,6 +8765,7 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type) break; case MT_RING: case MT_COIN: + case MT_NIGHTSSTAR: nummaprings++; default: break; diff --git a/src/p_setup.c b/src/p_setup.c index 556428cbb..17cf3bfc7 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -852,7 +852,12 @@ void P_ReloadRings(void) mt->z = (INT16)(R_PointInSubsector(mt->x << FRACBITS, mt->y << FRACBITS) ->sector->floorheight>>FRACBITS); - P_SpawnHoopsAndRings(mt, true); + P_SpawnHoopsAndRings(mt, +#ifdef MANIASPHERES + true); +#else + !G_IsSpecialStage(gamemap)); // prevent flashing spheres in special stages +#endif } } for (i = 0; i < numHoops; i++) @@ -866,6 +871,11 @@ void P_SwitchSpheresBonusMode(boolean bonustime) mobj_t *mo; thinker_t *th; +#ifndef MANIASPHERES + if (G_IsSpecialStage(gamemap)) // prevent flashing spheres in special stages + return; +#endif + // scan the thinkers to find spheres to switch for (th = thinkercap.next; th != &thinkercap; th = th->next) { diff --git a/src/st_stuff.c b/src/st_stuff.c index baa17e9f3..1fd6a6186 100644 --- a/src/st_stuff.c +++ b/src/st_stuff.c @@ -1577,11 +1577,13 @@ static void ST_drawNiGHTSHUD(void) #endif ST_DrawTopLeftOverlayPatch(16, 8, nbracket); if (G_IsSpecialStage(gamemap)) - ST_DrawTopLeftOverlayPatch(24, 16, ((stplyr->bonustime && (leveltime & 4)) ? nssbon : nsshud)); - else if (stplyr->bonustime) - ST_DrawTopLeftOverlayPatch(24, 16, nbon[(leveltime/2)%12]); + ST_DrawTopLeftOverlayPatch(24, 16, ( +#ifdef MANIASPHERES + (stplyr->bonustime && (leveltime & 4)) ? nssbon : +#endif + nsshud)); else - ST_DrawTopLeftOverlayPatch(24, 16, nhud[(leveltime/2)%12]); + ST_DrawTopLeftOverlayPatch(24, 16, *(((stplyr->bonustime) ? nbon : nhud)+((leveltime/2)%12))); if (G_IsSpecialStage(gamemap)) {