mirror of
				https://github.com/KartKrewDev/RingRacers.git
				synced 2025-10-30 08:01:28 +00:00 
			
		
		
		
	Merge branch 'ballhog-descam' into 'master'
Ballhog fixups (+ sound cleanup) See merge request KartKrew/Kart!1590
This commit is contained in:
		
						commit
						6e6c0cd71f
					
				
					 4 changed files with 54 additions and 10 deletions
				
			
		
							
								
								
									
										18
									
								
								src/k_hud.c
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								src/k_hud.c
									
										
									
									
									
								
							|  | @ -1390,8 +1390,11 @@ static void K_drawKartItem(void) | |||
| 		} | ||||
| 		else if (stplyr->ballhogcharge > 0) | ||||
| 		{ | ||||
| 			itembar = stplyr->ballhogcharge; | ||||
| 			maxl = (((stplyr->itemamount-1) * BALLHOGINCREMENT) + 1); | ||||
| 			// itembar = stplyr->ballhogcharge;
 | ||||
| 			// maxl = (((stplyr->itemamount-1) * BALLHOGINCREMENT) + 1);
 | ||||
| 
 | ||||
| 			itembar = stplyr->ballhogcharge % BALLHOGINCREMENT; | ||||
| 			maxl = BALLHOGINCREMENT; | ||||
| 
 | ||||
| 			if (leveltime & 1) | ||||
| 				localpatch[1] = kp_ballhog[offset]; | ||||
|  | @ -1549,7 +1552,10 @@ static void K_drawKartItem(void) | |||
| 		// Draw the item above the box.
 | ||||
| 		V_ClearClipRect(); | ||||
| 
 | ||||
| 		if (stplyr->itemamount >= numberdisplaymin && stplyr->itemRoulette.active == false) | ||||
| 		// A little goofy, but helps with ballhog charge conveyance—you're "loading" them.
 | ||||
| 		UINT8 fakeitemamount = stplyr->itemamount - (stplyr->ballhogcharge / BALLHOGINCREMENT); | ||||
| 
 | ||||
| 		if (fakeitemamount >= numberdisplaymin && stplyr->itemRoulette.active == false) | ||||
| 		{ | ||||
| 			// Then, the numbers:
 | ||||
| 			V_DrawScaledPatch( | ||||
|  | @ -1567,14 +1573,14 @@ static void K_drawKartItem(void) | |||
| 			if (offset) | ||||
| 			{ | ||||
| 				if (flipamount) // reminder that this is for 3/4p's right end of the screen.
 | ||||
| 					V_DrawString(fx+2, fy+31, V_HUDTRANS|V_SLIDEIN|fflags, va("x%d", stplyr->itemamount)); | ||||
| 					V_DrawString(fx+2, fy+31, V_HUDTRANS|V_SLIDEIN|fflags, va("x%d", fakeitemamount)); | ||||
| 				else | ||||
| 					V_DrawString(fx+24, fy+31, V_HUDTRANS|V_SLIDEIN|fflags, va("x%d", stplyr->itemamount)); | ||||
| 					V_DrawString(fx+24, fy+31, V_HUDTRANS|V_SLIDEIN|fflags, va("x%d", fakeitemamount)); | ||||
| 			} | ||||
| 			else | ||||
| 			{ | ||||
| 				V_DrawScaledPatch(fy+28, fy+41, V_HUDTRANS|V_SLIDEIN|fflags, kp_itemx); | ||||
| 				V_DrawTimerString(fx+38, fy+36, V_HUDTRANS|V_SLIDEIN|fflags, va("%d", stplyr->itemamount)); | ||||
| 				V_DrawTimerString(fx+38, fy+36, V_HUDTRANS|V_SLIDEIN|fflags, va("%d", fakeitemamount)); | ||||
| 			} | ||||
| 		} | ||||
| 		else | ||||
|  |  | |||
							
								
								
									
										30
									
								
								src/k_kart.c
									
										
									
									
									
								
							
							
						
						
									
										30
									
								
								src/k_kart.c
									
										
									
									
									
								
							|  | @ -8467,6 +8467,8 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) | |||
| 				eggsexplode->height = 2 * player->mo->height; | ||||
| 				K_FlipFromObject(eggsexplode, player->mo); | ||||
| 
 | ||||
| 				S_StopSoundByID(player->mo, sfx_s3k53); | ||||
| 
 | ||||
| 				eggsexplode->threshold = KITEM_EGGMAN; | ||||
| 
 | ||||
| 				P_SetTarget(&eggsexplode->tracer, player->mo); | ||||
|  | @ -11489,12 +11491,26 @@ void K_MoveKartPlayer(player_t *player, boolean onground) | |||
| 						case KITEM_BALLHOG: | ||||
| 							if (!HOLDING_ITEM && NO_HYUDORO) | ||||
| 							{ | ||||
| 								INT32 ballhogmax = ((player->itemamount-1) * BALLHOGINCREMENT) + 1; | ||||
| 								INT32 ballhogmax = (player->itemamount) * BALLHOGINCREMENT; | ||||
| 
 | ||||
| 								if ((cmd->buttons & BT_ATTACK) && (player->pflags & PF_HOLDREADY) | ||||
| 									&& (player->ballhogcharge < ballhogmax)) | ||||
| 								{ | ||||
| 									player->ballhogcharge++; | ||||
| 									if (player->ballhogcharge % BALLHOGINCREMENT == 0) | ||||
| 									{ | ||||
| 										sfxenum_t hogsound[] =  | ||||
| 										{ | ||||
| 											sfx_bhog00, | ||||
| 											sfx_bhog01, | ||||
| 											sfx_bhog02, | ||||
| 											sfx_bhog03, | ||||
| 											sfx_bhog04, | ||||
| 											sfx_bhog05 | ||||
| 										}; | ||||
| 										UINT8 chargesound = max(1, min(player->ballhogcharge / BALLHOGINCREMENT, 6)); | ||||
| 										S_StartSound(player->mo, hogsound[chargesound-1]); | ||||
| 									} | ||||
| 								} | ||||
| 								else | ||||
| 								{ | ||||
|  | @ -11509,12 +11525,17 @@ void K_MoveKartPlayer(player_t *player, boolean onground) | |||
| 
 | ||||
| 									if (player->ballhogcharge > 0) | ||||
| 									{ | ||||
| 										INT32 numhogs = min((player->ballhogcharge / BALLHOGINCREMENT) + 1, player->itemamount); | ||||
| 										INT32 numhogs = min((player->ballhogcharge / BALLHOGINCREMENT), player->itemamount); | ||||
| 
 | ||||
| 										if (numhogs <= 1) | ||||
| 										if (numhogs <= 0) | ||||
| 										{ | ||||
| 											// no tapfire scams
 | ||||
| 										} | ||||
| 										else if (numhogs == 1) | ||||
| 										{ | ||||
| 											player->itemamount--; | ||||
| 											K_ThrowKartItem(player, true, MT_BALLHOG, 1, 0, 0); | ||||
| 											K_PlayAttackTaunt(player->mo); | ||||
| 										} | ||||
| 										else | ||||
| 										{ | ||||
|  | @ -11530,10 +11551,11 @@ void K_MoveKartPlayer(player_t *player, boolean onground) | |||
| 												K_ThrowKartItem(player, true, MT_BALLHOG, 1, 0, angleOffset); | ||||
| 												angleOffset -= offsetAmt; | ||||
| 											} | ||||
| 
 | ||||
| 											K_PlayAttackTaunt(player->mo); | ||||
| 										} | ||||
| 
 | ||||
| 										player->ballhogcharge = 0; | ||||
| 										K_PlayAttackTaunt(player->mo); | ||||
| 										player->pflags &= ~PF_HOLDREADY; | ||||
| 									} | ||||
| 								} | ||||
|  |  | |||
|  | @ -1113,6 +1113,14 @@ sfxinfo_t S_sfx[NUMSFX] = | |||
|   {"slot04", false, 64,  0, -1, NULL, 0,        -1,  -1, LUMPERROR, "Seven"}, | ||||
|   {"slot05", false, 64,  0, -1, NULL, 0,        -1,  -1, LUMPERROR, "JACKPOT!"}, | ||||
| 
 | ||||
|   // RR - Ballhog Charge
 | ||||
|   {"bhog00", false, 64,  64, -1, NULL, 0,        -1,  -1, LUMPERROR, "Ballhog charging"}, | ||||
|   {"bhog01", false, 64,  64, -1, NULL, 0,        -1,  -1, LUMPERROR, "Ballhog charging"}, | ||||
|   {"bhog02", false, 64,  64, -1, NULL, 0,        -1,  -1, LUMPERROR, "Ballhog charging"}, | ||||
|   {"bhog03", false, 64,  64, -1, NULL, 0,        -1,  -1, LUMPERROR, "Ballhog charging"}, | ||||
|   {"bhog04", false, 64,  64, -1, NULL, 0,        -1,  -1, LUMPERROR, "Ballhog charging"}, | ||||
|   {"bhog05", false, 64,  64, -1, NULL, 0,        -1,  -1, LUMPERROR, "Ballhog charging"}, | ||||
| 
 | ||||
|   // RR - Gachabom rebound
 | ||||
|   {"grbnd1", false, 64,  64, -1, NULL, 0,        -1,  -1, LUMPERROR, "Gachabom returning"}, | ||||
|   {"grbnd2", false, 64,  0, -1, NULL, 0,        -1,  -1, LUMPERROR, "Gachabom orbiting"}, | ||||
|  |  | |||
|  | @ -1181,6 +1181,14 @@ typedef enum | |||
| 	sfx_slot04, | ||||
| 	sfx_slot05, | ||||
| 
 | ||||
| 	// RR - Ballhog Charge
 | ||||
| 	sfx_bhog00, | ||||
| 	sfx_bhog01, | ||||
| 	sfx_bhog02, | ||||
| 	sfx_bhog03, | ||||
| 	sfx_bhog04, | ||||
| 	sfx_bhog05, | ||||
| 
 | ||||
| 	// RR - Gachabom rebound
 | ||||
| 	sfx_grbnd1, | ||||
| 	sfx_grbnd2, | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Oni
						Oni