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 franticitems;
|
||||||
extern boolean encoremode, prevencoremode;
|
extern boolean encoremode, prevencoremode;
|
||||||
|
|
||||||
extern SINT8 battlewanted[4];
|
extern UINT32 g_hiscore;
|
||||||
extern tic_t wantedcalcdelay;
|
extern tic_t wantedcalcdelay;
|
||||||
extern tic_t itemCooldowns[NUMKARTITEMS - 1];
|
extern tic_t itemCooldowns[NUMKARTITEMS - 1];
|
||||||
extern tic_t mapreset;
|
extern tic_t mapreset;
|
||||||
|
|
|
||||||
|
|
@ -297,7 +297,7 @@ SINT8 votes[MAXPLAYERS]; // Each player's vote
|
||||||
SINT8 pickedvote; // What vote the host rolls
|
SINT8 pickedvote; // What vote the host rolls
|
||||||
|
|
||||||
// Server-sided, synched variables
|
// 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 wantedcalcdelay; // Time before it recalculates WANTED
|
||||||
tic_t itemCooldowns[NUMKARTITEMS - 1]; // Cooldowns to prevent item spawning
|
tic_t itemCooldowns[NUMKARTITEMS - 1]; // Cooldowns to prevent item spawning
|
||||||
tic_t mapreset; // Map reset delay when enough players have joined an empty game
|
tic_t mapreset; // Map reset delay when enough players have joined an empty game
|
||||||
|
|
|
||||||
|
|
@ -139,6 +139,8 @@ void K_CheckBumpers(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
g_hiscore = toproundscore;
|
||||||
|
|
||||||
if (toproundscore < (numingame * 3))
|
if (toproundscore < (numingame * 3))
|
||||||
{
|
{
|
||||||
return;
|
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)
|
bool is_object_tracking_target(const mobj_t* mobj)
|
||||||
{
|
{
|
||||||
switch (mobj->type)
|
switch (mobj->type)
|
||||||
|
|
@ -234,6 +254,9 @@ bool is_object_tracking_target(const mobj_t* mobj)
|
||||||
case MT_SPECIAL_UFO:
|
case MT_SPECIAL_UFO:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
case MT_PLAYER:
|
||||||
|
return is_player_tracking_target(mobj->player);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,6 @@
|
||||||
// franticitems is Frantic Mode items, bool
|
// franticitems is Frantic Mode items, bool
|
||||||
// encoremode is Encore Mode (duh), bool
|
// encoremode is Encore Mode (duh), bool
|
||||||
// comeback is Battle Mode's karma comeback, also 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
|
// mapreset is set when enough players fill an empty server
|
||||||
|
|
||||||
boolean K_IsDuelItem(mobjtype_t type)
|
boolean K_IsDuelItem(mobjtype_t type)
|
||||||
|
|
|
||||||
|
|
@ -5250,6 +5250,10 @@ static boolean P_IsTrackerType(INT32 type)
|
||||||
case MT_SPECIAL_UFO:
|
case MT_SPECIAL_UFO:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
// Players sometimes get targeted with HUD tracking
|
||||||
|
case MT_PLAYER:
|
||||||
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4953,8 +4953,7 @@ static void P_NetArchiveMisc(savebuffer_t *save, boolean resending)
|
||||||
WRITESINT8(save->p, speedscramble);
|
WRITESINT8(save->p, speedscramble);
|
||||||
WRITESINT8(save->p, encorescramble);
|
WRITESINT8(save->p, encorescramble);
|
||||||
|
|
||||||
for (i = 0; i < 4; i++)
|
WRITEUINT32(save->p, g_hiscore);
|
||||||
WRITESINT8(save->p, battlewanted[i]);
|
|
||||||
|
|
||||||
// battleovertime_t
|
// battleovertime_t
|
||||||
WRITEUINT16(save->p, battleovertime.enabled);
|
WRITEUINT16(save->p, battleovertime.enabled);
|
||||||
|
|
@ -5125,8 +5124,7 @@ static inline boolean P_NetUnArchiveMisc(savebuffer_t *save, boolean reloading)
|
||||||
speedscramble = READSINT8(save->p);
|
speedscramble = READSINT8(save->p);
|
||||||
encorescramble = READSINT8(save->p);
|
encorescramble = READSINT8(save->p);
|
||||||
|
|
||||||
for (i = 0; i < 4; i++)
|
g_hiscore = READUINT32(save->p);
|
||||||
battlewanted[i] = READSINT8(save->p);
|
|
||||||
|
|
||||||
// battleovertime_t
|
// battleovertime_t
|
||||||
battleovertime.enabled = READUINT16(save->p);
|
battleovertime.enabled = READUINT16(save->p);
|
||||||
|
|
|
||||||
|
|
@ -7042,8 +7042,7 @@ static void P_InitLevelSettings(void)
|
||||||
franticitems = (boolean)cv_kartfrantic.value;
|
franticitems = (boolean)cv_kartfrantic.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 4; i++)
|
g_hiscore = 0;
|
||||||
battlewanted[i] = -1;
|
|
||||||
|
|
||||||
memset(&battleovertime, 0, sizeof(struct battleovertime));
|
memset(&battleovertime, 0, sizeof(struct battleovertime));
|
||||||
speedscramble = encorescramble = -1;
|
speedscramble = encorescramble = -1;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue