diff options
Diffstat (limited to 'windows.cpp')
-rw-r--r-- | windows.cpp | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/windows.cpp b/windows.cpp index 07330d8916..09070dd25f 100644 --- a/windows.cpp +++ b/windows.cpp @@ -769,12 +769,12 @@ void outputdisplay2(Scumm *s, int disp) { case 0: wm->_vgabuf = buf; memcpy(buf, wm->_vgabuf, 64000); - memcpy(buf+320*144,s->getResourceAddress(rtBuffer, 7),320*56); + memcpy(buf,s->getResourceAddress(rtBuffer, 5),320*144); break; case 1: wm->_vgabuf = buf; memcpy(buf, wm->_vgabuf, 64000); - memcpy(buf+320*144,s->getResourceAddress(rtBuffer, 3),320*56); + memcpy(buf,s->getResourceAddress(rtBuffer, 1),320*144); break; case 2: wm->_vgabuf = NULL; @@ -782,15 +782,15 @@ void outputdisplay2(Scumm *s, int disp) { break; case 3: wm->_vgabuf = NULL; - decompressMask(wm->dib.buf, s->getResourceAddress(rtBuffer, 9)+5920+s->_screenStartStrip); + decompressMask(wm->dib.buf, s->getResourceAddress(rtBuffer, 9)+8160+s->_screenStartStrip); break; case 4: wm->_vgabuf = NULL; - decompressMask(wm->dib.buf, s->getResourceAddress(rtBuffer, 9)+5920*2+s->_screenStartStrip); + decompressMask(wm->dib.buf, s->getResourceAddress(rtBuffer, 9)+8160*2+s->_screenStartStrip); break; case 5: wm->_vgabuf = NULL; - decompressMask(wm->dib.buf, s->getResourceAddress(rtBuffer, 9)+5920*3+s->_screenStartStrip); + decompressMask(wm->dib.buf, s->getResourceAddress(rtBuffer, 9)+8160*3+s->_screenStartStrip); break; } wm->writeToScreen(); @@ -828,6 +828,8 @@ void waitForTimer(Scumm *s, int delay) { wm->handleMessage(); if (!veryFastMode) { assert(delay<5000); + if (s->_fastMode) + delay=10; Sleep(delay); } } @@ -870,8 +872,8 @@ void WndMan::sound_init() { wfx.wBitsPerSample = BITS_PER_SAMPLE; wfx.nBlockAlign = BITS_PER_SAMPLE * 1 / 8; - CreateThread(NULL, 0, (unsigned long (__stdcall *)(void *))&sound_thread, this, 0, &_threadId); - SetThreadPriority((void*)_threadId, THREAD_PRIORITY_HIGHEST); +// CreateThread(NULL, 0, (unsigned long (__stdcall *)(void *))&sound_thread, this, 0, &_threadId); +// SetThreadPriority((void*)_threadId, THREAD_PRIORITY_HIGHEST); _event = CreateEvent(NULL, false, false, NULL); @@ -888,6 +890,8 @@ DWORD _stdcall WndMan::sound_thread(WndMan *wm) { bool signaled; int time = GetTickCount(), cur; + return 0; + while (1) { cur = GetTickCount(); while (time < cur) { @@ -913,7 +917,6 @@ DWORD _stdcall WndMan::sound_thread(WndMan *wm) { #undef main int main(int argc, char* argv[]) { int delta; - int tmp; wm->init(); wm->sound_init(); @@ -931,18 +934,13 @@ int main(int argc, char* argv[]) { do { updateScreen(&scumm); - waitForTimer(&scumm, tmp*10); + waitForTimer(&scumm, delta*15); if (gui._active) { gui.loop(); - tmp = 5; + delta = 3; } else { - tmp = delta = scumm.scummLoop(delta); - - tmp += tmp>>1; - - if (scumm._fastMode) - tmp=1; + delta = scumm.scummLoop(delta); } } while(1); |