[Scummvm-git-logs] scummvm master -> b80ba96a8c5c012430ecb2890a0e414d2a21a74e

dreammaster noreply at scummvm.org
Mon Jan 5 10:30:16 UTC 2026


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
282a30fffc ULTIMA: ULTIMA0: Remove deprecated Info view msgKeypress
b7bb8fb79d ULTIMA: ULTIMA0: Properly choose quest given using player's Wisdom
b80ba96a8c ULTIMA: ULTIMA0: Further improvement to quest completion


Commit: 282a30fffc9b562dc0ef85296c5b05a890da4b15
    https://github.com/scummvm/scummvm/commit/282a30fffc9b562dc0ef85296c5b05a890da4b15
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-01-05T20:53:13+11:00

Commit Message:
ULTIMA: ULTIMA0: Remove deprecated Info view msgKeypress

Changed paths:
    engines/ultima/ultima0/views/info.cpp
    engines/ultima/ultima0/views/info.h


diff --git a/engines/ultima/ultima0/views/info.cpp b/engines/ultima/ultima0/views/info.cpp
index 3bd24dd8998..52a1d9f8b06 100644
--- a/engines/ultima/ultima0/views/info.cpp
+++ b/engines/ultima/ultima0/views/info.cpp
@@ -95,20 +95,6 @@ void Info::leave() {
 	replaceView(player._level == 0 ? "WorldMap" : "DungeonMap");
 }
 
-bool Info::msgKeypress(const KeypressMessage &msg) {
-	if (isDelayActive())
-		return false;
-
-	for (int i = 0; i < MAX_OBJ; ++i) {
-		if (Common::isDigit(msg.ascii) && (msg.ascii - '0') == OBJECT_INFO[i]._cost) {
-			selectObject(i);
-			return true;
-		}
-	}
-
-	return false;
-}
-
 bool Info::msgAction(const ActionMessage &msg) {
 	if (isDelayActive())
 		return false;
diff --git a/engines/ultima/ultima0/views/info.h b/engines/ultima/ultima0/views/info.h
index c332f3b4868..69e246194b8 100644
--- a/engines/ultima/ultima0/views/info.h
+++ b/engines/ultima/ultima0/views/info.h
@@ -62,7 +62,6 @@ public:
 	bool msgFocus(const FocusMessage &msg) override;
 	bool msgUnfocus(const UnfocusMessage &msg) override;
 	void draw() override;
-	bool msgKeypress(const KeypressMessage &msg) override;
 	bool msgAction(const ActionMessage &msg) override;
 	bool msgGame(const GameMessage &msg) override;
 };


Commit: b7bb8fb79d3549d0350f4c8f93d70c6a30ec3e63
    https://github.com/scummvm/scummvm/commit/b7bb8fb79d3549d0350f4c8f93d70c6a30ec3e63
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-01-05T20:53:13+11:00

Commit Message:
ULTIMA: ULTIMA0: Properly choose quest given using player's Wisdom

Changed paths:
    engines/ultima/ultima0/views/castle.cpp
    engines/ultima/ultima0/views/castle.h


