mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
HUD target player with most points
- Replace battlewanted global with g_hiscore, keeps track of the current highest number of points. - Adds HUD tracking for player(s) with the hiscore. - Should target both players in a tie.
This commit is contained in:
parent
9147a17bf3
commit
e6da831e36
8 changed files with 34 additions and 9 deletions
|
|
@ -695,7 +695,7 @@ extern UINT8 gamespeed;
|
|||
extern boolean franticitems;
|
||||
extern boolean encoremode, prevencoremode;
|
||||
|
||||
extern SINT8 battlewanted[4];
|
||||
extern UINT32 g_hiscore;
|
||||
extern tic_t wantedcalcdelay;
|
||||
extern tic_t itemCooldowns[NUMKARTITEMS - 1];
|
||||
extern tic_t mapreset;
|
||||
|
|
|
|||
|
|
@ -297,7 +297,7 @@ SINT8 votes[MAXPLAYERS]; // Each player's vote
|
|||
SINT8 pickedvote; // What vote the host rolls
|
||||
|
||||
// Server-sided, synched variables
|
||||
SINT8 battlewanted[4]; // WANTED players in battle, worth x2 points
|
||||
UINT32 g_hiscore; // Highest score (points) achieved by anyone in game
|
||||
tic_t wantedcalcdelay; // Time before it recalculates WANTED
|
||||
tic_t itemCooldowns[NUMKARTITEMS - 1]; // Cooldowns to prevent item spawning
|
||||
tic_t mapreset; // Map reset delay when enough players have joined an empty game
|
||||
|
|
|
|||
|
|
@ -139,6 +139,8 @@ void K_CheckBumpers(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
g_hiscore = toproundscore;
|
||||
|
||||
if (toproundscore < (numingame * 3))
|
||||
{
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -226,6 +226,26 @@ void K_DrawTargetTracking(const TargetTracking& target)
|
|||
}
|
||||
}
|
||||
|
||||
bool is_player_tracking_target(const player_t *player)
|
||||
{
|
||||
if (player == nullptr)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (g_hiscore < 1) // SOMEONE should be scoring
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player->roundscore < g_hiscore)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool is_object_tracking_target(const mobj_t* mobj)
|
||||
{
|
||||
switch (mobj->type)
|
||||
|
|
@ -234,6 +254,9 @@ bool is_object_tracking_target(const mobj_t* mobj)
|
|||
case MT_SPECIAL_UFO:
|
||||
return true;
|
||||
|
||||
case MT_PLAYER:
|
||||
return is_player_tracking_target(mobj->player);
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,7 +49,6 @@
|
|||
// franticitems is Frantic Mode items, bool
|
||||
// encoremode is Encore Mode (duh), bool
|
||||
// comeback is Battle Mode's karma comeback, also bool
|
||||
// battlewanted is an array of the WANTED player nums, -1 for no player in that slot
|
||||
// mapreset is set when enough players fill an empty server
|
||||
|
||||
boolean K_IsDuelItem(mobjtype_t type)
|
||||
|
|
|
|||
|
|
@ -5250,6 +5250,10 @@ static boolean P_IsTrackerType(INT32 type)
|
|||
case MT_SPECIAL_UFO:
|
||||
return true;
|
||||
|
||||
// Players sometimes get targeted with HUD tracking
|
||||
case MT_PLAYER:
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4953,8 +4953,7 @@ static void P_NetArchiveMisc(savebuffer_t *save, boolean resending)
|
|||
WRITESINT8(save->p, speedscramble);
|
||||
WRITESINT8(save->p, encorescramble);
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
WRITESINT8(save->p, battlewanted[i]);
|
||||
WRITEUINT32(save->p, g_hiscore);
|
||||
|
||||
// battleovertime_t
|
||||
WRITEUINT16(save->p, battleovertime.enabled);
|
||||
|
|
@ -5125,8 +5124,7 @@ static inline boolean P_NetUnArchiveMisc(savebuffer_t *save, boolean reloading)
|
|||
speedscramble = READSINT8(save->p);
|
||||
encorescramble = READSINT8(save->p);
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
battlewanted[i] = READSINT8(save->p);
|
||||
g_hiscore = READUINT32(save->p);
|
||||
|
||||
// battleovertime_t
|
||||
battleovertime.enabled = READUINT16(save->p);
|
||||
|
|
|
|||
|
|
@ -7042,8 +7042,7 @@ static void P_InitLevelSettings(void)
|
|||
franticitems = (boolean)cv_kartfrantic.value;
|
||||
}
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
battlewanted[i] = -1;
|
||||
g_hiscore = 0;
|
||||
|
||||
memset(&battleovertime, 0, sizeof(struct battleovertime));
|
||||
speedscramble = encorescramble = -1;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue