DoGame effectivelyt matching

This commit is contained in:
Dethrace Labs 2025-10-13 14:30:20 +13:00 committed by Dethrace Engineering Department
parent 0415dfd5e1
commit d67336f08f
1 changed files with 16 additions and 13 deletions

View File

@ -507,7 +507,9 @@ void DoGame(void) {
StartLoadingScreen();
gProgram_state.prog_status = eProg_game_ongoing;
second_select_race = 0;
if (gNet_mode == gNet_mode_of_last_game) {
if (gNet_mode != gNet_mode_of_last_game) {
gProgram_state.prog_status = eProg_idling;
} else {
PrintMemoryDump(0, "BEFORE START RACE SCREEN");
SelectOpponents(&gCurrent_race);
if (gNet_mode != eNet_mode_none) {
@ -535,18 +537,20 @@ void DoGame(void) {
PrintMemoryDump(0, "AFTER START RACE SCREEN");
DoNewGameAnimation();
StartLoadingScreen();
if (gNet_mode != eNet_mode_none) {
if (gNet_mode == eNet_mode_none) {
LoadOpponentsCars(&gCurrent_race);
} else {
if (gCurrent_net_game->options.random_car_choice
&& (gCurrent_net_game->options.car_choice == eNet_car_all || gCurrent_net_game->options.car_choice == eNet_car_both)
&& !gNo_races_yet) {
SwapNetCarsLoad();
}
} else {
LoadOpponentsCars(&gCurrent_race);
}
PrintMemoryDump(0, "AFTER LOADING OPPONENTS IN");
InitRace();
if (gNet_mode_of_last_game == gNet_mode) {
if (gNet_mode_of_last_game != gNet_mode) {
gProgram_state.prog_status = eProg_idling;
} else {
if (gProgram_state.prog_status == eProg_game_starting
|| gProgram_state.prog_status == eProg_quit
|| gProgram_state.prog_status == eProg_idling
@ -604,7 +608,7 @@ void DoGame(void) {
DisposeRace();
if (gNet_mode != eNet_mode_none) {
gProgram_state.current_race_index = gPending_race;
gCurrent_net_game->start_race = gPending_race;
gCurrent_net_game->start_race = gProgram_state.current_race_index;
gPending_race = -1;
}
if (race_result == eRace_completed || race_result == eRace_timed_out) {
@ -624,32 +628,31 @@ void DoGame(void) {
} else {
TotallyRepairCar();
}
if (gNet_mode) {
if (gNet_mode == eNet_mode_none) {
DisposeOpponentsCars(&gCurrent_race);
} else {
if (gCurrent_net_game->options.random_car_choice
&& (gCurrent_net_game->options.car_choice == eNet_car_all
|| gCurrent_net_game->options.car_choice == eNet_car_both)
&& !gNo_races_yet) {
SwapNetCarsDispose();
}
} else {
DisposeOpponentsCars(&gCurrent_race);
}
DisposeTrack();
#ifdef DETHRACE_FIX_BUGS
// demo behavior
if (harness_game_info.mode == eGame_carmageddon_demo || harness_game_info.mode == eGame_splatpack_demo || harness_game_info.mode == eGame_splatpack_xmas_demo) {
DoFullVersionPowerpoint();
}
#endif
gProgram_state.loaded = 0;
if (gProgram_state.prog_status == eProg_game_ongoing) {
gProgram_state.prog_status = eProg_game_starting;
}
}
}
} else {
gProgram_state.prog_status = eProg_idling;
}
}
} else {
gProgram_state.prog_status = eProg_idling;
}
}