diff --git a/engines/ultima/ultima0/views/castle.cpp b/engines/ultima/ultima0/views/castle.cpp
index 3c5728825a4..abbc21f1cd2 100644
--- a/engines/ultima/ultima0/views/castle.cpp
+++ b/engines/ultima/ultima0/views/castle.cpp
@@ -66,6 +66,7 @@ void Castle::draw() {
 
 void Castle::firstTime() {
 	auto s = getSurface();
+	const auto &player = g_engine->_player;
 
 	if (_mode >= NAMING && _mode <= FIRST_TASK) {
 		s.writeString(Common::Point(5, 2), "Welcome Peasant into the halls of\n"
@@ -85,12 +86,14 @@ void Castle::firstTime() {
 	if (_mode == BEGONE) {
 		s.writeString("Then leave and begone!");
 	} else if (_mode == FIRST_TASK) {
+		nextTask(true);
+
 		s.writeString("Good! Thou shalt try to become a\nKnight!!!\n\n"
 			"Thy first task is to go into the\n"
 			"dungeons and to return only after\n"
 			"killing ");
 		s.setColor(C_VIOLET);
-		s.writeString(getTaskName(1));
+		s.writeString(getTaskName(player._task));
 
 		pressAnyKey();
 	}
@@ -192,15 +195,17 @@ bool Castle::msgAction(const ActionMessage &msg) {
 	return true;
 }
 
-void Castle::nextTask() {
+void Castle::nextTask(bool isFirstTime) {
 	auto &player = g_engine->_player;
 
-	player._task++;
+	player._task = CLIP(player._attr[AT_WISDOM] / 3, 1, 10);
 	player._taskCompleted = false;
 
-	// LB gives you extra attributes
-	for (int i = 0; i < MAX_ATTR; i++)
-		player._attr[i]++;
+	if (!isFirstTime) {
+		// LB gives you extra attributes
+		for (int i = 0; i < MAX_ATTR; i++)
+			player._attr[i]++;
+	}
 }
 
 Common::String Castle::getTaskName(int taskNum) const {
diff --git a/engines/ultima/ultima0/views/castle.h b/engines/ultima/ultima0/views/castle.h
index 4156160e2ae..732b406b72c 100644
--- a/engines/ultima/ultima0/views/castle.h
+++ b/engines/ultima/ultima0/views/castle.h
@@ -39,7 +39,7 @@ private:
 	void firstTime();
 	void taskCompleted();
 	void taskIncomplete();
-	void nextTask();
+	void nextTask(bool isFirstTime = false);
 	void pressAnyKey();
 	Common::String getTaskName(int taskNum) const;
 


Commit: b80ba96a8c5c012430ecb2890a0e414d2a21a74e
    https://github.com/scummvm/scummvm/commit/b80ba96a8c5c012430ecb2890a0e414d2a21a74e
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-01-05T21:30:01+11:00

Commit Message:
ULTIMA: ULTIMA0: Further improvement to quest completion

Changed paths:
    engines/ultima/ultima0/views/castle.cpp
    engines/ultima/ultima0/views/castle.h


diff --git a/engines/ultima/ultima0/views/castle.cpp b/engines/ultima/ultima0/views/castle.cpp
index abbc21f1cd2..a0acb1931a4 100644
--- a/engines/ultima/ultima0/views/castle.cpp
+++ b/engines/ultima/ultima0/views/castle.cpp
@@ -86,8 +86,6 @@ void Castle::firstTime() {
 	if (_mode == BEGONE) {
 		s.writeString("Then leave and begone!");
 	} else if (_mode == FIRST_TASK) {
-		nextTask(true);
-
 		s.writeString("Good! Thou shalt try to become a\nKnight!!!\n\n"
 			"Thy first task is to go into the\n"
 			"dungeons and to return only after\n"
@@ -100,7 +98,7 @@ void Castle::firstTime() {
 }
 
 void Castle::taskCompleted() {
-	const auto &player = g_engine->_player;
+	auto &player = g_engine->_player;
 	auto s = getSurface();
 
 	s.writeString(Common::Point(0, 3), "Aaaahhhh.... ");
@@ -116,13 +114,18 @@ void Castle::taskCompleted() {
 			"try difficulty level ");
 		s.writeString(Common::String::format("%d.", player._skill + 1));
 	} else {
+		// LB gives you extra attributes
+		for (int i = 0; i < MAX_ATTR; i++)
+			player._attr[i]++;
+
+		// Choose the next task
 		nextTask();
 
 		s.writeString("Unfortunately, this is not enough to\n"
 			"become a knight.\n\n");
 		s.writeString("Thou must now kill ");
 		s.setColor(C_VIOLET);
-		s.writeString(getTaskName(1));
+		s.writeString(getTaskName(player._task));
 
 		s.setColor(C_TEXT_DEFAULT);
 		s.writeString("\n\n");
@@ -195,17 +198,11 @@ bool Castle::msgAction(const ActionMessage &msg) {
 	return true;
 }
 
-void Castle::nextTask(bool isFirstTime) {
+void Castle::nextTask() {
 	auto &player = g_engine->_player;
 
 	player._task = CLIP(player._attr[AT_WISDOM] / 3, 1, 10);
 	player._taskCompleted = false;
-
-	if (!isFirstTime) {
-		// LB gives you extra attributes
-		for (int i = 0; i < MAX_ATTR; i++)
-			player._attr[i]++;
-	}
 }
 
 Common::String Castle::getTaskName(int taskNum) const {
diff --git a/engines/ultima/ultima0/views/castle.h b/engines/ultima/ultima0/views/castle.h
index 732b406b72c..4156160e2ae 100644
--- a/engines/ultima/ultima0/views/castle.h
+++ b/engines/ultima/ultima0/views/castle.h
@@ -39,7 +39,7 @@ private:
 	void firstTime();
 	void taskCompleted();
 	void taskIncomplete();
-	void nextTask(bool isFirstTime = false);
+	void nextTask();
 	void pressAnyKey();
 	Common::String getTaskName(int taskNum) const;
 




More information about the Scummvm-git-logs mailing list