mirror of
				https://github.com/KartKrewDev/RingRacers.git
				synced 2025-10-30 08:01:28 +00:00 
			
		
		
		
	Instead of player->laptime, lets add curlap
Since lap time will only ever be used locally, it makes more sense to just use one variable instead of a player struct variable
This commit is contained in:
		
							parent
							
								
									5d3c9a1d73
								
							
						
					
					
						commit
						5981ae6ac0
					
				
					 12 changed files with 34 additions and 36 deletions
				
			
		| 
						 | 
				
			
			@ -940,7 +940,6 @@ static inline void resynch_write_others(resynchend_pak *rst)
 | 
			
		|||
			rst->numboxes[i] = 0;
 | 
			
		||||
			rst->totalring[i] = 0;
 | 
			
		||||
			rst->realtime[i] = 0;
 | 
			
		||||
			rst->laptime[i] = 0;
 | 
			
		||||
			rst->laps[i] = 0;
 | 
			
		||||
			continue;
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -952,7 +951,6 @@ static inline void resynch_write_others(resynchend_pak *rst)
 | 
			
		|||
		rst->numboxes[i] = SHORT(players[i].numboxes);
 | 
			
		||||
		rst->totalring[i] = SHORT(players[i].totalring);
 | 
			
		||||
		rst->realtime[i] = (tic_t)LONG(players[i].realtime);
 | 
			
		||||
		rst->laptime[i] = (tic_t)LONG(players[i].laptime);
 | 
			
		||||
		rst->laps[i] = players[i].laps;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -974,7 +972,6 @@ static inline void resynch_read_others(resynchend_pak *p)
 | 
			
		|||
		players[i].numboxes = SHORT(p->numboxes[i]);
 | 
			
		||||
		players[i].totalring = SHORT(p->totalring[i]);
 | 
			
		||||
		players[i].realtime = (tic_t)LONG(p->realtime[i]);
 | 
			
		||||
		players[i].laptime = (tic_t)LONG(p->laptime[i]);
 | 
			
		||||
		players[i].laps = p->laps[i];
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -169,7 +169,6 @@ typedef struct
 | 
			
		|||
	INT16 numboxes[MAXPLAYERS];
 | 
			
		||||
	INT16 totalring[MAXPLAYERS];
 | 
			
		||||
	tic_t realtime[MAXPLAYERS];
 | 
			
		||||
	tic_t laptime[MAXPLAYERS];
 | 
			
		||||
	UINT8 laps[MAXPLAYERS];
 | 
			
		||||
} ATTRPACK resynchend_pak;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -463,7 +463,6 @@ typedef struct player_s
 | 
			
		|||
	INT16 numboxes; // Number of item boxes obtained for Race Mode
 | 
			
		||||
	INT16 totalring; // Total number of rings obtained for Race Mode
 | 
			
		||||
	tic_t realtime; // integer replacement for leveltime
 | 
			
		||||
	tic_t laptime; // SRB2kart: Time spent on current lap, used for Record Attack
 | 
			
		||||
	UINT8 laps; // Number of laps (optional)
 | 
			
		||||
 | 
			
		||||
	////////////////////
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -444,7 +444,7 @@ extern UINT8 gamespeed;
 | 
			
		|||
extern boolean franticitems;
 | 
			
		||||
extern boolean mirrormode;
 | 
			
		||||
extern boolean comeback;
 | 
			
		||||
extern tic_t bestlap;
 | 
			
		||||
extern tic_t curlap, bestlap;
 | 
			
		||||
 | 
			
		||||
extern tic_t hidetime;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -244,7 +244,8 @@ UINT8 gamespeed; // Game's current speed (or difficulty, or cc, or etc); 0-2 for
 | 
			
		|||
boolean mirrormode; // Mirror Mode currently enabled?
 | 
			
		||||
boolean franticitems; // Frantic items currently enabled?
 | 
			
		||||
boolean comeback; // Battle Mode's karma comeback is on/off
 | 
			
		||||
tic_t bestlap; // Best lap time, should be local
 | 
			
		||||
tic_t curlap; // Current lap time, calculated locally
 | 
			
		||||
tic_t bestlap; // Best lap time, locally
 | 
			
		||||
 | 
			
		||||
tic_t hidetime;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2334,7 +2335,6 @@ void G_PlayerReborn(INT32 player)
 | 
			
		|||
	INT32 balloon;
 | 
			
		||||
	INT32 comebackpoints;
 | 
			
		||||
	INT32 comebackshowninfo;
 | 
			
		||||
	tic_t laptime;
 | 
			
		||||
 | 
			
		||||
	score = players[player].score;
 | 
			
		||||
	lives = players[player].lives;
 | 
			
		||||
| 
						 | 
				
			
			@ -2393,7 +2393,6 @@ void G_PlayerReborn(INT32 player)
 | 
			
		|||
	balloon = players[player].kartstuff[k_balloon];
 | 
			
		||||
	comebackpoints = players[player].kartstuff[k_comebackpoints];
 | 
			
		||||
	comebackshowninfo = players[player].kartstuff[k_comebackshowninfo];
 | 
			
		||||
	laptime = players[player].laptime;
 | 
			
		||||
 | 
			
		||||
	p = &players[player];
 | 
			
		||||
	memset(p, 0, sizeof (*p));
 | 
			
		||||
