Merge branch 'master' into fix-nametag-distance-check

This commit is contained in:
SteelT 2022-01-12 02:50:32 -05:00
commit 71a5030318
8 changed files with 43 additions and 16 deletions

View file

@ -261,7 +261,7 @@ INT32 stealtime = TICRATE/2;
INT32 sneakertime = TICRATE + (TICRATE/3); INT32 sneakertime = TICRATE + (TICRATE/3);
INT32 itemtime = 8*TICRATE; INT32 itemtime = 8*TICRATE;
INT32 bubbletime = TICRATE/2; INT32 bubbletime = TICRATE/2;
INT32 comebacktime = 10*TICRATE; INT32 comebacktime = 3*TICRATE;
INT32 bumptime = 6; INT32 bumptime = 6;
INT32 greasetics = 3*TICRATE; INT32 greasetics = 3*TICRATE;
INT32 wipeoutslowtime = 20; INT32 wipeoutslowtime = 20;

View file

@ -469,16 +469,15 @@ void K_RunPaperItemSpawners(void)
firstUnspawnedEmerald firstUnspawnedEmerald
); );
} }
else if (P_RandomChance(FRACUNIT/3)) else
{ {
drop = K_SpawnSphereBox( drop = K_SpawnSphereBox(
spotList[r]->x, spotList[r]->y, spotList[r]->z + (128 * mapobjectscale * flip), spotList[r]->x, spotList[r]->y, spotList[r]->z + (128 * mapobjectscale * flip),
FixedAngle(P_RandomRange(0, 359) * FRACUNIT), flip, FixedAngle(P_RandomRange(0, 359) * FRACUNIT), flip,
10 10
); );
} K_FlipFromObject(drop, spotList[r]);
else
{
drop = K_CreatePaperItem( drop = K_CreatePaperItem(
spotList[r]->x, spotList[r]->y, spotList[r]->z + (128 * mapobjectscale * flip), spotList[r]->x, spotList[r]->y, spotList[r]->z + (128 * mapobjectscale * flip),
FixedAngle(P_RandomRange(0, 359) * FRACUNIT), flip, FixedAngle(P_RandomRange(0, 359) * FRACUNIT), flip,

View file

@ -1721,6 +1721,7 @@ static void K_UpdateDraft(player_t *player)
{ {
fixed_t topspd = K_GetKartSpeed(player, false); fixed_t topspd = K_GetKartSpeed(player, false);
fixed_t draftdistance; fixed_t draftdistance;
fixed_t minDist;
UINT8 leniency; UINT8 leniency;
UINT8 i; UINT8 i;
@ -1740,6 +1741,13 @@ static void K_UpdateDraft(player_t *player)
draftdistance = FixedMul(draftdistance, K_GetKartGameSpeedScalar(gamespeed)); draftdistance = FixedMul(draftdistance, K_GetKartGameSpeedScalar(gamespeed));
} }
minDist = 640 * player->mo->scale;
if (gametype == GT_BATTLE)
{
// TODO: gametyperules
minDist /= 4;
}
// On the contrary, the leniency period biases toward high weight. // On the contrary, the leniency period biases toward high weight.
// (See also: the leniency variable in K_SpawnDraftDust) // (See also: the leniency variable in K_SpawnDraftDust)
leniency = (3*TICRATE)/4 + ((player->kartweight-1) * (TICRATE/4)); leniency = (3*TICRATE)/4 + ((player->kartweight-1) * (TICRATE/4));
@ -1798,7 +1806,7 @@ static void K_UpdateDraft(player_t *player)
#ifndef EASYDRAFTTEST #ifndef EASYDRAFTTEST
// TOO close to draft. // TOO close to draft.
if (dist < FixedMul(RING_DIST>>1, player->mo->scale)) if (dist < minDist)
continue; continue;
// Not close enough to draft. // Not close enough to draft.
@ -2866,6 +2874,13 @@ static void K_GetKartBoostPower(player_t *player)
{ {
// 30% - 44%, each point of speed adds 1.75% // 30% - 44%, each point of speed adds 1.75%
fixed_t draftspeed = ((3*FRACUNIT)/10) + ((player->kartspeed-1) * ((7*FRACUNIT)/400)); fixed_t draftspeed = ((3*FRACUNIT)/10) + ((player->kartspeed-1) * ((7*FRACUNIT)/400));
if (gametype == GT_BATTLE)
{
// TODO: gametyperules
draftspeed *= 2;
}
speedboost += FixedMul(draftspeed, player->draftpower); // (Drafting suffers no boost stack penalty.) speedboost += FixedMul(draftspeed, player->draftpower); // (Drafting suffers no boost stack penalty.)
numboosts++; numboosts++;
} }
@ -2962,11 +2977,18 @@ UINT16 K_GetKartFlashing(player_t *player)
{ {
UINT16 tics = flashingtics; UINT16 tics = flashingtics;
if (!player) if (gametype == GT_BATTLE)
{
// TODO: gametyperules
return 1;
}
if (player == NULL)
{
return tics; return tics;
}
tics += (tics/8) * (player->kartspeed); tics += (tics/8) * (player->kartspeed);
return tics; return tics;
} }
@ -3459,13 +3481,14 @@ void K_HandleBumperChanges(player_t *player, UINT8 prevBumpers)
karmahitbox->destscale = player->mo->destscale; karmahitbox->destscale = player->mo->destscale;
P_SetScale(karmahitbox, player->mo->scale); P_SetScale(karmahitbox, player->mo->scale);
player->karmadelay = comebacktime;
if (netgame) if (netgame)
{ {
CONS_Printf(M_GetText("%s lost all of their bumpers!\n"), player_names[player-players]); CONS_Printf(M_GetText("%s lost all of their bumpers!\n"), player_names[player-players]);
} }
} }
player->karmadelay = comebacktime;
K_CalculateBattleWanted(); K_CalculateBattleWanted();
K_CheckBumpers(); K_CheckBumpers();
} }

