* Remove flashing from spheres in bonus time through #ifdef.

* Fix inconsistency in counting nummaprings.
* Prevent perfect bonus in non-special stage NiGHTS maps.
This commit is contained in:
toaster 2018-06-07 15:10:43 +01:00
parent e054208a31
commit 35a5f7447e
3 changed files with 18 additions and 5 deletions

View File

@ -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;

View File

@ -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)
{

View File

@ -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))
{