Reverted scoring back to what it was before, change order-of-operations to allow switcheroos from bombs.

This commit is contained in:
TehRealSalt 2018-06-30 23:35:38 -04:00
parent e4c96fcd7f
commit 4a9c3618c3
3 changed files with 21 additions and 78 deletions

View File

@ -3764,10 +3764,7 @@ void K_CheckBalloons(void)
UINT8 i;
UINT8 numingame = 0;
SINT8 winnernum = -1;
#if 0
return; // set to 1 to test comeback mechanics while alone
#endif
INT32 winnerscoreadd = 0;
if (!multiplayer)
return;
@ -3787,21 +3784,24 @@ void K_CheckBalloons(void)
return;
numingame++;
winnerscoreadd += players[i].score;
if (players[i].kartstuff[k_balloon] <= 0) // if you don't have any balloons, you're probably not a winner
continue;
else if (winnernum > -1) // TWO winners? that's dumb :V
return;
winnernum = i;
winnerscoreadd -= players[i].score;
}
if (numingame <= 1)
return;
/*if (numingame <= 1)
return;*/
if (playeringame[winnernum])
if (winnernum > -1 && playeringame[winnernum])
{
players[winnernum].score += 1;
CONS_Printf(M_GetText("%s recieved a point for winning!\n"), player_names[winnernum]);
players[winnernum].score += winnerscoreadd;
CONS_Printf(M_GetText("%s recieved %d point%s for winning!\n"), player_names[winnernum], winnerscoreadd, (winnerscoreadd == 1 ? "" : "s"));
}
for (i = 0; i < MAXPLAYERS; i++)
@ -5176,7 +5176,7 @@ void K_drawKartHUD(void)
// This is handled by console/menu values
K_initKartHUD();
// Draw that fun first person HUD!
// Draw that fun first person HUD! Drawn ASAP so it looks more "real".
if ((stplyr == &players[displayplayer] && !camera.chase)
|| ((splitscreen && stplyr == &players[secondarydisplayplayer]) && !camera2.chase)
|| ((splitscreen > 1 && stplyr == &players[thirddisplayplayer]) && !camera3.chase)
@ -5187,7 +5187,7 @@ void K_drawKartHUD(void)
if (leveltime < 15 && stplyr == &players[displayplayer])
{
if (leveltime <= 5)
V_DrawFill(0,0,BASEVIDWIDTH,BASEVIDHEIGHT,120); // Pure white on first three frames, to hide SRB2's awful level load artifacts
V_DrawFill(0,0,BASEVIDWIDTH,BASEVIDHEIGHT,120); // Pure white on first few frames, to hide SRB2's awful level load artifacts
else
V_DrawFadeScreen(120, 15-leveltime); // Then gradually fade out from there
}

View File

@ -455,15 +455,14 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
boom->color = SKINCOLOR_RED;
S_StartSound(boom, special->info->attacksound);
K_ExplodePlayer(player, special->target);
special->target->player->kartstuff[k_comebackpoints] += 2;
if (netgame && cv_hazardlog.value)
CONS_Printf(M_GetText("%s bombed %s!\n"), player_names[special->target->player-players], player_names[player-players]);
if (special->target->player->kartstuff[k_comebackpoints] >= 3)
K_StealBalloon(special->target->player, player, true);
special->target->player->kartstuff[k_comebacktimer] = comebacktime;
K_ExplodePlayer(player, special->target);
}
}
else if (special->target->player->kartstuff[k_comebackmode] == 1 && P_CanPickupItem(player, true))
@ -471,16 +470,17 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
mobj_t *poof = P_SpawnMobj(tmthing->x, tmthing->y, tmthing->z, MT_EXPLODE);
S_StartSound(poof, special->info->seesound);
player->kartstuff[k_itemroulette] = 1;
player->kartstuff[k_roulettetype] = 1;
special->target->player->kartstuff[k_comebackmode] = 0;
special->target->player->kartstuff[k_comebackpoints]++;
if (netgame && cv_hazardlog.value)
CONS_Printf(M_GetText("%s gave an item to %s.\n"), player_names[special->target->player-players], player_names[player-players]);
if (special->target->player->kartstuff[k_comebackpoints] >= 3)
K_StealBalloon(special->target->player, player, true);
special->target->player->kartstuff[k_comebacktimer] = comebacktime;
player->kartstuff[k_itemroulette] = 1;
player->kartstuff[k_roulettetype] = 1;
}
return;
// ***************************************** //

View File

@ -1039,11 +1039,7 @@ void P_DoSuperTransformation(player_t *player, boolean giverings)
// Adds to the player's score
void P_AddPlayerScore(player_t *player, UINT32 amount)
{
UINT32 oldscore;
#if 1
return; // Nope, still don't need this for Battle even
#endif
//UINT32 oldscore;
if (player->bot)
player = &players[consoleplayer];
@ -1051,60 +1047,7 @@ void P_AddPlayerScore(player_t *player, UINT32 amount)
if (player->exiting) // srb2kart
return;
// NiGHTS does it different!
if (gamestate == GS_LEVEL && mapheaderinfo[gamemap-1]->typeoflevel & TOL_NIGHTS)
{
if ((netgame || multiplayer) && G_IsSpecialStage(gamemap))
{ // Pseudo-shared score for multiplayer special stages.
INT32 i;
for (i = 0; i < MAXPLAYERS; i++)
if (playeringame[i] && players[i].pflags & PF_NIGHTSMODE)
{
oldscore = players[i].marescore;
// Don't go above MAXSCORE.
if (players[i].marescore + amount < MAXSCORE)
players[i].marescore += amount;
else
players[i].marescore = MAXSCORE;
// Continues are worthless in netgames.
// If that stops being the case uncomment this.
/* if (!ultimatemode && players[i].marescore > 50000
&& oldscore < 50000)
{
players[i].continues += 1;
players[i].gotcontinue = true;
if (P_IsLocalPlayer(player))
S_StartSound(NULL, sfx_flgcap);
} */
}
}
else
{
oldscore = player->marescore;
// Don't go above MAXSCORE.
if (player->marescore + amount < MAXSCORE)
player->marescore += amount;
else
player->marescore = MAXSCORE;
if (!ultimatemode && !(netgame || multiplayer) && G_IsSpecialStage(gamemap)
&& player->marescore >= 50000 && oldscore < 50000)
{
player->continues += 1;
player->gotcontinue = true;
if (P_IsLocalPlayer(player))
S_StartSound(NULL, sfx_flgcap);
}
}
if (gametype == GT_COOP)
return;
}
oldscore = player->score;
//oldscore = player->score;
// Don't go above MAXSCORE.
if (player->score + amount < MAXSCORE)
@ -1113,11 +1056,11 @@ void P_AddPlayerScore(player_t *player, UINT32 amount)
player->score = MAXSCORE;
// check for extra lives every 50000 pts
if (!ultimatemode && !modeattacking && player->score > oldscore && player->score % 50000 < amount && (gametype == GT_COMPETITION || gametype == GT_COOP))
/*if (!ultimatemode && !modeattacking && player->score > oldscore && player->score % 50000 < amount && (gametype == GT_COMPETITION || gametype == GT_COOP))
{
P_GivePlayerLives(player, (player->score/50000) - (oldscore/50000));
P_PlayLivesJingle(player);
}
}*/
// In team match, all awarded points are incremented to the team's running score.
if (gametype == GT_TEAMMATCH)