[Scummvm-git-logs] scummvm master -> 6290b52667e3450312277be40f845544babc3bdf
dreammaster
noreply at scummvm.org
Tue Jun 2 07:11:35 UTC 2026
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
e9d76282d9 MADS: DRAGONSPHERE: Workaround for conv_reset invalid indexes
6ef0ceed55 MADS: DRAGONSPHERE: Room 614 conv fixes
b3112015d3 MADS: DRAGONSPHERE: Properly reset room 614 wizard death timer
6290b52667 MADS: DRAGONSPHERE: Correctly show item that Polystone is mimicing
Commit: e9d76282d9e20f53c8553b0d98ceb73543e86a6d
https://github.com/scummvm/scummvm/commit/e9d76282d9e20f53c8553b0d98ceb73543e86a6d
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-02T17:11:22+10:00
Commit Message:
MADS: DRAGONSPHERE: Workaround for conv_reset invalid indexes
Changed paths:
engines/mads/madsv2/core/conv.cpp
diff --git a/engines/mads/madsv2/core/conv.cpp b/engines/mads/madsv2/core/conv.cpp
index f4801ebfd76..dcb59344a44 100644
--- a/engines/mads/madsv2/core/conv.cpp
+++ b/engines/mads/madsv2/core/conv.cpp
@@ -1689,13 +1689,16 @@ done:
}
void conv_reset(int id) {
- if (conv_slots[id]) {
+ // WORKAROUND: Only allowing freeing by slot within the allowed range
+ if (id < CONV_MAX_DATA && conv_slots[id]) {
mem_free(conv_data[id]);
mem_free(conv[id]);
conv_data[id] = nullptr;
conv[id] = nullptr;
conv_slots[id] = 0;
}
+
+ conv_indexes[id] = 0;
}
int conv_append(Common::WriteStream *handle) {
Commit: 6ef0ceed5512e9bb5f9b3037e90e69e0d4861f77
https://github.com/scummvm/scummvm/commit/6ef0ceed5512e9bb5f9b3037e90e69e0d4861f77
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-02T17:11:22+10:00
Commit Message:
MADS: DRAGONSPHERE: Room 614 conv fixes
Changed paths:
engines/mads/madsv2/dragonsphere/rooms/room614.cpp
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room614.cpp b/engines/mads/madsv2/dragonsphere/rooms/room614.cpp
index 7c3ff5dfd87..9832f762e39 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room614.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room614.cpp
@@ -1117,11 +1117,6 @@ static void process_conv_32() {
local->wiz_ice_action = KILL_PID;
break;
- case conv032_pid_death_b_b:
- conv_abort();
- local->wiz_float_action = KILL_PID;
- break;
-
case 7:
*conv_my_next_start = 8;
conv_abort();
@@ -1136,13 +1131,25 @@ static void process_conv_32() {
local->wiz_float_action = WAITING_FOR_STONE;
break;
- case 17:
- *conv_my_next_start = 18;
+ case conv032_pain_b_b:
+ *conv_my_next_start = conv032_pain;
conv_abort();
local->activate_timer = true;
player.commands_allowed = true;
break;
+ case 17:
+ *conv_my_next_start = 18;
+ conv_abort();
+ local->wiz_ice_action = WAITING_FOR_STONE;
+ local->wiz_float_action = WAITING_FOR_STONE;
+ break;
+
+ case conv032_pid_death_b_b:
+ conv_abort();
+ local->wiz_float_action = KILL_PID;
+ break;
+
case 22:
*conv_my_next_start = 23;
conv_abort();
@@ -1150,11 +1157,19 @@ static void process_conv_32() {
local->wiz_float_action = WAITING_FOR_STONE;
break;
- case conv032_pain_b_b:
- *conv_my_next_start = conv032_pain;
+ case 25:
+ *conv_my_next_start = 26;
conv_abort();
+ local->death_timer = 0;
+ local->clock = 0;
+ local->doofus = true;
local->activate_timer = true;
- player.commands_allowed = true;
+ player.commands_allowed = false;
+ local->wiz_ice_action = BACK_TO_CAMERA;
+ local->wiz_float_action = BACK_TO_CAMERA;
+ break;
+
+ default:
break;
}
Commit: b3112015d3a7a7282b32104610c56d4205a6fb90
https://github.com/scummvm/scummvm/commit/b3112015d3a7a7282b32104610c56d4205a6fb90
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-02T17:11:22+10:00
Commit Message:
MADS: DRAGONSPHERE: Properly reset room 614 wizard death timer
Changed paths:
engines/mads/madsv2/dragonsphere/rooms/room614.cpp
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room614.cpp b/engines/mads/madsv2/dragonsphere/rooms/room614.cpp
index 9832f762e39..d0cabe2fed7 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room614.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room614.cpp
@@ -1135,6 +1135,7 @@ static void process_conv_32() {
*conv_my_next_start = conv032_pain;
conv_abort();
local->activate_timer = true;
+ local->death_timer = 0;
player.commands_allowed = true;
break;
@@ -1160,10 +1161,10 @@ static void process_conv_32() {
case 25:
*conv_my_next_start = 26;
conv_abort();
- local->death_timer = 0;
local->clock = 0;
local->doofus = true;
local->activate_timer = true;
+ local->death_timer = 0;
player.commands_allowed = false;
local->wiz_ice_action = BACK_TO_CAMERA;
local->wiz_float_action = BACK_TO_CAMERA;
Commit: 6290b52667e3450312277be40f845544babc3bdf
https://github.com/scummvm/scummvm/commit/6290b52667e3450312277be40f845544babc3bdf
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-02T17:11:23+10:00
Commit Message:
MADS: DRAGONSPHERE: Correctly show item that Polystone is mimicing
Changed paths:
engines/mads/madsv2/core/inter.cpp
diff --git a/engines/mads/madsv2/core/inter.cpp b/engines/mads/madsv2/core/inter.cpp
index d67ce4ecc7d..16a0b0bbdd5 100644
--- a/engines/mads/madsv2/core/inter.cpp
+++ b/engines/mads/madsv2/core/inter.cpp
@@ -42,10 +42,13 @@
#include "mads/madsv2/core/video.h"
#include "mads/madsv2/core/matte.h"
#include "mads/madsv2/core/game.h"
+#include "mads/madsv2/core/global.h"
#include "mads/madsv2/core/imath.h"
#include "mads/madsv2/core/env.h"
#include "mads/madsv2/core/error.h"
#include "mads/madsv2/forest/extra.h"
+#include "mads/madsv2/dragonsphere/mads/inventory.h"
+#include "mads/madsv2/dragonsphere/global.h"
#include "mads/madsv2/engine.h"
namespace MADS {
@@ -1939,7 +1942,13 @@ void inter_spin_object(int object_id) {
if (inter_object_routine == NULL) {
Common::strcpy_s(temp_buf, "*OB");
- env_catint(temp_buf, object_id, 3);
+ // Special handling for the Polystone in Dragonsphere, which can mimic other items
+ int objectId = object_id;
+ if (g_engine->getGameID() == GType_Dragonsphere && object_id == Dragonsphere::polystone &&
+ global[Dragonsphere::object_imitated] != -1)
+ objectId = global[Dragonsphere::object_imitated];
+
+ env_catint(temp_buf, objectId, 3);
Common::strcat_s(temp_buf, "I");
More information about the Scummvm-git-logs
mailing list