| 
						 | 
				
			
			@ -2456,8 +2455,6 @@ void G_PlayerReborn(INT32 player)
 | 
			
		|||
	p->kartstuff[k_comebackshowninfo] = comebackshowninfo;
 | 
			
		||||
	p->kartstuff[k_comebacktimer] = comebacktime;
 | 
			
		||||
 | 
			
		||||
	p->laptime = laptime;
 | 
			
		||||
 | 
			
		||||
	// Don't do anything immediately
 | 
			
		||||
	p->pflags |= PF_USEDOWN;
 | 
			
		||||
	p->pflags |= PF_ATTACKDOWN;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -228,8 +228,6 @@ static int player_get(lua_State *L)
 | 
			
		|||
		lua_pushinteger(L, plr->totalring);
 | 
			
		||||
	else if (fastcmp(field,"realtime"))
 | 
			
		||||
		lua_pushinteger(L, plr->realtime);
 | 
			
		||||
	else if (fastcmp(field,"laptime"))
 | 
			
		||||
		lua_pushinteger(L, plr->laptime);
 | 
			
		||||
	else if (fastcmp(field,"laps"))
 | 
			
		||||
		lua_pushinteger(L, plr->laps);
 | 
			
		||||
	else if (fastcmp(field,"ctfteam"))
 | 
			
		||||
| 
						 | 
				
			
			@ -503,8 +501,6 @@ static int player_set(lua_State *L)
 | 
			
		|||
		plr->totalring = (INT16)luaL_checkinteger(L, 3);
 | 
			
		||||
	else if (fastcmp(field,"realtime"))
 | 
			
		||||
		plr->realtime = (tic_t)luaL_checkinteger(L, 3);
 | 
			
		||||
	else if (fastcmp(field,"laptime"))
 | 
			
		||||
		plr->laptime = (tic_t)luaL_checkinteger(L, 3);
 | 
			
		||||
	else if (fastcmp(field,"laps"))
 | 
			
		||||
		plr->laps = (UINT8)luaL_checkinteger(L, 3);
 | 
			
		||||
	else if (fastcmp(field,"ctfteam"))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -235,8 +235,8 @@ boolean cht_Responder(event_t *ev)
 | 
			
		|||
	else
 | 
			
		||||
		ch = (UINT8)ev->data1;
 | 
			
		||||
 | 
			
		||||
	ret += cht_CheckCheat(&cheat_ultimate, (char)ch);
 | 
			
		||||
	ret += cht_CheckCheat(&cheat_ultimate_joy, (char)ch);
 | 
			
		||||
	//ret += cht_CheckCheat(&cheat_ultimate, (char)ch);
 | 
			
		||||
	//ret += cht_CheckCheat(&cheat_ultimate_joy, (char)ch);
 | 
			
		||||
	ret += cht_CheckCheat(&cheat_warp, (char)ch);
 | 
			
		||||
	ret += cht_CheckCheat(&cheat_warp_joy, (char)ch);
 | 
			
		||||
#ifdef DEVELOP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -736,9 +736,9 @@ static menuitem_t SP_LevelSelectMenu[] =
 | 
			
		|||
// Single Player Time Attack
 | 
			
		||||
