Commit Graph
144 Commits
Author SHA1 Message Date
Walter Agazzi c46b2feaca AGS: Engine: removed redundant quit_shutdown_scripts()
Scripts are shut down in unload_game().
It did not do what the function name implied anyway...
From upstream 67c0bdc9e854c558282d290ef5952ac211cc4133
2024-04-02 23:18:14 +02:00
Walter Agazzi cc6bbd1083 AGS: Engine: hotfix potential exception if cc_error is called during quit()
From upstream a64e3424f70677f9393e4f8c506f03ed628aee47
2024-04-02 23:09:17 +02:00
Walter Agazzi f09519834c AGS: Engine: updated unload_game_file(), fix few things not reset
This is not as important in case of game quit, as it is in case of RunAGSGame().

* Adjusted order of data release in unload_game_file() to be in sync with 3.6.1 (as much as possible).
* Fixed GameSetupStruct not releasing some of the data in Free().

Noteably this fixes font infos to not getting fully reset on RunAGSGame().
from upstream 1cc9d22095d0ee90541ce506fa54c538de7ca4ad
2024-03-28 12:03:33 +01:00
Walter Agazzi cce6aff754 AGS: Engine: replaced uses of strncpy with snprintf for safety
From upstream 02feb81b34f041dccd8a4bb33ff060cc532d979b
2024-01-17 03:12:30 +01:00
Walter Agazzi 4e6d475e17 AGS: Engine: fixed gamename label not updating if Game.Name changes
From upstream ae34b8881f64d422971aab3d70758c5184aca0b4
2024-01-17 03:12:29 +01:00
Walter Agazzi 47b3cb7de7 AGS: Engine: rename legacysaves config options, bring to consistency
From upstream e8d043327f896ce4f10aee04d55a4029ce81d1eb
2023-09-16 13:32:58 +02:00
Walter Agazzi 57e9963b2e AGS: Engine: fixed game package test when loading an old save
From upstream 40b679d25cd4ca41fc297ae37effac631d066bd3
2023-09-02 14:03:04 +02:00
Walter Agazzi 947acb21ec AGS: Engine: fixed improper cleanup of scrGUI array in unload_game_file()
From upstream 045b4a6ed1e09a2d563ee5ad0addf601f700173d
2023-09-02 14:02:52 +02:00
Walter Agazzi ff0298be68 AGS: Engine: ignore mod and special keys when skipping speech and wait
Partially from upstream 8079c87ca11fa6b60ed2dd2ce345cda6c384c00b
2023-08-13 10:58:26 +02:00
Walter Agazzi c05887d3a4 AGS: Implement GAMEOPTION_NO_SAVE_THUMBNAIL
Added game option flag to disable screenshot/thumbnail creation
on save
2023-06-16 22:47:37 +01:00
Walter Agazzi 5a14999455 AGS: Don't create screenshot for Whispers of a Machine
Disable screenshot workaround for Whispers of a Machine, which autosaves frequently
and causes an annoying flicker
2023-06-14 11:18:53 +02:00
Walter Agazzi a7d69a40cb AGS: Restore screenshot creation workaround on save
This commit restores the old workaround to force screenshot creation on save,
which was lost among the upstream commits
Fixes bug #14477
2023-06-08 14:40:05 +02:00
Eugene Sandulenko 03460f9469 AGS: Fix bitwise operations 2023-04-29 20:28:20 +02:00
Walter Agazzi 2775d0e3d0 AGS: Engine: a fix for coincidental dynamic sprite replacement in old games
This is a (ugly) backward compatible workaround in game_sprite_deleted().
Apparently there are few games that may rely (either with or without author's intent) on newly
created dynamic sprite being assigned same index as a recently deleted one, which results in
new sprite "secretly" taking place of an old one on the GUI, etc.
One known example is "Kathy Rain" game.

For old games we keep only partial index reset (full cleanup is 3.5.0+).
From upstream e8409920049b2a8859856d3525a8f112227df4df
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
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 028567e890 AGS: Engine: improved parameter logging in SetAudioTypeVolume
from upstream 94598f32ff20494a3239f258ac972f8108bc05bf
2023-01-17 17:27:07 +00:00
Thierry Crozat 483ff1bc30 AGS: fixed object cache may sometimes keep an old dynsprite ref
This may result in object texture not updating if the old sprite was deleted but a new dynamic sprite was created right after having same ID.

Was broken by upstream 9dffb04 in 3.5.1, and also some later changes in 3.6.0.

From upstream 7ed51861898d864902b0f61b0cb7d0acadef1fe3
2022-10-10 00:16:16 +01:00
Thierry Crozat 5987bc5e6e AGS: rewrote eAGSMouseButton enum to sync with the script API
* Changed from -1 - based constants to 0 - based constants;
* These were purely internal values, therefore no API would be harmed;
* Removed necessity of converting from internal mouse button code to script and back all the time;
* On a side note, this fixes a bug where WaitMouse etc were returning incorrect values on mouse skip, because we forgot to convert from internal to script code.

From upstream 471098d239b076c494beb2d554572ccb69372667
2022-10-10 00:16:16 +01:00
Thierry Crozat 119e09e56e AGS: Removed a too early call to pl_stop_plugins() and fixed another
There's one call in unload_game_file(), which should be called after
all objects that may have been provided by plugins are disposed
(fonts, managed objects).

From upstream 462cabe7353fc75f3cf70222a97028066f12f030
2022-06-24 20:54:47 +01:00
Thierry Crozat 3a4d94bf0b AGS: Updated Multitasking setting
* Added `[misc] multitasking=[0,1]` to config, acting as a *starting*
  setting, which may be changed by runtime call to `SetMultitaskingMode`;
* Ensure multitasking mode is overridden by connected external debugger
  (always on, if possible);
* Let multitasking mode work in "fullscreen desktop" gfx mode (still
  disabled in exclusive fullscreen);
* Now correctly reset multitasking mode if gfx mode changes.

From upstream 9f091926e393f75c90c951f9597710bf17395332
2022-06-23 23:57:27 +01:00
Thierry Crozat 5089b28645 AGS: Added more logging for multitasking mode, switching in/out
From upstream d3925672f5b96fab3308b606eb6f38dc279636d7
2022-06-21 23:28:01 +01:00
Thierry Crozat 0c936b888d AGS: Fixed GUI textual controls not redrawn when translation changes
From upstream 618d2e38a118f47389aaf7e57972b2520b81fc1b
2022-06-21 23:28:01 +01:00
Thierry Crozat fe80834639 AGS: Store DialogTopics in std::vector
From upstream 2609c0d1ee43a4f997021ce48ca2a4f70ca1a6c7
2022-06-20 23:52:25 +01:00
Thierry Crozat b49d3b2e9f AGS: In unload_game_file() don't error if quit during the of dialog
From upstream c7bd448dfffc197c4398a38395b444457c958d24
2022-06-19 20:50:24 +01:00
Thierry Crozat e90fb00412 AGS: Replaced more strcpy with snprintf, for safety
From upstream 1b6cf053ebbe85e7ba6c5828e2582d757503bc16
2022-06-19 20:50:24 +01:00
Thierry Crozat b948d94ce2 AGS: Implemented dialog_options_close callback
From upstream 88cb130d1063bf5268bbcae29ffaae37324f5a30
2022-06-19 00:46:56 +01:00
Thierry Crozat 282ee9ad97 AGS: Fixing more trivial warnings
From upstream 83f7d9857e70f7d1d10fedf61196740d20ba0b0a
2022-06-18 01:08:54 +01:00
Thierry Crozat 5d8c66c511 AGS: Implemented debug keys for saving/restoring a game
This may be useful in case the game does not provide any save system, or one is broken.
From upstream 86130ec92f6966cfa2d5565c749ba839acad8136
2022-06-16 23:16:20 +01:00
Thierry Crozat 74416f547f AGS: Removed redundant arrays keeping copies of obj script names
From upstream f0887ba798b9df7aa70125b432efd5d62c64a622
2022-06-15 22:13:02 +01:00
Thierry Crozat aecb62429d AGS: Update shared texture when dynamic sprite changes
From upstream 6be0e6d094e70e96d93a9ee4dd31ca166663eeaf
2022-06-13 00:30:21 +01:00
Paul Gilbert 1933841f79 AGS: Removed numgui* variables, use size of vectors instead
From upstream 095cf9d77c96fb3a1f9e887d7aaa1ef1e92ebe60
2022-05-10 21:35:19 -07:00
Paul Gilbert a8ebf2b41b AGS: Added "clone" parameter to Overlay.CreateGraphical()
From upstream 2a7adfb6a3424017913c9a6c240525029debf1e0
2022-05-08 11:37:49 -07:00
Paul Gilbert 97c12e8435 AGS: Merged Character and ObjectCache structs, and hid in draw.cpp
From upstream 753d47d975b10666702c47a22cbc4e68847787f1
2022-05-05 22:41:09 -07:00
Paul Gilbert a40ea44aa2 AGS: CharacterCache is stored in std::vector, hide in draw.cpp
From upstream 417879fce0dc27d458a73fedc20f311f3305f26f
2022-05-05 22:41:08 -07:00
Paul Gilbert 6482e38803 AGS: CharacterExtras and MoveLists are stored in std::vector
From upstream 0c81cfefb788c0dcfdb2cad914f939f28110edca
2022-05-05 22:41:08 -07:00
Paul Gilbert 830c1b096b AGS: introduced ObjTexture struct which combines bmp and ddb
From upstream b628fb4d1b3ca6a85e2b2424a468f4cec94ae9c6
Also includes new implementation of std::vector class to
properly allow for arrays of smart pointers
2022-05-05 22:41:05 -07:00
Paul Gilbert ebe2096af7 AGS: Call unload_game_file() in quit()
From upstream 1118be9d3f09037b995554d7aad47a400a76fafc
2022-05-01 17:23:26 -07:00
Paul Gilbert fbd328b0ae AGS: On changed or deleted dynamic sprite, also update sliders
From upstream f675c7ff7eb33bc2969098ab59afffac078b95bb
2022-05-01 17:23:23 -07:00
Paul Gilbert 6ef504bba2 AGS: Store gui draw order in a std::vector
From upstream fcc873ef0c26439faf67100f4d70d540434ca9f5
2022-05-01 17:23:22 -07:00
Paul Gilbert 2df62bdd55 AGS: Only redraw gui controls when they are marked as changed
From upstream 27a6bd6a13494cd670fb6749e5bd663f088487ea
2022-05-01 17:23:19 -07:00
Paul Gilbert 6ee31a530e AGS: Removed unnecessary ags_domouse() calls
From upstream de28de1dd44d991a479ae0adb5fdb4996fe33656
2022-04-29 22:20:39 -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 ecb7e42439 AGS: unserialize dynamic objects using MemoryStream
From upstream c9007679f21e8347d34312b0dd078bbbd29f0de5
2022-04-23 22:14:54 -07:00
Paul Gilbert 1f666cf0dc AGS: Fixed loading a different game when restoring a save
From upstream 56fb3029f61706b655f778349e2c4f50c8e03427
2022-04-23 19:26:25 -07:00
Paul Gilbert 17bac5b1ef AGS: Removed redundant function domouse(int what)
From upstream 3dfda41382bdd10e3b2b78f797fade8b5dcc1efa
2022-04-23 18:15:02 -07:00
Paul Gilbert 09da0fbf5d AGS: Implemented dialog_options_text_input(int chr) callback
From upstream 76db49c6189810faa467b00c1aef9e78c526876d
2022-04-18 19:10:39 -07:00
Paul Gilbert aeddd232e0 AGS: Removed animating buttons limit
From upstream 484f6d3f44c7dbb361ddeebd8bb46862760501bc
2022-04-13 21:55:18 -07:00
Paul Gilbert 0b639b8f46 AGS: Implemented video pause/resume, react to window focus events
From upstream 5934c62be17e179607c3387ea31c70bfddaac399
Stuff in the VideoPlayer class not implemented
2022-04-12 22:27:57 -07:00
D G Turner 3451e18f70 AGS: Fix Cast Qualification GCC Compiler Warning 2022-04-02 16:47:59 +01:00