[Scummvm-git-logs] scummvm master -> 4d2d8b45d4d3b751cad5099fd820dda2e7ba6e65
criezy
noreply at scummvm.org
Sat Jun 18 17:32:54 UTC 2022
This automated email contains information about 6 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
ed8526f30a AGS: Updated Script API version for recent changes in wait skip values
84910e9a10 AGS: Updated build version (3.6.0.26)
fa3c524d13 AGS: GetWaitSkipResult: clear SKIP_AUTOTIMER flag (return 0)
15563b5a7c AGS: Changed SpriteCache::FreeMem to comply with sound cache
a477deb74c AGS: Fixed rendering scaled up WFN fonts
4d2d8b45d4 AGS: Fixed trying to erase background speech overlays twice
Commit: ed8526f30a5d45d78b6da1e03f40121a2388bc9a
https://github.com/scummvm/scummvm/commit/ed8526f30a5d45d78b6da1e03f40121a2388bc9a
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2022-06-18T18:11:57+01:00
Commit Message:
AGS: Updated Script API version for recent changes in wait skip values
This is to allow to distinguish implementations in case there were games
using older variants (although it's not clear if any had yet).
>From upstream 11315b3487d22ce4830d60fad36ae7124aa45e55
Changed paths:
engines/ags/engine/ac/global_game.cpp
engines/ags/shared/ac/game_setup_struct_base.cpp
engines/ags/shared/ac/game_struct_defines.h
diff --git a/engines/ags/engine/ac/global_game.cpp b/engines/ags/engine/ac/global_game.cpp
index a36fcec7785..828954c4076 100644
--- a/engines/ags/engine/ac/global_game.cpp
+++ b/engines/ags/engine/ac/global_game.cpp
@@ -787,7 +787,7 @@ int WaitImpl(int skip_type, int nloops) {
// < 3.6.0 return 1 is skipped by user input, otherwise 0
return ((_GP(play).wait_skipped_by & (SKIP_KEYPRESS | SKIP_MOUSECLICK)) != 0) ? 1 : 0;
}
- // >= 3.6.0 return positive keycode, negative mouse button code, or 0 as time-out
+ // >= 3.6.0 return skip (input) type flags with keycode
return _GP(play).GetWaitSkipResult();
}
diff --git a/engines/ags/shared/ac/game_setup_struct_base.cpp b/engines/ags/shared/ac/game_setup_struct_base.cpp
index b9c1569723c..6cad84bd69a 100644
--- a/engines/ags/shared/ac/game_setup_struct_base.cpp
+++ b/engines/ags/shared/ac/game_setup_struct_base.cpp
@@ -264,7 +264,8 @@ const char *GetScriptAPIName(ScriptAPIVersion v) {
case kScriptAPI_v350: return "v3.5.0-alpha";
case kScriptAPI_v3507: return "v3.5.0-final";
case kScriptAPI_v351: return "v3.5.1";
- case kScriptAPI_v360: return "v3.6.0";
+ case kScriptAPI_v360: return "v3.6.0-alpha";
+ case kScriptAPI_v36026: return "v3.6.0-final";
default: return "unknown";
}
}
diff --git a/engines/ags/shared/ac/game_struct_defines.h b/engines/ags/shared/ac/game_struct_defines.h
index fdf37ddb78c..22f8fe4dc99 100644
--- a/engines/ags/shared/ac/game_struct_defines.h
+++ b/engines/ags/shared/ac/game_struct_defines.h
@@ -179,7 +179,8 @@ enum ScriptAPIVersion {
kScriptAPI_v3507 = 7,
kScriptAPI_v351 = 8,
kScriptAPI_v360 = 3060000,
- kScriptAPI_Current = kScriptAPI_v360
+ kScriptAPI_v36026 = 3060026,
+ kScriptAPI_Current = kScriptAPI_v36026
};
extern const char *GetScriptAPIName(ScriptAPIVersion v);
Commit: 84910e9a10419c145d6517f5d51b31a55b6959c3
https://github.com/scummvm/scummvm/commit/84910e9a10419c145d6517f5d51b31a55b6959c3
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2022-06-18T18:14:01+01:00
Commit Message:
AGS: Updated build version (3.6.0.26)
>From upstream 2632528dd5805e4b0585c414fecfb8bed6e4f584
Changed paths:
engines/ags/shared/core/def_version.h
diff --git a/engines/ags/shared/core/def_version.h b/engines/ags/shared/core/def_version.h
index bfdda2ca64c..904e9d293f5 100644
--- a/engines/ags/shared/core/def_version.h
+++ b/engines/ags/shared/core/def_version.h
@@ -22,9 +22,9 @@
#ifndef AGS_SHARED_CORE_DEFVERSION_H
#define AGS_SHARED_CORE_DEFVERSION_H
-#define ACI_VERSION_STR "3.6.0.25"
+#define ACI_VERSION_STR "3.6.0.26"
#if defined (RC_INVOKED) // for MSVC resource compiler
-#define ACI_VERSION_MSRC_DEF 3.6.0.25
+#define ACI_VERSION_MSRC_DEF 3.6.0.26
#endif
#define SPECIAL_VERSION ""
Commit: fa3c524d1320ea7da40351685f09f157497a36e3
https://github.com/scummvm/scummvm/commit/fa3c524d1320ea7da40351685f09f157497a36e3
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2022-06-18T18:15:51+01:00
Commit Message:
AGS: GetWaitSkipResult: clear SKIP_AUTOTIMER flag (return 0)
>From upstream f5159c707a0c8616b0cca39f138c2d7e53058bf5
Changed paths:
engines/ags/engine/ac/game_state.cpp
diff --git a/engines/ags/engine/ac/game_state.cpp b/engines/ags/engine/ac/game_state.cpp
index 812f8973ab8..783dad88f79 100644
--- a/engines/ags/engine/ac/game_state.cpp
+++ b/engines/ags/engine/ac/game_state.cpp
@@ -376,7 +376,9 @@ void GameState::SetWaitSkipResult(int how, int data) {
}
int GameState::GetWaitSkipResult() const {
- return wait_skipped_by << 16 | (wait_skipped_by_data & 0x0000FFFF);
+ // NOTE: we remove timer flag to make timeout reason = 0
+ return ((wait_skipped_by & ~SKIP_AUTOTIMER) << 16)
+ | (wait_skipped_by_data & 0x0000FFFF);
}
bool GameState::IsBlockingVoiceSpeech() const {
Commit: 15563b5a7cf594dbee51c2b09bf2ccb5ccf03e4e
https://github.com/scummvm/scummvm/commit/15563b5a7cf594dbee51c2b09bf2ccb5ccf03e4e
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2022-06-18T18:21:35+01:00
Commit Message:
AGS: Changed SpriteCache::FreeMem to comply with sound cache
>From upstream 94a462d52d5533f4ebb4cef1bbddd280b4f876a2
Changed paths:
engines/ags/shared/ac/sprite_cache.cpp
engines/ags/shared/ac/sprite_cache.h
diff --git a/engines/ags/shared/ac/sprite_cache.cpp b/engines/ags/shared/ac/sprite_cache.cpp
index 101f0455ff1..c05c7ed7025 100644
--- a/engines/ags/shared/ac/sprite_cache.cpp
+++ b/engines/ags/shared/ac/sprite_cache.cpp
@@ -215,8 +215,8 @@ Bitmap *SpriteCache::operator [] (sprkey_t index) {
return _spriteData[index].Image;
}
-void SpriteCache::FreeMem(size_t threshold) {
- for (int tries = 0; (_mru.size() > 0) && (_cacheSize >= threshold); ++tries) {
+void SpriteCache::FreeMem(size_t space) {
+ for (int tries = 0; (_mru.size() > 0) && (_cacheSize >= (_maxCacheSize - space)); ++tries) {
DisposeOldest();
if (tries > 1000) { // ???
Debug::Printf(kDbgGroup_SprCache, kDbgMsg_Error, "RUNTIME CACHE ERROR: STUCK IN FREE_UP_MEM; RESETTING CACHE");
@@ -299,8 +299,6 @@ size_t SpriteCache::LoadSprite(sprkey_t index) {
if (index < 0 || (size_t)index >= _spriteData.size())
return 0;
- FreeMem(_maxCacheSize);
-
sprkey_t load_index = GetDataIndex(index);
Bitmap *image;
HError err = _file.LoadSprite(load_index, image);
@@ -330,10 +328,10 @@ size_t SpriteCache::LoadSprite(sprkey_t index) {
if (index != 0) // leave sprite 0 locked
_spriteData[index].Flags &= ~SPRCACHEFLAG_LOCKED;
- // we need to store this because the main program might
- // alter spritewidth/height if it resizes stuff
- size_t size = _sprInfos[index].Width * _sprInfos[index].Height *
+ const size_t size = _sprInfos[index].Width * _sprInfos[index].Height *
_spriteData[index].Image->GetBPP();
+ // Clear up space before adding to cache
+ FreeMem(size);
_spriteData[index].Size = size;
_cacheSize += size;
diff --git a/engines/ags/shared/ac/sprite_cache.h b/engines/ags/shared/ac/sprite_cache.h
index 552f7a7eb3b..d1715407c67 100644
--- a/engines/ags/shared/ac/sprite_cache.h
+++ b/engines/ags/shared/ac/sprite_cache.h
@@ -154,8 +154,8 @@ private:
sprkey_t GetDataIndex(sprkey_t index);
// Delete the oldest (least recently used) image in cache
void DisposeOldest();
- // Keep disposing oldest elements until cache size is reduced to the given threshold
- void FreeMem(size_t threshold);
+ // Keep disposing oldest elements until cache has at least the given free space
+ void FreeMem(size_t space);
// Information required for the sprite streaming
struct SpriteData {
Commit: a477deb74cf9ef166121bac1eb6d90d2f4af06f2
https://github.com/scummvm/scummvm/commit/a477deb74cf9ef166121bac1eb6d90d2f4af06f2
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2022-06-18T18:23:38+01:00
Commit Message:
AGS: Fixed rendering scaled up WFN fonts
>From upstream adc9121f30c028a071783ffb6645bb72aee482ea
Changed paths:
engines/ags/shared/font/wfn_font_renderer.cpp
diff --git a/engines/ags/shared/font/wfn_font_renderer.cpp b/engines/ags/shared/font/wfn_font_renderer.cpp
index e5eb6d6d140..1cca2fc4763 100644
--- a/engines/ags/shared/font/wfn_font_renderer.cpp
+++ b/engines/ags/shared/font/wfn_font_renderer.cpp
@@ -111,7 +111,7 @@ static int RenderChar(Bitmap *ds, const int at_x, const int at_y, Rect clip,
for (int w = sw, x = sx; w < width && x < ex; ++w, x += scale) {
if (((actdata[h * bytewid + (w / 8)] & (0x80 >> (w % 8))) != 0)) {
if (scale > 1) {
- ds->FillRect(RectWH(x, y, scale - 1, scale - 1), text_color);
+ ds->FillRect(RectWH(x, y, scale, scale), text_color);
} else {
ds->PutPixel(x, y, text_color);
}
Commit: 4d2d8b45d4d3b751cad5099fd820dda2e7ba6e65
https://github.com/scummvm/scummvm/commit/4d2d8b45d4d3b751cad5099fd820dda2e7ba6e65
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2022-06-18T18:32:09+01:00
Commit Message:
AGS: Fixed trying to erase background speech overlays twice
>From upstream 5f137874738c86852b5ef7da2933fab7e78ae89b
Changed paths:
engines/ags/engine/ac/overlay.cpp
diff --git a/engines/ags/engine/ac/overlay.cpp b/engines/ags/engine/ac/overlay.cpp
index 7716fc504c4..6c98bbddaa4 100644
--- a/engines/ags/engine/ac/overlay.cpp
+++ b/engines/ags/engine/ac/overlay.cpp
@@ -291,7 +291,11 @@ static void invalidate_and_subref(ScreenOverlay &over, ScriptOverlay **scover) {
if (scover && (*scover)) {
(*scover)->overlayId = -1;
*scover = nullptr;
+ } else if (over.associatedOverlayHandle > 0) {
+ ScriptOverlay *scoverlay = const_cast<ScriptOverlay*>((const ScriptOverlay* )ccGetObjectAddressFromHandle(over.associatedOverlayHandle));
+ if (scoverlay) scoverlay->overlayId = -1;
}
+
if (over.associatedOverlayHandle > 0) {
ccReleaseObjectReference(over.associatedOverlayHandle);
over.associatedOverlayHandle = 0;
@@ -313,6 +317,9 @@ static void dispose_overlay(ScreenOverlay &over) {
}
void remove_screen_overlay_index(size_t over_idx) {
+ assert(over_idx < _GP(screenover).size());
+ if (over_idx >= _GP(screenover).size())
+ return; // something is wrong
ScreenOverlay &over = _GP(screenover)[over_idx];
// TODO: move these custom settings outside of this function
if (over.type == _GP(play).complete_overlay_on) {
@@ -323,7 +330,7 @@ void remove_screen_overlay_index(size_t over_idx) {
} 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
+ } else if (over.bgSpeechForChar >= 0) { // release internal ref for bg speech
invalidate_and_subref(over, nullptr);
}
dispose_overlay(over);
More information about the Scummvm-git-logs
mailing list