View file

@ -312,16 +312,13 @@ terrain_t *K_GetTerrainForTextureNum(INT32 textureNum)
--------------------------------------------------*/ --------------------------------------------------*/
terrain_t *K_GetTerrainForFlatNum(INT32 flatID) terrain_t *K_GetTerrainForFlatNum(INT32 flatID)
{ {
levelflat_t *levelFlat = NULL;
if (flatID < 0 || flatID >= (signed)numlevelflats) if (flatID < 0 || flatID >= (signed)numlevelflats)
{ {
// Clearly invalid floor... // Clearly invalid floor...
return NULL; return NULL;
} }
levelFlat = &levelflats[flatID]; return levelflats[flatID].terrain;
return K_GetTerrainForTextureName(levelFlat->name);
} }
/*-------------------------------------------------- /*--------------------------------------------------

View file

@ -661,6 +661,9 @@ flatfound:
levelflat->u.flat.baselumpnum = LUMPERROR; levelflat->u.flat.baselumpnum = LUMPERROR;
} }
levelflat->terrain =
K_GetTerrainForTextureName(levelflat->name);
CONS_Debug(DBG_SETUP, "flat #%03d: %s\n", atoi(sizeu1(numlevelflats)), levelflat->name); CONS_Debug(DBG_SETUP, "flat #%03d: %s\n", atoi(sizeu1(numlevelflats)), levelflat->name);
return ( numlevelflats++ ); return ( numlevelflats++ );
@ -4225,7 +4228,9 @@ boolean P_LoadLevel(boolean fromnetsave, boolean reloadinggamestate)
return true; return true;
// If so... // If so...
G_PreLevelTitleCard(); // but not if joining because the fade may time us out
if (!fromnetsave)
G_PreLevelTitleCard();
return true; return true;
} }

View file

@ -17,6 +17,7 @@
#include "doomdata.h" #include "doomdata.h"
#include "doomstat.h" #include "doomstat.h"
#include "r_defs.h" #include "r_defs.h"
#include "k_terrain.h"
// map md5, sent to players via PT_SERVERINFO // map md5, sent to players via PT_SERVERINFO
extern unsigned char mapmd5[16]; extern unsigned char mapmd5[16];
@ -71,6 +72,8 @@ typedef struct
UINT16 width, height; UINT16 width, height;
terrain_t *terrain;
// for flat animation // for flat animation
INT32 animseq; // start pos. in the anim sequence INT32 animseq; // start pos. in the anim sequence
INT32 numpics; INT32 numpics;

View file

@ -4553,7 +4553,7 @@ void P_PlayerThink(player_t *player)
|| (player->pflags & PF_NOCONTEST) // NO CONTEST explosion || (player->pflags & PF_NOCONTEST) // NO CONTEST explosion
|| ((gametyperules & GTR_BUMPERS) && player->bumpers <= 0 && player->karmadelay))) || ((gametyperules & GTR_BUMPERS) && player->bumpers <= 0 && player->karmadelay)))
{ {
if (player->flashing > 0 && player->flashing < K_GetKartFlashing(player) if (player->flashing > 1 && player->flashing < K_GetKartFlashing(player)
&& (leveltime & 1)) && (leveltime & 1))
player->mo->renderflags |= RF_DONTDRAW; player->mo->renderflags |= RF_DONTDRAW;
else else

View file

@ -45,7 +45,7 @@ UINT8 *screens[5];
// screens[3] = fade screen start // screens[3] = fade screen start
// screens[4] = fade screen end, postimage tempoarary buffer // screens[4] = fade screen end, postimage tempoarary buffer
consvar_t cv_ticrate = CVAR_INIT ("showfps", "No", 0, CV_YesNo, NULL); consvar_t cv_ticrate = CVAR_INIT ("showfps", "No", CV_SAVE, CV_YesNo, NULL);
static void CV_palette_OnChange(void); static void CV_palette_OnChange(void);