Fixes (by The_Bob):

- Fixed never ending interrupt bug (cats/bugs got interrupt when out of breath)
- Added condition to interrupt code for minimal breath left to get interrupts
- Tweaked timer control code

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8401 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
silversurfer
2017-04-14 19:03:55 +00:00
parent d7f91064f0
commit 0c521e2623
4 changed files with 15 additions and 13 deletions
+3 -3
View File
@@ -289,12 +289,12 @@ UINT32 GetNextCounterDoneTime(void)
gliTimestampDiff = gliPerfCountNext.QuadPart - gliPerfCount.QuadPart;
gliWaitTime = (gliTimestampDiff * FREQUENCY_CONST) / gliPerfFreq.QuadPart;
// if the wait time is too long/short, re-evaluate the timer and try waiting 125ms
if (gliWaitTime > 15 * FREQUENCY_CONST) {
// if the wait time is too long, or the "missed" step gets too long, re-evaluate the timer and try waiting 125ms
if (gliWaitTime > 15000 || gliWaitTime < -15000) {
gliWaitTime = 125; // in mili-seconds
QueryPerformanceFrequency(&gliPerfFreq);
gliPerfCountNext.QuadPart = gliPerfCount.QuadPart + ((125 * gliPerfFreq.QuadPart) / 1000000);
gliPerfCountNext.QuadPart = gliPerfCount.QuadPart + ((125 * gliPerfFreq.QuadPart) / FREQUENCY_CONST);
}
return (UINT32)((gliWaitTime > 0) ? gliWaitTime : 0);