Calculate tick related values based on current game speed

This commit is contained in:
Anders Jenbo 2020-10-29 20:39:42 +01:00
commit c54cc2013c
5 changed files with 5 additions and 6 deletions

View file

@ -1811,7 +1811,7 @@ void game_loop(BOOL bStartup)
{ {
int i; int i;
i = bStartup ? 60 : 3; i = bStartup ? ticks_per_sec * 3 : 3;
while (i--) { while (i--) {
if (!multi_handle_delta()) { if (!multi_handle_delta()) {

View file

@ -154,7 +154,6 @@ BOOL mainmenu_single_player()
if (!SRegLoadValue("devilutionx", "game speed", 0, &ticks_per_sec)) { if (!SRegLoadValue("devilutionx", "game speed", 0, &ticks_per_sec)) {
SRegSaveValue("devilutionx", "game speed", 0, ticks_per_sec); SRegSaveValue("devilutionx", "game speed", 0, ticks_per_sec);
} }
tick_delay = 1000 / ticks_per_sec;
return mainmenu_init_menu(SELHERO_NEW_DUNGEON); return mainmenu_init_menu(SELHERO_NEW_DUNGEON);
} }

View file

@ -227,7 +227,7 @@ BOOL nthread_has_500ms_passed(BOOL unused)
currentTickCount = SDL_GetTicks(); currentTickCount = SDL_GetTicks();
ticksElapsed = currentTickCount - last_tick; ticksElapsed = currentTickCount - last_tick;
if (gbMaxPlayers == 1 && ticksElapsed > 500) { if (gbMaxPlayers == 1 && ticksElapsed > tick_delay * 10) {
last_tick = currentTickCount; last_tick = currentTickCount;
ticksElapsed = 0; ticksElapsed = 0;
} }

View file

@ -34,7 +34,7 @@ void tmsg_add(BYTE *pbMsg, BYTE bLen)
TMsg *msg = (TMsg *)DiabloAllocPtr(bLen + sizeof(*msg)); TMsg *msg = (TMsg *)DiabloAllocPtr(bLen + sizeof(*msg));
msg->hdr.pNext = NULL; msg->hdr.pNext = NULL;
msg->hdr.dwTime = SDL_GetTicks() + 500; msg->hdr.dwTime = SDL_GetTicks() + tick_delay * 10;
msg->hdr.bLen = bLen; msg->hdr.bLen = bLen;
memcpy(msg->body, pbMsg, bLen); memcpy(msg->body, pbMsg, bLen);
for (tail = &sgpTimedMsgHead; *tail; tail = &(*tail)->hdr.pNext) { for (tail = &sgpTimedMsgHead; *tail; tail = &(*tail)->hdr.pNext) {

View file

@ -24,7 +24,7 @@ void track_process()
if (cursmx != plr[myplr]._ptargx || cursmy != plr[myplr]._ptargy) { if (cursmx != plr[myplr]._ptargx || cursmy != plr[myplr]._ptargy) {
DWORD tick = SDL_GetTicks(); DWORD tick = SDL_GetTicks();
if ((int)(tick - sgdwLastWalk) >= 300) { if ((int)(tick - sgdwLastWalk) >= tick_delay * 6) {
sgdwLastWalk = tick; sgdwLastWalk = tick;
NetSendCmdLoc(TRUE, CMD_WALKXY, cursmx, cursmy); NetSendCmdLoc(TRUE, CMD_WALKXY, cursmx, cursmy);
if (!sgbIsScrolling) if (!sgbIsScrolling)
@ -41,7 +41,7 @@ void track_repeat_walk(BOOL rep)
sgbIsWalking = rep; sgbIsWalking = rep;
if (rep) { if (rep) {
sgbIsScrolling = FALSE; sgbIsScrolling = FALSE;
sgdwLastWalk = SDL_GetTicks() - 50; sgdwLastWalk = SDL_GetTicks() - tick_delay;
NetSendCmdLoc(TRUE, CMD_WALKXY, cursmx, cursmy); NetSendCmdLoc(TRUE, CMD_WALKXY, cursmx, cursmy);
} else if (sgbIsScrolling) { } else if (sgbIsScrolling) {
sgbIsScrolling = FALSE; sgbIsScrolling = FALSE;