Browse Source

Calculate tick related values based on current game speed

pull/910/head
Anders Jenbo 5 years ago
parent
commit
c54cc2013c
  1. 2
      Source/diablo.cpp
  2. 1
      Source/mainmenu.cpp
  3. 2
      Source/nthread.cpp
  4. 2
      Source/tmsg.cpp
  5. 4
      Source/track.cpp

2
Source/diablo.cpp

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

1
Source/mainmenu.cpp

@ -154,7 +154,6 @@ BOOL mainmenu_single_player()
if (!SRegLoadValue("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);
}

2
Source/nthread.cpp

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

2
Source/tmsg.cpp

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

4
Source/track.cpp

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

Loading…
Cancel
Save