Skip to content

Commit 0300861

Browse files
committed
Fix APC/BIGAPC wheels when player wasted equivalent cop car in previous race
1 parent 1f009a2 commit 0300861

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

src/DETHRACE/common/loading.c

+8
Original file line numberDiff line numberDiff line change
@@ -1745,8 +1745,16 @@ void LoadCar(char* pCar_name, tDriver pDriver, tCar_spec* pCar_spec, int pOwner,
17451745
LOG_TRACE("(\"%s\", %d, %p, %d, \"%s\", %p)", pCar_name, pDriver, pCar_spec, pOwner, pDriver_name, pStorage_space);
17461746

17471747
if (pDriver == eDriver_local_human) {
1748+
#if defined(DETHRACE_FIX_BUGS)
1749+
// Player's APC/BIGAPC wheels got stuck if the equivalent cop car was wasted in previous race
1750+
if (strcmp(gProgram_state.car_name, pCar_name) == 0 &&
1751+
strcmp(gProgram_state.car_name, "APC.TXT") != 0 &&
1752+
strcmp(gProgram_state.car_name, "BIGAPC.TXT") != 0)
1753+
return;
1754+
#else
17481755
if (strcmp(gProgram_state.car_name, pCar_name) == 0)
17491756
return;
1757+
#endif
17501758
if (gProgram_state.car_name[0] != '\0') {
17511759
DisposeCar(&gProgram_state.current_car, gProgram_state.current_car.index);
17521760
ClearOutStorageSpace(&gOur_car_storage_space);

src/DETHRACE/common/structur.c

+26
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,10 @@ void DoGame(void) {
480480
int second_select_race;
481481
int first_summary_done;
482482
int i;
483+
#if defined(DETHRACE_FIX_BUGS)
484+
// Player's APC/BIGAPC wheels got stuck if the equivalent cop car was wasted in previous race
485+
int power_up_levels[3];
486+
#endif
483487
LOG_TRACE("()");
484488

485489
gAbandon_game = 0;
@@ -523,6 +527,28 @@ void DoGame(void) {
523527
SwapNetCarsLoad();
524528
}
525529
} else {
530+
#if defined(DETHRACE_FIX_BUGS)
531+
// Player's APC/BIGAPC wheels got stuck if the equivalent cop car was wasted in previous race
532+
if(strcmp(gProgram_state.car_name, "APC.TXT") == 0 ||
533+
strcmp(gProgram_state.car_name, "BIGAPC.TXT") == 0) {
534+
AboutToLoadFirstCar();
535+
SwitchToRealResolution();
536+
for (i = 0; i < COUNT_OF(power_up_levels); i++) {
537+
power_up_levels[i] = gProgram_state.current_car.power_up_levels[i];
538+
}
539+
LoadCar(gOpponents[gProgram_state.cars_available[gCurrent_car_index]].car_file_name,
540+
eDriver_local_human,
541+
&gProgram_state.current_car,
542+
gProgram_state.cars_available[gCurrent_car_index],
543+
gProgram_state.player_name[gProgram_state.frank_or_anniness],
544+
&gOur_car_storage_space);
545+
for (i = 0; i < COUNT_OF(power_up_levels); i++) {
546+
gProgram_state.current_car.power_up_levels[i] = power_up_levels[i];
547+
}
548+
SwitchToLoresMode();
549+
SetCarStorageTexturingLevel(&gOur_car_storage_space, GetCarTexturingLevel(), eCTL_full);
550+
}
551+
#endif
526552
LoadOpponentsCars(&gCurrent_race);
527553
}
528554
PrintMemoryDump(0, "AFTER LOADING OPPONENTS IN");

0 commit comments

Comments
 (0)