scummvm/engines/ags/engine/ac
mausimus f9f1a3cbab AGS: Parser fixes from upstream
Compilation of three bug fixes to text parser I recently made in the AGS project, around alternatives syntax:
1. Stop parsing when reaching end during alternatives skipping (causing an out-of-bounds memory read)
2. Correctly skip over multi-word alternatives (incorrect parsing of alternative lists)
3. Use dedicated function to identify word boundaries (affecting dash and apostrophe containing alternatives)

Upstream commits (release-3.6.1 branch):
1. 17f8ea2f0efadec7b3696d4ba51733f1cddc0772 (check for end of input not to go beyond)
2. e98315393a34629b8935fdee7bd725a8299f941c (fix multi-word alternative skipping)
3. 9b0ccbd04e36e757392b1fc744919c785310c57b (consistently check for word boundaries)
2024-06-30 14:19:21 +03:00
..
dynobj AGS: Engine: fixed System.ColorDepth to returning game's native depth 2024-01-17 03:12:31 +01:00
statobj AGS: Engine: hotfix game.top_inv_item script variable not working 2023-09-02 14:05:41 +02:00
asset_helper.h AGS: AssetManager lets use AssetPath struct to call its methods 2022-03-20 22:11:55 -07:00
audio_channel.cpp AGS: added AudioChannel.SeekMs() to coplement PositionMs 2022-10-10 23:42:34 +01:00
audio_channel.h AGS: added AudioChannel.SeekMs() to coplement PositionMs 2022-10-10 23:42:34 +01:00
audio_clip.cpp AGS: AssetManager lets use AssetPath struct to call its methods 2022-03-20 22:11:55 -07:00
audio_clip.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
button.cpp AGS: Engine: picked out basic Animate params check and warn instead of quit 2023-05-12 12:00:39 +02:00
button.h AGS: Share animation cycling algo between Buttons and RoomObjects 2022-04-22 20:05:04 -07:00
cd_audio.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
cd_audio.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
character_extras.cpp AGS: Fixing more trivial warnings 2022-06-18 01:08:54 +01:00
character_extras.h AGS: Use 100 as a default animation volume, as it's relative anyway 2022-06-19 00:46:56 +01:00
character_info_engine.cpp AGS: Engine: fixed characters sometimes wait after moving before idle anim 2023-09-02 14:02:21 +02:00
character.cpp AGS: Engine: implement add_waypoint_direct(), fix AddWaypoint's resolution 2024-03-28 12:01:52 +01:00
character.h AGS: Engine: add object and char assertions in Get/SetProperty functions 2023-09-02 13:23:59 +02:00
date_time.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
date_time.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
dialog_options_rendering.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
dialog_options_rendering.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
dialog.cpp AGS: Engine: fixed text parser in Dialog Options in "new key handling" mode 2024-03-28 12:02:40 +01:00
dialog.h AGS: Store DialogTopics in std::vector 2022-06-20 23:52:25 +01:00
display.cpp AGS: Engine: fixed speech stuck in "post state" under some conditions 2024-03-28 12:00:55 +01:00
display.h AGS: Engine: fixed speech stuck in "post state" under some conditions 2024-03-28 12:00:55 +01:00
draw_software.cpp AGS: Engine: misspelling fix: perfomance->performance 2024-01-17 03:12:29 +01:00
draw_software.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
draw.cpp AGS: fix all_buttons_disabled check condition 2024-03-28 12:03:33 +01:00
draw.h AGS: Engine: renamed "NullSpriteCallback", give more meaningful name 2023-03-12 20:58:28 +00:00
drawing_surface.cpp AGS: Removed update_polled_stuff_if_runtime() from data loading functions 2023-03-12 20:58:28 +00:00
drawing_surface.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
dynamic_sprite.cpp AGS: Remove unnecessary include of std/math.h 2023-06-06 08:59:58 +01:00
dynamic_sprite.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
event.cpp AGS: Engine: force clear event queue in processallevents() 2023-09-23 17:10:08 +02:00
event.h AGS: Added event eEventEnterRoomAfterFadein 2022-06-19 00:46:56 +01:00
file.cpp AGS: Add workaround for qfg2agdi to allow importing sci exported chars 2024-01-31 14:50:07 +01:00
file.h AGS: Script API: added File.WriteRawInt(), complementing ReadRawInt 2022-12-15 22:40:17 +01:00
game_setup.cpp AGS: Engine: keep mouse speed control enabled (by default, fullscreen only) 2023-03-12 20:58:27 +00:00
game_setup.h AGS: Engine: rename legacysaves config options, bring to consistency 2023-09-16 13:32:58 +02:00
game_state.cpp AGS: Engine: updated unload_game_file(), fix few things not reset 2024-03-28 12:03:33 +01:00
game_state.h AGS: Engine: renamed cant_skip_speech to speech_skip_style for clarity 2024-03-28 12:01:51 +01:00
game.cpp AGS: Engine: removed redundant quit_shutdown_scripts() 2024-04-02 23:18:14 +02:00
game.h AGS: Engine: removed redundant quit_shutdown_scripts() 2024-04-02 23:18:14 +02:00
global_api.cpp AGS: Engine: made FadeIn and FadeOut functions look consistent 2023-04-29 13:11:41 +02:00
global_audio.cpp AGS: Engine: simplify PlayMP3File asset loading 2023-04-29 13:11:41 +02:00
global_audio.h AGS: Split GameState::want_speech into two variables for easier handling 2022-03-27 19:14:55 -07:00
global_button.cpp AGS: Fixed couple of "unreachable code" warnings 2022-04-25 21:53:56 -07:00
global_button.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_character.cpp AGS: CharacterExtras and MoveLists are stored in std::vector 2022-05-05 22:41:08 -07:00
global_character.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_date_time.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_date_time.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_debug.cpp AGS: Engine: add bitness and endianess to the printed engine version 2023-04-29 13:11:41 +02:00
global_debug.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_dialog.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_dialog.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_display.cpp AGS: Engine: renamed cant_skip_speech to speech_skip_style for clarity 2024-03-28 12:01:51 +01:00
global_display.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_drawing_surface.cpp AGS: Removed update_polled_stuff_if_runtime() from data loading functions 2023-03-12 20:58:28 +00:00
global_drawing_surface.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_dynamic_sprite.cpp AGS: Removed redundant asset_size param from AssetManager::OpenAsset 2022-03-20 22:11:54 -07:00
global_dynamic_sprite.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_file.cpp AGS: Do explicit type cast in FileReadRawChar and FileWriteRawChar 2022-04-24 16:00:02 -07:00
global_file.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_game.cpp AGS: Engine: removed redundant quit_shutdown_scripts() 2024-04-02 23:18:14 +02:00
global_game.h AGS: Abort current scripts on close window event 2022-06-23 23:57:26 +01:00
global_gui.cpp AGS: Engine: fixed few game warnings, may fill up the log in some games 2023-08-13 10:58:26 +02:00
global_gui.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_hotspot.cpp AGS: Engine: add hotspot id assertion to GetHotspotProperty 2024-03-28 12:03:33 +01:00
global_hotspot.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_inv_window.cpp AGS: Removed numgui* variables, use size of vectors instead 2022-05-10 21:35:19 -07:00
global_inv_window.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_inventory_item.cpp AGS: Engine: replaced uses of strncpy with snprintf for safety 2024-01-17 03:12:30 +01:00
global_inventory_item.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_label.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_label.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_listbox.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_listbox.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_mouse.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_mouse.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_object.cpp AGS: Engine: add object and char assertions in Get/SetProperty functions 2023-09-02 13:23:59 +02:00
global_object.h AGS: Use 100 as a default animation volume, as it's relative anyway 2022-06-19 00:46:56 +01:00
global_overlay.cpp AGS: Engine: reimplemented Overlay.SetText without call to _display_main() 2023-01-20 14:14:56 +00:00
global_overlay.h AGS: Refactor core overlay creation funcs to return ScreenOverlay* 2022-05-05 22:41:10 -07:00
global_palette.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_palette.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_parser.cpp AGS: Replaced strcpy with snprintf in old string API impls 2022-06-19 20:50:24 +01:00
global_parser.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_region.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_region.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_room.cpp AGS: CharacterExtras and MoveLists are stored in std::vector 2022-05-05 22:41:08 -07:00
global_room.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_screen.cpp AGS: Engine: fixed FadeIn/Out and ShakeScreen prevent audio from starting 2023-04-29 13:11:41 +02:00
global_screen.h AGS: Engine: made FadeIn and FadeOut functions look consistent 2023-04-29 13:11:41 +02:00
global_slider.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_slider.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_string.cpp AGS: Fixing various "unused va/arg" warnings + removed empty funcs 2022-04-25 21:44:40 -07:00
global_string.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_textbox.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_textbox.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_timer.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_timer.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_translation.cpp AGS: Replaced strcpy with snprintf in old string API impls 2022-06-19 20:50:24 +01:00
global_translation.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_video.cpp AGS: Add check for unsupported videos in Earl Mansin 2024-05-05 14:24:26 +02:00
global_video.h AGS: Unify video flags in VideoPlayer, convert in script functions 2022-04-12 22:27:56 -07:00
global_view_frame.cpp AGS: Store Views in std::vector 2022-03-18 21:29:56 -07:00
global_view_frame.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_viewport.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_viewport.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_walk_behind.cpp AGS: Removed DrawAsSeparateCharSprite walk-behind method 2022-05-01 17:23:25 -07:00
global_walk_behind.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_walkable_area.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
global_walkable_area.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
gui_control.cpp AGS: Engine: fixed GUIControl_SetVisible() 2023-09-28 19:14:33 +02:00
gui_control.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
gui_inv.cpp AGS: Engine: hotfix game.top_inv_item script variable not working 2023-09-02 14:05:41 +02:00
gui.cpp AGS: Common: fix all_buttons_disabled's type, for clarity 2024-03-28 12:02:40 +01:00
gui.h AGS: Moved couple of gui-related global vars into GuiOptions struct 2022-04-10 19:39:06 -07:00
hotspot.cpp AGS: Engine: add hotspot id assertion to GetHotspotProperty 2024-03-28 12:03:33 +01:00
hotspot.h AGS: Engine: add hotspot id assertion to GetHotspotProperty 2024-03-28 12:03:33 +01:00
interface_button.cpp AGS: Put more unused code under OBSOLETE 2022-06-19 20:50:24 +01:00
interface_element.cpp AGS: Put more unused code under OBSOLETE 2022-06-19 20:50:24 +01:00
inv_window.cpp AGS: Engine: also ignore special keys for skipping video and InventoryScreen 2023-09-02 13:23:58 +02:00
inv_window.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
inventory_item.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
inventory_item.h AGS: Engine: register missing SetProperty script functions for plugins 2023-03-12 20:58:28 +00:00
label.cpp AGS: Fix Enumerated Type Comparison Mismatch GCC Compiler Warning 2022-12-19 00:07:37 +00:00
label.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
lip_sync.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
listbox.cpp AGS: Add workaround for qfg2agdi to allow importing sci exported chars 2024-01-31 14:50:07 +01:00
listbox.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
math.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
math.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
mouse.cpp AGS: Add sanity check for cursor value 2024-03-04 15:38:53 +01:00
mouse.h AGS: Removed redundant function domouse(int what) 2022-04-23 18:15:02 -07:00
move_list.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
move_list.h AGS: Added member initialization for CharacterExtras, MoveList 2022-05-05 22:41:08 -07:00
object.cpp AGS: Engine: implement add_waypoint_direct(), fix AddWaypoint's resolution 2024-03-28 12:01:52 +01:00
object.h AGS: Engine: add object and char assertions in Get/SetProperty functions 2023-09-02 13:23:59 +02:00
overlay.cpp AGS: Engine: safeguard Overlay.Create in case of non-existing sprite 2024-03-28 12:01:52 +01:00
overlay.h AGS: Added "clone" parameter to Overlay.CreateGraphical() 2022-05-08 11:37:49 -07:00
parser.cpp AGS: Parser fixes from upstream 2024-06-30 14:19:21 +03:00
parser.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
path_helper.h AGS: Don't mkdirs in the platform driver, return FSLocation instead 2022-03-31 20:04:43 -07:00
properties.cpp AGS: Replaced strcpy with snprintf in old string API impls 2022-06-19 20:50:24 +01:00
properties.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
region.cpp AGS: Suppress endless "unused param" warnings in script api 2022-04-24 16:00:05 -07:00
region.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
rich_game_media.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
rich_game_media.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
room_object.cpp AGS: Added animation volumes to save format 2022-05-10 21:18:01 -07:00
room_object.h AGS: Added "sound volume" param to all Animate() functions 2022-05-10 21:17:59 -07:00
room_status.cpp AGS: Engine: in legacy read save functions take game data ver as an argument 2023-09-02 13:23:59 +02:00
room_status.h AGS: Engine: in legacy read save functions take game data ver as an argument 2023-09-02 13:23:59 +02:00
room.cpp AGS: Engine: implement add_waypoint_direct(), fix AddWaypoint's resolution 2024-03-28 12:01:52 +01:00
room.h AGS: Engine: implement add_waypoint_direct(), fix AddWaypoint's resolution 2024-03-28 12:01:52 +01:00
route_finder_impl_legacy.cpp AGS: Engine: fix legacy pathfinder imprecision in some old games 2024-05-03 17:24:08 +02:00
route_finder_impl_legacy.h AGS: Engine: implement add_waypoint_direct(), fix AddWaypoint's resolution 2024-03-28 12:01:52 +01:00
route_finder_impl.cpp AGS: Remove no longer used move_speed global vars 2024-03-28 12:01:52 +01:00
route_finder_impl.h AGS: Engine: implement add_waypoint_direct(), fix AddWaypoint's resolution 2024-03-28 12:01:52 +01:00
route_finder_jps.cpp AGS: Remove unnecessary include of std/math.h 2023-06-06 08:59:58 +01:00
route_finder_jps.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
route_finder.cpp AGS: Engine: implement add_waypoint_direct(), fix AddWaypoint's resolution 2024-03-28 12:01:52 +01:00
route_finder.h AGS: Engine: implement add_waypoint_direct(), fix AddWaypoint's resolution 2024-03-28 12:01:52 +01:00
runtime_defines.h AGS: Engine: fixed room objects with ID >= 100 fail to Animate 2023-04-29 13:11:41 +02:00
screen_overlay.cpp AGS: Engine: ScreenOverlay.SetImage() accepts offset as arguments 2023-01-20 14:14:56 +00:00
screen_overlay.h AGS: Engine: ScreenOverlay.SetImage() accepts offset as arguments 2023-01-20 14:14:56 +00:00
screen.cpp AGS: Engine: made FadeIn and FadeOut functions look consistent 2023-04-29 13:11:41 +02:00
screen.h AGS: Engine: made FadeIn and FadeOut functions look consistent 2023-04-29 13:11:41 +02:00
script_containers.cpp AGS: unserialize dynamic objects using MemoryStream 2022-04-23 22:14:54 -07:00
slider.cpp AGS: Fix int vs int32 discrepancies 2022-05-03 23:36:12 +02:00
slider.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
speech.cpp AGS: Engine: report missing speech.vox as an "info", since this is optional 2023-08-13 10:58:26 +02:00
speech.h AGS: Added Game.ChangeSpeechVox and SpeechVoxFilename 2022-03-27 19:14:55 -07:00
sprite_cache_engine.cpp AGS: Moved SpriteFile class to a separate code unit for convenience 2022-03-17 21:49:22 -07:00
sprite_list_entry.h AGS: Gui control textures are rendered as gui sub-batches 2022-05-01 17:23:21 -07:00
sprite.cpp AGS: Removed update_polled_stuff_if_runtime() from data loading functions 2023-03-12 20:58:28 +00:00
sprite.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
string.cpp AGS: Engine: restored faster String.Chars and Length variants for ASCII mode 2023-11-02 20:06:27 +01:00
string.h AGS: Remove Duplicated Definition in Engine String Header 2022-04-16 01:26:51 +01:00
sys_events.cpp JANITORIA: Remove redundant semicolons 2024-02-08 21:20:02 +01:00
sys_events.h AGS: Engine: fixed few game warnings, may fill up the log in some games 2023-08-13 10:58:26 +02:00
system.cpp AGS: Engine: fixed System.Log() may cause exceptions with wrong format 2023-08-13 10:58:26 +02:00
system.h AGS: Engine: save vsync property when the result is known 2023-04-29 13:11:41 +02:00
textbox.cpp AGS: Replaced strcpy with snprintf in old string API impls 2022-06-19 20:50:24 +01:00
textbox.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
timer.cpp AGS: Engine: prevent invalid parameter in video player 2023-01-17 17:27:07 +00:00
timer.h AGS: Moved frame wait and user input check outside of VideoPlayer 2022-04-12 22:27:57 -07:00
top_bar_settings.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
translation.cpp AGS: Engine: bit more logging when loading a translation 2023-04-29 13:11:41 +02:00
translation.h AGS: Don't quit if setting translation failed on start 2022-03-27 19:14:54 -07:00
view_frame.cpp AGS: Merged BitmapFlip with engine's GlobalFlipType (same values) 2022-06-24 20:54:47 +01:00
view_frame.h AGS: Use 100 as a default animation volume, as it's relative anyway 2022-06-19 00:46:56 +01:00
viewport_script.cpp ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
walk_behind.cpp AGS: Fixing more trivial warnings 2022-06-18 01:08:54 +01:00
walk_behind.h AGS: Fixing more trivial warnings 2022-06-18 01:08:54 +01:00
walkable_area.cpp AGS: Fixing more trivial warnings 2022-06-18 01:08:54 +01:00
walkable_area.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00