- Made sdl/i_system.cpp:I_GetTimePolled() functionally equivalent to the

Win32 version.
- Updated fmod_wrap.h and fmodsound.cpp for FMOD 4.20.
- GCC warning removal.


SVN r1286 (trunk)
This commit is contained in:
Randy Heit 2008-11-09 05:50:54 +00:00
commit c1cefee2f4
8 changed files with 68 additions and 34 deletions

View file

@ -87,7 +87,7 @@ DWORD LanguageIDs[4] =
int (*I_GetTime) (bool saveMS);
int (*I_WaitForTic) (int);
void (*I_FreezTime) (bool frozen);
void (*I_FreezeTime) (bool frozen);
void I_Tactile (int on, int off, int total)
{
@ -117,6 +117,7 @@ unsigned int I_MSTime (void)
static DWORD TicStart;
static DWORD TicNext;
static DWORD BaseTime;
static int TicFrozen;
//
@ -131,13 +132,17 @@ int I_GetTimePolled (bool saveMS)
}
DWORD tm = SDL_GetTicks ();
if (BaseTime == 0)
{
BaseTime = tm;
}
if (saveMS)
{
TicStart = tm;
TicNext = Scale ((Scale (tm, TICRATE, 1000) + 1), 1000, TICRATE);
}
return Scale (tm, TICRATE, 1000);
return Scale (tm - BaseTime, TICRATE, 1000);
}
int I_WaitForTicPolled (int prevtic)
@ -151,22 +156,22 @@ int I_WaitForTicPolled (int prevtic)
return time;
}
void I_FreezeTimePolled (bool frozen)
{
if (frozen)
{
assert(TicFrozen == 0);
TicFrozen = I_GetTimePolled(false);
}
else
{
assert(TicFrozen != 0);
int froze = TicFrozen;
TicFrozen = 0;
int now = I_GetTimePolled(false);
basetime += (now - froze) * 1000 / TICRATE;
}
}
void I_FreezeTimePolled (bool frozen)
{
if (frozen)
{
assert(TicFrozen == 0);
TicFrozen = I_GetTimePolled(false);
}
else
{
assert(TicFrozen != 0);
int froze = TicFrozen;
TicFrozen = 0;
int now = I_GetTimePolled(false);
BaseTime += (now - froze) * 1000 / TICRATE;
}
}
// Returns the fractional amount of a tic passed since the most recent tic
fixed_t I_GetTimeFrac (uint32 *ms)