Emerald tokens being used as actual game tokens on the end-of-act screen!
https://gfycat.com/PlumpShowyBream https://gfycat.com/AlarmingLoathsomeBelugawhale
This commit is contained in:
parent
922603fbca
commit
c7c908eed3
|
@ -379,6 +379,7 @@ nightsdata_t ntemprecords;
|
||||||
|
|
||||||
extern UINT32 token; ///< Number of tokens collected in a level
|
extern UINT32 token; ///< Number of tokens collected in a level
|
||||||
extern UINT32 tokenlist; ///< List of tokens collected
|
extern UINT32 tokenlist; ///< List of tokens collected
|
||||||
|
extern boolean gottoken; ///< Did you get a token? Used for end of act
|
||||||
extern INT32 tokenbits; ///< Used for setting token bits
|
extern INT32 tokenbits; ///< Used for setting token bits
|
||||||
extern INT32 sstimer; ///< Time allotted in the special stage
|
extern INT32 sstimer; ///< Time allotted in the special stage
|
||||||
extern UINT32 bluescore; ///< Blue Team Scores
|
extern UINT32 bluescore; ///< Blue Team Scores
|
||||||
|
|
|
@ -156,6 +156,7 @@ UINT8 stagefailed; // Used for GEMS BONUS? Also to see if you beat the stage.
|
||||||
UINT16 emeralds;
|
UINT16 emeralds;
|
||||||
UINT32 token; // Number of tokens collected in a level
|
UINT32 token; // Number of tokens collected in a level
|
||||||
UINT32 tokenlist; // List of tokens collected
|
UINT32 tokenlist; // List of tokens collected
|
||||||
|
boolean gottoken; // Did you get a token? Used for end of act
|
||||||
INT32 tokenbits; // Used for setting token bits
|
INT32 tokenbits; // Used for setting token bits
|
||||||
|
|
||||||
// Old Special Stage
|
// Old Special Stage
|
||||||
|
@ -2780,7 +2781,6 @@ static INT16 RandMap(INT16 tolflags, INT16 pprevmap)
|
||||||
static void G_DoCompleted(void)
|
static void G_DoCompleted(void)
|
||||||
{
|
{
|
||||||
INT32 i;
|
INT32 i;
|
||||||
boolean gottoken = false;
|
|
||||||
|
|
||||||
tokenlist = 0; // Reset the list
|
tokenlist = 0; // Reset the list
|
||||||
|
|
||||||
|
@ -2866,10 +2866,9 @@ static void G_DoCompleted(void)
|
||||||
if (nextmap >= 1100-1 && nextmap <= 1102-1 && (gametype == GT_RACE || gametype == GT_COMPETITION))
|
if (nextmap >= 1100-1 && nextmap <= 1102-1 && (gametype == GT_RACE || gametype == GT_COMPETITION))
|
||||||
nextmap = (INT16)(spstage_start-1);
|
nextmap = (INT16)(spstage_start-1);
|
||||||
|
|
||||||
if (gametype == GT_COOP && token)
|
if ((gottoken = (gametype == GT_COOP && token)))
|
||||||
{
|
{
|
||||||
token--;
|
token--;
|
||||||
gottoken = true;
|
|
||||||
|
|
||||||
if (!(emeralds & EMERALD1))
|
if (!(emeralds & EMERALD1))
|
||||||
nextmap = (INT16)(sstage_start - 1); // Special Stage 1
|
nextmap = (INT16)(sstage_start - 1); // Special Stage 1
|
||||||
|
|
|
@ -91,7 +91,7 @@ patch_t *tallminus;
|
||||||
patch_t *emeraldpics[7];
|
patch_t *emeraldpics[7];
|
||||||
patch_t *tinyemeraldpics[7];
|
patch_t *tinyemeraldpics[7];
|
||||||
static patch_t *emblemicon;
|
static patch_t *emblemicon;
|
||||||
static patch_t *tokenicon;
|
patch_t *tokenicon;
|
||||||
|
|
||||||
//-------------------------------------------
|
//-------------------------------------------
|
||||||
// misc vars
|
// misc vars
|
||||||
|
|
|
@ -71,6 +71,7 @@ extern patch_t *rmatcico;
|
||||||
extern patch_t *bmatcico;
|
extern patch_t *bmatcico;
|
||||||
extern patch_t *tagico;
|
extern patch_t *tagico;
|
||||||
extern patch_t *tallminus;
|
extern patch_t *tallminus;
|
||||||
|
extern patch_t *tokenicon;
|
||||||
|
|
||||||
// set true when entering a chat message
|
// set true when entering a chat message
|
||||||
extern boolean chat_on;
|
extern boolean chat_on;
|
||||||
|
|
|
@ -147,6 +147,7 @@ static boolean useinterpic;
|
||||||
static INT32 timer;
|
static INT32 timer;
|
||||||
|
|
||||||
static INT32 intertic;
|
static INT32 intertic;
|
||||||
|
static INT32 tallydonetic = -1;
|
||||||
static INT32 endtic = -1;
|
static INT32 endtic = -1;
|
||||||
|
|
||||||
intertype_t intertype = int_none;
|
intertype_t intertype = int_none;
|
||||||
|
@ -159,6 +160,40 @@ static void Y_CalculateMatchWinners(void);
|
||||||
static void Y_FollowIntermission(void);
|
static void Y_FollowIntermission(void);
|
||||||
static void Y_UnloadData(void);
|
static void Y_UnloadData(void);
|
||||||
|
|
||||||
|
static void Y_IntermissionTokenDrawer(void)
|
||||||
|
{
|
||||||
|
INT32 y;
|
||||||
|
INT32 offs = 0;
|
||||||
|
UINT32 tokencount;
|
||||||
|
INT32 lowy = BASEVIDHEIGHT - 32;
|
||||||
|
INT16 temp = SHORT(tokenicon->height)/2;
|
||||||
|
INT32 calc;
|
||||||
|
|
||||||
|
if (tallydonetic != -1)
|
||||||
|
{
|
||||||
|
offs = (intertic - tallydonetic)*2;
|
||||||
|
if (offs > 10)
|
||||||
|
offs = 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
V_DrawFill(32, lowy-1, 16, 1, 31); // slot
|
||||||
|
|
||||||
|
y = (lowy + offs + 1) - (temp + (token + 1)*8);
|
||||||
|
|
||||||
|
for (tokencount = token; tokencount; tokencount--)
|
||||||
|
{
|
||||||
|
if (y >= -temp)
|
||||||
|
V_DrawSmallScaledPatch(32, y, 0, tokenicon);
|
||||||
|
y += 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
y += (offs*(temp - 1)/8);
|
||||||
|
calc = (lowy - y)*2;
|
||||||
|
|
||||||
|
if (calc > 0)
|
||||||
|
V_DrawCroppedPatch(32<<FRACBITS, y<<FRACBITS, FRACUNIT/2, 0, tokenicon, 32*FRACUNIT, y<<FRACBITS, SHORT(tokenicon->width), calc);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Y_IntermissionDrawer
|
// Y_IntermissionDrawer
|
||||||
//
|
//
|
||||||
|
@ -203,6 +238,9 @@ void Y_IntermissionDrawer(void)
|
||||||
{
|
{
|
||||||
INT32 bonusy;
|
INT32 bonusy;
|
||||||
|
|
||||||
|
if (gottoken) // first to be behind everything else
|
||||||
|
Y_IntermissionTokenDrawer();
|
||||||
|
|
||||||
// draw score
|
// draw score
|
||||||
V_DrawScaledPatch(hudinfo[HUD_SCORE].x, hudinfo[HUD_SCORE].y, V_SNAPTOLEFT, sboscore);
|
V_DrawScaledPatch(hudinfo[HUD_SCORE].x, hudinfo[HUD_SCORE].y, V_SNAPTOLEFT, sboscore);
|
||||||
V_DrawTallNum(hudinfo[HUD_SCORENUM].x, hudinfo[HUD_SCORENUM].y, V_SNAPTOLEFT, data.coop.score);
|
V_DrawTallNum(hudinfo[HUD_SCORENUM].x, hudinfo[HUD_SCORENUM].y, V_SNAPTOLEFT, data.coop.score);
|
||||||
|
@ -261,6 +299,9 @@ void Y_IntermissionDrawer(void)
|
||||||
INT32 xoffset3 = 0; // Line 3 x offset
|
INT32 xoffset3 = 0; // Line 3 x offset
|
||||||
UINT8 drawsection = 0;
|
UINT8 drawsection = 0;
|
||||||
|
|
||||||
|
if (gottoken) // first to be behind everything else
|
||||||
|
Y_IntermissionTokenDrawer();
|
||||||
|
|
||||||
// draw the header
|
// draw the header
|
||||||
if (intertic <= TICRATE)
|
if (intertic <= TICRATE)
|
||||||
animatetic = 0;
|
animatetic = 0;
|
||||||
|
@ -679,7 +720,10 @@ void Y_Ticker(void)
|
||||||
boolean anybonuses = false;
|
boolean anybonuses = false;
|
||||||
|
|
||||||
if (!intertic) // first time only
|
if (!intertic) // first time only
|
||||||
|
{
|
||||||
S_ChangeMusicInternal("_clear", false); // don't loop it
|
S_ChangeMusicInternal("_clear", false); // don't loop it
|
||||||
|
tallydonetic = -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (intertic < TICRATE) // one second pause before tally begins
|
if (intertic < TICRATE) // one second pause before tally begins
|
||||||
return;
|
return;
|
||||||
|
@ -709,6 +753,7 @@ void Y_Ticker(void)
|
||||||
|
|
||||||
if (!anybonuses)
|
if (!anybonuses)
|
||||||
{
|
{
|
||||||
|
tallydonetic = intertic;
|
||||||
endtic = intertic + 3*TICRATE; // 3 second pause after end of tally
|
endtic = intertic + 3*TICRATE; // 3 second pause after end of tally
|
||||||
S_StartSound(NULL, sfx_chchng); // cha-ching!
|
S_StartSound(NULL, sfx_chchng); // cha-ching!
|
||||||
|
|
||||||
|
@ -736,12 +781,11 @@ void Y_Ticker(void)
|
||||||
INT32 i;
|
INT32 i;
|
||||||
UINT32 oldscore = data.spec.score;
|
UINT32 oldscore = data.spec.score;
|
||||||
boolean skip = false;
|
boolean skip = false;
|
||||||
static INT32 tallydonetic = 0;
|
|
||||||
|
|
||||||
if (!intertic) // first time only
|
if (!intertic) // first time only
|
||||||
{
|
{
|
||||||
S_ChangeMusicInternal("_clear", false); // don't loop it
|
S_ChangeMusicInternal("_clear", false); // don't loop it
|
||||||
tallydonetic = 0;
|
tallydonetic = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (intertic < TICRATE) // one second pause before tally begins
|
if (intertic < TICRATE) // one second pause before tally begins
|
||||||
|
@ -751,9 +795,9 @@ void Y_Ticker(void)
|
||||||
if (playeringame[i] && (players[i].cmd.buttons & BT_USE))
|
if (playeringame[i] && (players[i].cmd.buttons & BT_USE))
|
||||||
skip = true;
|
skip = true;
|
||||||
|
|
||||||
if (tallydonetic != 0)
|
if ((data.spec.continues & 0x80) && tallydonetic != -1)
|
||||||
{
|
{
|
||||||
if (intertic > tallydonetic)
|
if ((intertic - tallydonetic) > (3*TICRATE)/2)
|
||||||
{
|
{
|
||||||
endtic = intertic + 4*TICRATE; // 4 second pause after end of tally
|
endtic = intertic + 4*TICRATE; // 4 second pause after end of tally
|
||||||
S_StartSound(NULL, sfx_s3kac); // cha-ching!
|
S_StartSound(NULL, sfx_s3kac); // cha-ching!
|
||||||
|
@ -772,9 +816,8 @@ void Y_Ticker(void)
|
||||||
|
|
||||||
if (!data.spec.bonus.points)
|
if (!data.spec.bonus.points)
|
||||||
{
|
{
|
||||||
if (data.spec.continues & 0x80) // don't set endtic yet!
|
tallydonetic = intertic;
|
||||||
tallydonetic = intertic + (3*TICRATE)/2;
|
if (!(data.spec.continues & 0x80)) // don't set endtic yet!
|
||||||
else // okay we're good.
|
|
||||||
endtic = intertic + 4*TICRATE; // 4 second pause after end of tally
|
endtic = intertic + 4*TICRATE; // 4 second pause after end of tally
|
||||||
|
|
||||||
S_StartSound(NULL, sfx_chchng); // cha-ching!
|
S_StartSound(NULL, sfx_chchng); // cha-ching!
|
||||||
|
|
Loading…
Reference in New Issue