Commit Graph
57 Commits
Author SHA1 Message Date
Walter Agazzi 1c5ca014ca Engine: allow scene render in "load room" event if transition instant
Fixes behavior after ed5e81c.
Although somewhat inconsistent, but AGS historically allowed to run animations in "room load" event,
 and they would be rendered if last room transition was "Instant", because the screen was not faded out.
 From upstream fb2fd763a471af7532324a4da8e0f655e7cf5516
2024-10-30 18:07:42 +02:00
Walter Agazzi 9a766e1a35 AGS: Engine: fixed extra frame drawn before Crossfade or Dissolve fadein
From upstream ed5e81cfb6e933ef5b6fc139b362723f1de34f10
2024-10-30 18:07:42 +02:00
Walter Agazzi 1f2ef9ce4a AGS: Engine: fixed Crossfade and Dissolve transitions in letterbox mode
From upstream 4ad64d3f2a7dfaaff07b8ccd17ececab76720477
2024-10-30 18:07:42 +02:00
Walter Agazzi 38115f48b1 AGS: Engine: fixed Dissolve transition
From upstream 55f1d0376ef583b5f7d767e31c83e190c005246f
2024-10-30 18:07:42 +02:00
Walter Agazzi d4cc4a8808 AGS: Engine: proper handling of Hotspot WalkOn/MouseOver event args
From upstream 8fee5f33c0070f9f9a86f29470de53caea823d26
2024-10-30 18:07:42 +02:00
Walter Agazzi ee82074a47 AGS: Engine: further tidy up around agsplugin.h/cpp
* Moved plugin API event constants to a separate header agsplugin_evts.h.
Engine should not include whole plugin API, this is unnecessary, and may
 create naming conflicts.
* Moved SimulateMouseClick to mouse.cpp.
* Minor cleanup in agsplugin.cpp

From upstream 510293c1fd277d853544534423ceea27b8ae3e2d
2024-10-30 18:07:42 +02:00
Walter Agazzi 815041ec6a AGS: Engine: store game's ccInstances as unique_ptrs instead
The script handling part of the engine appeared to be too fragile and dependent on
 a precise timing of **deleting** a ccInstance.
For example, restoring a saved game may execute in the midst of the call to
RunScriptFunction(), at the "post script cleanup" stage, while there are still references
to ccInstance on the engine's call stack (and few other places). If anything prevents
 ccInstance's disposal at this moment, that would in turn lead to logical errors due to
  the game scripts "instances" counting. The most outstanding consequence is that the
   script exports are kept pointing into the deleted memory and not re-registered after the save is restored.

Overall, the script handling part of the engine would benefit from a major refactor,
 with a goal to make it safe and consistent, but this is not something I might do at the moment.

From upstream 1f6abf4b678f77825c710d4ae18b57ff8f882c93
2024-10-30 18:07:42 +02:00
Walter Agazzi 51cf1f1568 AGS: Engine: tidied code in RunObjectInteraction functions
From upstream c20764239b3a8a234c473feb4f7009afdc3c4c6d
2024-10-30 18:07:42 +02:00
Walter Agazzi dd8c13c1f0 AGS: Engine: replaced global evblock* vars with a local ObjectEvent argument
From upstream 279d3d78ff04423fce137a4907fd42d44ee12969
2024-10-30 18:07:42 +02:00
Walter Agazzi 253187f4e2 Revert "AGS: Engine: store game's ccInstances as unique_ptrs instead"
This reverts commit 547cd40186876f17914f6a96261aaf5c4dfc21b4.
2024-10-30 18:07:42 +02:00
Walter Agazzi b1e7617964 AGS: Engine: store game's ccInstances as unique_ptrs instead
From upstream 1f6abf4b678f77825c710d4ae18b57ff8f882c93
2024-10-30 18:07:42 +02:00
Walter Agazzi b580078759 AGS: Engine: implemented "after fade-out" room callback, and global event
From upstream d3057943e5f979d9386c412d62e8e2e953a623c5
2024-10-30 18:07:42 +02:00
Le Philousophe 49b4c1b3c4 AGS: Revert to use std namespace
This allows to minimize changes from upstream
2024-07-08 21:37:28 +02:00
Paul Gilbert c2a476411c AGS: Move std namespace into common/std/ 2024-07-07 15:28:31 -07:00
Walter Agazzi 12e4bb39fa AGS: Engine: force clear event queue in processallevents()
Was broken by a2f9a5b, then tried to fix by 6a71d85, but not fully fixed still.
From upstream cbaeff15229bb81828d418ed71a11dfe0b30e6fd
2023-09-23 17:10:08 +02:00
Walter Agazzi 7ca114ea49 AGS: Engine: made FadeIn and FadeOut functions look consistent
From upstream 95c4362271734c5cb724b314d7cc555f752e06a8
2023-04-29 13:11:41 +02: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
Thierry Crozat db1d5b17cd AGS: Tidy vsync setting methods in renderers
From upstream 5ff955152c43f6adfe03298a7cac069efffbee4d
2022-06-21 23:28:01 +01:00
Thierry Crozat a7017efb7b AGS: Added event eEventEnterRoomAfterFadein
From upstream 98312a3929df381604d3879aae61a0c3c15d9ca6
2022-06-19 00:46:56 +01:00
Paul Gilbert 28a2b6aa9c AGS: Added extra checks for abort_engine being set
This fixes an intermittant error I noticed when
qutting QFG2AGDI via the quit dialog could open
the debugger with an error rather than exitting
2022-05-05 22:41:09 -07:00
Paul Gilbert 16d0d89787 AGS: Grouped ccError variables in a struct
From upstream 48ef387226e4d420dc62d0a0b204cf4cd89a1139
2022-05-05 22:41:07 -07:00
Paul Gilbert a2a5f2575d AGS: Reorganized few cc_ headers
From upstream ea1f8b9ece69fc7c49c4d3aa7b9af51c4ca736e5
2022-05-05 22:41:07 -07:00
Paul Gilbert b9a9b00974 AGS: Graphic renderers use correct alpha as sprite transparency
From upstream d2502a5240c6c06eb2fb65a9bf90b30584d79051
2022-05-01 17:23:23 -07:00
Paul Gilbert 53e1c22185 AGS: Fixes for the updated sprite batch system
From upstream db57e5b06aaf60728e1ade30a61f84d5850596dc
2022-05-01 17:23:22 -07:00
Paul Gilbert 1ab42991d1 AGS: Added more event constants, clarified couple event calls
From upstream ae6862f7917832ebc5f2314561938c01725ac8a2
2022-04-25 22:11:42 -07:00
Paul Gilbert 194dc7bafa AGS: Fixed game events not cleared inside blocking action
From upstream 6a71d858819787001ad50516acae7164537bb02f
2022-04-25 22:00:14 -07:00
Paul Gilbert 9533c0e028 AGS: Made script module index an unsigned value
From upstream bd4e65677eb0319ff746e519ee40016000a4f4f9
2022-04-24 16:00:04 -07:00
Paul Gilbert e736059bbe AGS: pass key modifiers as an extra arg to on_key_press
From upstream b00b82220cbabf44185e042ef33b543fe2ad3543
2022-04-21 20:23:53 -07:00
Paul Gilbert b2d8bcad75 AGS: Refactor RunTextScript* functions for the purpose of clarity
From upstream 17af6ca2cb1fba310900f5189da788fa52ef7dab
2022-04-18 19:10:39 -07:00
Paul Gilbert 2e24e08d5b AGS: Brought few "run script" functions to similar arg list
From upstream 78163a07400353013dd939ca86f5513f3196394a
2022-04-18 19:10:39 -07:00
Paul Gilbert 8be58d3de2 AGS: Store game events in std::vector, remove event cap
From upstream a2f9a5ba94377686762b2828df4fccbe661d2b03
2022-04-18 19:10:29 -07:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Paul Gilbert 73347d4559 AGS: Remove _G macros from comments 2021-06-13 21:09:00 -07:00
Paul Gilbert 87dba2e276 AGS: Re-added checks for SHOULD_QUIT and abort_engine 2021-06-13 21:08:52 -07:00
Paul Gilbert 701396361c AGS: Import of fresh codebase 2021-06-13 21:08:44 -07:00
Paul Gilbert e22a8657ac AGS: Fix crash exiting Mage's Initiation 2021-04-30 20:35:09 -07:00
Paul Gilbert 407d38e7e9 AGS: Add a lot of abort_engine checks to break out of scripts
Previously, quitting could generate spurious error messages
between the point abort_engine was set, and the outer game
loop where game execution was aborted. It just wasn't visible,
because abort_engine was set. Now that we're immediately
generating a ScummVM error for any error generated, I needed
to add extra abort_engine break checks to avoid any errors
2021-04-16 20:44:41 -07:00
Paul Gilbert bf3c05128d AGS: Move screen.cpp globals to Globals 2021-03-12 20:44:13 -08:00
Paul Gilbert d88d97d69d AGS: Move draw.cpp globals to Globals 2021-03-12 20:38:46 -08:00
Paul Gilbert 3a0a70bc43 AGS: Move more game.cpp globals to Globals 2021-03-10 21:01:11 -08:00
Paul Gilbert 2d82d32577 AGS: Move draw.cpp globals to Globals 2021-03-09 21:14:02 -08:00
Paul Gilbert d12bb69417 AGS: Move event.cpp globals to Globals 2021-03-08 18:29:32 -08:00
Paul Gilbert 37b563ef35 AGS: Move game globals to Globals 2021-03-07 19:23:24 -08:00
Paul Gilbert 21e9dde4ca AGS: Move cc_error.cpp globals to Globals 2021-03-06 15:11:39 -08:00
Paul Gilbert b6dd902163 AGS: Move script.cpp globals into Globals 2021-02-28 16:41:48 -08:00
Paul Gilbert ef245e2104 AGS: Move thisroom to Globals 2021-02-28 13:27:21 -08:00
Paul Gilbert 334b2a9d48 AGS: Move play to Globals 2021-02-27 15:31:34 -08:00
Paul Gilbert 1a8ae27b58 AGS: Move game & spriteset into Globals 2021-02-26 21:28:53 -08:00
Cameron Cawley ff276f88ff AGS: Refactor audio code 2021-02-08 18:03:22 -08:00
Paul Gilbert d6b8c21557 AGS: Merged engine/plugin/ into plugins/ folder 2021-02-06 16:37:31 -08:00