From 47ddb2ff339ed21d5cc518b8851961b097169652 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Mon, 14 May 2012 21:06:03 +1000 Subject: TONY: Replace stubs for TakeOwnership/ReleaseOwnership with actual implementation --- engines/tony/custom.cpp | 15 +++++---------- engines/tony/globals.cpp | 3 +-- engines/tony/globals.h | 2 +- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/engines/tony/custom.cpp b/engines/tony/custom.cpp index 0392fc409d..d6e7fdd2ee 100644 --- a/engines/tony/custom.cpp +++ b/engines/tony/custom.cpp @@ -2134,15 +2134,12 @@ DECLARE_CUSTOM_FUNCTION(StartDialog)(CORO_PARAM, uint32 nDialog, uint32 nStartGr */ DECLARE_CUSTOM_FUNCTION(TakeOwnership)(CORO_PARAM, uint32 num, uint32, uint32, uint32) { -// EnterCriticalSection(&cs[num]); -// WaitForSingleObject(mut[num],CORO_INFINITE); - warning("TODO: TakeOwnership"); + CoroScheduler.waitForSingleObject(coroParam, GLOBALS.mut[num], CORO_INFINITE); } DECLARE_CUSTOM_FUNCTION(ReleaseOwnership)(CORO_PARAM, uint32 num, uint32, uint32, uint32) { -// LeaveCriticalSection(&cs[num]); -// g_system->unlockMutex(mut[num]); - warning("TODO: ReleaseOwnership"); + CoroScheduler.pulseEvent(GLOBALS.mut[num]); + warning("TODO: Validate that the use of events in TakeOwnership/ReleaseOwnership match original"); } @@ -2646,11 +2643,9 @@ void SetupGlobalVars(RMTony *tony, RMPointer *ptr, RMGameBoxes *box, RMLocation GLOBALS.bAlwaysDisplay = false; int i; -/* for (i = 0;i < 10; i++) - cs[i] = g_system->createMutex(); for (i = 0;i < 10; i++) - mut[i] = CreateMutex(NULL, false, NULL); -*/ + GLOBALS.mut[i] = CoroScheduler.createEvent(false, false); + for (i = 0; i < 200; i++) GLOBALS.tappeti[i] = 0; diff --git a/engines/tony/globals.cpp b/engines/tony/globals.cpp index 867d48e0fa..7c801a787d 100644 --- a/engines/tony/globals.cpp +++ b/engines/tony/globals.cpp @@ -83,9 +83,8 @@ Globals::Globals() { curSonoriz = 0; bFadeOutStop = false; -// OSystem::MutexRef cs[10]; // OSystem::MutexRef vdb; - Common::fill(&mut[0], &mut[10], (HANDLE)NULL); + Common::fill(&mut[0], &mut[10], 0); bSkipIdle = false; hSkipIdle = 0; lastMusic = 0; diff --git a/engines/tony/globals.h b/engines/tony/globals.h index 72faa6a6c5..d82e0fcaf2 100644 --- a/engines/tony/globals.h +++ b/engines/tony/globals.h @@ -241,7 +241,7 @@ public: RMPoint StartLocPos[256]; OSystem::MutexRef cs[10]; OSystem::MutexRef vdb; - HANDLE mut[10]; + uint32 mut[10]; bool bSkipIdle; uint32 hSkipIdle; -- cgit v1.2.3