Show Posts

You can view here all posts made by this member. Note that you can only see posts made in areas to which you currently have access.

Messages - Crimson Wizard

Pages: [1] 2 3 ... 429
First of all, to make this clear: you are running exactly same game in Windows 7 and Windows 10 and on Win7 it crashes like that?
What graphics renderer you choose in setup, and have you tried using different ones?
Have you tried running the game outside of editor?

Something that may hint a reason of a problem:
"program pointer is -3" means the game is loading the first room.
"gtags (470,200)" depending on circumstances can mean either GUI (if you have GUI with id = 470), but also initializing a sprite (in which case it is sprite #470 which is 200 pixels in width) (AGS error reporting is a bit mysterious).

Oh, I think I am beginning to understand.

One more question: is it possible to make this change as a hotfix now? If it actually lets to use plugins again not likely it may make things worse than they are. I'd like to release an update to ags 3.5.0 soon and it would be wonderful if this issue is also solved even if with some temporary code.

A small note, the latest Alpha 4 made in August has number of mistakes that may prevent building game correctly under certain circumstances: noteably building speech.vox or audio.vox (I was actually surprised no one reported these, but guess not much people actually test this version yet).
I was going to upload an update that fixes them, but decided to wait a few days more to see if the above issue with editor plugins will resolve.

I am afraid I don't fully understand the above, do we have to add this "resolve" part to the Editor code, or is it the plugin that has to have this?

Am I correct guessing that this will substitute the unsigned AGS.Types demanded by plugin with signed one?

Maybe it is best to open an issue on GitHub, since future changes to the plug-in system are probably determined by the choice made here.
Could you also elaborate a little on this, what changes to plugin system will be determined by this (or how)? Just want to be sure that I understand the situation well.

This is indeed the default behavior for "Y popup" GUI style, emulating Sierra games, because the only purpose of iconbar is to choose 1 icon by clicking on it and then make next click on the room.

But also, if you do a GetProperty() call for a non-existent property name, I don't think it will crash, just return a 0 or null (for text properties).

It will display error "there is no such property", and I actually think that's not a bad thing in current situation, since there is no other way to tell if it exists. At least user will be warned early instead of wondering why script does not work correctly.

User must set that property anyway, this is how it currently works in AGS: property only exists if it's set by user at design-time, and if they did it will be available for each object of corresponding type.
So, you cannot really do anything about that, because there is no script command that would create a new property, only one that sets new value to existing one.

Only practical approach here is to make a note in the module's description that game author should add certain properties in order to be using your module.

Sorry, they had packages for linux and I assumed they would have an installer/downloadable for windows.

Why on earth can't they just provide a Windows installer?
Yeah, this is bizarre ???. I'm guessing everybody just uses VS on Windows and their main audience is mac & linux, but still...
I opened an issue on their repo:

Lol, this looks like Linux users are trolling Windows users by not requiring to build from source on Linux and requiring to do so on Windows on contrary. Maybe they are angry on Microsoft for some reason?

From the looks of the code (and some info found in the web) the LocalFileSettingsProvider is made so you cannot pass any custom paths into it without rewriting it all... and even worse is that it uses "internal" (hidden) classes to make some work, which means its impossible to reuse them completely in custom implementation (as far as I can tell).

I recently had trouble to run the existing editor plugin with the 3.5.0 release.
The reason seems to be that all the AGS .net assemblies were changed to strong names. This is a breaking change, as the plugin compiled with an existing assembly (e.g. the plugin references AGS.Types) with a weak name is not compatible with the new one compiled with a strong name (see the following link for more details).

Is there a particular reason the assemblies now use a strong name?

I moved the discussion of the strongname and settings problem to the Editor development board, because it may take some time to resolve:

I think the problems are generally in terms of deployment, where the program is delivered using ClickOnce and installed per user. In that case you do end up with multiple installations, so using a strongname would override where the settings are loaded from. So the main purpose of the library is to just override the settings path (manually), so that you can store settings where you like.

Does the strongname signing give any other benefit for AGS rather than making settings system have consistent path? If not, then it looks like more trouble than good. Not only we loose compatibility with existing editor plugins for no big reason, but also dropped XP support primarily because of that (I am not saying that using .NET 4.5 is bad, but we don't really take advantage of it yet). After this problem with plugins was found it's bugging me that assembly signing may bring more problems or inconveniences in the future.

I wonder if there is any way to only override the settings path with the standard Microsoft's settings system. I'd like to take a look into that. If we could do that, would not that make things much easier for us?
If not, then this custom settings library is an extra option, although I agree that it's safer to use builtin solutions.
Another option is to use XML serializer that AGS already has (uses to save Game with), although in that case we would have to write our own logic for getting settings from the previous versions if we need that.

PS. For the reference, this seems to be an opensourced code of the default LocalFileSettingsProvider:

I tested Rulaman's Font Editor plugin, and it also fails at loading AGS.Types. Exception sais something like "public key token" value does not match what it expects.

For an external interface though, I would need to test it. Is there a plugin stub somewhere that I can test with?

Monkey0506's Android builder plugin is open source:
Rulaman's font editor also supposed to be open source, but the link to source is dead. I have very vague memories that I've seen the source on github, but maybe they're false.

I recently had trouble to run the existing editor plugin with the 3.5.0 release.
The reason seems to be that all the AGS .net assemblies were changed to strong names. This is a breaking change, as the plugin compiled with an existing assembly (e.g. the plugin references AGS.Types) with a weak name is not compatible with the new one compiled with a strong name
It was to get a namespace for the settings class, to differentiate between builds which are (effectively) portable and the actually releases where settings need to persist between versions. As long as the plug-in isn't mixed assembly, you can retrospectively sign it by decompiling and recompiling with a generated key.

Alright, this looks like another consequence that was not thought of beforehand. There is a number of editor plugins, Speech Center is one of the most popular ones, and there is at least one other I know - Rulaman's Font Editor. Does this means we need plugin author to come by and recompile the plugin? (idk what are other editor plugins in use)
From now on writing editor plugin was relatively simple, now if someone does that will have to know to do this signing too. And also, does not this mean that there should be two version of each plugin from now on - for old Editor and for the new one?

May there be an alternate solution to signing, like using some third-party settings library instead of Microsoft's one?
I remember you've mentioned this library, will it work without strongname? The strongname issue is mentioned in its readme, but it's not stated explicitly.

AGS 3.4.1 - Patch 4 released
Current release number:

For Android

For developers

Released: 10th September 2018

Previous stable version: AGS 3.4.0 forum thread

PLEASE TAKE A NOTE: In this version "Default" template is now named "Sierra-style".
(Need to make this warning, because several people have asked where did "Default" template go.)

This release is brought to you by:

- Alan v. Drake
- ChamberOfFear
- Crimson Wizard
- Gurok
- monkey0506
- Ryan O'Connor (one bug fix contribution)
- Scorpiorus (improvements to plugin drawing system)

And artists of the new Sierra-style template:
- CaesarCub
- Hobo
- Jim Reed
- ProgZmax
- Selmiak

Changes in the Patch 4:

 - Fixed dynamic array of Dynamic Sprites or Overlays could loose some of its elements after restoring a savedgame.
 - Fixed Debug(2) and Debug(5) commands (regression).
 - Fixed "warnings.log" was never created (regression).

Changes in the Patch 3:

 - Added scrollbars and zoom slider to the GUI editor.
 - Added one extra zoom step to the Room editor and fixed mouse wheel scrolling zoom slider by 3 steps at once instead of 1.
 - Fixed Undo history getting lost after saving the script.
 - Fixed crash when importing old game's rooms with interaction variables.
 - Fixed incorrect character names appearing after old game's import.

 - Reverted conversion of all graphics on load to 32-bit, made the game run in its native color again, but correctly convert to 32-bit display instead. This fixes certain bugs found in 16-bit games since the first 3.4.1 release.
 - Fixed pressing ALT+ combination on Windows sometimes caused another key to "stuck", endlessly triggering key events in game.
 - Fixed service key shortcuts (switching display mode, (un)locking mouse in window) did not work at particular stages of the game, like video playback and dialog options.
 - Fixed unwanted transparency on built-in GUI in 8-bit games.
 - Fixed engine was reporting string format errors as internal ones and not script's.
 - Fixed crash when loading an old game's room with interaction variables.

Changes in the Patch 2:

1. Now includes new "Sierra-style" template which substitutes elderly "Default" template and contains new age graphics.
Template topic:
2. Made small fixes to the Verb Coin template to make it compatible with 3.4.1 out of the box.

 - Font's line spacing and offset are now used when displaying GUI previews.

 - Removed limit on maximal asset files in a game package. (Now you may have over 10k voice files in speech.vox)
 - Fixed game refused to start at all if speech.vox has bad format.
 - Fixed DynamicSprite.SaveToFile() was not appending default  "bmp" extension if user did not specify one.

 - Updated port to work with 3.4.1 engine. Software renderer works again too (was broken in 3.4.0).

Changes in the Patch 1:

 - Removed game error reported when GUI coordinates were off the room limits.
 - Fixed crash in Direct3D renderer when alt+tabbing out of fullscreen mode.
 - Fixed OpenGL fullscreen mode was not minimized when you alt+tab from it.
 - Fixed Direct3D and OpenGL renderers unnecessarily applied anti-aliasing on utility sprites (used for transition effects) when "smooth scaled sprites" option was enabled.

What is new in 3.4.1

Common features:
 - Upgraded Windows version of AGS with Allegro v4.4 library (previously v4.2).
 - Implemented "RenderAtScreenResolution" game setting. When enabled, characters and objects are scaled in screen pixels rather than game pixels. (NOTE: it was always enabled for Direct3D in the past, but now you can set it to your liking)
 - Implemented VerticalOffset and LineSpacing properties for fonts.
 - Removed limit on Dialog Topics (was 500 topics per game).
 - Removed length limit on the names of Inventory, GUI and GUI Controls.
 - Removed length limit on the names of Hotspots and Objects.
 - Removed length limit on event handler names.

 - Removed legacy game compiler.
 - Raw compiled game data is now saved in "Compiled\Data" folder, as opposed to just "Compiled".
 - The speech.vox file is now not recompiled if game is quick-run (using F5). Engine is supposed to find newer files in the Speech folder.
 - Editor can now import games older than 2.72, and newer too (3.*) if you have extracted data files from compiled executable.
 - ScriptAPIVersion and ScriptCompatibilityLevel settings now have "Highest" option, which is meant for automatically enabling newest script API when upgrading old project in a newer editor.
 - Added new "Default Setup" pane, which works similarily to "General Settings" and lets you configure default values for game setup.
 - Added "Font Height (pixels)" readonly property to the Font's pane, which works for both WFN and TTF fonts and may be used as a reference.
 - Made Editor correctly detect modern versions of MS Windows for display on About dialog and when sending anonymous statistics.
 - New application icon to comply with 3.4.0 splash screen.
 - Fixed crash when importing old games which have extended editor version string saved in the project files.
 - Fixed unhandled exception occuring when user types "#undef", "#ifdef" or "#ifndef" on the last line of the script.
 - Fixed #ifver and #ifnver not working properly if version number had only one component (major version).
 - Few improvements to the game compilation made in hope to reduce occasional data corruption.

 - Fixed local variables not working in the switch's case expressions.
 - Fixed Strings in switch, making them compare by value again.
 - Fixed compiler mistakes caused by the use of objects of empty type (that is - struct without any variables in it).
 - Fixed few cases of possible compiler crashing when there is an unfinished statement in the end of the script.

Script API:
 - A new parameter StopMovementStyle is added to following functions: LockView, LockViewAligned, LockViewFrame, LockViewOffset, UnlockView. This parameter can be eStopMoving (default) or eKeepMoving.
 - DynamicSprite.CreateFromFile and SaveToFile now support path tokens and comply to the new file path rules (no writing files to the game's installation directory).
 - Added missing readonly properties to get Lighting/Tinting parameters for Character and Object: HasExplicitLight, HasExplicitTint, LightLevel, TintBlue, TintGreen, TintRed, TintSaturation, TintLuminance.
 - Added Mouse.SelectPreviousMode() and Mouse.IsModeEnabled(CursorMode) functions.
 - Added readonly properties to get Button's animation state: Button.Animating, Button.Frame, Button.Loop, Button.View.
 - Added GetFontHeight(FontType) and GetFontLineSpacing(FontType) functions.
 - Added setter for System.Windowed property, letting to change it at runtime, switching between windowed and fullscreen modes.
 - Added System.RenderAtScreenResolution property to change sprite rendering mode at runtime.

 - Added OpenGL renderer to Windows version.
 - Added support for switching between fullscreen and windowed modes at runtime using Alt+Enter key combination.
 - All supported hardware-accelerated graphic drivers (Direct3D and OpenGL) now run every game in 32-bit display mode by default, and convert game's graphics on load if that is required. This fixes loss of green hue precision in 16-bit games and allows to run 8-bit games, although latter is only partially supported: there are color mismatches and dynamic palette cycling is not working.
 - Partial support for plugins drawing on screen for hardware-accelerated renderers (Direct3D, OpenGL).
 - Added support for global configuration file, which works as configuration for all games and overrides default game's config file. Individual game user's config overrides global one in its turn. Global config's location is platform-dependent (this feature is currently disabled on Windows).
 - Implemented separate config option for game's shared data path, to keep it distinct from user-defined saves path.
 - Engine saves last Windowed and RenderAtScreenResolution mode states to the user config file.
 - Engine no longer writes and reads gamma level in saves, meaning that gamma keeps its current value when restoring a saved game.
 - Removed arbitrary limit on number of sprites rendered at the same time for hardware-accelerated renderers (Direct3D and OpenGL) (was 75), and another limit imposed on drawing entries for all drivers (was 200).
 - Engine now tries to get voice files from the Speech folder first, if one exists, and speech.vox later when quick-run from the Editor.
 - Fixed speech portrait was displayed below GUI, contrary to speech text.
 - Fixed ShakeScreen command was causing graphic artifacts when game is run with software renderer.
 - Fixed calling Character.ChangeView during idle animation results in new view being animated.
 - Fixed Speech.SkipStyle getter return value for eSkipTime case.
 - Fixed Speech.VoiceMode not returning correct values when speech.vox is not enabled/present.
 - Fixed AdjustVolumeWithScaling character's property not working with the new audio system.
 - Fixed volume drop was not applied to audio clips which begin playing during speech voice-over.
 - Fixed Game.SetAudioTypeSpeechVolumeDrop did not affect currently playing clips until next voice-over begins.
 - Fixed Game.TranslationFilename returning "default" instead of empty string if no translation is set.
 - Fixed engine was trying to locate "My Documents" folder on Windows Vista and higher even though it did not need it, and reporting internal error if such folder was not found, even though "Saved Games" folder is used instead.
 - Properly toggle console upon play.debug_mode variable change in script.
 - Added missing stubs for agsjoy plugin.

 - Fixed display mode selection was missing certain items.

KNOWN ISSUES (to be updated)

- iOS port is probably still not working with this version.
- When using Direct3D, game misses 1 bottom row and 1 rightmost column of pixels of game image when "Render sprites at screen resolution" is OFF. This also might cause slight image distortion. There's a suspicion that that is a bug in Microsoft's Direct3D driver since Windows 7.
- When running game in OpenGL fullscreen system cursor may be visible when over black borders.

It suddenly came to me that in theory it might be possible to save the opened room as a separate file into the preview (_Debug) folder instead of the game project, since engine supports reading rooms from outside the data package.
This way if you run the game with unsaved changes these changes will only be applied to a temporary room in _Debug, but not to the one in the project. And later you could close the room editor/AGS without saving it and reload one from project files.
Maybe even the whole game may be saved same way.

PS. Then again, the biggest problem of AGS is very limited UNDO command.

Sorry, my previous answer was not very accurate, so I decided to rewrite it.

In AGS room editing work like a separate editing process with its own save/load mechanic, and is not connected to the rest of the game data. There is even separate menu command for saving room.

After you edited room you may close it without saving (answer NO when it asks you if you want to save the room).

If it actually saves the room without asking when you close the editor, then that's perhaps a bug. I'd test that out.

But it also DOES autosave the room when you run the game, it cannot do otherwise.
The only way to work around that is to either make backup copies of your game or even better use source control utility that lets you switch between old and new states of your project files: like Git, Mercurial, SVN etc.

Great, thanks for confirming.

So, I found what is wrong, was just one silly mistake. Will be releasing another tiny patch soon.

Want to try and fix another error too:

But tbh I'm not really sure how that script works, since all it supposedly does is define a couple env variables but if you run it by hand it executes AGS and the game somehow (and completely scrambles your randr configuration if launched fullscreen as by default, but details). Might be the problem is just with the Itch client."

To clarify, the game does run when launched manually, but does not run when launched through some launcher?

Hi, I just upgraded to 3.4.1 Patch 3 from 3.4.1 Patch 1, and upon doing so, the debugging command to show walkable areas (i.e. Debug(2, 0)) no longer works for me.  Namely, when I call Debug(2, 0) nothing happens: the screen remains blank rather than showing an overlay of the walkable areas.  Is this a known issue?  Thanks!

I tested this out, and looks like the game switches to mask mode and then off immediately. If you hold key down it will blink between room background and the mask.
At first I thought Ctrl+ combinations are broken, but if you use other keys the result is same.

Pages: [1] 2 3 ... 429