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

dreammaster noreply at scummvm.org
Fri May 6 06:39:59 UTC 2022


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

Summary:
02bc813aa2 AGS: Simplified config setting in process_cmdline a little
d2547418c0 AGS: Added show_fps to config
0e1350a8d0 AGS: Make sure custom overlays connect with script ref properly
429d1dcbb4 AGS: Removed hasSerializedBitmap Overlay's member, + added comments
c28d948fbe AGS: Hopeful compilation fix


Commit: 02bc813aa246e4031edc3da0fe3f0c145c4c1aba
    https://github.com/scummvm/scummvm/commit/02bc813aa246e4031edc3da0fe3f0c145c4c1aba
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2022-05-05T22:53:13-07:00

Commit Message:
AGS: Simplified config setting in process_cmdline a little

>From upstream 54f2b45744e13f95e45afcd5b9c0e6336747ec0c

Changed paths:
    engines/ags/engine/main/main.cpp


diff --git a/engines/ags/engine/main/main.cpp b/engines/ags/engine/main/main.cpp
index cc71dc641cd..4b84eb4ad03 100644
--- a/engines/ags/engine/main/main.cpp
+++ b/engines/ags/engine/main/main.cpp
@@ -229,7 +229,7 @@ int main_process_cmdline(ConfigTree &cfg, int argc, const char *argv[]) {
 			_GP(play).takeover_from[49] = 0;
 			ee += 2;
 		} else if (ags_stricmp(arg, "--clear-cache-on-room-change") == 0) {
-			CfgWriteString(cfg, "misc", "clear_cache_on_room_change", "1");
+			cfg["misc"]["clear_cache_on_room_change"] = "1";
 		} else if (ags_strnicmp(arg, "--tell", 6) == 0) {
 			if (arg[6] == 0)
 				_G(tellInfoKeys).insert(String("all"));
@@ -248,19 +248,19 @@ int main_process_cmdline(ConfigTree &cfg, int argc, const char *argv[]) {
 		else if (ags_stricmp(arg, "--fullscreen") == 0)
 			cfg["graphics"]["windowed"] = "0";
 		else if ((ags_stricmp(arg, "--gfxdriver") == 0) && (argc > ee + 1)) {
-			CfgWriteString(cfg, "graphics", "driver", argv[++ee]);
+			cfg["graphics"]["driver"] = argv[++ee];
 		} else if ((ags_stricmp(arg, "--gfxfilter") == 0) && (argc > ee + 1)) {
 			// NOTE: we make an assumption here that if user provides scaling factor,
 			// this factor means to be applied to windowed mode only.
-			CfgWriteString(cfg, "graphics", "filter", argv[++ee]);
+			cfg["graphics"]["filter"] = argv[++ee];
 			if (argc > ee + 1 && argv[ee + 1][0] != '-')
-				CfgWriteString(cfg, "graphics", "game_scale_win", argv[++ee]);
+				cfg["graphics"]["game_scale_win"] = argv[++ee];
 			else
-				CfgWriteString(cfg, "graphics", "game_scale_win", "max_round");
+				cfg["graphics"]["game_scale_win"] = "max_round";
 		} else if ((ags_stricmp(arg, "--translation") == 0) && (argc > ee + 1)) {
-			CfgWriteString(cfg, "language", "translation", argv[++ee]);
+			cfg["language"]["translation"] = argv[++ee];
 		} else if (ags_stricmp(arg, "--no-translation") == 0) {
-			CfgWriteString(cfg, "language", "translation", "");
+			cfg["language"]["translation"] = "";
 		} else if (ags_stricmp(arg, "--fps") == 0) _G(display_fps) = kFPS_Forced;
 		else if (ags_stricmp(arg, "--test") == 0) _G(debug_flags) |= DBG_DEBUGMODE;
 		else if (ags_stricmp(arg, "--noiface") == 0) _G(debug_flags) |= DBG_NOIFACE;
@@ -272,7 +272,7 @@ int main_process_cmdline(ConfigTree &cfg, int argc, const char *argv[]) {
 		else if (ags_stricmp(arg, "--noscript") == 0) _G(debug_flags) |= DBG_NOSCRIPT;
 		else if (ags_stricmp(arg, "--novideo") == 0) _G(debug_flags) |= DBG_NOVIDEO;
 		else if (ags_stricmp(arg, "--rotation") == 0 && (argc > ee + 1)) {
-			CfgWriteString(cfg, "graphics", "rotation", argv[++ee]);
+			cfg["graphics"]["rotation"] = argv[++ee];
 		} else if (ags_strnicmp(arg, "--log-", 6) == 0 && arg[6] != 0) {
 			String logarg = arg + 6;
 			size_t split_at = logarg.FindChar('=');


Commit: d2547418c0fbafa963b8656c7d26ddf57da8d12d
    https://github.com/scummvm/scummvm/commit/d2547418c0fbafa963b8656c7d26ddf57da8d12d
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2022-05-05T22:59:51-07:00

Commit Message:
AGS: Added show_fps to config

>From upstream 2d6e0fca6bd310822e4f82ed95eb2bb5c116ac65

Changed paths:
    engines/ags/engine/ac/game_setup.cpp
    engines/ags/engine/ac/game_setup.h
    engines/ags/engine/main/config.cpp
    engines/ags/engine/main/engine.cpp
    engines/ags/engine/main/main.cpp


diff --git a/engines/ags/engine/ac/game_setup.cpp b/engines/ags/engine/ac/game_setup.cpp
index b6526473bc9..5c1d7abaf3a 100644
--- a/engines/ags/engine/ac/game_setup.cpp
+++ b/engines/ags/engine/ac/game_setup.cpp
@@ -43,6 +43,7 @@ GameSetup::GameSetup() {
 	clear_cache_on_room_change = false;
 	load_latest_save = false;
 	rotation = kScreenRotation_Unlocked;
+	show_fps = false;
 
 	Screen.Params.RefreshRate = 0;
 	Screen.Params.VSync = false;
diff --git a/engines/ags/engine/ac/game_setup.h b/engines/ags/engine/ac/game_setup.h
index 718e0a13ab7..d1d703656e7 100644
--- a/engines/ags/engine/ac/game_setup.h
+++ b/engines/ags/engine/ac/game_setup.h
@@ -95,6 +95,7 @@ struct GameSetup {
 	bool  clear_cache_on_room_change; // for low-end devices: clear resource caches on room change
 	bool  load_latest_save; // load latest saved game on launch
 	ScreenRotation rotation;
+	bool  show_fps;
 
 	DisplayModeSetup Screen;
 	String software_render_driver;
diff --git a/engines/ags/engine/main/config.cpp b/engines/ags/engine/main/config.cpp
index 2e8aa8e6bb0..c6f070aad00 100644
--- a/engines/ags/engine/main/config.cpp
+++ b/engines/ags/engine/main/config.cpp
@@ -316,6 +316,7 @@ void apply_config(const ConfigTree &cfg) {
 		_GP(usetup).load_latest_save = CfgReadBoolInt(cfg, "misc", "load_latest_save", _GP(usetup).load_latest_save);
 		_GP(usetup).user_data_dir = CfgReadString(cfg, "misc", "user_data_dir");
 		_GP(usetup).shared_data_dir = CfgReadString(cfg, "misc", "shared_data_dir");
+		_GP(usetup).show_fps = CfgReadBoolInt(cfg, "misc", "show_fps");
 
 		_GP(usetup).translation = CfgReadString(cfg, "language", "translation");
 
diff --git a/engines/ags/engine/main/engine.cpp b/engines/ags/engine/main/engine.cpp
index eebaeef632f..c7aeee52c71 100644
--- a/engines/ags/engine/main/engine.cpp
+++ b/engines/ags/engine/main/engine.cpp
@@ -345,6 +345,8 @@ void engine_init_audio() {
 }
 
 void engine_init_debug() {
+	if (_GP(usetup).show_fps)
+		_G(display_fps) = kFPS_Forced;
 	if ((_G(debug_flags) & (~DBG_DEBUGMODE)) > 0) {
 		_G(platform)->DisplayAlert("Engine debugging enabled.\n"
 		                           "\nNOTE: You have selected to enable one or more engine debugging options.\n"
diff --git a/engines/ags/engine/main/main.cpp b/engines/ags/engine/main/main.cpp
index 4b84eb4ad03..3699a8fe7cc 100644
--- a/engines/ags/engine/main/main.cpp
+++ b/engines/ags/engine/main/main.cpp
@@ -261,7 +261,8 @@ int main_process_cmdline(ConfigTree &cfg, int argc, const char *argv[]) {
 			cfg["language"]["translation"] = argv[++ee];
 		} else if (ags_stricmp(arg, "--no-translation") == 0) {
 			cfg["language"]["translation"] = "";
-		} else if (ags_stricmp(arg, "--fps") == 0) _G(display_fps) = kFPS_Forced;
+		} else if (ags_stricmp(arg, "--fps") == 0)
+			cfg["misc"]["show_fps"] = "1";
 		else if (ags_stricmp(arg, "--test") == 0) _G(debug_flags) |= DBG_DEBUGMODE;
 		else if (ags_stricmp(arg, "--noiface") == 0) _G(debug_flags) |= DBG_NOIFACE;
 		else if (ags_stricmp(arg, "--nosprdisp") == 0) _G(debug_flags) |= DBG_NODRAWSPRITES;


Commit: 0e1350a8d02de49af6b9d8b7c08ae51e97819ad0
    https://github.com/scummvm/scummvm/commit/0e1350a8d02de49af6b9d8b7c08ae51e97819ad0
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2022-05-05T23:06:49-07:00

Commit Message:
AGS: Make sure custom overlays connect with script ref properly

>From upstream c5a99b1f07b51dfc28bb72dd235ce731e6b94dce

Changed paths:
    engines/ags/engine/ac/character.cpp
    engines/ags/engine/ac/game_state.h
    engines/ags/engine/ac/overlay.cpp
    engines/ags/engine/ac/overlay.h


diff --git a/engines/ags/engine/ac/character.cpp b/engines/ags/engine/ac/character.cpp
index 467fe4baba2..259d85b1a3f 100644
--- a/engines/ags/engine/ac/character.cpp
+++ b/engines/ags/engine/ac/character.cpp
@@ -707,7 +707,7 @@ ScriptOverlay *Character_SayBackground(CharacterInfo *chaa, const char *texx) {
 		quit("!SayBackground internal error: no overlay");
 
 	// Create script object with an internal ref, keep at least until internal timeout
-	return create_scriptobj_for_overlay(_GP(screenover)[ovri], true);
+	return create_scriptoverlay(_GP(screenover)[ovri], true);
 }
 
 void Character_SetAsPlayer(CharacterInfo *chaa) {
diff --git a/engines/ags/engine/ac/game_state.h b/engines/ags/engine/ac/game_state.h
index f087b92707e..cddf8991b65 100644
--- a/engines/ags/engine/ac/game_state.h
+++ b/engines/ags/engine/ac/game_state.h
@@ -254,6 +254,8 @@ struct GameState {
 	int  complete_overlay_on = 0;
 	// Is there a blocking text overlay on screen (contains overlay ID)
 	int  text_overlay_on = 0;
+	// Script overlay objects, because we must return same pointers
+	// whenever user script queries for them.
 	// Blocking speech overlay managed object, for accessing in scripts
 	ScriptOverlay *speech_text_scover = nullptr;
 	// Speech portrait overlay managed object
diff --git a/engines/ags/engine/ac/overlay.cpp b/engines/ags/engine/ac/overlay.cpp
index ad6a82d51b9..97b35d0c3a2 100644
--- a/engines/ags/engine/ac/overlay.cpp
+++ b/engines/ags/engine/ac/overlay.cpp
@@ -186,20 +186,14 @@ ScreenOverlay *Overlay_CreateTextCore(int x, int y, int width, int font, int tex
 
 ScriptOverlay *Overlay_CreateGraphical(int x, int y, int slot, int transparent) {
 	auto *over = Overlay_CreateGraphicCore(x, y, slot, transparent != 0);
-	ScriptOverlay *sco = new ScriptOverlay();
-	sco->overlayId = over->type;
-	ccRegisterManagedObject(sco, sco);
-	return sco;
+	return over ? create_scriptoverlay(*over) : nullptr;
 }
 
 ScriptOverlay *Overlay_CreateTextual(int x, int y, int width, int font, int colour, const char *text) {
 	data_to_game_coords(&x, &y);
 	width = data_to_game_coord(width);
 	auto *over = Overlay_CreateTextCore(x, y, width, font, colour, text, DISPLAYTEXT_NORMALOVERLAY, 0);
-	ScriptOverlay *sco = new ScriptOverlay();
-	sco->overlayId = over->type;
-	ccRegisterManagedObject(sco, sco);
-	return sco;
+	return over ? create_scriptoverlay(*over) : nullptr;
 }
 
 int Overlay_GetTransparency(ScriptOverlay *scover) {
@@ -240,7 +234,7 @@ void Overlay_SetZOrder(ScriptOverlay *scover, int zorder) {
 
 // Creates and registers a managed script object for existing overlay object
 // optionally adds an internal engine reference to prevent object's disposal
-ScriptOverlay *create_scriptobj_for_overlay(ScreenOverlay &over, bool internal_ref) {
+ScriptOverlay *create_scriptoverlay(ScreenOverlay &over, bool internal_ref) {
 	ScriptOverlay *scover = new ScriptOverlay();
 	scover->overlayId = over.type;
 	int handl = ccRegisterManagedObject(scover, scover);
@@ -252,21 +246,30 @@ ScriptOverlay *create_scriptobj_for_overlay(ScreenOverlay &over, bool internal_r
 
 // Invalidates existing script object to let user know that previous overlay is gone,
 // and releases engine's internal reference (script object may exist while there are user refs)
-static void invalidate_and_subref(ScreenOverlay &over, ScriptOverlay *&scover) {
-	scover->overlayId = -1;
-	scover = nullptr;
-	ccReleaseObjectReference(over.associatedOverlayHandle);
+static void invalidate_and_subref(ScreenOverlay &over, ScriptOverlay **scover) {
+	if (scover && (*scover)) {
+		(*scover)->overlayId = -1;
+		*scover = nullptr;
+	}
+	if (over.associatedOverlayHandle > 0) {
+		ccReleaseObjectReference(over.associatedOverlayHandle);
+		over.associatedOverlayHandle = 0;
+	}
 }
 
-// Frees overlay resources and disposes script object if there are no more refs
+// Frees overlay resources and tell to dispose script object if there are no refs left
 static void dispose_overlay(ScreenOverlay &over) {
 	delete over.pic;
 	over.pic = nullptr;
 	if (over.ddb != nullptr)
 		_G(gfxDriver)->DestroyDDB(over.ddb);
 	over.ddb = nullptr;
-	if (over.associatedOverlayHandle) // dispose script object if there are no more refs
+	// invalidate script object and dispose it if there are no more refs
+	if (over.associatedOverlayHandle > 0) {
+		ScriptOverlay *scover = (ScriptOverlay *)ccGetObjectAddressFromHandle(over.associatedOverlayHandle);
+		if (scover) scover->overlayId = -1;
 		ccAttemptDisposeObject(over.associatedOverlayHandle);
+	}
 }
 
 void remove_screen_overlay_index(size_t over_idx) {
@@ -274,18 +277,15 @@ void remove_screen_overlay_index(size_t over_idx) {
 	// TODO: move these custom settings outside of this function
 	if (over.type == _GP(play).complete_overlay_on) {
 		_GP(play).complete_overlay_on = 0;
-	} else if (over.type == _GP(play).text_overlay_on) {
-		if (_GP(play).speech_text_scover)
-			invalidate_and_subref(over, _GP(play).speech_text_scover);
+	} else if (over.type == _GP(play).text_overlay_on) { // release internal ref for speech text
+		invalidate_and_subref(over, &_GP(play).speech_text_scover);
 		_GP(play).text_overlay_on = 0;
-	} else if (over.type == OVER_PICTURE) {
-		if (_GP(play).speech_face_scover)
-			invalidate_and_subref(over, _GP(play).speech_face_scover);
+	} else if (over.type == OVER_PICTURE) { // release internal ref for speech face
+		invalidate_and_subref(over, &_GP(play).speech_face_scover);
 		_G(face_talking) = -1;
 	} else if (over.bgSpeechForChar > 0) { // release internal ref for bg speech
-		ccReleaseObjectReference(over.associatedOverlayHandle);
+		invalidate_and_subref(over, nullptr);
 	}
-
 	dispose_overlay(over);
 	_GP(screenover).erase(_GP(screenover).begin() + over_idx);
 	// if an overlay before the sierra-style speech one is removed, update the index
@@ -349,9 +349,9 @@ size_t add_screen_overlay(int x, int y, int type, Shared::Bitmap *piccy, int pic
 		// only make script object for blocking speech now, because messagebox blocks all script
 		// and therefore cannot be accessed, so no practical reason for that atm
 		if (type == OVER_TEXTSPEECH)
-			_GP(play).speech_text_scover = create_scriptobj_for_overlay(over, true);
+			_GP(play).speech_text_scover = create_scriptoverlay(over, true);
 	} else if (type == OVER_PICTURE) {
-		_GP(play).speech_face_scover = create_scriptobj_for_overlay(over, true);
+		_GP(play).speech_face_scover = create_scriptoverlay(over, true);
 	}
 
 	over.MarkChanged();
diff --git a/engines/ags/engine/ac/overlay.h b/engines/ags/engine/ac/overlay.h
index 9d653ceed68..c3d048ed24b 100644
--- a/engines/ags/engine/ac/overlay.h
+++ b/engines/ags/engine/ac/overlay.h
@@ -58,7 +58,7 @@ size_t  add_screen_overlay(int x, int y, int type, Shared::Bitmap *piccy, int pi
 void remove_screen_overlay_index(size_t over_idx);
 // Creates and registers a managed script object for existing overlay object;
 // optionally adds an internal engine reference to prevent object's disposal
-ScriptOverlay *create_scriptobj_for_overlay(ScreenOverlay &over, bool internal_ref = false);
+ScriptOverlay *create_scriptoverlay(ScreenOverlay &over, bool internal_ref = false);
 void recreate_overlay_ddbs();
 
 } // namespace AGS3


Commit: 429d1dcbb40618085ea754004dfdcc479701025d
    https://github.com/scummvm/scummvm/commit/429d1dcbb40618085ea754004dfdcc479701025d
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2022-05-05T23:17:19-07:00

Commit Message:
AGS: Removed hasSerializedBitmap Overlay's member, + added comments

>From upstream 67a4c1da9ebcd5626f2fe42a3a9ed42d90994735

Changed paths:
    engines/ags/engine/ac/screen_overlay.cpp
    engines/ags/engine/ac/screen_overlay.h
    engines/ags/engine/game/savegame_components.cpp
    engines/ags/engine/game/savegame_v321.cpp


diff --git a/engines/ags/engine/ac/screen_overlay.cpp b/engines/ags/engine/ac/screen_overlay.cpp
index 275b8eb60c2..857e09599ea 100644
--- a/engines/ags/engine/ac/screen_overlay.cpp
+++ b/engines/ags/engine/ac/screen_overlay.cpp
@@ -26,12 +26,11 @@ namespace AGS3 {
 
 using AGS::Shared::Stream;
 
-void ScreenOverlay::ReadFromFile(Stream *in, int32_t cmp_ver) {
+void ScreenOverlay::ReadFromFile(Stream *in, bool &has_bitmap, int32_t cmp_ver) {
 	pic = nullptr;
 	ddb = nullptr;
-	// Skipping pointers (were saved by old engine)
-	in->ReadInt32(); // ddb
-	hasSerializedBitmap = in->ReadInt32() != 0; // pic
+	in->ReadInt32(); // ddb 32-bit pointer value (nasty legacy format)
+	has_bitmap = in->ReadInt32() != 0;
 	type = in->ReadInt32();
 	x = in->ReadInt32();
 	y = in->ReadInt32();
@@ -53,9 +52,8 @@ void ScreenOverlay::ReadFromFile(Stream *in, int32_t cmp_ver) {
 }
 
 void ScreenOverlay::WriteToFile(Stream *out) const {
-	// Writing bitmap "pointers" to correspond to full structure writing
-	out->WriteInt32(0); // ddb
-	out->WriteInt32(pic ? 1 : 0); // pic
+	out->WriteInt32(0); // ddb 32-bit pointer value (nasty legacy format)
+	out->WriteInt32(pic ? 1 : 0); // has bitmap
 	out->WriteInt32(type);
 	out->WriteInt32(x);
 	out->WriteInt32(y);
diff --git a/engines/ags/engine/ac/screen_overlay.h b/engines/ags/engine/ac/screen_overlay.h
index 52e031832bd..fcd08fd4501 100644
--- a/engines/ags/engine/ac/screen_overlay.h
+++ b/engines/ags/engine/ac/screen_overlay.h
@@ -19,6 +19,8 @@
  *
  */
 
+ // ScreenOverlay is a simple sprite container with no advanced functions.
+
 #ifndef AGS_ENGINE_AC_SCREEN_OVERLAY_H
 #define AGS_ENGINE_AC_SCREEN_OVERLAY_H
 
@@ -68,7 +70,6 @@ struct ScreenOverlay {
 	int associatedOverlayHandle = 0; // script obj handle
 	int zorder = INT_MIN;
 	bool positionRelativeToScreen = false;
-	bool hasSerializedBitmap = false;
 	int transparency = 0;
 
 	// Tells if Overlay has graphically changed recently
@@ -84,7 +85,7 @@ struct ScreenOverlay {
 		_hasChanged = false;
 	}
 
-	void ReadFromFile(Shared::Stream *in, int32_t cmp_ver);
+	void ReadFromFile(Shared::Stream *in, bool &has_bitmap, int32_t cmp_ver);
 	void WriteToFile(Shared::Stream *out) const;
 
 private:
diff --git a/engines/ags/engine/game/savegame_components.cpp b/engines/ags/engine/game/savegame_components.cpp
index 366dc3d9d50..e16c1e35fe6 100644
--- a/engines/ags/engine/game/savegame_components.cpp
+++ b/engines/ags/engine/game/savegame_components.cpp
@@ -771,8 +771,9 @@ HSaveError ReadOverlays(Stream *in, int32_t cmp_ver, const PreservedParams & /*p
 	size_t over_count = in->ReadInt32();
 	for (size_t i = 0; i < over_count; ++i) {
 		ScreenOverlay over;
-		over.ReadFromFile(in, cmp_ver);
-		if (over.hasSerializedBitmap)
+		bool has_bitmap;
+		over.ReadFromFile(in, has_bitmap, cmp_ver);
+		if (has_bitmap)
 			over.pic = read_serialized_bitmap(in);
 		if (over.scaleWidth <= 0 || over.scaleHeight <= 0) {
 			over.scaleWidth = over.pic->GetWidth();
diff --git a/engines/ags/engine/game/savegame_v321.cpp b/engines/ags/engine/game/savegame_v321.cpp
index 27a4e9bdc93..6c50d338d98 100644
--- a/engines/ags/engine/game/savegame_v321.cpp
+++ b/engines/ags/engine/game/savegame_v321.cpp
@@ -28,6 +28,7 @@
 //
 //=============================================================================
 
+#include "ags/lib/std/vector.h"
 #include "ags/shared/core/types.h"
 #include "ags/engine/ac/character_extras.h"
 #include "ags/shared/ac/common.h"
@@ -268,10 +269,13 @@ static void restore_game_ambientsounds(Stream *in, RestoredData &r_data) {
 	}
 }
 
-static void ReadOverlays_Aligned(Stream *in, size_t num_overs) {
+static void ReadOverlays_Aligned(Stream *in, std::vector<bool> &has_bitmap, size_t num_overs) {
 	AlignedStream align_s(in, Shared::kAligned_Read);
+	has_bitmap.resize(num_overs);
 	for (size_t i = 0; i < num_overs; ++i) {
-		_GP(screenover)[i].ReadFromFile(&align_s, 0);
+		bool has_bm;
+		_GP(screenover)[i].ReadFromFile(&align_s, has_bm, 0);
+		has_bitmap[i] = has_bm;
 		align_s.Reset();
 	}
 }
@@ -279,9 +283,10 @@ static void ReadOverlays_Aligned(Stream *in, size_t num_overs) {
 static void restore_game_overlays(Stream *in) {
 	size_t num_overs = in->ReadInt32();
 	_GP(screenover).resize(num_overs);
-	ReadOverlays_Aligned(in, num_overs);
+	std::vector<bool> has_bitmap;
+	ReadOverlays_Aligned(in, has_bitmap, num_overs);
 	for (size_t i = 0; i < num_overs; ++i) {
-		if (_GP(screenover)[i].hasSerializedBitmap)
+		if (has_bitmap[i])
 			_GP(screenover)[i].pic = read_serialized_bitmap(in);
 	}
 }


Commit: c28d948fbe3ad2fcc3835bacbb11f87754268f26
    https://github.com/scummvm/scummvm/commit/c28d948fbe3ad2fcc3835bacbb11f87754268f26
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2022-05-05T23:39:24-07:00

Commit Message:
AGS: Hopeful compilation fix

Changed paths:
    engines/ags/lib/std/queue.h


diff --git a/engines/ags/lib/std/queue.h b/engines/ags/lib/std/queue.h
index 1617c2a5b01..8369c715b72 100644
--- a/engines/ags/lib/std/queue.h
+++ b/engines/ags/lib/std/queue.h
@@ -70,9 +70,9 @@ private:
 public:
 	deque() = default;
 	typedef typename vector<T>::iterator iterator;
-	typedef typename const vector<T>::const_iterator const_iterator;
+	typedef const typename vector<T>::const_iterator const_iterator;
 	typedef typename vector<T>::reverse_iterator reverse_iterator;
-	typedef typename const vector<T>::const_reverse_iterator const_reverse_iterator;
+	typedef const typename vector<T>::const_reverse_iterator const_reverse_iterator;
 
 	void clear() {
 		_intern.clear();




More information about the Scummvm-git-logs mailing list