Guest User

zandronum interpolation patch

a guest
Jan 1st, 2022
488
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 1.66 KB | None | 0 0
  1. diff -r 0f0c92215f57 src/sdl/i_system.cpp
  2. --- a/src/sdl/i_system.cpp  Sat Jan 01 12:49:07 2022 -0800
  3. +++ b/src/sdl/i_system.cpp  Sat Jan 01 14:44:05 2022 -0800
  4. @@ -142,14 +142,13 @@
  5.  
  6.  
  7.  static DWORD TicStart;
  8. -static DWORD TicNext;
  9.  static DWORD BaseTime;
  10.  static int TicFrozen;
  11.  
  12.  // Signal based timer.
  13.  static Semaphore timerWait;
  14.  static int tics;
  15. -static DWORD sig_start, sig_next;
  16. +static DWORD sig_start;
  17.  
  18.  void I_SelectTimer();
  19.  
  20. @@ -187,14 +186,7 @@
  21.  
  22.     if (saveMS)
  23.     {
  24. -       // [Leo] Replaced the expressions for TicStart and TicNext below.
  25. -       /*
  26.         TicStart = tm;
  27. -       TicNext = Scale((Scale (tm, TICRATE, 1000) + 1), 1000, TICRATE);
  28. -       */
  29. -       DWORD CurrentTic = ((tm - BaseTime) * TICRATE) / 1000;
  30. -       TicStart = (CurrentTic * 1000 / TICRATE) + BaseTime;
  31. -       TicNext = ((CurrentTic + 1) * 1000 / TICRATE) + BaseTime;
  32.     }
  33.     return Scale(tm - BaseTime, TICRATE, 1000);
  34.  }
  35. @@ -204,7 +196,6 @@
  36.     if (saveMS)
  37.     {
  38.         TicStart = sig_start;
  39. -       TicNext = sig_next;
  40.     }
  41.     return tics;
  42.  }
  43. @@ -275,7 +266,6 @@
  44.     if(!TicFrozen)
  45.         tics++;
  46.     sig_start = SDL_GetTicks();
  47. -   sig_next = Scale((Scale (sig_start, TICRATE, 1000) + 1), 1000, TICRATE);
  48.     SEMAPHORE_SIGNAL(timerWait)
  49.  }
  50.  
  51. @@ -318,15 +308,14 @@
  52.  fixed_t I_GetTimeFrac (uint32 *ms)
  53.  {
  54.     DWORD now = SDL_GetTicks ();
  55. -   if (ms) *ms = TicNext;
  56. -   DWORD step = TicNext - TicStart;
  57. -   if (step == 0)
  58. +   if (ms) *ms = TicStart + (1000 / TICRATE);
  59. +   if (TicStart == 0)
  60.     {
  61.         return FRACUNIT;
  62.     }
  63.     else
  64.     {
  65. -       fixed_t frac = clamp<fixed_t> ((now - TicStart)*FRACUNIT/step, 0, FRACUNIT);
  66. +       fixed_t frac = clamp<fixed_t> ((now - TicStart)*FRACUNIT*TICRATE/1000, 0, FRACUNIT);
  67.         return frac;
  68.     }
  69.  }
Advertisement
Add Comment
Please, Sign In to add comment