Browse Source

Only color cycle animations if game logic is processed

pull/5434/head
obligaron 4 years ago committed by Anders Jenbo
parent
commit
a0bba9b152
  1. 9
      Source/diablo.cpp
  2. 2
      Source/diablo.h

9
Source/diablo.cpp

@ -766,9 +766,9 @@ void RunGameLoop(interface_mode uMsg)
continue;
}
diablo_color_cyc_logic();
multi_process_network_packets();
game_loop(gbGameLoopStartup);
if (game_loop(gbGameLoopStartup))
diablo_color_cyc_logic();
gbGameLoopStartup = false;
if (drawGame)
DrawAndBlit();
@ -2819,14 +2819,14 @@ void LoadGameLevel(bool firstflag, lvl_entry lvldir)
pcursplr = -1;
}
void game_loop(bool bStartup)
bool game_loop(bool bStartup)
{
uint16_t wait = bStartup ? sgGameInitInfo.nTickRate * 3 : 3;
for (unsigned i = 0; i < wait; i++) {
if (!multi_handle_delta()) {
TimeoutCursor(true);
break;
return false;
}
TimeoutCursor(false);
GameLogic();
@ -2835,6 +2835,7 @@ void game_loop(bool bStartup)
if (!gbRunGame || !gbIsMultiplayer || demo::IsRunning() || demo::IsRecording() || !nthread_has_500ms_passed())
break;
}
return true;
}
void diablo_color_cyc_logic()

2
Source/diablo.h

@ -99,7 +99,7 @@ void LoadGameLevel(bool firstflag, lvl_entry lvldir);
/**
* @param bStartup Process additional ticks before returning
*/
void game_loop(bool bStartup);
bool game_loop(bool bStartup);
void diablo_color_cyc_logic();
/* rdata */

Loading…
Cancel
Save