[Scummvm-git-logs] scummvm master -> cf068bcc08d68c9c0621266a85090062f979e9ee
sev-
sev at scummvm.org
Fri Aug 21 07:39:04 UTC 2020
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
cf068bcc08 ALL: Remove direct use of OSystem::createMutex()
Commit: cf068bcc08d68c9c0621266a85090062f979e9ee
https://github.com/scummvm/scummvm/commit/cf068bcc08d68c9c0621266a85090062f979e9ee
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2020-08-21T09:39:00+02:00
Commit Message:
ALL: Remove direct use of OSystem::createMutex()
Changed paths:
backends/graphics/surfacesdl/surfacesdl-graphics.cpp
backends/graphics/surfacesdl/surfacesdl-graphics.h
backends/platform/android/android.cpp
backends/platform/android/android.h
backends/platform/android/events.cpp
common/mutex.cpp
common/mutex.h
common/str.cpp
engines/lure/sound.cpp
engines/lure/sound.h
engines/testbed/misc.cpp
engines/testbed/misc.h
engines/tony/gfxcore.h
engines/tony/inventory.cpp
engines/tony/inventory.h
engines/tony/loc.cpp
engines/tony/loc.h
diff --git a/backends/graphics/surfacesdl/surfacesdl-graphics.cpp b/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
index d3982e2703..61e031e605 100644
--- a/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
+++ b/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
@@ -162,7 +162,6 @@ SurfaceSdlGraphicsManager::SurfaceSdlGraphicsManager(SdlEventSource *sdlEventSou
_currentShakeXOffset(0), _currentShakeYOffset(0),
_paletteDirtyStart(0), _paletteDirtyEnd(0),
_screenIsLocked(false),
- _graphicsMutex(0),
_displayDisabled(false),
#ifdef USE_SDL_DEBUG_FOCUSRECT
_enableFocusRectDebugCode(false), _enableFocusRect(false), _focusRect(),
@@ -175,8 +174,6 @@ SurfaceSdlGraphicsManager::SurfaceSdlGraphicsManager(SdlEventSource *sdlEventSou
_mouseBackup.x = _mouseBackup.y = _mouseBackup.w = _mouseBackup.h = 0;
- _graphicsMutex = g_system->createMutex();
-
#ifdef USE_SDL_DEBUG_FOCUSRECT
if (ConfMan.hasKey("use_sdl_debug_focusrect"))
_enableFocusRectDebugCode = ConfMan.getBool("use_sdl_debug_focusrect");
@@ -214,7 +211,6 @@ SurfaceSdlGraphicsManager::~SurfaceSdlGraphicsManager() {
if (_mouseSurface) {
SDL_FreeSurface(_mouseSurface);
}
- g_system->deleteMutex(_graphicsMutex);
free(_currentPalette);
free(_cursorPalette);
delete[] _mouseData;
@@ -1518,7 +1514,7 @@ Graphics::Surface *SurfaceSdlGraphicsManager::lockScreen() {
assert(_transactionMode == kTransactionNone);
// Lock the graphics mutex
- g_system->lockMutex(_graphicsMutex);
+ _graphicsMutex.lock();
// paranoia check
assert(!_screenIsLocked);
@@ -1547,7 +1543,7 @@ void SurfaceSdlGraphicsManager::unlockScreen() {
_forceRedraw = true;
// Finally unlock the graphics mutex
- g_system->unlockMutex(_graphicsMutex);
+ _graphicsMutex.unlock();
}
void SurfaceSdlGraphicsManager::fillScreen(uint32 col) {
diff --git a/backends/graphics/surfacesdl/surfacesdl-graphics.h b/backends/graphics/surfacesdl/surfacesdl-graphics.h
index e887c4b34a..0bd98dc6dd 100644
--- a/backends/graphics/surfacesdl/surfacesdl-graphics.h
+++ b/backends/graphics/surfacesdl/surfacesdl-graphics.h
@@ -28,7 +28,7 @@
#include "graphics/pixelformat.h"
#include "graphics/scaler.h"
#include "common/events.h"
-#include "common/system.h"
+#include "common/mutex.h"
#include "backends/events/sdl/sdl-events.h"
@@ -397,7 +397,7 @@ protected:
* Mutex which prevents multiple threads from interfering with each other
* when accessing the screen.
*/
- OSystem::MutexRef _graphicsMutex;
+ Common::Mutex _graphicsMutex;
#ifdef USE_SDL_DEBUG_FOCUSRECT
bool _enableFocusRectDebugCode;
diff --git a/backends/platform/android/android.cpp b/backends/platform/android/android.cpp
index 5ec86058a7..786fdd7683 100644
--- a/backends/platform/android/android.cpp
+++ b/backends/platform/android/android.cpp
@@ -140,7 +140,7 @@ OSystem_Android::~OSystem_Android() {
delete _timerManager;
_timerManager = 0;
- deleteMutex(_event_queue_lock);
+ delete _event_queue_lock;
delete _savefileManager;
_savefileManager = 0;
@@ -347,7 +347,7 @@ void OSystem_Android::initBackend() {
_mutexManager = new PthreadMutexManager();
_timerManager = new DefaultTimerManager();
- _event_queue_lock = createMutex();
+ _event_queue_lock = new Common::Mutex();
gettimeofday(&_startTime, 0);
diff --git a/backends/platform/android/android.h b/backends/platform/android/android.h
index 90fedfb9f4..da31674576 100644
--- a/backends/platform/android/android.h
+++ b/backends/platform/android/android.h
@@ -28,6 +28,7 @@
#include "backends/platform/android/portdefs.h"
#include "common/fs.h"
#include "common/archive.h"
+#include "common/mutex.h"
#include "audio/mixer_intern.h"
#include "backends/modular-backend.h"
#include "backends/plugins/posix/posix-provider.h"
@@ -100,7 +101,7 @@ private:
Common::Queue<Common::Event> _event_queue;
Common::Event _queuedEvent;
uint32 _queuedEventTime;
- MutexRef _event_queue_lock;
+ Common::Mutex *_event_queue_lock;
Common::Point _touch_pt_down, _touch_pt_scroll, _touch_pt_dt;
int _eventScaleX;
diff --git a/backends/platform/android/events.cpp b/backends/platform/android/events.cpp
index 3a28c25715..5841a4bcd0 100644
--- a/backends/platform/android/events.cpp
+++ b/backends/platform/android/events.cpp
@@ -277,7 +277,7 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3,
up = Common::EVENT_LBUTTONUP;
}
- lockMutex(_event_queue_lock);
+ _event_queue_lock->lock();
if (_queuedEventTime)
_event_queue.push(_queuedEvent);
@@ -292,7 +292,7 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3,
_queuedEvent = e;
_queuedEventTime = getMillis() + kQueuedInputEventDelay;
- unlockMutex(_event_queue_lock);
+ _event_queue_lock->unlock();
}
return;
@@ -341,11 +341,11 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3,
return;
}
- lockMutex(_event_queue_lock);
+ _event_queue_lock->lock();
_event_queue.push(e);
e.type = dptype;
_event_queue.push(e);
- unlockMutex(_event_queue_lock);
+ _event_queue_lock->unlock();
}
return;
@@ -381,7 +381,7 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3,
e.mouse = dynamic_cast<AndroidGraphicsManager *>(_graphicsManager)->getMousePosition();
- lockMutex(_event_queue_lock);
+ _event_queue_lock->lock();
if (_queuedEventTime)
_event_queue.push(_queuedEvent);
@@ -392,7 +392,7 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3,
_queuedEvent = e;
_queuedEventTime = getMillis() + kQueuedInputEventDelay;
- unlockMutex(_event_queue_lock);
+ _event_queue_lock->unlock();
return;
default:
@@ -643,21 +643,21 @@ bool OSystem_Android::pollEvent(Common::Event &event) {
}
}
- lockMutex(_event_queue_lock);
+ _event_queue_lock->lock();
if (_queuedEventTime && (getMillis() > _queuedEventTime)) {
event = _queuedEvent;
_queuedEventTime = 0;
- // unlockMutex(_event_queue_lock);
+ // _event_queue_lock->unlock();
// return true;
} else if (_event_queue.empty()) {
- unlockMutex(_event_queue_lock);
+ _event_queue_lock->unlock();
return false;
} else {
event = _event_queue.pop();
}
- unlockMutex(_event_queue_lock);
+ _event_queue_lock->unlock();
if (Common::isMouseEvent(event)) {
if (_graphicsManager)
@@ -668,9 +668,9 @@ bool OSystem_Android::pollEvent(Common::Event &event) {
}
void OSystem_Android::pushEvent(const Common::Event &event) {
- lockMutex(_event_queue_lock);
+ _event_queue_lock->lock();
_event_queue.push(event);
- unlockMutex(_event_queue_lock);
+ _event_queue_lock->unlock();
}
#endif
diff --git a/common/mutex.cpp b/common/mutex.cpp
index e7a0bbfe76..cc5af7b4a7 100644
--- a/common/mutex.cpp
+++ b/common/mutex.cpp
@@ -47,7 +47,7 @@ void Mutex::unlock() {
#pragma mark -
-StackLock::StackLock(MutexRef mutex, const char *mutexName)
+StackLock::StackLock(OSystem::MutexRef mutex, const char *mutexName)
: _mutex(mutex), _mutexName(mutexName) {
lock();
}
diff --git a/common/mutex.h b/common/mutex.h
index f965a63e0d..1b52bb40dd 100644
--- a/common/mutex.h
+++ b/common/mutex.h
@@ -30,23 +30,17 @@ namespace Common {
class Mutex;
-/**
- * An pseudo-opaque mutex type. See OSystem::createMutex etc. for more details.
- */
-typedef OSystem::MutexRef MutexRef;
-
-
/**
* Auxillary class to (un)lock a mutex on the stack.
*/
class StackLock {
- MutexRef _mutex;
+ OSystem::MutexRef _mutex;
const char *_mutexName;
void lock();
void unlock();
public:
- explicit StackLock(MutexRef mutex, const char *mutexName = nullptr);
+ explicit StackLock(OSystem::MutexRef mutex, const char *mutexName = nullptr);
explicit StackLock(const Mutex &mutex, const char *mutexName = nullptr);
~StackLock();
};
@@ -58,7 +52,7 @@ public:
class Mutex {
friend class StackLock;
- MutexRef _mutex;
+ OSystem::MutexRef _mutex;
public:
Mutex();
diff --git a/common/str.cpp b/common/str.cpp
index 535cf43876..0ec93b61d2 100644
--- a/common/str.cpp
+++ b/common/str.cpp
@@ -30,7 +30,7 @@
namespace Common {
MemoryPool *g_refCountPool = nullptr; // FIXME: This is never freed right now
-MutexRef g_refCountPoolMutex = nullptr;
+Mutex *g_refCountPoolMutex = nullptr;
void lockMemoryPoolMutex() {
// The Mutex class can only be used once g_system is set and initialized,
@@ -40,18 +40,18 @@ void lockMemoryPoolMutex() {
if (!g_system || !g_system->backendInitialized())
return;
if (!g_refCountPoolMutex)
- g_refCountPoolMutex = g_system->createMutex();
- g_system->lockMutex(g_refCountPoolMutex);
+ g_refCountPoolMutex = new Mutex();
+ g_refCountPoolMutex->lock();
}
void unlockMemoryPoolMutex() {
if (g_refCountPoolMutex)
- g_system->unlockMutex(g_refCountPoolMutex);
+ g_refCountPoolMutex->unlock();
}
void String::releaseMemoryPoolMutex() {
if (g_refCountPoolMutex){
- g_system->deleteMutex(g_refCountPoolMutex);
+ delete g_refCountPoolMutex;
g_refCountPoolMutex = nullptr;
}
}
diff --git a/engines/lure/sound.cpp b/engines/lure/sound.cpp
index 5acd6d81a0..4d0dd129c9 100644
--- a/engines/lure/sound.cpp
+++ b/engines/lure/sound.cpp
@@ -41,7 +41,6 @@ namespace Lure {
SoundManager::SoundManager() {
Disk &disk = Disk::getReference();
- _soundMutex = g_system->createMutex();
int index;
_descs = disk.getEntry(SOUND_DESC_RESOURCE_ID);
@@ -86,9 +85,9 @@ SoundManager::~SoundManager() {
removeSounds();
_activeSounds.clear();
- g_system->lockMutex(_soundMutex);
+ _soundMutex.lock();
_playingSounds.clear();
- g_system->unlockMutex(_soundMutex);
+ _soundMutex.unlock();
delete _descs;
delete _soundData;
@@ -98,8 +97,6 @@ SoundManager::~SoundManager() {
delete _driver;
_driver = NULL;
}
-
- g_system->deleteMutex(_soundMutex);
}
void SoundManager::saveToStream(Common::WriteStream *stream) {
@@ -300,7 +297,7 @@ void SoundManager::syncSounds() {
_musicVolume = mute ? 0 : MIN(255, ConfMan.getInt("music_volume"));
_sfxVolume = mute ? 0 : MIN(255, ConfMan.getInt("sfx_volume"));
- g_system->lockMutex(_soundMutex);
+ _soundMutex.lock();
MusicListIterator i;
for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
if ((*i)->isMusic())
@@ -308,7 +305,7 @@ void SoundManager::syncSounds() {
else
(*i)->setVolume(_sfxVolume);
}
- g_system->unlockMutex(_soundMutex);
+ _soundMutex.unlock();
}
SoundDescResource *SoundManager::findSound(uint8 soundNumber) {
@@ -393,7 +390,7 @@ void SoundManager::fadeOut() {
{
inProgress = false;
- g_system->lockMutex(_soundMutex);
+ _soundMutex.lock();
MusicListIterator i;
for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
MidiMusic &music = **i;
@@ -403,7 +400,7 @@ void SoundManager::fadeOut() {
}
}
- g_system->unlockMutex(_soundMutex);
+ _soundMutex.unlock();
g_system->delayMillis(10);
}
@@ -449,11 +446,11 @@ void SoundManager::musicInterface_Play(uint8 soundNumber, uint8 channelNumber, u
dataSize = nextDataOfs - dataOfs;
}
- g_system->lockMutex(_soundMutex);
+ _soundMutex.lock();
MidiMusic *sound = new MidiMusic(_driver, _channelsInner, channelNumber, soundNum,
isMusic, numChannels, soundStart, dataSize);
_playingSounds.push_back(MusicList::value_type(sound));
- g_system->unlockMutex(_soundMutex);
+ _soundMutex.unlock();
}
// musicInterface_Stop
@@ -464,7 +461,7 @@ void SoundManager::musicInterface_Stop(uint8 soundNumber) {
musicInterface_TidySounds();
uint8 soundNum = soundNumber & 0x7f;
- g_system->lockMutex(_soundMutex);
+ _soundMutex.lock();
MusicListIterator i;
for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
if ((*i)->soundNumber() == soundNum) {
@@ -472,7 +469,7 @@ void SoundManager::musicInterface_Stop(uint8 soundNumber) {
break;
}
}
- g_system->unlockMutex(_soundMutex);
+ _soundMutex.unlock();
}
// musicInterface_CheckPlaying
@@ -484,7 +481,7 @@ bool SoundManager::musicInterface_CheckPlaying(uint8 soundNumber) {
uint8 soundNum = soundNumber & 0x7f;
bool result = false;
- g_system->lockMutex(_soundMutex);
+ _soundMutex.lock();
MusicListIterator i;
for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
if ((*i)->soundNumber() == soundNum) {
@@ -492,7 +489,7 @@ bool SoundManager::musicInterface_CheckPlaying(uint8 soundNumber) {
break;
}
}
- g_system->unlockMutex(_soundMutex);
+ _soundMutex.unlock();
return result;
}
@@ -505,14 +502,14 @@ void SoundManager::musicInterface_SetVolume(uint8 channelNum, uint8 volume) {
channelNum, volume);
musicInterface_TidySounds();
- g_system->lockMutex(_soundMutex);
+ _soundMutex.lock();
MusicListIterator i;
for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
MidiMusic &music = **i;
if (music.channelNumber() == channelNum)
music.setVolume(volume);
}
- g_system->unlockMutex(_soundMutex);
+ _soundMutex.unlock();
}
// musicInterface_KillAll
@@ -522,7 +519,7 @@ void SoundManager::musicInterface_KillAll() {
debugC(ERROR_INTERMEDIATE, kLureDebugSounds, "musicInterface_KillAll");
musicInterface_TidySounds();
- g_system->lockMutex(_soundMutex);
+ _soundMutex.lock();
MusicListIterator i;
for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
(*i)->stopMusic();
@@ -530,7 +527,7 @@ void SoundManager::musicInterface_KillAll() {
_playingSounds.clear();
_activeSounds.clear();
- g_system->unlockMutex(_soundMutex);
+ _soundMutex.unlock();
}
// musicInterface_ContinuePlaying
@@ -554,7 +551,7 @@ void SoundManager::musicInterface_TrashReverb() {
void SoundManager::musicInterface_TidySounds() {
debugC(ERROR_DETAILED, kLureDebugSounds, "musicInterface_TidySounds");
- g_system->lockMutex(_soundMutex);
+ _soundMutex.lock();
MusicListIterator i = _playingSounds.begin();
while (i != _playingSounds.end()) {
if (!(*i)->isPlaying())
@@ -562,7 +559,7 @@ void SoundManager::musicInterface_TidySounds() {
else
++i;
}
- g_system->unlockMutex(_soundMutex);
+ _soundMutex.unlock();
}
void SoundManager::onTimer(void *data) {
@@ -574,7 +571,7 @@ void SoundManager::doTimer() {
if (_paused)
return;
- g_system->lockMutex(_soundMutex);
+ _soundMutex.lock();
MusicListIterator i;
for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
@@ -583,7 +580,7 @@ void SoundManager::doTimer() {
music.onTimer();
}
- g_system->unlockMutex(_soundMutex);
+ _soundMutex.unlock();
}
/*------------------------------------------------------------------------*/
diff --git a/engines/lure/sound.h b/engines/lure/sound.h
index 31e98273d2..b5cd4e0af9 100644
--- a/engines/lure/sound.h
+++ b/engines/lure/sound.h
@@ -112,7 +112,7 @@ private:
bool _isPlaying;
bool _nativeMT32;
bool _isRoland;
- Common::MutexRef _soundMutex;
+ Common::Mutex _soundMutex;
bool _paused;
uint _musicVolume;
diff --git a/engines/testbed/misc.cpp b/engines/testbed/misc.cpp
index 30cce8cee0..d0caac0f5c 100644
--- a/engines/testbed/misc.cpp
+++ b/engines/testbed/misc.cpp
@@ -39,7 +39,7 @@ void MiscTests::criticalSection(void *arg) {
SharedVars &sv = *((SharedVars *)arg);
Testsuite::logDetailedPrintf("Before critical section: %d %d\n", sv.first, sv.second);
- g_system->lockMutex(sv.mutex);
+ sv.mutex->lock();
// In any case, the two vars must be equal at entry, if mutex works fine.
// verify this here.
@@ -58,7 +58,7 @@ void MiscTests::criticalSection(void *arg) {
sv.second *= sv.first;
Testsuite::logDetailedPrintf("After critical section: %d %d\n", sv.first, sv.second);
- g_system->unlockMutex(sv.mutex);
+ sv.mutex->unlock();
g_system->getTimerManager()->removeTimerProc(criticalSection);
}
@@ -132,17 +132,17 @@ TestExitStatus MiscTests::testMutexes() {
Testsuite::writeOnScreen("Installing mutex", Common::Point(0, 100));
}
- SharedVars sv = {1, 1, true, g_system->createMutex()};
+ SharedVars sv = {1, 1, true, new Common::Mutex()};
if (g_system->getTimerManager()->installTimerProc(criticalSection, 100000, &sv, "testbedMutex")) {
g_system->delayMillis(150);
}
- g_system->lockMutex(sv.mutex);
+ sv.mutex->lock();
sv.first++;
g_system->delayMillis(1000);
sv.second *= sv.first;
- g_system->unlockMutex(sv.mutex);
+ sv.mutex->unlock();
// wait till timed process exits
if (ConfParams.isSessionInteractive()) {
@@ -151,7 +151,7 @@ TestExitStatus MiscTests::testMutexes() {
g_system->delayMillis(3000);
Testsuite::logDetailedPrintf("Final Value: %d %d\n", sv.first, sv.second);
- g_system->deleteMutex(sv.mutex);
+ delete sv.mutex;
if (sv.resultSoFar && 6 == sv.second) {
return kTestPassed;
diff --git a/engines/testbed/misc.h b/engines/testbed/misc.h
index 2b232ea6c0..08c0954f05 100644
--- a/engines/testbed/misc.h
+++ b/engines/testbed/misc.h
@@ -25,6 +25,8 @@
#include "testbed/testsuite.h"
+#include "common/mutex.h"
+
namespace Testbed {
@@ -33,7 +35,7 @@ struct SharedVars {
int first;
int second;
bool resultSoFar;
- OSystem::MutexRef mutex;
+ Common::Mutex *mutex;
};
namespace MiscTests {
diff --git a/engines/tony/gfxcore.h b/engines/tony/gfxcore.h
index 7c0de186ca..e9ddabd1ae 100644
--- a/engines/tony/gfxcore.h
+++ b/engines/tony/gfxcore.h
@@ -452,7 +452,7 @@ private:
void mergeDirtyRects();
private:
- //OSystem::MutexRef csModifyingOT;
+ //Common::Mutex csModifyingOT;
protected:
OTList *_otlist;
diff --git a/engines/tony/inventory.cpp b/engines/tony/inventory.cpp
index 974be8b04d..e6fe09808b 100644
--- a/engines/tony/inventory.cpp
+++ b/engines/tony/inventory.cpp
@@ -42,7 +42,6 @@ RMInventory::RMInventory() {
_items = NULL;
_state = CLOSED;
_bCombining = false;
- _csModifyInterface = g_system->createMutex();
_nItems = 0;
Common::fill(_inv, _inv + 256, 0);
@@ -60,7 +59,6 @@ RMInventory::RMInventory() {
RMInventory::~RMInventory() {
close();
- g_system->deleteMutex(_csModifyInterface);
}
bool RMInventory::checkPointInside(const RMPoint &pt) {
@@ -182,9 +180,9 @@ void RMInventory::draw(CORO_PARAM, RMGfxTargetBuffer &bigBuf, RMGfxPrimitive *pr
CORO_BEGIN_CODE(_ctx);
prim->setDst(RMPoint(0, _curPutY));
- g_system->lockMutex(_csModifyInterface);
+ _csModifyInterface.lock();
CORO_INVOKE_2(RMGfxWoodyBuffer::draw, bigBuf, prim);
- g_system->unlockMutex(_csModifyInterface);
+ _csModifyInterface.unlock();
if (_state == SELECTING) {
@@ -228,7 +226,7 @@ void RMInventory::removeThis(CORO_PARAM, bool &result) {
void RMInventory::removeItem(int code) {
for (int i = 0; i < _nInv; i++) {
if (_inv[i] == code - 10000) {
- g_system->lockMutex(_csModifyInterface);
+ _csModifyInterface.lock();
Common::copy(&_inv[i + 1], &_inv[i + 1] + (_nInv - i), &_inv[i]);
_nInv--;
@@ -236,7 +234,7 @@ void RMInventory::removeItem(int code) {
prepare();
drawOT(Common::nullContext);
clearOT();
- g_system->unlockMutex(_csModifyInterface);
+ _csModifyInterface.unlock();
return;
}
}
@@ -247,7 +245,7 @@ void RMInventory::addItem(int code) {
// If we are here, it means that we are adding an item that should not be in the inventory
warning("RMInventory::addItem(%d) - Cannot find a valid icon for this item, and then it will not be added to the inventory", code);
} else {
- g_system->lockMutex(_csModifyInterface);
+ _csModifyInterface.lock();
if (_curPos + 8 == _nInv) {
// Break through the inventory! On the flashing pattern
_items[28]._icon.setPattern(2);
@@ -258,7 +256,7 @@ void RMInventory::addItem(int code) {
prepare();
drawOT(Common::nullContext);
clearOT();
- g_system->unlockMutex(_csModifyInterface);
+ _csModifyInterface.unlock();
}
}
@@ -266,14 +264,14 @@ void RMInventory::changeItemStatus(uint32 code, uint32 dwStatus) {
if (code <= 10000 || code >= 10101) {
error("RMInventory::changeItemStatus(%d) - Specified object code is not valid", code);
} else {
- g_system->lockMutex(_csModifyInterface);
+ _csModifyInterface.lock();
_items[code - 10000]._icon.setPattern(dwStatus);
_items[code - 10000]._status = dwStatus;
prepare();
drawOT(Common::nullContext);
clearOT();
- g_system->unlockMutex(_csModifyInterface);
+ _csModifyInterface.unlock();
}
}
@@ -331,7 +329,7 @@ bool RMInventory::leftClick(const RMPoint &mpos, int &nCombineObj) {
// Click the right arrow
if ((_state == OPENED) && _bBlinkingRight) {
- g_system->lockMutex(_csModifyInterface);
+ _csModifyInterface.lock();
_curPos++;
if (_curPos + 8 >= _nInv) {
@@ -347,13 +345,13 @@ bool RMInventory::leftClick(const RMPoint &mpos, int &nCombineObj) {
prepare();
drawOT(Common::nullContext);
clearOT();
- g_system->unlockMutex(_csModifyInterface);
+ _csModifyInterface.unlock();
}
// Click the left arrow
else if ((_state == OPENED) && _bBlinkingLeft) {
assert(_curPos > 0);
- g_system->lockMutex(_csModifyInterface);
+ _csModifyInterface.lock();
_curPos--;
if (_curPos == 0) {
@@ -369,7 +367,7 @@ bool RMInventory::leftClick(const RMPoint &mpos, int &nCombineObj) {
prepare();
drawOT(Common::nullContext);
clearOT();
- g_system->unlockMutex(_csModifyInterface);
+ _csModifyInterface.unlock();
}
return false;
@@ -392,7 +390,7 @@ void RMInventory::rightClick(const RMPoint &mpos) {
}
if ((_state == OPENED) && _bBlinkingRight) {
- g_system->lockMutex(_csModifyInterface);
+ _csModifyInterface.lock();
_curPos += 7;
if (_curPos + 8 > _nInv)
_curPos = _nInv - 8;
@@ -410,10 +408,10 @@ void RMInventory::rightClick(const RMPoint &mpos) {
prepare();
drawOT(Common::nullContext);
clearOT();
- g_system->unlockMutex(_csModifyInterface);
+ _csModifyInterface.unlock();
} else if ((_state == OPENED) && _bBlinkingLeft) {
assert(_curPos > 0);
- g_system->lockMutex(_csModifyInterface);
+ _csModifyInterface.lock();
_curPos -= 7;
if (_curPos < 0)
_curPos = 0;
@@ -431,7 +429,7 @@ void RMInventory::rightClick(const RMPoint &mpos) {
prepare();
drawOT(Common::nullContext);
clearOT();
- g_system->unlockMutex(_csModifyInterface);
+ _csModifyInterface.unlock();
}
}
@@ -459,7 +457,7 @@ bool RMInventory::rightRelease(const RMPoint &mpos, RMTonyAction &curAction) {
void RMInventory::doFrame(RMGfxTargetBuffer &bigBuf, RMPointer &ptr, RMPoint mpos, bool bCanOpen) {
if (_state != CLOSED) {
// Clean up the OT list
- g_system->lockMutex(_csModifyInterface);
+ _csModifyInterface.lock();
clearOT();
// DoFrame makes all the objects currently in the inventory be displayed
@@ -506,7 +504,7 @@ void RMInventory::doFrame(RMGfxTargetBuffer &bigBuf, RMPointer &ptr, RMPoint mpo
if (bNeedRedraw)
prepare();
- g_system->unlockMutex(_csModifyInterface);
+ _csModifyInterface.unlock();
}
if (g_vm->getEngine()->getInput().getAsyncKeyState(Common::KEYCODE_i)) {
diff --git a/engines/tony/inventory.h b/engines/tony/inventory.h
index 5ba381def6..d8432b8ace 100644
--- a/engines/tony/inventory.h
+++ b/engines/tony/inventory.h
@@ -30,7 +30,7 @@
#define TONY_INVENTORY_H
#include "common/scummsys.h"
-#include "common/system.h"
+#include "common/mutex.h"
#include "tony/font.h"
#include "tony/game.h"
#include "tony/gfxcore.h"
@@ -76,7 +76,7 @@ protected:
RMItem _miniInterface;
RMText _hints[3];
- OSystem::MutexRef _csModifyInterface;
+ Common::Mutex _csModifyInterface;
protected:
/**
diff --git a/engines/tony/loc.cpp b/engines/tony/loc.cpp
index 9ee6f23a4e..72d18ff3d6 100644
--- a/engines/tony/loc.cpp
+++ b/engines/tony/loc.cpp
@@ -891,10 +891,10 @@ bool RMCharacter::findPath(short source, short destination) {
bool error = false;
RMBoxLoc *cur;
- g_system->lockMutex(_csMove);
+ _csMove.lock();
if (source == -1 || destination == -1) {
- g_system->unlockMutex(_csMove);
+ _csMove.unlock();
return 0;
}
@@ -973,7 +973,7 @@ bool RMCharacter::findPath(short source, short destination) {
_pathLength++;
}
- g_system->unlockMutex(_csMove);
+ _csMove.unlock();
return !error;
}
@@ -1327,7 +1327,7 @@ void RMCharacter::doFrame(CORO_PARAM, RMGfxTargetBuffer *bigBuf, int loc) {
_bEndOfPath = false;
_bDrawNow = (_curLocation == loc);
- g_system->lockMutex(_csMove);
+ _csMove.lock();
// If we're walking..
if (_status != STAND) {
@@ -1422,7 +1422,7 @@ void RMCharacter::doFrame(CORO_PARAM, RMGfxTargetBuffer *bigBuf, int loc) {
}
}
- g_system->unlockMutex(_csMove);
+ _csMove.unlock();
// Invoke the DoFrame of the item
RMItem::doFrame(bigBuf);
@@ -1616,7 +1616,6 @@ void RMCharacter::removeThis(CORO_PARAM, bool &result) {
}
RMCharacter::RMCharacter() {
- _csMove = g_system->createMutex();
_hEndOfPath = CoroScheduler.createEvent(false, false);
_minPath = 0;
_curSpeed = 3;
@@ -1644,7 +1643,6 @@ RMCharacter::RMCharacter() {
}
RMCharacter::~RMCharacter() {
- g_system->deleteMutex(_csMove);
CoroScheduler.closeEvent(_hEndOfPath);
}
diff --git a/engines/tony/loc.h b/engines/tony/loc.h
index a52670fc58..359d75fd15 100644
--- a/engines/tony/loc.h
+++ b/engines/tony/loc.h
@@ -30,7 +30,7 @@
#define TONY_LOC_H
#include "common/scummsys.h"
-#include "common/system.h"
+#include "common/mutex.h"
#include "common/file.h"
#include "tony/sound.h"
#include "tony/utils.h"
@@ -384,7 +384,7 @@ private:
int _curSpeed;
bool _bEndOfPath;
uint32 _hEndOfPath;
- OSystem::MutexRef _csMove;
+ Common::Mutex _csMove;
int _curLocation;
bool _bRemoveFromOT;
bool _bMovingWithoutMinpath;
More information about the Scummvm-git-logs
mailing list