[Scummvm-git-logs] scummvm master -> 0bc2b4a6184f25890ae74c1b655adf979a561731

OMGPizzaGuy noreply at scummvm.org
Tue Dec 13 01:38:46 UTC 2022


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:
0bc2b4a618 ULTIMA8: Update mouse cursor push to accept the desired cursor value.


Commit: 0bc2b4a6184f25890ae74c1b655adf979a561731
    https://github.com/scummvm/scummvm/commit/0bc2b4a6184f25890ae74c1b655adf979a561731
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2022-12-12T19:38:24-06:00

Commit Message:
ULTIMA8: Update mouse cursor push to accept the desired cursor value.

Changed paths:
    engines/ultima/ultima8/gumps/credits_gump.cpp
    engines/ultima/ultima8/gumps/cru_credits_gump.cpp
    engines/ultima/ultima8/gumps/cru_demo_gump.cpp
    engines/ultima/ultima8/gumps/cru_menu_gump.cpp
    engines/ultima/ultima8/gumps/difficulty_gump.cpp
    engines/ultima/ultima8/gumps/keypad_gump.cpp
    engines/ultima/ultima8/gumps/menu_gump.cpp
    engines/ultima/ultima8/gumps/message_box_gump.cpp
    engines/ultima/ultima8/gumps/movie_gump.cpp
    engines/ultima/ultima8/gumps/paged_gump.cpp
    engines/ultima/ultima8/gumps/quit_gump.cpp
    engines/ultima/ultima8/gumps/target_gump.cpp
    engines/ultima/ultima8/gumps/weasel_gump.cpp
    engines/ultima/ultima8/kernel/mouse.cpp
    engines/ultima/ultima8/kernel/mouse.h
    engines/ultima/ultima8/ultima8.cpp


