[Scummvm-git-logs] scummvm master -> 3cb709f135b948cc66138d3fc3919f8ac511cb8f
npjg
nathanael.gentrydb8 at gmail.com
Thu Jul 16 13:59:45 UTC 2020
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
e23c264873 GRAPHICS: MACGUI: Remove mouseDownWidget
3cb709f135 DIRECTOR: Track dragged sprite by channel
Commit: e23c2648734cbda1152536909e54bbdd7cd2022c
https://github.com/scummvm/scummvm/commit/e23c2648734cbda1152536909e54bbdd7cd2022c
Author: Nathanael Gentry (nathanael.gentrydb8 at gmail.com)
Date: 2020-07-16T09:59:05-04:00
Commit Message:
GRAPHICS: MACGUI: Remove mouseDownWidget
The functionality I needed here can be implemented in the Director engine instead.
Changed paths:
graphics/macgui/macwindow.cpp
graphics/macgui/macwindowmanager.cpp
graphics/macgui/macwindowmanager.h
diff --git a/graphics/macgui/macwindow.cpp b/graphics/macgui/macwindow.cpp
index 4fb6148944..5cc3587eff 100644
--- a/graphics/macgui/macwindow.cpp
+++ b/graphics/macgui/macwindow.cpp
@@ -551,7 +551,6 @@ bool MacWindow::processEvent(Common::Event &event) {
case Common::EVENT_LBUTTONUP:
_beingDragged = false;
_beingResized = false;
- _wm->_mouseDownWidget = nullptr;
setHighlight(kBorderNone);
break;
@@ -569,13 +568,10 @@ bool MacWindow::processEvent(Common::Event &event) {
return false;
}
- MacWidget *w = _wm->_mouseDownWidget ? _wm->_mouseDownWidget : findEventHandler(event, _dims.left, _dims.top);
+ MacWidget *w = findEventHandler(event, _dims.left, _dims.top);
if (w && w != this) {
_wm->_hoveredWidget = w;
- if (event.type == Common::EVENT_LBUTTONDOWN)
- _wm->_mouseDownWidget = w;
-
if (w->processEvent(event))
return true;
}
diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index 2bb51239c0..60d04a33bf 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -161,7 +161,6 @@ MacWindowManager::MacWindowManager(uint32 mode, MacPatterns *patterns) {
_activeWidget = nullptr;
_mouseDown = false;
_hoveredWidget = nullptr;
- _mouseDownWidget = nullptr;
_mode = mode;
@@ -329,7 +328,6 @@ void MacWindowManager::removeWindow(MacWindow *target) {
_windowsToRemove.push_back(target);
_needsRemoval = true;
_hoveredWidget = nullptr;
- _mouseDownWidget = nullptr;
if (target->getId() == _activeWindow)
_activeWindow = -1;
diff --git a/graphics/macgui/macwindowmanager.h b/graphics/macgui/macwindowmanager.h
index 2c6b826aa2..d291cc78c9 100644
--- a/graphics/macgui/macwindowmanager.h
+++ b/graphics/macgui/macwindowmanager.h
@@ -279,7 +279,6 @@ public:
int _colorBlack, _colorWhite;
MacWidget *_hoveredWidget;
- MacWidget *_mouseDownWidget;
private:
void drawDesktop();
Commit: 3cb709f135b948cc66138d3fc3919f8ac511cb8f
https://github.com/scummvm/scummvm/commit/3cb709f135b948cc66138d3fc3919f8ac511cb8f
Author: Nathanael Gentry (nathanael.gentrydb8 at gmail.com)
Date: 2020-07-16T09:59:05-04:00
Commit Message:
DIRECTOR: Track dragged sprite by channel
Changed paths:
engines/director/director.cpp
engines/director/director.h
engines/director/events.cpp
diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index 21e82726d9..10bf010a2e 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -109,8 +109,7 @@ DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gam
_playbackPaused = false;
_skipFrameAdvance = false;
- _draggingSprite = false;
- _draggingSpriteId = 0;
+ _currentDraggedChannel = nullptr;
}
DirectorEngine::~DirectorEngine() {
diff --git a/engines/director/director.h b/engines/director/director.h
index e72d5dcc29..768019ba94 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -62,6 +62,7 @@ class Lingo;
class Movie;
class Stage;
class Score;
+class Channel;
class CastMember;
class Stxt;
@@ -189,8 +190,6 @@ public:
// events.cpp
void processEvents(bool bufferLingoEvents = false);
- void setDraggedSprite(uint16 id);
- void releaseDraggedSprite();
uint32 getMacTicks();
void waitForClick();
@@ -231,8 +230,7 @@ private:
Common::HashMap<int, PaletteV4 *> _director4Palettes;
- bool _draggingSprite;
- uint16 _draggingSpriteId;
+ Channel *_currentDraggedChannel;
Common::Point _draggingSpritePos;
};
diff --git a/engines/director/events.cpp b/engines/director/events.cpp
index 716996be06..7eebd66ae8 100644
--- a/engines/director/events.cpp
+++ b/engines/director/events.cpp
@@ -84,15 +84,14 @@ void DirectorEngine::processEvents(bool bufferLingoEvents) {
m->_lastEventTime = g_director->getMacTicks();
m->_lastRollTime = m->_lastEventTime;
- if (_draggingSprite) {
- Sprite *draggedSprite = sc->getSpriteById(_draggingSpriteId);
- if (draggedSprite->_moveable) {
+ if (_currentDraggedChannel) {
+ if (_currentDraggedChannel->_sprite->_moveable) {
pos = getCurrentStage()->getMousePos();
- sc->_channels[_draggingSpriteId]->addDelta(pos - _draggingSpritePos);
+ _currentDraggedChannel->addDelta(pos - _draggingSpritePos);
_draggingSpritePos = pos;
} else {
- releaseDraggedSprite();
+ _currentDraggedChannel = nullptr;
}
}
break;
@@ -116,8 +115,10 @@ void DirectorEngine::processEvents(bool bufferLingoEvents) {
debugC(3, kDebugEvents, "event: Button Down @(%d, %d), sprite id: %d", pos.x, pos.y, spriteId);
_lingo->registerEvent(kEventMouseDown, spriteId);
- if (sc->getSpriteById(spriteId)->_moveable)
- g_director->setDraggedSprite(spriteId);
+ if (sc->_channels[spriteId]->_sprite->_moveable) {
+ _draggingSpritePos = _currentStage->getMousePos();
+ _currentDraggedChannel = sc->_channels[spriteId];
+ }
break;
@@ -137,7 +138,7 @@ void DirectorEngine::processEvents(bool bufferLingoEvents) {
debugC(3, kDebugEvents, "event: Button Up @(%d, %d), sprite id: %d", pos.x, pos.y, spriteId);
- releaseDraggedSprite();
+ _currentDraggedChannel = nullptr;
{
CastMember *cast = g_director->getCurrentMovie()->getCastMember(sc->getSpriteById(spriteId)->_castId);
@@ -184,17 +185,6 @@ void DirectorEngine::processEvents(bool bufferLingoEvents) {
}
}
-void DirectorEngine::setDraggedSprite(uint16 id) {
- _draggingSprite = true;
- _draggingSpriteId = id;
- _draggingSpritePos = _currentStage->getMousePos();
-}
-
-void DirectorEngine::releaseDraggedSprite() {
- _draggingSprite = false;
- _draggingSpriteId = 0;
-}
-
void DirectorEngine::waitForClick() {
setCursor(kCursorMouseUp);
More information about the Scummvm-git-logs
mailing list