mirror of
				https://github.com/KartKrewDev/RingRacers.git
				synced 2025-10-30 08:01:28 +00:00 
			
		
		
		
	Camera height affects hud transparency of HUD elements like new lap, position bulb...
Not the most pretty code written as ideally there would be a common codepath, but it's functional.
This commit is contained in:
		
							parent
							
								
									3d5e60241c
								
							
						
					
					
						commit
						9c6031c986
					
				
					 4 changed files with 21 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -6741,7 +6741,9 @@ static void K_drawKartStartBulbs(void)
 | 
			
		|||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		V_DrawFixedPatch(x, y, FRACUNIT, V_SNAPTOTOP|V_SPLITSCREEN,
 | 
			
		||||
		INT32 hudtransflags = (camera[R_GetViewNumber()].chaseheight > HUDTRANS_CAMHEIGHT_MAX) ? V_30TRANS : 0;
 | 
			
		||||
 | 
			
		||||
		V_DrawFixedPatch(x, y, FRACUNIT, V_SNAPTOTOP|V_SPLITSCREEN|hudtransflags,
 | 
			
		||||
			(r_splitscreen ? kp_prestartbulb_split[patchnum] : kp_prestartbulb[patchnum]), NULL);
 | 
			
		||||
		x += spacing;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -6794,6 +6796,7 @@ static void K_drawKartStartBulbs(void)
 | 
			
		|||
static void K_drawKartStartCountdown(void)
 | 
			
		||||
{
 | 
			
		||||
	INT32 pnum = 0;
 | 
			
		||||
	INT32 hudtransflags = (camera[R_GetViewNumber()].chaseheight > HUDTRANS_CAMHEIGHT_MAX) ? V_30TRANS : 0;
 | 
			
		||||
 | 
			
		||||
	if (leveltime >= introtime && leveltime < starttime-(3*TICRATE))
 | 
			
		||||
	{
 | 
			
		||||
| 
						 | 
				
			
			@ -6835,7 +6838,7 @@ static void K_drawKartStartCountdown(void)
 | 
			
		|||
		if (r_splitscreen) // splitscreen
 | 
			
		||||
			pnum += 10;
 | 
			
		||||
 | 
			
		||||
		V_DrawScaledPatch(STCD_X - (SHORT(kp_startcountdown[pnum]->width)/2), STCD_Y - (SHORT(kp_startcountdown[pnum]->height)/2), V_SPLITSCREEN, kp_startcountdown[pnum]);
 | 
			
		||||
		V_DrawScaledPatch(STCD_X - (SHORT(kp_startcountdown[pnum]->width)/2), STCD_Y - (SHORT(kp_startcountdown[pnum]->height)/2), V_SPLITSCREEN|hudtransflags, kp_startcountdown[pnum]);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -7107,9 +7110,11 @@ static void K_drawLapStartAnim(void)
 | 
			
		|||
	oldval = (48 - (32 * std::max(0, progressOld - 76))) * FRACUNIT;
 | 
			
		||||
	interpy = R_InterpolateFixed(oldval, newval);
 | 
			
		||||
 | 
			
		||||
	INT32 hudtransflags = (camera[R_GetViewNumber()].chaseheight > HUDTRANS_CAMHEIGHT_MAX) ? V_30TRANS : V_HUDTRANS;
 | 
			
		||||
 | 
			
		||||
	V_DrawFixedPatch(
 | 
			
		||||
		interpx, interpy,
 | 
			
		||||
		FRACUNIT, V_SNAPTOTOP|V_HUDTRANS,
 | 
			
		||||
		FRACUNIT, V_SNAPTOTOP|hudtransflags,
 | 
			
		||||
		(modeattacking ? kp_lapanim_emblem[1] : kp_lapanim_emblem[0]), colormap);
 | 
			
		||||
 | 
			
		||||
	if (stplyr->karthud[khud_laphand] >= 1 && stplyr->karthud[khud_laphand] <= 3)
 | 
			
		||||
| 
						 | 
				
			
			@ -7120,7 +7125,7 @@ static void K_drawLapStartAnim(void)
 | 
			
		|||
 | 
			
		||||
		V_DrawFixedPatch(
 | 
			
		||||
			interpx, interpy,
 | 
			
		||||
			FRACUNIT, V_SNAPTOTOP|V_HUDTRANS,
 | 
			
		||||
			FRACUNIT, V_SNAPTOTOP|hudtransflags,
 | 
			
		||||
			kp_lapanim_hand[stplyr->karthud[khud_laphand]-1], NULL);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -7133,7 +7138,7 @@ static void K_drawLapStartAnim(void)
 | 
			
		|||
		V_DrawFixedPatch(
 | 
			
		||||
			interpx, // 27
 | 
			
		||||
			30*FRACUNIT, // 24
 | 
			
		||||
			FRACUNIT, V_SNAPTOTOP|V_HUDTRANS,
 | 
			
		||||
			FRACUNIT, V_SNAPTOTOP|hudtransflags,
 | 
			
		||||
			kp_lapanim_final[std::min(progress/2, 10)], NULL);
 | 
			
		||||
 | 
			
		||||
		if (progress/2-12 >= 0)
 | 
			
		||||
| 
						 | 
				
			
			@ -7145,7 +7150,7 @@ static void K_drawLapStartAnim(void)
 | 
			
		|||
			V_DrawFixedPatch(
 | 
			
		||||
				interpx, // 194
 | 
			
		||||
				30*FRACUNIT, // 24
 | 
			
		||||
				FRACUNIT, V_SNAPTOTOP|V_HUDTRANS,
 | 
			
		||||
				FRACUNIT, V_SNAPTOTOP|hudtransflags,
 | 
			
		||||
				kp_lapanim_lap[std::min(progress/2-12, 6)], NULL);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -7158,7 +7163,7 @@ static void K_drawLapStartAnim(void)
 | 
			
		|||
		V_DrawFixedPatch(
 | 
			
		||||
			interpx, // 61
 | 
			
		||||
			30*FRACUNIT, // 24
 | 
			
		||||
			FRACUNIT, V_SNAPTOTOP|V_HUDTRANS,
 | 
			
		||||
			FRACUNIT, V_SNAPTOTOP|hudtransflags,
 | 
			
		||||
			kp_lapanim_lap[std::min(progress/2, 6)], NULL);
 | 
			
		||||
 | 
			
		||||
		if (progress/2-8 >= 0)
 | 
			
		||||
| 
						 | 
				
			
			@ -7170,7 +7175,7 @@ static void K_drawLapStartAnim(void)
 | 
			
		|||
			V_DrawFixedPatch(
 | 
			
		||||
				interpx, // 194
 | 
			
		||||
				30*FRACUNIT, // 24
 | 
			
		||||
				FRACUNIT, V_SNAPTOTOP|V_HUDTRANS,
 | 
			
		||||
				FRACUNIT, V_SNAPTOTOP|hudtransflags,
 | 
			
		||||
				kp_lapanim_number[(((UINT32)stplyr->latestlap) / 10)][std::min(progress/2-8, 2)], NULL);
 | 
			
		||||
 | 
			
		||||
			if (progress/2-10 >= 0)
 | 
			
		||||
| 
						 | 
				
			
			@ -7182,7 +7187,7 @@ static void K_drawLapStartAnim(void)
 | 
			
		|||
				V_DrawFixedPatch(
 | 
			
		||||
					interpx, // 221
 | 
			
		||||
					30*FRACUNIT, // 24
 | 
			
		||||
					FRACUNIT, V_SNAPTOTOP|V_HUDTRANS,
 | 
			
		||||
					FRACUNIT, V_SNAPTOTOP|hudtransflags,
 | 
			
		||||
					kp_lapanim_number[(((UINT32)stplyr->latestlap) % 10)][std::min(progress/2-10, 2)], NULL);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,6 +27,8 @@ extern "C" {
 | 
			
		|||
 | 
			
		||||
#define MARGINLEVELS 24
 | 
			
		||||
 | 
			
		||||
#define HUDTRANS_CAMHEIGHT_MAX (120*FRACUNIT) // The camera height past this point where hud transparency should take affect
 | 
			
		||||
 | 
			
		||||
extern INT32 MINI_X, MINI_Y;
 | 
			
		||||
 | 
			
		||||
struct trackingResult_t
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -97,6 +97,8 @@ struct camera_t
 | 
			
		|||
 | 
			
		||||
	angle_t aiming;
 | 
			
		||||
 | 
			
		||||
	fixed_t chaseheight; // Effective chasecam height, unscaled
 | 
			
		||||
 | 
			
		||||
	// Things used by FS cameras.
 | 
			
		||||
	fixed_t viewheight;
 | 
			
		||||
	angle_t startangle;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3439,6 +3439,9 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall
 | 
			
		|||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	thiscam->chaseheight = FixedDiv(camheight, cameraScale);
 | 
			
		||||
	// CONS_Printf("thiscam camheight %d\n", thiscam->chaseheight/FRACUNIT);
 | 
			
		||||
 | 
			
		||||
	if (loop_in < loop->zoom_in_speed)
 | 
			
		||||
	{
 | 
			
		||||
		fixed_t f = loop_out < loop->zoom_out_speed
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue