[Scummvm-git-logs] scummvm master -> 92f57b06a630c357d005552bf2fdbd99257735d4
dreammaster
noreply at scummvm.org
Thu Apr 23 08:16:14 UTC 2026
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
8e223a5c10 MADS: PHANTOM: Fix displaying selected item specific actions
92f57b06a6 MADS: PHANTOM: Fix walker crashes in Opera cutscene
Commit: 8e223a5c103a3e6e0446e3344276b326684306b1
https://github.com/scummvm/scummvm/commit/8e223a5c103a3e6e0446e3344276b326684306b1
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-04-23T17:11:42+10:00
Commit Message:
MADS: PHANTOM: Fix displaying selected item specific actions
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 5476fe435cd..a8ec0f74344 100644
--- a/engines/mads/madsv2/core/inter.cpp
+++ b/engines/mads/madsv2/core/inter.cpp
@@ -53,8 +53,6 @@ namespace MADSV2 {
#define disable_error_check
-int extra_display_object;
-
int stroke_type = STROKE_NONE; /* Current stroke type */
int inter_auxiliary_click; /* Clicks during downtime */
@@ -471,11 +469,12 @@ static void inter_show_all_inven(void) {
*/
static void inter_show_all_actions(void) {
int count;
- int id;
if (active_inven >= 0) {
for (count = 0; count < (int)object[inven[active_inven]].num_verbs; count++) {
- id = object[inven[active_inven]].vocab_id;
+ inter_show_word(STROKE_ACTION, count);
+#if 0
+ int id = object[inven[active_inven]].vocab_id;
id = object_named(id);
// id = object[inven[active_inven]].verb[count].count;
if (id == 8) { // pid doll
@@ -488,6 +487,7 @@ static void inter_show_all_actions(void) {
} else {
inter_show_word(STROKE_ACTION, count);
}
+#endif
}
}
}
@@ -732,40 +732,32 @@ void inter_set_active_inven(int new_active) {
xs = action_delta_x;
ys = (inter_delta_y * max_verbs);
-
-
- if (extra_display_object) {
- if (image_inter_marker < IMAGE_INTER_LIST_SIZE) {
- image_inter_list[image_inter_marker].flags = IMAGE_OVERPRINT;
- image_inter_list[image_inter_marker].x = x1;
- image_inter_list[image_inter_marker].y = (byte)y1;
- image_inter_list[image_inter_marker].sprite_id = (byte)xs;
- image_inter_list[image_inter_marker].series_id = (byte)ys;
- image_inter_marker++;
- }
+ if (image_inter_marker < IMAGE_INTER_LIST_SIZE) {
+ image_inter_list[image_inter_marker].flags = IMAGE_OVERPRINT;
+ image_inter_list[image_inter_marker].x = x1;
+ image_inter_list[image_inter_marker].y = (byte)y1;
+ image_inter_list[image_inter_marker].sprite_id = (byte)xs;
+ image_inter_list[image_inter_marker].series_id = (byte)ys;
+ image_inter_marker++;
+ }
#ifndef disable_error_check
- else {
- error_report(ERROR_IMAGE_INTER_LIST_FULL, WARNING, MODULE_INTER, IMAGE_INTER_LIST_SIZE, 2);
- }
+ else {
+ error_report(ERROR_IMAGE_INTER_LIST_FULL, WARNING, MODULE_INTER, IMAGE_INTER_LIST_SIZE, 2);
+ }
#endif
- matte_inter_frame(false, false);
+ matte_inter_frame(false, false);
- inter_show_all_actions();
- inter_update(x1, y1, xs, ys);
- }
+ inter_show_all_actions();
+ inter_update(x1, y1, xs, ys);
}
}
}
-
-
if (new_active != -1) {
- if (extra_display_object) {
- inter_spin_object(inven[new_active]);
- mcga_setpal_range(&master_palette, 7, 1);
- mcga_setpal_range(&master_palette, 246, 2);
- }
+ inter_spin_object(inven[new_active]);
+ mcga_setpal_range(&master_palette, 7, 1);
+ mcga_setpal_range(&master_palette, 246, 2);
} else {
inter_turn_off_object();
}
@@ -882,8 +874,6 @@ void inter_move_object(int object_id, int location) {
// extra_blank_knothole();
done:
;
-
- extra_display_object = false;
}
/**
Commit: 92f57b06a630c357d005552bf2fdbd99257735d4
https://github.com/scummvm/scummvm/commit/92f57b06a630c357d005552bf2fdbd99257735d4
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-04-23T18:16:03+10:00
Commit Message:
MADS: PHANTOM: Fix walker crashes in Opera cutscene
Changed paths:
engines/mads/madsv2/core/game.cpp
engines/mads/madsv2/core/player.cpp
diff --git a/engines/mads/madsv2/core/game.cpp b/engines/mads/madsv2/core/game.cpp
index 58476891a65..a45aa8670b0 100644
--- a/engines/mads/madsv2/core/game.cpp
+++ b/engines/mads/madsv2/core/game.cpp
@@ -1549,7 +1549,7 @@ void game_control() {
buffer_rect_fill(scr_main, 0, viewing_at_y + scr_work.y, video_x, video_y, 0);
}
- // pl conv_restore_running = -1;
+ conv_restore_running = -1;
player.target_x = player.x;
player.target_y = player.y;
player.target_facing = player.turn_to_facing = player.facing;
diff --git a/engines/mads/madsv2/core/player.cpp b/engines/mads/madsv2/core/player.cpp
index d35bc951763..0d73aa87092 100644
--- a/engines/mads/madsv2/core/player.cpp
+++ b/engines/mads/madsv2/core/player.cpp
@@ -179,6 +179,10 @@ void player_new_stop_walker() {
id = player.series_base + player.series;
walker = series_list[id]->walker;
+ // WORKAROUND: For ROTP opera scene
+ if (!walker)
+ return;
+
if (!walker->num_secondary) {
player.sprite = 1;
goto done;
@@ -219,6 +223,11 @@ void player_select_series() {
player.series = player_facing_to_series[player.facing];
if (!player.available[player.series]) {
+ // WORKAROUND: During the ROTP opera cutscene, player.series can be 0.
+ // So we have guard against series becoming negative
+ if (player.series == 0 && player.series_base == 0)
+ return;
+
player.series -= 4;
player.mirror = MIRROR_MASK;
}
@@ -324,6 +333,10 @@ void player_stationary_update() {
id = player.series_base + player.series;
walker = series_list[id]->walker;
+ // WORKAROUND: For ROTP Opera scene
+ if (!walker)
+ return;
+
if (walker->num_secondary > 0) {
abs_stop = ABS(player.stop_walker_sequence);
sgn_stop = sgn(player.stop_walker_sequence);
More information about the Scummvm-git-logs
mailing list