static menuitem_t SP_TimeAttackMenu[] =
 | 
			
		||||
{
 | 
			
		||||
	{IT_STRING|IT_CVAR,        NULL, "Level",      &cv_nextmap,          52},
 | 
			
		||||
	{IT_STRING|IT_CVAR,        NULL, "Player",     &cv_chooseskin,       62},
 | 
			
		||||
	{IT_STRING|IT_CVAR,        NULL, "Color",      &cv_playercolor,      72},
 | 
			
		||||
	{IT_STRING|IT_CVAR,        NULL, "Level",      &cv_nextmap,          48},
 | 
			
		||||
	{IT_STRING|IT_CVAR,        NULL, "Player",     &cv_chooseskin,       58},
 | 
			
		||||
	{IT_STRING|IT_CVAR,        NULL, "Color",      &cv_playercolor,      68},
 | 
			
		||||
 | 
			
		||||
	{IT_DISABLED,              NULL, "Guest Option...", &SP_GuestReplayDef, 100},
 | 
			
		||||
	{IT_DISABLED,              NULL, "Replay...",     &SP_ReplayDef,        110},
 | 
			
		||||
| 
						 | 
				
			
			@ -5507,7 +5507,7 @@ void M_DrawTimeAttackMenu(void)
 | 
			
		|||
	{
 | 
			
		||||
		UINT8 *colormap = R_GetTranslationColormap(cv_chooseskin.value-1, cv_playercolor.value, 0);
 | 
			
		||||
		PictureOfUrFace = W_CachePatchName(skins[cv_chooseskin.value-1].face, PU_CACHE);
 | 
			
		||||
		V_DrawMappedPatch(256,90,0,PictureOfUrFace, colormap);
 | 
			
		||||
		V_DrawMappedPatch(256,88,0,PictureOfUrFace, colormap);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Level record list
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -182,7 +182,6 @@ static void P_NetArchivePlayers(void)
 | 
			
		|||
		WRITEINT16(save_p, players[i].numboxes);
 | 
			
		||||
		WRITEINT16(save_p, players[i].totalring);
 | 
			
		||||
		WRITEUINT32(save_p, players[i].realtime);
 | 
			
		||||
		WRITEUINT32(save_p, players[i].laptime); // SRB2kart
 | 
			
		||||
		WRITEUINT8(save_p, players[i].laps);
 | 
			
		||||
 | 
			
		||||
		////////////////////
 | 
			
		||||
| 
						 | 
				
			
			@ -367,7 +366,6 @@ static void P_NetUnArchivePlayers(void)
 | 
			
		|||
		players[i].numboxes = READINT16(save_p); // Number of item boxes obtained for Race Mode
 | 
			
		||||
		players[i].totalring = READINT16(save_p); // Total number of rings obtained for Race Mode
 | 
			
		||||
		players[i].realtime = READUINT32(save_p); // integer replacement for leveltime
 | 
			
		||||
		players[i].laptime = READUINT32(save_p); // SRB2kart: used to track best lap time
 | 
			
		||||
		players[i].laps = READUINT8(save_p); // Number of laps (optional)
 | 
			
		||||
 | 
			
		||||
		////////////////////
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2204,7 +2204,7 @@ static void P_LevelInitStuff(void)
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		players[i].realtime = countdown = countdown2 = 0;
 | 
			
		||||
		players[i].laptime = 0; // SRB2Kart
 | 
			
		||||
		curlap = bestlap = 0; // SRB2Kart
 | 
			
		||||
 | 
			
		||||
		players[i].gotcontinue = false;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4157,8 +4157,12 @@ DoneSection2:
 | 
			
		|||
					}
 | 
			
		||||
 | 
			
		||||
					// SRB2Kart: save best lap for record attack
 | 
			
		||||
					bestlap = player->laptime;
 | 
			
		||||
					player->laptime = 0;
 | 
			
		||||
					if (player == &players[consoleplayer])
 | 
			
		||||
					{
 | 
			
		||||
						if (curlap < bestlap || bestlap == 0)
 | 
			
		||||
							bestlap = curlap;
 | 
			
		||||
						curlap = 0;
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
					// Reset starposts (checkpoints) info
 | 
			
		||||
					// SRB2kart 200117
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										28
									
								
								src/p_user.c
									
										
									
									
									
								
							
							
						
						
									
										28
									
								
								src/p_user.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -8086,15 +8086,19 @@ static void P_DeathThink(player_t *player)
 | 
			
		|||
		if (leveltime >= 4*TICRATE)
 | 
			
		||||
		{
 | 
			
		||||
			player->realtime = leveltime - 4*TICRATE;
 | 
			
		||||
			if (player->spectator || !circuitmap)
 | 
			
		||||
				player->laptime = 0;
 | 
			
		||||
			else
 | 
			
		||||
				player->laptime++; // This is too complicated to sync to realtime, just sorta hope for the best :V
 | 
			
		||||
			if (player == &players[consoleplayer])
 | 
			
		||||
			{
 | 
			
		||||
				if (player->spectator || !circuitmap)
 | 
			
		||||
					curlap = 0;
 | 
			
		||||
				else
 | 
			
		||||
					curlap++; // This is too complicated to sync to realtime, just sorta hope for the best :V
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			player->realtime = 0;
 | 
			
		||||
			player->laptime = 0;
 | 
			
		||||
			if (player == &players[consoleplayer])
 | 
			
		||||
				curlap = 0;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
| 
						 | 
				
			
			@ -9405,15 +9409,19 @@ void P_PlayerThink(player_t *player)
 | 
			
		|||
		if (leveltime >= 4*TICRATE)
 | 
			
		||||
		{
 | 
			
		||||
			player->realtime = leveltime - 4*TICRATE;
 | 
			
		||||
			if (player->spectator || !circuitmap)
 | 
			
		||||
				player->laptime = 0;
 | 
			
		||||
			else
 | 
			
		||||
				player->laptime++; // This is too complicated to sync to realtime, just sorta hope for the best :V
 | 
			
		||||
			if (player == &players[consoleplayer])
 | 
			
		||||
			{
 | 
			
		||||
				if (player->spectator || !circuitmap)
 | 
			
		||||
					curlap = 0;
 | 
			
		||||
				else
 | 
			
		||||
					curlap++; // This is too complicated to sync to realtime, just sorta hope for the best :V
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			player->realtime = 0;
 | 
			
		||||
			player->laptime = 0;
 | 
			
		||||
			if (player == &players[consoleplayer])
 | 
			
		||||
				curlap = 0;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue