aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2012-05-14 21:06:03 +1000
committerPaul Gilbert2012-05-14 21:06:03 +1000
commit47ddb2ff339ed21d5cc518b8851961b097169652 (patch)
treeba019656496fae18d79a0d3681e3b3baaed109ba
parent9eb66a2324120a6c4e22a980a9114bce437fcd8b (diff)
downloadscummvm-rg350-47ddb2ff339ed21d5cc518b8851961b097169652.tar.gz
scummvm-rg350-47ddb2ff339ed21d5cc518b8851961b097169652.tar.bz2
scummvm-rg350-47ddb2ff339ed21d5cc518b8851961b097169652.zip
TONY: Replace stubs for TakeOwnership/ReleaseOwnership with actual implementation
-rw-r--r--engines/tony/custom.cpp15
-rw-r--r--engines/tony/globals.cpp3
-rw-r--r--engines/tony/globals.h2
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;