Commit Graph

2073 Commits

Author SHA1 Message Date
Walter Agazzi
2359c13d23 AGS: Engine: moved global sprite offset & flip to the parent batch transform
Partially from upstream 76a2a22ebfd5a8513337a64d6d4e857295ee38bc
2023-03-12 20:58:28 +00:00
Walter Agazzi
2b028c586f AGS: Engine: hotfixed BitmapToVideoMem after 6804e9f
From upstream 0b3d4dc8b72cce99920bea44094a8c7a3e423f49
2023-03-12 20:58:28 +00:00
Walter Agazzi
bfc5f63026 AGS :Engine: draw fix, true means texture don't change
From upstream d5958eab884c079c00845c35e46ef0302152ded5
2023-03-12 20:58:28 +00:00
Walter Agazzi
8205b5b932 AGS: Allegro: remove unused bmp_unwrite_line
Partially from upstream 4552d777f8fbe1a8364f2416795cf3214a10575e
2023-03-12 20:58:28 +00:00
Walter Agazzi
a76b930e87 AGS: Common: bufferedstream add default and remove unused break
From upstream 957ad1ad7cb2d1df396f57de52c3808c28c53bb6
2023-03-12 20:58:28 +00:00
Walter Agazzi
0813358193 AGS: Fix empty statement warnings
Partially from upstream bb1ecf6f8b89dfaca7c7079e2183b982561004b8
2023-03-12 20:58:28 +00:00
Walter Agazzi
d6b03229d7 AGS: Common: move scanline safety check to assert
From upstream 6804e9f4e09e12066fb33dc3dc03e3ce04c7846d
2023-03-12 20:58:28 +00:00
Walter Agazzi
0f86678e2d AGS: Engine: only clear _stageScreen after it's dirty
From upstream d60022c715f15d0454ffe04d4ce8d331c34e3045
2023-03-12 20:58:28 +00:00
Walter Agazzi
afed888bb5 AGS: Engine: avoid dirty rects outside software render surface
From upstream c4dce7eb4a0ab4d2440a8b7e637ea8a7f9ed2c00
2023-03-12 20:58:28 +00:00
Walter Agazzi
818b670561 AGS: Engine: fixed text parser could substring with negative length
The example when this could happen:
    Parser.Said("climb,get in bed");
where "climb", "get" and "bed" are dictionary words.

From upstream b633ca77076137e2402faa903f5b6fbcd3f4c3bc
2023-03-12 20:58:28 +00:00
Walter Agazzi
16658128f6 AGS: Common: revert lzwexpand to expanding to mem, for better speed
This somewhat reverts 2b9f130 , while keeping tidier code and safer args.

Switching from lzwexpand_to_mem to using streams only caused speed
regression, which became notable for hi-res games with LZW sprite
compression (a 3.6.0 feature).
For this revert we instead load compressed data into a buffer in whole,
then pass two memory buffer pointers to lzw_expand, where it reads
and writes memory directly.
Testing a high-res (1920x1080) game with lots of sprite streaming
showed speed improvement of this function by around 200%.
The downside is the temporary buffer for reading compressed
data too.
In theory, same could be done for lzwcompress afterwards.

From upstream 6959004676916568c6fca210702d669f61741e13
2023-03-12 20:58:28 +00:00
Walter Agazzi
3d4856d321 AGS: Engine: for HW renderers - don't create redundant object cache images
I'm baffled how I did not notice this behavior earlier, but engine was
created at least 2 redundant intermediate bitmaps meant to cache
transformed sprites per each object and character on screen for
HW-accelerated renderers, - which they do not need, as they don't
use software transformations.

The resulting effect won't be too notable for low-res games with low
amount of simultaneous objects, but may be quite significant for the
high-res games with multiple large objects in the room.

