mirror of
				https://github.com/KartKrewDev/RingRacers.git
				synced 2025-10-30 08:01:28 +00:00 
			
		
		
		
	M_CheckLevelEmblems: Support tagging ET_TIME emblems
An ET_TIME emblem with a nonzero tag is directly bound to a staff ghost's finish time. This will make late development medal implementation signifcantly easier.
This commit is contained in:
		
							parent
							
								
									2d54acae30
								
							
						
					
					
						commit
						42969d8d15
					
				
					 2 changed files with 29 additions and 6 deletions
				
			
		
							
								
								
									
										20
									
								
								src/k_hud.c
									
										
									
									
									
								
							
							
						
						
									
										20
									
								
								src/k_hud.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1578,6 +1578,15 @@ void K_drawKartTimestamp(tic_t drawtime, INT32 TX, INT32 TY, INT16 emblemmap, UI
 | 
			
		|||
							goto bademblem;
 | 
			
		||||
						}
 | 
			
		||||
 | 
			
		||||
						if (emblem->tag > 0)
 | 
			
		||||
						{
 | 
			
		||||
							if (emblem->tag > mapheaderinfo[emblemmap-1]->ghostCount
 | 
			
		||||
							|| mapheaderinfo[emblemmap-1]->ghostBrief[emblem->tag-1] == NULL)
 | 
			
		||||
								goto bademblem;
 | 
			
		||||
 | 
			
		||||
							timetoreach = mapheaderinfo[emblemmap-1]->ghostBrief[emblem->tag-1]->time;
 | 
			
		||||
						}
 | 
			
		||||
 | 
			
		||||
						snprintf(targettext, 9, "%i'%02i\"%02i",
 | 
			
		||||
							G_TicsToMinutes(timetoreach, false),
 | 
			
		||||
							G_TicsToSeconds(timetoreach),
 | 
			
		||||
| 
						 | 
				
			
			@ -1605,9 +1614,10 @@ void K_drawKartTimestamp(tic_t drawtime, INT32 TX, INT32 TY, INT16 emblemmap, UI
 | 
			
		|||
					goto bademblem;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			V_DrawRightAlignedString(workx, worky, splitflags|V_6WIDTHSPACE, targettext);
 | 
			
		||||
			workx -= 67;
 | 
			
		||||
			V_DrawSmallScaledPatch(workx + 4, worky, splitflags, W_CachePatchName("NEEDIT", PU_CACHE));
 | 
			
		||||
			workx -= V_ThinStringWidth(targettext, splitflags|V_6WIDTHSPACE);
 | 
			
		||||
			V_DrawThinString(workx, worky, splitflags|V_6WIDTHSPACE, targettext);
 | 
			
		||||
			workx -= 11;
 | 
			
		||||
			V_DrawSmallScaledPatch(workx, worky, splitflags, W_CachePatchName("NEEDIT", PU_CACHE));
 | 
			
		||||
 | 
			
		||||
			break;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1619,8 +1629,8 @@ bademblem:
 | 
			
		|||
			splitflags = (splitflags &~ V_HUDTRANSHALF)|V_HUDTRANS;
 | 
			
		||||
		while (curemb--)
 | 
			
		||||
		{
 | 
			
		||||
			workx -= 12;
 | 
			
		||||
			V_DrawSmallMappedPatch(workx + 4, worky, splitflags, emblempic[curemb], emblemcol[curemb]);
 | 
			
		||||
			workx -= 11;
 | 
			
		||||
			V_DrawSmallMappedPatch(workx, worky, splitflags, emblempic[curemb], emblemcol[curemb]);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										15
									
								
								src/m_cond.c
									
										
									
									
									
								
							
							
						
						
									
										15
									
								
								src/m_cond.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -949,6 +949,7 @@ UINT8 M_CheckLevelEmblems(void)
 | 
			
		|||
{
 | 
			
		||||
	INT32 i;
 | 
			
		||||
	INT32 valToReach;
 | 
			
		||||
	INT16 tag;
 | 
			
		||||
	INT16 levelnum;
 | 
			
		||||
	UINT8 res;
 | 
			
		||||
	UINT8 somethingUnlocked = 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -968,11 +969,23 @@ UINT8 M_CheckLevelEmblems(void)
 | 
			
		|||
 | 
			
		||||
		levelnum = checkLevel;
 | 
			
		||||
		valToReach = emblemlocations[i].var;
 | 
			
		||||
		tag = emblemlocations[i].tag;
 | 
			
		||||
 | 
			
		||||
		switch (emblemlocations[i].type)
 | 
			
		||||
		{
 | 
			
		||||
			case ET_TIME: // Requires time on map <= x
 | 
			
		||||
				res = (G_GetBestTime(levelnum) <= (unsigned)valToReach);
 | 
			
		||||
				if (tag > 0)
 | 
			
		||||
				{
 | 
			
		||||
					if (tag > mapheaderinfo[checkLevel]->ghostCount
 | 
			
		||||
					|| mapheaderinfo[checkLevel]->ghostBrief[tag-1] == NULL)
 | 
			
		||||
						continue;
 | 
			
		||||
 | 
			
		||||
					res = (G_GetBestTime(levelnum) <= mapheaderinfo[checkLevel]->ghostBrief[tag-1]->time);
 | 
			
		||||
				}
 | 
			
		||||
				else
 | 
			
		||||
				{
 | 
			
		||||
					res = (G_GetBestTime(levelnum) <= (unsigned)valToReach);
 | 
			
		||||
				}
 | 
			
		||||
				break;
 | 
			
		||||
			default: // unreachable but shuts the compiler up.
 | 
			
		||||
				continue;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue