Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Crimson Wizard

#3081
AGS 3.5.1 - Patch 10
Full release number: 3.5.1.17


For Editor
Spoiler

For Android
Spoiler

For Engine/Editor developers
Spoiler

Released: 2nd April 2022

Previous stable version: AGS 3.5.0 P10 forum thread


This release is brought to you by:

- Alan v. Drake
- Crimson Wizard
- eri0o
- fernewelten (fixes)
- James Duong (implemented "--console-attach" option for Windows)
- Morgan Willcock
- Nick Sonneveld
- rofl0r
- Pablo Navarro (fixes)
- Thierry Crozat (bug fixing)
- vga256 (bug fixing)



Summary

3.5.1 is a minor update after 3.5.0, which contains mostly utility additions, fixes and perfomance improvements.

For the reference, we currently have another major version in works, which is already usable although may be not as stable, and introduces a SDL2-based engine, planned to be released as 3.6.0. If you're interested you may find it here: https://www.adventuregamestudio.co.uk/forums/index.php?topic=58976.0



Changes in the Patch 10:

Engine:
- Fixed crash when visible viewport does not have any linked camera.
- Fixed ListBox.FillSaveGameList() may include save slots with negative slot number (e.g. when the save file has "*.-01" extension).
- Fixed potential crash after failed RunAGSGame() call.
- Fixed search for the game data by GUID when restoring a save belonging to another game;
   this was implemented in 3.5.1, but appeared to not work correctly.


Changes in the Patch 9:

Editor:
- Removed restriction on max dialog topics in the project. The dialog limit in the engine was removed in 3.4.1, but remained in the Editor by oversight.
- Fixed Audio Clip items in the project tree not displaying their IDs right after being renamed.

Compiler:
- Fixed crash occuring when compiler tries to report "Already referenced name as import" error.

Engine:
- Added "--translation" and "--no-translation" command-line arguments.


Changes in the Patch 8:

Engine:
- Clearer error messages for Get/SetProperty functions.
- Fixed PlayFlic() command fails to start the video (regression in 3.5.1).
- Fixed DrawingSurface.DrawSurface() not applying transparency parameter correctly if the drawn surface has alpha channel.
- Fixed @OVERHOTSPOT@ is not updated immediately when character's name changes while cursor is above that character.

Templates:
- In BASS template fixed right click not dropping currently selected item if cursor was hovering over another item.


Changes in the Patch 7:

Editor:
- Added "Layout -> Reset to Defaults" menu command.
- Editor will now reset panel layout to default state if loading layout fail for any reason.
- Default config is now saved also when the game is run in debug mode (F5). This ensures that the test run is using the latest Default Setup, if the user's config has not been created yet.
- Editor will now display an error if user tried to reserve too many channels for audio types.
- Fixed Editor failing to start if user preferences file is corrupted.
- Fixed "Use old-style custom dialog options API" was not set when importing pre-3.4.0 projects.
- Fixed comboboxes' drop-down arrows were not painted with the right color from a color theme.

Engine:
- Fixed program crash occuring if the game reserved too many channels for audio types.
- Fixed potential crash occuring when player loads a save made in a multi-frame room, but the room was since edited and no longer has as many frames.
- Fixed character may have incorrect Frame (property) values while turning.


Changes in the Patch 6:

Editor:
- Added line numbers in the dialog script editor.
- Fixed Dialog script loosing changes if the pane is closed or redocked.
- Fixed controls arrangement on the Dialog pane getting broken when it's redocked.

Engine:
- Fixed filepaths in scripts that have backslashes ('\') fail on non-Windows systems.
   All the (script) File functions will now convert backslashes in filepaths into forward slashes for compatibility.
- Fixed engine was still creating standard directories for game saves and data, even if user provided the custom paths for these.
- Fixed TextBox control crashing the game if it's empty and player presses Backspace.
- Fixed controls on a fully transparent GUI were not interactive (this is an original AGS behavior, which was unintentionally changed in 3.5.0 by mistake).

Compatibility:
- When running 3.5.0 games, treat fully transparent GUI as non-interactable.
   In AGS transparent GUIs may be still interacted with, but 3.5.0 introduced an unintentional (and undocumented) change to this, which was reverted in 3.5.1.

Android:
- Support global engine's config file when the game is run from the Launcher: it's located in the AGS games' parent directory, same place where android.cfg is.

WinSetup:
- Added "Custom game shared data path" to complement "Custom save path" option.


Changes in the Patch 5:

Contained no changes and was a formal re-release with only fixed program build instructions for Linux.


Changes in the Patch 4:

Editor:
- Fixed swapping of inventory item's numeric ID could lead to errors.
- Fixed crash when importing pre-3.* games with multiple script modules.
- Renamed "Enforce object-based scripting" setting to "Enforce post-2.62 scripting". This is for clarity.

Compiler:
- Fixed potential memory corruption when user script reaches max nested if/else blocks.

Engine:
- Also tell module name and approximate source line when reporting script import errors for the variables and local functions.


Changes in the Patch 3:

Editor:
- Fixed sprite file over 2 GB could not be loaded (regression since the last patch).

Engine:
- Further improvement to GUI perfomance: don't redraw GUI when the mouse cursor is hovering over or interacting with controls not leading to an actual visual change.
- Fixed ListBox items could become unaccessible if its font or height is changed leading to a disabled scrollbar.


Changes in the Patch 2:

Engine:
- Fixed speech lipsync getting disabled after loading another game with RunAGSGame().
- Fixed MOD/XM clips fail to play (regression).
- Fixed certain OGV videos fail to play (regression).
- Fixed software renderer was not updating game screen correctly when running a game with legacy "letterboxed" feature (regression).


Changes in the Patch 1:

Editor:
- Fixed script compiler sometimes was not specifying actual Dialog number when reporting errors in the dialog scripts.

Engine:
- Fixed Game.TranslationFilename always returning empty string (regression).
- Fixed GUI controls which were toggled from disabled to enabled state not responding to the mouse clicks until the mouse is moved (regression).
- Fixed OpenGL did not apply a Linear filter when "Render sprites in screen resolution" option is off.


What is new in 3.5.1

Editor:
- Added "Attach game data to exe" option to General Settings. This lets you to package game data separately from the game.exe (only important on Windows at the moment).
- Deprecated "Limit display mode to 16-bit" property in Runtime Setup as it's no longer used by the engine.
- Display aspect ratio in game resolution dialog.
- Implemented classic Color Picker dialog for the Color type values in the property grid, instead of the default one which does not allow user-defined colors.
- Improved tab switching performance for script windows.
- Editor will now enforce full game rebuild after upgrading an older project, this ensures that all scripts are recompiled with the new version rules.
- Fixed room lists in property editor were not updated after room number is changed.
- Fixed importing pre-3.* projects broken by incorrect assignment of "Game file name" property.
- Fixed importing Characters and GUI without sprites still created empty sprite folders.
- Fixed crash when exporting/importing Characters with no Normal View.
- Fixed translation compiler did not correctly save some of the escaped sequences, such as "\n".

Scripting:
- Implemented correct parsing of a "const string" function return type.
- Fixed implementing imported functions was forbidden in the room scripts.

Script API:
- Added GUI.Shown readonly property that tells whether GUI is active on screen. This is primarily for GUIs with "Popup At Y" style, because they hide themselves regardless of Visible property. Note that since 3.5.0 GUI.Visible only tells a script-set value.
- File.Open() now supports $CONFIGFILE$ tag which will try to open user config file for reading or writing regardless of where config is located on disk.
- Added System.SaveConfigToFile() which writes current engine settings to the user config file. Only the options that can be changed at runtime are written back at the moment.
- GetTranslation() now returns "const string" (was "string"). This is to prevent modifying returned string using old-style string functions, such as StrCat(), as this string may be allocated in the internal engine memory for its own use.

Engine:
- Support loading audio and video from data packages larger than 2 GB.
- Improved game data loading times by introducing buffered file stream. Initial tests showed 3-4 times faster file reading.
- Improved game perfomance by not reupdating all of the GUIs each time anything changes, instead only affected GUI will be updated each time.
- Some improvement to general script perfomance.
- Some improvement to script Dictionary and Set types perfomance.
- Room Object's Graphic property now can be assigned a sprite with index over 32767 and up to 65535. This restriction is due to internal data format, which cannot be fully fixed without breaking compatibility with plugin API. This may still be worked around by assigning a View, as View's frames may contain sprites of any index available.
- Similarily, Object's View, Loop and Frame can now be assigned a value over 32767 and up to 65535; not that this was ever an issue...
- Removed arbitrary limit of 1000000 dynamic array elements (now supports over 2 billion).
- Dialogs with no enabled options left will be now stopped, instead of raising script error.
- Engine will not longer quit the game when failing to write a save, but simply display an error on screen (...why this was a thing in the first place?!).
- When restoring a save engine will now try to match game pack by GUID rather than using exe/pack name. This resolves potential problems when game package may have different name in distribution to another system. Also makes saves in multi-game collections more reliable.
- In Debug game mode allow to toggle infinite FPS mode (prior it could not be turned off).
- Expanded text parser error messages for easier debugging.
- Adjusted all the command-line options to have consistent prefix convention, where all full-name options must be preceded by double-dash, and one-letter options by single dash.
- Added "--localuserconf" command and similar global config option which tells engine to read and write user config in the game's directory rather than using standard platform path. Game dir must be writeable for this to work.
- Added "--conf" command which forces engine to read only explicit config file on startup.
- Added "--user-data-dir" and "--shared-data-dir" commands for setting save game directory and shared app data directory from command line (this corresponds to existing options in config).
- Fully configurable log output (in both game config and command line) allows to set up which message types and groups are printed by which output methods (sinks), including: file, system console, in-game console. "warnings.log" is now created only if file log was not requested by user.
- Added "--log-" set of command line options for setting up log output.
- Added "--tell-filepath" option for printing known engine's and game's file locations.
- Added "--tell-gameproperties" option for printing some of the game's general settings.
More information on log config and --tell commands currently may be found in following text file: OPTIONS.md
This has to be added to the manual eventually.
- Support proper lookup for Allegro 4 library resources (such as its own config and digital MIDI patches) in the game directory.
- Engine will no longer precreate directories for common files: saves, user config, shared files and so forth, - before actually having to write these. This ensures that no new directories are created on your disk without actual need. Also this fixed a problem that could happen if someone deleted e.g. a game's save directory while game was running.
- Fixed running game from another directory by passing its relative filename as command-line argument: in this case engine was incorrectly using its own directory to search for external game data, opening files for reading by script command, and so on.
- Fixed some of the engine's own hotkeys (such windowed/fullscreen mode toggle) not working during certain skippable game states.
- Fixed overlay was set to wrong position if it were using TextWindow gui and either its text or X, Y properties got changed.
- Fixed crash occuring when the speech is using text window gui with zero Padding and the speech text is an empty line.
- Fixed characters and room objects were not updating their looks if their current graphic was a Dynamic Sprite, and that sprite was modified with ChangeCanvasSize, CopyTransparencyMask, Crop, Flip, Resize, Rotate or Tint function.
- Fixed Views' frames keeping reference to deleted Dynamic Sprites causing crashes. Now they will be reset to dummy sprite 0 for safety.
- Fixed engine crash when button's graphic is set to sprite out of range.
- Fixed animated cursor's normal graphic reappearing in between animation frames if mouse mode is being repeatedly reassigned, for example in rep-exec script.
- Fixed certain interactions did not work with GUI if it was made fully transparent.
- Fixed ListBox.FillSaveGameList() search pattern, it included files which contain save filename pattern but do not exactly match; for example: "agssave.001_".
- Fixed engine was ignoring audio files in game directory when running games which use old audio system.
- Fixed crash in Direct3D and OpenGL renderers that occured if game uses a plugin that performs software drawing on screen, and one of the rooms is smaller than the game's resolution.
- Fixed Direct3D was assigning wrong fullscreen refresh rate sometimes, slowing alt-tabbing.
- Fixed "--test" mode was lost upon restoring a save.

Engine Plugin API:
- Added IAGSEngine::GetRenderStageDesc() function which returns current render stage parameters. As of this version these parameters include 3 transformation matrixes, allowing any 3D render plugin to stay compliant to engine's scene rendering.

Compatibility:
- Fixed engine was trying to read unnecessary data when loading pre-2.72 games.
- Fixed "upscale" mode for old games (was broken in 3.5.0). Also engine will now try to detect if "upscale" mode wanted by reading old config options (if they are present).
- Fixed GUI.Visible not returning expected values for GUIs with "Popup At Y" style in pre-3.5.0 games, breaking some older games logic.
- Fixed potential buffer overflow when reading pre-3.1.0 games with old dialog script texts.
- Fixed engine was applying player's position too early when ChangeRoom was called for 2.72 and earlier games, which could result in wrong placement in the new room if the character was walking right before the transition.

Android:
- Corrected game scanning in AGS launcher, now it will work consistently with the desktop ports, and detect any compatible game data files named "*.ags" or "*.exe".

OSX:
- When looking for game files engine will no longer use hardcoded filename, will search for any compatible pack file instead.

Windows:
- Windows version of the engine now reads global configuration file. It is looked up in "%USERPROFILE%/Saved Games/Adventure Game Studio/acsetup.cfg"
- Default log file location is now also in "%USERPROFILE%/Saved Games/Adventure Game Studio".
- Added "--no-message-box" command line option to hide message boxes when alerts are raised. These messages will be still printed to log (if one is enabled).
- Added "--console-attach" command line option to try attach to the parent process's console. This is useful if you run game from command line and want to see engine's log in the console.

WinSetup:
- Fixed changing fullscreen mode from "use current desktop" to explicit resolution on save.







Thanks to everyone who contributed to and tested this version!



#3082
For information, 3.6.0 Beta now includes extended Button.Animate that has "starting frame" among the new parameters.
#3083
This error usually means that there have been a file corruption. For example: program crashed during save, operating system crashed, power outage etc.
Of course there's certain chance of having a mistake in the editor itself. But it's impossible to tell without knowing circumstances of how this happened, for example having a file backed up small time before it went wrong, and knowing the last things you did to it.

Error messages sais that "finished reading at 0", probably the file is zero size?
I don't think room itself is recoverable, but it's better to check whether room script remains as it is a separate file called room7.asc. If it still has script inside, then it may be kept and copied over into the recreated room.

I strongly recommend doing regular backups, or use "version control" tool when working on a project.


Quote from: Peegee on Fri 01/04/2022 10:18:52
I found that it was starting to be sensitive, weird, esoteric bugs and finally the level has crashed. Do I risk the same problem if I restart the level from zero, am I reaching the limits of the software?

It's hard to tell without knowing what bugs were there, it may be a good idea to pay attention to these, and when they happen find out why, or ask here.

Quote from: Peegee on Fri 01/04/2022 10:18:52
it's starting to take a lot of data, lines of code (10800 in the global script for example)

There got to be a technical limit for everything, but it's not defined by the number of lines, it's more complicated.
I've seen (much) larger global scripts than 10000 lines; but while it should work in theory, it is still better to split your code into multiple script modules, for convenience.
In any case, i think, if it were because of global script, it would be the global script not running correctly, not the room breaking up.
#3084
Updated to Beta 2
(use download links in the first post)

Editor:
- Fixed saving of 16-bit sprites with "Sprite storage optimization" enabled.

Script API:
- Extended Button.Animate() to have blocking style, direction and starting frame parameters.

So now it is
Code: ags
Button.Animate(int view, int loop, int delay, RepeatStyle=eOnce, BlockingStyle=eNoBlock, Direction=eForwards, int frame=0);

Note that the default value for BlockingStyle is eNoBlock, unlike for characters and objects, because historically button animations were nonblocking.

Engine:
- In the new key input mode, only key state is only updated once a game frame. This prevents situations when, for example, calling IsKeyPressed during one script callback may return different results without explicit engine updates (Wait calls) in between.
As one of the consequences, this means that the following code will no longer work:
Code: ags

while (!IsKeyPressed(eKeySpace)) { }

And must be:
Code: ags

while (!IsKeyPressed(eKeySpace)) { Wait(1); }


- 24-bit wav PCM support, comes with the new sound library.
- Fixed repeatedly execute callback was called numerous times in one frame right after any blocking action.
- Fixed some mp3 sounds were not playing a bit of sound in the end.
- Fixed AudioChannel.Position return value was incorrect right after successful Seek.
- Fixed 1 extra chunk of sound from the old position could be played after Seek.
- Fixed room debug overlays were not scaled properly if room masks resolution is other than 1:1.
- Fixed missing log group letter id for "script" ('s') used in config and command line.
#3085
This may be a little early, but i finally found time to implement an experiment that recreates spritefile (acsprset.spr) from the project data + sprite sources.
This is based on 3.6.0 Beta, so keeping things minimal.

The opened ticket: https://github.com/adventuregamestudio/ags/pull/1594
The experimental build may be found here, it's based on the latest 3.6.0: https://cirrus-ci.com/task/5730993683300352

At the moment it works like this:
* Editor no longer fails opening a game with the missing acsprset.spr; instead it creates it with a single dummy 1x1 sprite at index 0 (it is necessary as a placeholder to prevent internal errors).
* A new command added, for the time being it has to be called by hand, File -> Recreate Sprite File from sources. This command completely overwrites current acsprset.spr by reimporting every sprite that has a source reference. For those which do not it either tries to get a image from existing acsprset.spr, and if there's none, then creates a dummy clear image of the same size, at least to have something.

The plan is probably to suggest user to run this command automatically upon opening the game too. But we want to test this process through first.

Theory is, this feature will allow to fully recreate acsprset.spr from sources, and thus you no longer have to keep this file under the source control, etc. This may also improve team collaboration experience.


PS. The original idea of having sprites as separate files within a project is still recorded, but suggested for "ags4", if anyone is wondering: https://github.com/adventuregamestudio/ags/issues/1281
#3086
For running the game in browser you need to set up a server. Like Khris said, you can make a local server on your machine using any appropriate software. eri0o recommends python3 http.server utility, personally I used this tool for chrome, because latest python3 does not install on my Windows 7.

There's also a dedicated forum thread about AGS web port, I recommend reading it, and perhaps ask any questions there:
https://www.adventuregamestudio.co.uk/forums/index.php?topic=59164.0
#3087
@greg, I think i fixed the debug overlay here:
https://cirrus-ci.com/task/4631982184333312
#3088
Quote from: greg on Sun 27/03/2022 22:10:09
Sure, here's a screenshot: https://drive.google.com/file/d/1HK2B1U6ct4WUo2w1x2lAr-zaZBPLsxga/view?usp=sharing

The mask is in the top-left quarter of the screen.  I'm trying to make it full-screen, as in 3.5.1.

I'm thinking that this error happens if mask resolution in the room is 1:2, half of the background size, and engine forgets to scale the debug image to the room's size.
#3089
Quote from: greg on Sun 27/03/2022 20:43:50
3. For the masks toggled by the Debug(2, n), is there a way to adjust their size (e.g. to make them full screen)?

I cannot guess what does this mean, are they not overlaying correctly? Could you post a screenshot?

Quote from: greg on Sun 27/03/2022 20:43:50
I tried adjusting General Settings > Rooms > Default mask resolution, but it had no effect.

This setting means the mask's granularity relative to the room background, i.e. 1:1, 1:2 etc, the larger the second value is the less precise the mask is.
This affects every interaction with the mask: hotspot clicks, pathfinding on walkable area, and so on.
#3090
@greg, thank you for reporting; i now fixed couple of mistakes in both Seek and position reporting after seek. Besides wrong position report it also played one buffered chunk of previous position after Seek.

Here's goes another build:
https://cirrus-ci.com/task/6670891743444992
#3091
@nikolaelf, until the game author answered anything, you may try running the game with the newer version of the engine, as suggested by eri0o in a comment above. As the newer engine has placeholders for these achievements functions, which means that the game may run without necessary dlls, but achievements wont work.

If such approach sounds fine to you, you may download this latest stable version of AGS (the game creation tool):
https://github.com/adventuregamestudio/ags/releases/download/v.3.5.1.16/AGS-3.5.1.16-P9.zip

you dont have to install the tool itself, but extract only 1 file called "acwin.exe". This file is the game engine runtime (it's a part of every game made with AGS).
Copy that file to the game's folder, and run it instead of the game's exe.

This is not a very "pretty" way to run the games, but may be used as a temporary solution, until the author or someone else solve your issue.


Regarding directX, AGS engine requires DirectX 9.0 to use Direct3D renderer, and DirectX 5.0 minimal to use "Software" renderer. DirectX 9.0 may be installed in parallel with DirectX 12. I dont think there will be any issues there, in the worst case you'll have a useless program on your PC, which you may uninstall later.
But I doubt this will help with the missing or non-working dll.
#3092
@greg, sorry for that! I've been adding something to animation commands, which will be announced for the next update, and there was one small mistake...

Here's a link to another fixed build (it will be available roughly 20 mins after posting):
https://cirrus-ci.com/task/6209775263285248

Quote
Also, I noticed that the numerical values of internal enums (eBlock, eNoBlock, eForwards, eBackwards) have changed from AGS 3.5.1.  For example, instead of 0/1, eForwards and eBackwards are 1062/1063.  I'm assuming that's intended?

These constants did not change at least since 3.2.1 (this is as far as we can look back into the code history), but I know that Animate functions also must accept 1 and 0 (or true and false) for Direction and Blocking parameters.
#3093
That's just a guess, but it could be a limitation of the .NET control, because each loop is represented as a child control within a larger panel. Maybe it cannot make more, or cannot position them further. You may already notice there's something wrong with the "Create new frame" button on the last loop - it's shifted up relatively to the frames, compared to others.

We may do some experiments or research to find out, but in any case, you probably could split this view into multiple ones?


PS. opened a ticket regarding possible optimization to the view editor, that may prevent this:
https://github.com/adventuregamestudio/ags/issues/1588
#3094
So, in regards to jumping after blocking action. After some debugging, it's confirmed that there are a lot of repeatedly_execute events get queued and then called at once as soon as blocking action ends. Basically, instead of 1 rep-exec, there's like 20 rep-execs called in a quick succession.

This may be related to some recent changes in the engine, because previously AGS did not let schedule more than 5 events at once and would simply quit the game with "internal error" if this happens. Removal of event queue limit is not a problem itself, but it seem to hide some other problem where it would keep accumulate rep-exec events when it really should not.

UPDATE:

This is the temp build with fix: https://cirrus-ci.com/task/6054112394477568
#3095
Quote from: eri0o on Thu 24/03/2022 00:39:46
Is this line EXACTLY:
Code: ags
ViewFrame* tmp = Game.GetViewFrame(player.View, player.Loop,  player.Frame);

Because if it is, this another bug, with I thought we had fixed...
https://github.com/adventuregamestudio/ags/issues/802


This is happening as a combination of 2 reasons.
1) Engine allows to set Character's Frame directly without checking for validity, not even a warning. This is a surprise to me.

2) The game script has a mistake:
Code: ags

          player.Frame = player.Frame+1;
          if(tmp.LinkedAudio != null)
          {
            tmp.LinkedAudio.Play();
            if(player.Frame >= Game.GetFrameCountForLoop(player.View,  player.Loop))
              player.Frame = 1;
          }

if you notice, the player's frame range is only tested if linked audio is not null. Normally it should be checked always, outside of the LinkedAudio "if".

3) The question remaining is, why does this error happen only when the key was held down during blocking action, and not all the time.


UPDATE After fixing the above script error I was able to reproduce the problem Stranga was talking about: if i hold down a movement key during the blocking action, the character jumps across the screen after blocking action is over.

Code: ags

          player.Frame = player.Frame+1;
          if(tmp.LinkedAudio != null)
          {
            tmp.LinkedAudio.Play();
          }
          if(player.Frame >= Game.GetFrameCountForLoop(player.View,  player.Loop))
              player.Frame = 1;
#3096
Quote from: shaun9991 on Fri 25/03/2022 19:42:33
I'm looking to implement a little "ease of life" feature into my game - once the player has typed the name of their Save game, it will be cool if they could just press the Enter/Return key for the game to save and the Save gui to close (rather than having to then click the "Save" button with the mouse after they've typed it)

The text box control has OnActivate event which is called when player presses enter; add a function for that event and call Save button's handler from there.
#3097
When testing under debugger it may be a good idea to enable "Multitasking mode" either using script command or config setting. Without "miltitasking" mode the input buffers are cleared on switching in and out of the game window, which also happens when breakpoint is hit.
#3098
Quote from: Stranga on Tue 22/03/2022 23:04:16if you hold down a movement key while interacting with a hotspot after the interaction completes the player is jolted in the direction of the key being held across the room. Seems to only happen if the game has entered a blocking sequence of some sort, maybe remembering key inputs during the hotspot interactions and playing them right after.

If it were in on_key_press, i would assume that maybe it does not process and clear the key buffer each frame during a blocking action.
But since the action keys are processed in rep-exec, i'm not certain. I will have to do some tests.
#3099
Right, sorry, it should be AGS2Client.dll, which probably uses agsgalaxy.dll in turn (game -> ags2client.dll -> agsgalaxy.dll).

If reinstalling does not work, it should be possible to download it separately, but I failed to find actual download link right now; maybe someone else could post it.
#3100
Quote from: nikolaelf on Tue 22/03/2022 20:41:11
I am afraid if I’ll reinstall the game, it might not install the dll again.

I don't think you should be afraid of that; but agsgalaxy.dll is also available for download separately iirc; it's not made by the game authors, but by a separate developer and used by game makers for GoG releases.
SMF spam blocked by CleanTalk