From upstream cca997fe83ec5f7014677a69095a7c9ec1494cd9
2023-03-12 20:58:28 +00:00
Walter Agazzi
2cffebe3a5 AGS: Engine: use unique_ptr to store raw image in ObjectCache
From upstream a06d97dc88887395f3f961ab8e3fbda277733795
2023-03-12 20:58:28 +00:00
Walter Agazzi
f58c4d9bdb AGS: Common: replaced couple of smart ptr arrays with std::vector
From upstream c1afae64fe348c64ee4a8c8888349ae267241395
2023-03-12 20:58:28 +00:00
Walter Agazzi
26375b823b AGS: Engine: Used std::vector for RoomStatus::tsdata
From upstream 849a0f3153511087bd93c4d7d1ba898d4ab28cfa
2023-03-12 20:58:28 +00:00
Walter Agazzi
88f0170696 AGS: Engine: Fixed RoomStatus::tsdata allocation of additional bytes
From upstream 894ec8a85bd2c78438c8bfabee632b26f5323b07
2023-03-12 20:58:28 +00:00
Walter Agazzi
e0d2bc8860 AGS: Engine: Fix malloc/delete mismatch with RoomStatus::tsdata
From upstream cf31083808f19ae314212e7b451709cfd5d6f05d
2023-03-12 20:58:28 +00:00
Walter Agazzi
91d7299405 AGS: Engine: (again) fixed buttons not updated visually on interface enable
Complements / reimplements f310a08
From upstream b0e2fe40c1d73674a7b868a87152be6029df6cac
2023-03-12 20:58:28 +00:00
Walter Agazzi
416c6982cd AGS: Updated build version (3.6.0.38)
From upstream c9ce4cfc457713abadc6a1a4cfb4b47aa0667382
2023-03-12 20:58:28 +00:00
Walter Agazzi
ecc1d17655 AGS: Engine: register missing SetProperty script functions for plugins
Reimplemented from upstream 96d52b258dd226bc8c2243c1a5bc95a9ceeecd2a
2023-03-12 20:58:28 +00:00
Walter Agazzi
0fbdbdfcdd AGS: Engine: fixed WaitInput() incorrect handling of a type arg
From upstream ca6620951ec013e3627d962701c3cc25c1ac8adb
2023-03-12 20:58:28 +00:00
Walter Agazzi
49e61b6ea2 AGS: Engine: let use dummy frame 0 if the speech view's loop is empty
This complements / fixes previous fix attempt 08aef03
From upstream 95c99fc325f8550f220e7a0f67d6555bb23c8c5a
2023-03-12 20:58:28 +00:00
Walter Agazzi
92134389e6 AGS: Common: fixed crash if slider's handle set to negative sprite id
This is forbidden in the latest editor, but seems to be a possibility in
older editors (2.*).
From upstream c1ba79d0cdb31b7704f889e953865fca4b175076
2023-03-12 20:58:28 +00:00
Walter Agazzi
f77da38379 AGS: Engine: fixed view frames have a linked sound 0 by default
from upstream a4a98adfcb039e0f8f213d60e8b0b639b0217f9b
2023-03-12 20:58:28 +00:00
Walter Agazzi
c366ce5eef AGS: Removed update_polled_stuff_if_runtime() from data loading functions
Leave it with a new name as `update_polled_stuff()` only in functions
related to the game update.
From upstream 95dc139f51e704da19792e5480e69bbfe7ec27aa
2023-03-12 20:58:28 +00:00
Walter Agazzi
3d45396eb6 AGS: Updated build version (3.6.0.37)
From upstream bbf48a8deeaefb0c577426d3a745261831d67be7
2023-03-12 20:58:28 +00:00
Walter Agazzi
e7e7e4a446 AGS: Engine: keep mouse speed control enabled (by default, fullscreen only)
Partially from upstream 1f867858c46c8a2dde841022aed8631f1deeabb1
2023-03-12 20:58:27 +00:00
Walter Agazzi
3ddbd08585 AGS: Engine: in render_to_screen() do at least 1 delay in case of DEVICELOST
from upstream 27306da4cd0c1fa193f984644aa1915c8a944364
2023-03-12 20:58:27 +00:00
Walter Agazzi
d372745e35 AGS: Prevent savepath manipulation in ScummVM
Completes commit 8e77b04062d865e35bbadedce2fb7ba4971b837c.
We don't support subdirs in saves, the previous change causes some
games to be unable to save/restore
2023-03-12 20:58:27 +00:00
Walter Agazzi
61c7c0fcfe AGS: Engine: fixed gui controls not updated after interface is un-disabled
from upstream 126a5e4c97581aabadbbd4410441b83f371e18ea
2023-03-12 20:58:27 +00:00
Walter Agazzi
8c6524a888 AGS: Common: fix warns and clang-tidy notices
- using braced initializers for returned invalid objects
partially from upstream 8aeda4b67bf24ce080b09255139e0f6b907a9a8f
2023-03-12 20:58:27 +00:00
Walter Agazzi
72592cc9e0 AGS: Engine: fixed ResolveScriptPath not handling subdirs correctly
from upstream 8d0e0cb3c20db0beddffc36c688ed33005a43d7c
2023-03-12 20:58:27 +00:00
Walter Agazzi
73d169c0e4 AGS: Common: fix warnings in directory.cpp
- prefer empty instead of size() == 0
partially from upstream de97ab3e8c14074944c7087cc8e4bc5b15d6f4d6
2023-03-12 20:58:27 +00:00
Walter Agazzi
a32892578a AGS: Common: fail early in negative index
from upstream 4d9f1788059b2fdadd3e957a5a260a918458595d
2023-03-12 20:58:27 +00:00
Walter Agazzi
5ad85c6b42 AGS: Common: replaced GameSetupStruct::messages with an array of Strings
This also fixes an allocation/deallocation mismatch found in the code.
From upstream b47a086cbd589cd271c5fe1b3497f9b8e4ae4abf
2023-03-12 20:58:27 +00:00
Walter Agazzi
0263572d1c AGS: Common: fix mismatched free
uses new char[] on Create method.
From upstream ecfc238401183e210a1773c27724516f74272c8e
2023-03-12 20:58:27 +00:00
Walter Agazzi
8c6243052d AGS: Engine: in BitmapToVideoMem replaced if/else with a switch
This supposedly should slightly improve bitmap to texture conversion performance.
From upstream ab213c0962df7bdec96ce38122f637f0febe4ef4
2023-03-12 20:58:27 +00:00
Walter Agazzi
aaddb0d189 AGS: Add detection for some old games/versions
From AGS archives
2023-03-12 17:31:11 +01:00
Walter Agazzi
b0eeec4bf4 AGS: Add detection for some old variants + minor fixes
From AGS Archives / TRAC reports
2023-03-09 02:02:13 +01:00
Walter Agazzi
61b6e5f8a4 AGS: Add a couple new games and fix clash 2023-03-05 00:21:03 +01:00
Walter Agazzi
3e2f15f024 AGS: Add detection for Bill DeBill + whitespace fixes
Reported on Discord
2023-03-03 12:30:54 +01:00
Walter Agazzi
8fea0be1bd AGS: Add detection for new games 2023-02-28 13:47:09 +01:00
Walter Agazzi
4861307c6d AGS: Fix two detection entries
TRAC #14224 - #14263
2023-02-25 11:50:02 +01:00
Walter Agazzi
2e9819ad4e AGS: Fix some overzealous renames
_GP(game) -> game
2023-02-24 21:13:17 +01:00
Walter Agazzi
185ac140f0 AGS: Add detection for a couple itch.io/gamejolt games
From TRAC reports
2023-02-24 18:19:21 +01:00
Walter Agazzi
051555397d AGS: Add detection for various old games/versions
From AGS archives S-Z
2023-02-24 15:34:49 +01:00
Walter Agazzi
bed5d7d1d4 AGS: Add detection for various old games/versions
From AGS archives L-R
2023-02-23 21:02:23 +01:00
Le Philousophe
bd8c8802b7 GRAPHICS: Make rawBlitFrom take a ManagedSurface
This allows to remove the palette argument and removes the need for
getPalette
2023-02-23 19:10:45 +01:00
Walter Agazzi
077cd8a5d8 AGS: Add detection for various old games/versions
From AGS archives A-K
2023-02-23 02:22:29 +01:00
Walter Agazzi
a9a99833bb AGS: Add two new versions
My big sister remastered / the crimson diamond
2023-02-22 17:04:00 +01:00