diff --git a/engines/ultima/ultima8/gumps/credits_gump.cpp b/engines/ultima/ultima8/gumps/credits_gump.cpp
index 7511a1807d7..59138854784 100644
--- a/engines/ultima/ultima8/gumps/credits_gump.cpp
+++ b/engines/ultima/ultima8/gumps/credits_gump.cpp
@@ -87,8 +87,7 @@ void CreditsGump::InitGump(Gump *newparent, bool take_focus) {
 	_currentSurface = 0;
 	_currentY = 0;
 
-	Mouse::get_instance()->pushMouseCursor();
-	Mouse::get_instance()->setMouseCursor(Mouse::MOUSE_NONE);
+	Mouse::get_instance()->pushMouseCursor(Mouse::MOUSE_NONE);
 }
 
 void CreditsGump::Close(bool no_del) {
diff --git a/engines/ultima/ultima8/gumps/cru_credits_gump.cpp b/engines/ultima/ultima8/gumps/cru_credits_gump.cpp
index eea0874fddc..ba3f1593cb8 100644
--- a/engines/ultima/ultima8/gumps/cru_credits_gump.cpp
+++ b/engines/ultima/ultima8/gumps/cru_credits_gump.cpp
@@ -113,8 +113,7 @@ CruCreditsGump::~CruCreditsGump() {
 void CruCreditsGump::InitGump(Gump *newparent, bool take_focus) {
 	ModalGump::InitGump(newparent, take_focus);
 
-	Mouse::get_instance()->pushMouseCursor();
-	Mouse::get_instance()->setMouseCursor(Mouse::MOUSE_NONE);
+	Mouse::get_instance()->pushMouseCursor(Mouse::MOUSE_NONE);
 
 	MusicProcess *musicproc = MusicProcess::get_instance();
 	if (musicproc) {
diff --git a/engines/ultima/ultima8/gumps/cru_demo_gump.cpp b/engines/ultima/ultima8/gumps/cru_demo_gump.cpp
index f8e9cdc475a..21ca165d429 100644
--- a/engines/ultima/ultima8/gumps/cru_demo_gump.cpp
+++ b/engines/ultima/ultima8/gumps/cru_demo_gump.cpp
@@ -64,8 +64,7 @@ CruDemoGump::~CruDemoGump() {
 void CruDemoGump::InitGump(Gump *newparent, bool take_focus) {
 	ModalGump::InitGump(newparent, take_focus);
 
-	Mouse::get_instance()->pushMouseCursor();
-	Mouse::get_instance()->setMouseCursor(Mouse::MOUSE_NONE);
+	Mouse::get_instance()->pushMouseCursor(Mouse::MOUSE_NONE);
 
 	MusicProcess *musicproc = MusicProcess::get_instance();
 	if (musicproc) {
diff --git a/engines/ultima/ultima8/gumps/cru_menu_gump.cpp b/engines/ultima/ultima8/gumps/cru_menu_gump.cpp
index f76f3b8ef42..6c0b22ccca8 100644
--- a/engines/ultima/ultima8/gumps/cru_menu_gump.cpp
+++ b/engines/ultima/ultima8/gumps/cru_menu_gump.cpp
@@ -53,8 +53,7 @@ CruMenuGump::CruMenuGump()
 	: ModalGump(0, 0, 640, 480, 0, FLAG_DONT_SAVE) {
 
 	Mouse *mouse = Mouse::get_instance();
-	mouse->pushMouseCursor();
-	mouse->setMouseCursor(Mouse::MOUSE_HAND);
+	mouse->pushMouseCursor(Mouse::MOUSE_HAND);
 
 	// Save old music state
 	MusicProcess *musicprocess = MusicProcess::get_instance();
diff --git a/engines/ultima/ultima8/gumps/difficulty_gump.cpp b/engines/ultima/ultima8/gumps/difficulty_gump.cpp
index 977d446de58..9d11a5bd784 100644
--- a/engines/ultima/ultima8/gumps/difficulty_gump.cpp
+++ b/engines/ultima/ultima8/gumps/difficulty_gump.cpp
@@ -57,8 +57,7 @@ void DifficultyGump::InitGump(Gump *newparent, bool take_focus) {
 	ModalGump::InitGump(newparent, take_focus);
 
 	Mouse *mouse = Mouse::get_instance();
-	mouse->pushMouseCursor();
-	mouse->setMouseCursor(Mouse::MOUSE_HAND);
+	mouse->pushMouseCursor(Mouse::MOUSE_HAND);
 
 	_dims.top = 0;
 	_dims.left = 0;
diff --git a/engines/ultima/ultima8/gumps/keypad_gump.cpp b/engines/ultima/ultima8/gumps/keypad_gump.cpp
index efd21cfbb2a..87b6c2c1e69 100644
--- a/engines/ultima/ultima8/gumps/keypad_gump.cpp
+++ b/engines/ultima/ultima8/gumps/keypad_gump.cpp
@@ -47,8 +47,7 @@ static const uint16 SFXNO_DEL = 0x3a;
 KeypadGump::KeypadGump(int targetValue, uint16 ucnotifypid): ModalGump(0, 0, 5, 5),
 		_value(0), _targetValue(targetValue), _ucNotifyPid(ucnotifypid) {
 	Mouse *mouse = Mouse::get_instance();
-	mouse->pushMouseCursor();
-	mouse->setMouseCursor(Mouse::MOUSE_HAND);
+	mouse->pushMouseCursor(Mouse::MOUSE_HAND);
 	for (int i = 0; i < 12; i++) {
 		_buttons[i] = 0;
 	}
diff --git a/engines/ultima/ultima8/gumps/menu_gump.cpp b/engines/ultima/ultima8/gumps/menu_gump.cpp
index 86d921859dd..f916e33ae93 100644
--- a/engines/ultima/ultima8/gumps/menu_gump.cpp
+++ b/engines/ultima/ultima8/gumps/menu_gump.cpp
@@ -51,11 +51,10 @@ MenuGump::MenuGump(bool nameEntryMode)
 	_nameEntryMode = nameEntryMode;
 
 	Mouse *mouse = Mouse::get_instance();
-	mouse->pushMouseCursor();
 	if (!_nameEntryMode)
-		mouse->setMouseCursor(Mouse::MOUSE_HAND);
+		mouse->pushMouseCursor(Mouse::MOUSE_HAND);
 	else
-		mouse->setMouseCursor(Mouse::MOUSE_NONE);
+		mouse->pushMouseCursor(Mouse::MOUSE_NONE);
 
 	// Save old music state
 	MusicProcess *musicprocess = MusicProcess::get_instance();
diff --git a/engines/ultima/ultima8/gumps/message_box_gump.cpp b/engines/ultima/ultima8/gumps/message_box_gump.cpp
index ad5366628a6..95600a99137 100644
--- a/engines/ultima/ultima8/gumps/message_box_gump.cpp
+++ b/engines/ultima/ultima8/gumps/message_box_gump.cpp
@@ -102,8 +102,7 @@ void MessageBoxGump::InitGump(Gump *newparent, bool take_focus) {
 	}
 
 	Mouse *mouse = Mouse::get_instance();
-	mouse->pushMouseCursor();
-	mouse->setMouseCursor(Mouse::MOUSE_HAND);
+	mouse->pushMouseCursor(Mouse::MOUSE_HAND);
 }
 
 void MessageBoxGump::Close(bool no_del) {
diff --git a/engines/ultima/ultima8/gumps/movie_gump.cpp b/engines/ultima/ultima8/gumps/movie_gump.cpp
index 3eda562a46f..ff1b84d2724 100644
--- a/engines/ultima/ultima8/gumps/movie_gump.cpp
+++ b/engines/ultima/ultima8/gumps/movie_gump.cpp
@@ -134,8 +134,7 @@ void MovieGump::InitGump(Gump *newparent, bool take_focus) {
 
 	_player->start();
 
-	Mouse::get_instance()->pushMouseCursor();
-	Mouse::get_instance()->setMouseCursor(Mouse::MOUSE_NONE);
+	Mouse::get_instance()->pushMouseCursor(Mouse::MOUSE_NONE);
 
 	CruStatusGump *statusgump = CruStatusGump::get_instance();
 	if (statusgump) {
diff --git a/engines/ultima/ultima8/gumps/paged_gump.cpp b/engines/ultima/ultima8/gumps/paged_gump.cpp
index cb9d4fd605a..610e4080c39 100644
--- a/engines/ultima/ultima8/gumps/paged_gump.cpp
+++ b/engines/ultima/ultima8/gumps/paged_gump.cpp
@@ -74,8 +74,7 @@ void PagedGump::InitGump(Gump *newparent, bool take_focus) {
 	_prevButton->HideGump();
 
 	Mouse *mouse = Mouse::get_instance();
-	mouse->pushMouseCursor();
-	mouse->setMouseCursor(Mouse::MOUSE_HAND); // default cursor
+	mouse->pushMouseCursor(Mouse::MOUSE_HAND);
 }
 
 void PagedGump::PaintThis(RenderSurface *surf, int32 lerp_factor, bool scaled) {
diff --git a/engines/ultima/ultima8/gumps/quit_gump.cpp b/engines/ultima/ultima8/gumps/quit_gump.cpp
index 1ff8df186be..020eca0d171 100644
--- a/engines/ultima/ultima8/gumps/quit_gump.cpp
+++ b/engines/ultima/ultima8/gumps/quit_gump.cpp
@@ -54,8 +54,7 @@ static const int regQuitSound = 0;  // TODO: Work out what sound id
 
 QuitGump::QuitGump(): ModalGump(0, 0, 5, 5), _yesWidget(0), _noWidget(0) {
 	Mouse *mouse = Mouse::get_instance();
-	mouse->pushMouseCursor();
-	mouse->setMouseCursor(Mouse::MOUSE_HAND);
+	mouse->pushMouseCursor(Mouse::MOUSE_HAND);
 	if (GAME_IS_U8) {
 		_gumpShape = u8GumpShape;
 		_askShape = u8AskShapeId;
diff --git a/engines/ultima/ultima8/gumps/target_gump.cpp b/engines/ultima/ultima8/gumps/target_gump.cpp
index 25e13a6dc5f..daff18ae037 100644
--- a/engines/ultima/ultima8/gumps/target_gump.cpp
+++ b/engines/ultima/ultima8/gumps/target_gump.cpp
@@ -56,8 +56,7 @@ void TargetGump::InitGump(Gump *newparent, bool take_focus) {
 	CreateNotifier();
 
 	Mouse *mouse = Mouse::get_instance();
-	mouse->pushMouseCursor();
-	mouse->setMouseCursor(Mouse::MOUSE_TARGET);
+	mouse->pushMouseCursor(Mouse::MOUSE_TARGET);
 }
 
 void TargetGump::Close(bool no_del) {
diff --git a/engines/ultima/ultima8/gumps/weasel_gump.cpp b/engines/ultima/ultima8/gumps/weasel_gump.cpp
index 685710c4a74..9684f3fa5b6 100644
--- a/engines/ultima/ultima8/gumps/weasel_gump.cpp
+++ b/engines/ultima/ultima8/gumps/weasel_gump.cpp
@@ -104,8 +104,7 @@ WeaselGump::WeaselGump(uint16 level)
 	  _state(kWeaselStart), _curItem(0), _ammoMode(false), _curItemCost(1),
 	  _curItemShape(0), _ui(nullptr), _movie(nullptr), _weaselDat(nullptr) {
 	Mouse *mouse = Mouse::get_instance();
-	mouse->pushMouseCursor();
-	mouse->setMouseCursor(Mouse::MOUSE_HAND);
+	mouse->pushMouseCursor(Mouse::MOUSE_HAND);
 }
 
 WeaselGump::~WeaselGump() {
diff --git a/engines/ultima/ultima8/kernel/mouse.cpp b/engines/ultima/ultima8/kernel/mouse.cpp
index f284876aebd..d945c6f42ee 100644
--- a/engines/ultima/ultima8/kernel/mouse.cpp
+++ b/engines/ultima/ultima8/kernel/mouse.cpp
@@ -39,6 +39,8 @@ Mouse::Mouse() : _flashingCursorTime(0), _mouseOverGump(0),
 		_dragging(DRAG_NOT), _dragging_objId(0), _draggingItem_startGump(0),
 		_draggingItem_lastGump(0) {
 	_instance = this;
+
+	_cursors.push(MOUSE_NONE);
 }
 
 Mouse::~Mouse() {
@@ -46,7 +48,6 @@ Mouse::~Mouse() {
 }
 
 void Mouse::setup() {
-	pushMouseCursor();
 }
 
 bool Mouse::buttonDown(Shared::MouseButton button) {
@@ -119,7 +120,7 @@ bool Mouse::buttonUp(Shared::MouseButton button) {
 
 void Mouse::popAllCursors() {
 	_cursors.clear();
-	CursorMan.popAllCursors();
+	_cursors.push(MOUSE_NONE);
 }
 
 bool Mouse::isMouseDownEvent(Shared::MouseButton button) const {
@@ -344,8 +345,8 @@ void Mouse::flashCrossCursor() {
 	_flashingCursorTime = g_system->getMillis();
 }
 
-void Mouse::pushMouseCursor() {
-	_cursors.push(MOUSE_NORMAL);
+void Mouse::pushMouseCursor(MouseCursor cursor) {
+	_cursors.push(cursor);
 }
 
 void Mouse::popMouseCursor() {
@@ -402,8 +403,7 @@ void Mouse::startDragging(int startx, int starty) {
 	perr << "Dragging object " << _dragging_objId << " (class=" << (obj ? obj->GetClassType().class_name : "NULL") << ")" << Std::endl;
 #endif
 
-	pushMouseCursor();
-	setMouseCursor(MOUSE_NORMAL);
+	pushMouseCursor(MOUSE_NORMAL);
 
 	// pause the kernel
 	Kernel::get_instance()->pause();
diff --git a/engines/ultima/ultima8/kernel/mouse.h b/engines/ultima/ultima8/kernel/mouse.h
index 896d1d21424..b43836add63 100644
--- a/engines/ultima/ultima8/kernel/mouse.h
+++ b/engines/ultima/ultima8/kernel/mouse.h
@@ -190,7 +190,7 @@ public:
 	void flashCrossCursor();
 
 	//! push the current mouse cursor to the stack
-	void pushMouseCursor();
+	void pushMouseCursor(MouseCursor cursor);
 
 	//! pop the last mouse cursor from the stack
 	void popMouseCursor();
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index e8a9930141e..777bd1bf9b9 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -464,7 +464,7 @@ void Ultima8Engine::shutdownGame(bool reloading) {
 
 	// reset mouse cursor
 	_mouse->popAllCursors();
-	_mouse->pushMouseCursor();
+	_mouse->pushMouseCursor(Mouse::MOUSE_NORMAL);
 
 	FORGET_OBJECT(_world);
 	_objectManager->reset();
@@ -994,8 +994,7 @@ Common::Error Ultima8Engine::saveGameStream(Common::WriteStream *stream, bool is
 	if (modalGump)
 		modalGump->HideGump();
 
-	_mouse->pushMouseCursor();
-	_mouse->setMouseCursor(Mouse::MOUSE_WAIT);
+	_mouse->pushMouseCursor(Mouse::MOUSE_WAIT);
 
 	// Redraw to indicate busy and for save thumbnail
 	paint();
@@ -1088,7 +1087,7 @@ void Ultima8Engine::resetEngine() {
 
 	// reset mouse cursor
 	_mouse->popAllCursors();
-	_mouse->pushMouseCursor();
+	_mouse->pushMouseCursor(Mouse::MOUSE_NORMAL);
 
 	_timeOffset = -(int32)Kernel::get_instance()->getFrameNum();
 	_inversion = 0;
@@ -1246,8 +1245,7 @@ Common::Error Ultima8Engine::loadGameStream(Common::SeekableReadStream *stream)
 		return Common::Error(Common::kReadingFailed, "Unsupported savegame version");
 	}
 
-	_mouse->pushMouseCursor();
-	_mouse->setMouseCursor(Mouse::MOUSE_WAIT);
+	_mouse->pushMouseCursor(Mouse::MOUSE_WAIT);
 	_screen->BeginPainting();
 	_mouse->paint();
 	_screen->EndPainting();
@@ -1372,7 +1370,7 @@ Common::Error Ultima8Engine::loadGameStream(Common::SeekableReadStream *stream)
 
 	// Reset mouse cursor
 	_mouse->popAllCursors();
-	_mouse->pushMouseCursor();
+	_mouse->pushMouseCursor(Mouse::MOUSE_NORMAL);
 
 	/*
 	// In case of bugs, ensure persistent processes are around?




More information about the Scummvm-git-logs mailing list