forked from adventuregamestudio/ags
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changes.txt
4148 lines (3919 loc) · 223 KB
/
Changes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
REVISION HISTORY
================
VERSION 3.5.0 - Alpha
Common features:
- Support for large files: compiled game, sprite set, room files now may exceed 2 GB.
- Allow room size to be smaller than the game's resolution.
- Removed fonts count limit.
- Raised imported sprites count limit to 90000 and removed total sprite count limit
(this means you may have around 2 billions of dynamic sprites).
- Removed length limit on the Button and TextBox text.
Editor:
- Editor requires .NET Framework 4.5 to run. Dropped Windows XP support.
- Editor preferences are now stored using .NET configuration model, instead of the
Windows registry.
- Added support for custom UI color themes.
- Game and room templates are now by default saved in AppData/Local/AGS folder.
Editor finds them in both program folder and AppData.
- New revamped sprite import window.
- Sprites that were created using tiled import can now be properly reimported from source.
- Added context menu command to open sprite's source file location.
- Using Magick.NET library as a GIF loader. This should fix faulty GIF imports.
- New sprite export dialog that lets you configure some export preferences, including
remapping sprite source paths.
- New navigation bar in the room editor, which allows to select any room object
or region for editing, show/hide and lock room objects and regions in any combination.
These settings are saved in the special roomXXX.crm.user files.
- Improved how Room zoom slider works, now supports downscale.
- Added "Export mask to file" tool button to the Room Editor.
- Removed Locked property from the Room Object, objects are now locked by the navbar.
- Split GUI's Visibility property into PopupStyle and Visible properties.
- Added Clickable, Enabled and Visible properties to GUI Controls.
- "Import over font" command now supports importing WFN fonts too.
- Display audio clip length on the preview pane without starting playback.
- Added "Always"choice to "Popup message on compile" preference. Successful compilation
popup will only be displayed if "Always" choice is selected.
- Added shortcut key combination (Shift + F5) for stopping a game's debug run.
- Don't display missing games in the "recent games" list.
- Build autocomplete table a little faster.
- Corrected .NET version query for the anonymous statistics report.
- Fixed sprite folders collapsing after assigning sprite to a View frame or an object.
- Fixed view loops displayed with offset if the view panel area was scrolled
horizontally prior to their creation.
- Fixed MIDI audio preview was resetting all instruments to default (piano) after pausing
and resuming playback.
- Fixed MIDI audio preview had wrong control states set when pausing a playback.
Script API:
- Introduced new managed struct Point describing (x,y) coordinates.
- Implemented Viewport and Camera script classes which control how room is displayed on screen.
- Implemented Screen struct with a number of static functions and properties, which notably
features a reference to the primary Viewport. Deprecated System's ScreenWidth, ScreenHeight,
ViewportWidth and ViewportHeight in favor of Screen's properties.
- Added Room.Camera property that references primary room camera.
- Replaced Alignment enum with a new one which has eight values from TopLeft to BottomRight.
- Renamed old Alignment enum to HorizontalAlignment, intended for parameters that are
only allowed to be Left, Center or Right.
- Added new script class TextWindowGUI, which extends GUI class and is meant to access
text-window specific properties: TextColor and TextPadding.
- Added new properties to GUI class: AsTextWindow (readonly), BackgroundColor, BorderColor,
PopupStyle (readonly), PopupYPos.
- Added Button.TextAlignment and Label.TextAlignment.
- Added missing properties for ListBox: SelectedBackColor, SelectedTextColor, TextAlignment,
TextColor.
- Replaced ListBox.HideBorder and HideArrows with ShowBorder and ShowArrows.
- Added TextBox.ShowBorder.
Engine:
- New pathfinder based on the A* jump point search.
- Implemented new savegame format. Much cleaner than the old one, and easier to
extend, it should also reduce the size of the save files.
The engine is still capable of loading older saves, temporarily.
- Implemented support for sprite batch transformations.
- Implemented custom room viewport and camera.
- Replaced number of fatal errors reported for incorrectly called script functions with
a warning to the warnings.log instead. This is done either when arguments may be fixed
automatically, or script command simply cannot be executed under current circumstances.
- Expanded some of the error messages providing more information to end-user and developers.
- On Linux improved CPU yield function, this supposedly may reduce CPU usage.
Windows:
- Windows version of AGS is now built with MSVS 2015 and higher.
VERSION 3.4.3 - Patch 1, February 2019
Engine:
- Fixed serious mistake that would cause crashes in plugins which export their own
managed types for game script.
Linux:
- Fixed compilation against recent Allegro 4.4.3 release.
- Updated prebuilt binaries to be compatible with Debian 8 (jessie) and higher.
VERSION 3.4.3, February 2019
Common features:
- Removed restriction preventing GUIs to be larger than the game's screen.
Editor:
- Added missing audio options to Default Setup.
- Fixed GUI and Room editors sometimes having larger scrollable area than necessary.
- Fixed editable area was not resized when GUI size changed.
- Fixed TextWindow GUI's elements could be deleted or moved in the editor with key
controls with no means to restore them.
- Don't modify filesystem permissions in Compiled directory when compiling the game.
Editor no longer requires non-standard "takeown.exe" utility.
- Fixed Windows Explorer was sometimes locking the game files during compilation.
- Fixed rooms not being rebuilt when running game just created from a template.
- Fixed translations were not updated or available at all for the test run unless the
game was fully rebuilt.
Engine:
- Allowed engine to return integer of "0" value from script functions that are "void"
by nature, for compatibility reasons. This may fix running particular old games.
- Fixed const-sized char[] arrays in managed structs did not work correctly and could
even cause engine to crash.
- Fixed some compilers could instigate a crash in the on_event callback if it was called
before the first room is loaded.
- Prevent game from crashing if there was an attempt to use a non-existant font index.
- Fixed crash when calling DisplayTopBar with a title longer than 200 characters.
- Fixed DisplayTopBar() was displayed on screen for the time calculated from the length
of it's title rather than it's message text (regression).
- Fixed built-in inventory screen could crash the game again (regression).
- Made engine fallback to defaults if config contains invalid graphic scaling setting.
- Fixed crash in the Software renderer which was occuring if it failed anytime after
setting display mode but prior to initializing scaling filter.
- Fixed graphic artifacts looking like thin vertical lines around sprites when running
OpenGL renderer (aka "texel leaking").
- Fixed OpenGL not displaying tinted sprites at all if tinting shader does not work
(now will display sprites without tint).
- Fixed 8-bit sprites could have broken colours if game is run using Direct3D or OpenGL.
- Fixed broken colours during fade-in and fade-out in 16-bit games.
- Fixed possible crash occuring when switching in and out the game window while game is
being shut down.
- Improved a warning message displayed when sound driver was not initialized, and added
a hint for players on how to supress it.
- Fixed double error message displayed if the game has an unsupported data format.
Linux:
- Fixes Linux game launch script (fixes issues with itch.io client).
Android:
- Long press on "Back" button now calls in-game menu (was displaying exit confirmation).
This change was made to counter removal of "Menu" button on many modern devices.
- Fixed long press on "Back" and "Menu" buttons not handled correctly on some devices.
WinSetup:
- Always provide at least two standard fullscreen modes for selection, even if graphics
driver failed to return a list of supported modes.
NOTE: VERSION 3.4.2 was cancelled and never released: the WIP build was renamed to 3.5.0.
VERSION 3.4.1 - Patch 4, September 2018
Engine:
- 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).
VERSION 3.4.1 - Patch 3, July 2018
Editor:
- 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.
Engine:
- 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.
VERSION 3.4.1 - Patch 2, May 2018
Editor:
- Font's line spacing and offset are now used when displaying GUI previews.
Engine:
- Removed limit on maximal number of asset files in a game package.
- 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.
Android:
- Updated port to work with 3.4.1 engine. Software renderer works again too
(was broken in 3.4.0).
VERSION 3.4.1 - Patch 1, January 2018
Engine:
- 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.
VERSION 3.4.1, December 2017
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.
- Implemented VerticalOffset and LineSpacing properties for fonts.
- Removed limit on Dialog Topics (was 500 topics per game).
- Removed length limit on the script names of Inventory, GUI and GUI Controls.
- Removed length limit on the script names of Hotspots and Objects.
- Removed length limit on event handler names.
Editor:
- 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.
- Few improvements to the game compilation made in hope to reduce occasional
data corruption.
Script:
- 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.
- 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).
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.
Engine:
- Added OpenGL renderer to Windows version.
- Partial support for plugins drawing on screen for hardware-accelerated
renderers (Direct3D, OpenGL).
- Added support for switching between fullscreen and windowed modes at runtime
using Alt+Enter key combination.
- All supported renderers now run 16-bit and 32-bit games in 32-bit display
mode by default, and convert game's graphics on load if that is required.
Hardware-accelerated renderers (Direct3D and OpenGL) are also allowed to run
8-bit games, converting graphics to 32-bit at runtime.
This measure improves Software renderer work on contemporary systems, and fixes
loss of green hue precision in 16-bit games when they are run with Direct3D or
OpenGL.
NOTE: 8-bit dynamic palette cycling is still not supported for hardware-
accelerated drivers.
- 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 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.
WinSetup:
- Fixed display mode selection was missing certain items.
VERSION 3.4.0 - Patch 4, March 2017
Editor:
- Improved Font preview, now it displays all 256 supported characters and
resizes itself to accomodate these on the grid properly.
- Fixed game compilation on systems which have Japanese ANSI or similar locale
as default locale for non-Unicode applications.
- Fixed Linux binaries were not copied to the Compiled folder if AGS Editor is
installed to "C:/Program Files" and run in a non-administrator mode.
Engine:
- Fixed toggling mouse lock in window with Ctrl+Alt did not work all the time.
VERSION 3.4.0 - Patch 3, February 2017
Common bug fixes:
- Fixed program crash in Engine and Editor when loading/importing a game that
contains file with name longer than 50 characters.
Editor bug fixes:
- Do not copy hidden and system files into final directories when building the
game.
VERSION 3.4.0 - Patch 2, February 2017
Script API:
- Extended the list of System.OperatingSystem possible return values;
now supports eOSAndroid, eOSiOS, eOSPSP
Editor bug fixes:
- Fixed incorrect Unicode-to-ANSI string conversion during game compilation
which caused text containing non-latin characters become random mess in game,
even if game fonts compiled to the proper ANSI codepage.
Engine bug fixes:
- Fixed mouse cursor stuck at the left border of the screen when using OpenGL
renderer (Android & iOS ports).
- Fixed InventoryScreen() script function caused game to crash if particular
resources are not available.
- Fixed built-in inventory screen not working with Direct3D and OpenGL
renderers.
- Fixed obsolete gfxfilter names are printed when using --help argument.
Cosmetics & convenience:
- Corrected error message displayed when engine cannot get write access to the
disk (e.g. no more telling to not run from CD on Android).
Manual:
- Added information on static extenders.
VERSION 3.4.0 - Patch 1, November 2016
Editor:
- Fixed #if(n)ver preprocessor directive failed to properly compare versions
if the current and required versions have different number of digits.
Engine:
- Returned support for some older config options related to graphics mode,
so that the engine would be able to use old config files.
- Fixed graphics mode initialization failure in certain less common setup
cases, such as when requested window size was larger than current
desktop resolution, or when the final mode appeared smaller than the
precalculated one.
- Fixed couple of memory leaks occuring when saved game is restored.
- Fixed rare crash when restoring a game while having unreleased DrawingSurface
pointers.
- Fixed compilation in C++11 mode.
WinSetup:
- Fixed "native game resolution" mode choice was not properly restored when
loading config file.
VERSION 3.4.0, September 2016
Common features:
- Added support for building game for multiple platforms (Windows and Linux
options are maintained now).
- Added custom game resolutions.
- Added extended WFN font support (up to 256 characters).
- Made custom property values modifiable at runtime.
- Removed limit on custom properties number (was 30 properties per project),
increased maximal property name and value length.
- Removed limit on GUI Control number (was 30 per GUI),
increased maximal control name length.
- Removed limit on script modules number (was 50).
- Added Locked property to room Objects.
- Added Padding property for TextWindow GUI.
Editor features:
- New splash screen.
- Exposed Clickable property for room Objects in the Editor.
- Exposed TintLuminance property for room Regions in the Editor.
- Added "Close all tabs" command for the pane's context menu.
- Added Preferences option "Prompt dialog on closing multiple tabs".
- The sprite editor now highlights drop targets when you drag sprites around.
Editor Plugin API:
- Exposed GUI Panes to plugin API.
Engine features:
- Added support for any runtime display resolution (now restricted only
by your system specifics).
- Added support for vertical sync in Direct3D rendering mode.
- Made engine try to use all implemented graphic renderers in the
order of priority, if user selection failed to initialize.
- Rised default sprite cache limit for desktop platforms to 100 MB (was 20).
- Game writes latest translation and mouse speed setting to config file
on exit.
Scripting features:
- Added managed user structs; although currently limited to containing only
non-pointer variables in them.
- Added support for dynamic arrays in non-managed structs.
- Added support for dynamic array as return value of the struct's
member function.
- Added support for static extender functions.
- Added "do..while" kind of loop, in addition to previously existing "while".
- Added "for" operator and related loop construct.
- Added "switch" and "case" operators and related branching construct.
- Added "break" and "continue" operators working in any loop or switch.
- Added missing compound assignment operators (*=, /=, and so on).
- Made preprocessor macros usable in definition of another macro.
- Added "#region" and "#endregion" preprocessor commands.
Script API:
- Added Script API version switch to the project's General Settings. For every
supported API version a "SCRIPT_API_vXXX" macro is introduced, where XXX are
version numbers.
- Added Script Compatibility Level switch to General Settings. For every
compatible version a "SCRIPT_COMPAT_vXXX" macro is introduced.
- Added AudioChannel.Speed property.
- Added CharacterDirection enum and optional "direction" parameter
for Character.ChangeRoom().
- Added Character.FaceDirection().
- Added Character.DestinationX and Character.DestinationY properties.
- Added RunActiveOption() and Update() member functions to the
DialogOptionsRenderingInfo type.
- Extended Dialog Options API: added support for dialog_options_repexec() and
dialog_options_key_press() functions to improve handling of the custom
dialog options; added related compatibility project option and support for
"NEW_DIALOGOPTS_API" macro in scripts.
- Added game.dialog_options_highlight_color variable.
- Added File.Seek() function and File.Position property.
- Added IsInteractionAvailable() method to Hotspot, Object and
Character types.
- Added Game.AudioClipCount property and Game.AudioClips[n] array.
- Added Game.IsPluginLoaded().
- Added GUIControl.ZOrder property.
- Added GUI.Click() and Button.Click() functions which call
OnClick event handler of corresponding GUI or button.
- Added GUI.ProcessClick() function that processes click on GUI only,
similarily to how old ProcessClick processed click on room objects only.
- Added Mouse.Click() function to simulate mouse click on screen.
- Added Room.GetProperty() to substitute global GetRoomProperty().
- Added Room.ProcessClick() to substitute global ProcessClick().
- Added SetProperty() and SetTextProperty() functions to Room, InventoryItem,
Hotspot, Object and Character types.
- Added optional "luminance" parameter to Region.Tint() and
Region.TintLuminance readonly property.
- Added SetAmbientLightLevel() to set global light level for
anything in the room.
- Added Character.SetLightLevel() and Object.SetLightLevel() functions to
set individual light levels. Negative light levels can be used
in 8-bit games to produce darkening effect.
- Added System.RuntimeInfo property which returns a short description of
current graphics mode, scaling filter and enabled game resources.
Editor bug fixes:
- Fixed Undo history was deleted when an Editor panel changes
its docked state.
- Fixed crashes under certain circumstances when a script editor is closed.
- Fixed crash if selecting a character without a normal view
in the room editor.
- Fixed Ctrl+Tab did not work for the first time when cycling
through opened editor tabs.
- Fixed "Go to Line..." command did not always move cursor to correct line.
Also, do not select that line.
- Made the project completely rebuild itself whenever "Enable Debug Mode"
value in the General Settings differs from the setting used for
the last build, to prevent inconsistency in compiled scripts.
- Fixed a crash when trying to run game setup from the Editor
while "Compiled" folder does not exist.
- Fixed project items could sometimes get incorrectly arranged
inside the folder.
- Fixed writing faulty timestamps in project file on some occasions that
could spoil usage of file versioning control.
- Fixed Help window positioning on multi-monitor desktop.
- Fixed error in autocomplete occuring when there is a single-line comment
in the end of the script.
- Fixed incorrect compiler parsing of a static function call inside
array index brackets.
- Fixed compilation of struct member functions having name identical
to existing global function.
- Fixed compilation of structs having members with names identical
to non-basic types, global variables and game entities (such as characters,
GUI, etc).
- Corrected few error messages related to struct's function declaration.
- Fixed compiler reporting errors as "runtime errors" under
certain circumstances.
Engine bug fixes:
- Fixed result of using transparency parameter of the
DrawingSurface.DrawImage() in 32-bit games when drawing opaque sprites
over surfaces with alpha channel.
- Fixed DynamicSprite.CopyTransparencyMask() was overwriting magic transparent
pixels on destination with alpha values from mask.
- Fixed the speech portrait position was not adjusted for character walking
between its lines, when BasedOnCharacterPosition portrait placement is used.
- Fixed occasional pathfinding failure on straight lines with complex
walkable areas.
- Fixed using '[' special character in Display-like commands discarded all of
the backslashes before it (e.g. "\\[" should now print \[ as expected).
- Fixed WAVE audio not looping after restoring a game
- Fixed a bug that caused MP3 clip continuously increase its base volume if
the directional volume modifier was applied.
- Fixed queued audio clips did not update their volume when default
audio type volume changes.
WinSetup:
- Added support for "default_translation_name" option in the "[language]"
section of the config file.
VERSION 3.3.5 - Patch 7, September 2016
Editor:
- Fixed "Check for updates" feature, which should now be compatible with
the new website.
Engine:
- Allow to run game without mouse installed (game won't abort).
- Fixed SetSavegameDirectory() to be compliant with the new script path rules.
Now if you pass a save directory without specifying $MYDOCS$ tag, the
directory will be created as a subdirectory of default saves path. If the
player has configured a custom save path, SetSavegameDirectory() will
properly keep subdirectories after remapping paths.
- Fixed missing slash after special directory token in the script file paths
could case a creation of directory outside of permitted location.
- Fixed plugins with dot (".") in their name failed to load (regression).
- Fixed display gamma forcedly reapplied every time save is restored.
VERSION 3.3.5 - Patch 6, August 2016
Editor:
- Fixed properties buttons dissapearing from the Properties panel if the
object was selected while the panel was not visible.
Engine:
- Fixed Display script functions displaying different text if there is any
variadic text formatting function called in repeatedly_execute().
- Fixed text formatting functions did not parse "%%" format properly.
VERSION 3.3.5 - Patch 5, July 2016
Engine:
- Fixed user's allegro.cfg was ignored.
VERSION 3.3.5 - Patch 4, July 2016
Compiler:
- Fixed crash occuring when there is an incomplete declaration in the end
of script.
Engine:
- Engine will fall back to using default system paths if it failed using
user-defined custom save path for any reason.
- Fixed engine displaying same warning twice if the loaded game was compiled
for higher version of AGS.
WinSetup:
- Only let user choose actually existing folders for custom save paths.
VERSION 3.3.5 - Patch 3, June 2016
Engine:
- Fixed "datafile" config option was ignored.
- Fixed "datadir" config option was never used when searching for possible game location
(this was broken for several years!).
- Fixed Game.FileName property return empty string.
- Fixed built-in console making Direct3D9 graphics driver crash in 16-bit games.
VERSION 3.3.5 - Patch 2, June 2016
Engine:
- Fixed compilation on big-endian systems.
- Fixed compilation with GCC 6.
VERSION 3.3.5 - Patch 1, April 2016
Engine:
- Added support for $INSTALLDIR$ location tag in the filepaths
used in the script.
- Fixed game could not find files in the current directory when
run from the Editor.
WinSetup:
- Fixed error that could occur if choosed custom save path
contained "%" symbol.
- Read correct game's resolution from game data instead of config file.
- Do not write all default config contents to user config, save only options
that are set by setup program.
VERSION 3.3.5, March 2016
Editor Features:
- Path to resource's (sprite, audio) source file is now saved as relative one if the file is
located inside game project's folder.
- Removed arbitrary limit of the script imports (was 50000).
- Script allows struct member qualifiers to be in any order.
- Better detection of integer constants overflow in script.
- Removed arbitrary limit of integer default value of +/-32000. Integer values are now limited
by correct 32-bit values (-2147483648 to 2147483647).
- Support for negative constants in enums.
- Better folding markers and indentation guides in script editor.
Editor Bug Fixes:
- Fixed compiler crash if unknown keyword used after "readonly".
- Fixed compiler did not properly report incorrect type of dynamic array in function declaration.
- Fixed compiler did not report proper type name in case of syntax error sometimes.
- Fixed mouse cursor flicker above the script editor.
Engine Features:
- Removed unconfigurable mouse cursor's acceleration (Windows).
- Support for mouse cursor speed control: may be defined in configuration and changed in script.
- A config option for keeping consistent cursor speed relative to user's desktop resolution.
- Support for locking mouse inside window: automatic lock is enabled in configuration, and user
may use Ctrl+Alt combination to lock/release mouse at any time.
- Restricted writing game files to special system directories
(game is forbidden to write files into installation directiory or by absolute path).
Unsafe paths are either remapped (when possible) or rejected.
- Support for player defined saves & game file directory.
- -v/--version command line argument makes engine display its version and bail.
Engine Bug Fixes:
- Fixed crash if screenshot is taken while game window was minimized or moving.
- Fixed alpha blend did not work properly for speech portrait if blinking frame did not have alpha channel.
- Fixed Display and Say script commands were displaying text for minimal amount of time under certain conditions.
- Fixed legacy audio functions did not start digital music playback if MIDI driver failed to initialize.
- Fixed game was run in smallest possible window if graphics driver failed to initialize fullscreen mode.
- Fixed "--help" command line argument not working all times depending on its order.
- Fixed engine did not always properly closed application window when running debug build.
Script API:
- Supported late_repeatedly_execute_always() callback in script, called after game has updated, but
before it is drawn.
- Added Mouse.ControlEnabled (readonly) and Mouse.Speed properties.
- Added System.HasInputFocus property which tells if game currently has focus or runs at background.
Cosmetics & convenience:
- Clarified disabled MIDI option name in WinSetup.
- Extended information displayed if graphics driver failed to initialize.
- Clarified error messages for running unsupported games.
VERSION 3.3.4, July 2015
Features:
- Removed 10,000 symbols limit in scripts.
- Added Character.Thinking and Character.ThinkingFrame script properties.
- Added Papagayo voice lip sync support.
- Find/Replace dialog now remembers the state of "Case sensitive" checkbox.
- Engine now scans all available files in search of game data, only giving standard names
a priority.
Bug Fixes:
- Fixed Editor crash in case of lip sync data parsing error.
- Fixed Find/Replace dialog skipped the first word in the script being searched through.
- Fixed an order of cycling through fields on Find/Replace dialog.
- Restored letterboxed game's viewport behavior for larger (and scrolling) rooms.
- Fixed Hq2x and Hq3x filter rendering when the display resolution requires side borders.
- Fixed Hq2X and Hq3x filters leaving graphic artifacts on letterbox borders.
- Fixed wrong screen settings could be applied in particular cases when requested gfx filter
could not be found or failed to initialize.
- Gfx filter name supplied in command line is case-insensitive now.
- Do not disable both digital sound and MIDI music if only one of these failed to initialize.
- Fixed MIDI music refuses to start if digital sound is disabled.
- Fixed division by zero in AlMP3 library code, that could cause crash when seeking in MP3
audio clip.
- Removed an advise to contact Chris Jones displayed in case of error.
Compatibility:
- Permissive emulation of pre-AGS 3.1.1 "option-on/off" commands in dialog script, that do
not stop game execution if a wrong option number is supplied.
VERSION 3.3.3, December 2014
Features:
- "Number dialog options" game setting now let you choose between "Disable", "Keyboard shortcuts
only" and "Draw numbers and use keyboard shortcuts" instead of being just "on"/"off".
- The built-in shortcut for showing runtime information has been changed from "Ctrl + V" to
"Ctrl + Alt + V".
Bug Fixes:
- Fixed audio-related crash on some Linux and Linux-derived systems caused by improper use of mutexes.
- Fixed division by zero and color value overflow cases in alpha blender.
- Fixed voice audio breaking playing on very rare occasions when clip format is OGG or MP3.
The fix is imperfect, and there's very short pause occuring at same point of playback. The voice
will continue playing though.
- Fixed character walking in hi-res games when the destination has negative Y coordinate.
- Fixed black borders not drawn in screen corners by Direct3D renderer.
Compatibility:
- Corrected interpretation for games made with AGS 3.0 - 3.2 to let them assign empty loop
in SetObjectFrame().
Engine log:
- Do not log out supported gfx modes twice if the secondary color depth is equal to primary one.
VERSION 3.3.2, September 2014
Features:
- Reimplemented alternate display modes, now side-borders and top/bottom borders work properly for
all game and screen resolutions.
- Added config option to run pre-3.1.0 lo-res games in hi-res mode.
Bug Fixes:
- Fixed Editor crashing when user types "#define" on the last line of the script.
- Fixed error in game compilation after user moves item folders up or down in the project tree.
- Fixed bug which could make Character.Transparency and Object.Transparency properties return
slightly incorrect values.
- Fixed bug that could let user to load corrupted savedgame, which in turn could cause more trouble.
- Provided error handling for several exceptional cases on graphics mode initialization (program
should at least close normally, showing comprehensible error message).
- Fixed crash in legacy built-in inventory screen.
- Fixed bug in script interpreter that could cause misinterpretation of value provided by plugin.
- Fixed "--setup" command line argument not working if it is not the first argument.
- Fixed WinSetup dialog not sized properly when larger fonts (DPI) option is used in
Windows display settings.
Log additions:
- Write the game data version and the list of supported graphic modes to the log.
Manual:
- Fixed Speech.VoiceMode example.
NOTE: VERSION 3.3.1 was cancelled and never released: the WIP build was renamed to 3.4.0.
VERSION 3.3.0, February 2014:
This release is a product of collaborative work of the following people
(in alphabetic order):
Bernhard Rosenkraenzer
Cristian Morales Vega
Gilad Shaham
Ivan Mogilko
Francesco Ariis
Janet Gilbert
Jochen Schleu
Michael Rittenhouse
Paul Wilkinson
Piotr Wieczorek
rofl0r
Scott Baker
Shawn R. Walker
Steve McCrea
Steven Poulton
Sunit Das
Tobias Hansen
Tom Vandepoele
Tzach Shabtay
AGS Engine underwent significant rewrite, with primary aims being better multi-platform
compatibility and backwards-compatibility. Complete list of related changes is too vast
to cite them here, a detailed documentation is provided in the form of the git log at
this repository: https://github.com/adventuregamestudio/ags
Engine Ports:
- Android port.
- iOS port.
- Linux port.
- PSP port.
Features:
- Increased maximal Font number from 15 to 30.
- Added "Translated" property to ListBox gui control, which forces engine to translate
ListBox items.
- Proper alpha blender for blending two 32-bit sprites with alpha channels.
Added new option for gui alpha blending setting which turns the proper blender on.
Added new setting for the use of the blender in general cases (such as DrawImage function).
- Added Dialog.SetHasOptionBeenChosen() method.
- Added DialogOptionsRenderingInfo.HasAlphaChannel property.
- Added eKeyNone constant to eKeyCode enumeration.
- Added two more options for the Skip Speech style: "skip by key only" and "skip by mouse only".
- Added SkipSpeechStyle enumeration.
- Added Speech script class which members substitute number of global functions and variables.
- The backward-compatible "Old-style game-wide speech animation speed" game setting is replaced
with two active options that allow to turn game-wide speech delay on and off and specify its
value.
- SetMusicMasterVolume() legacy script function now accepts volume values between -210 and 100
(was between 0 and 100); large negative values may be used to mute the music completely.
- Added a "Browse" button to the "Create in folder" field in the Start New Game wizard.
- Added "Reload sprite from source" command to Sprite Manager's context menu.
- Sprite Import window is now resizable.
- Engine can now run games of older versions, starting from 2.50. The level of
compatibility varies.
- Improved character walking smoothness at 60%-80% scaling.
- Game.ChangeTranslation() script function no longer causes game to quit if the translation file
belongs to different game or has unknown format.
- The game automatically fallbacks to software graphics driver if the hardware one could not run
or initialize gfx mode for any reason.
- Added support for x5-x8 graphic scaling filters.
- Added config option to find maximal supported scaling automatically.
- Added optional threaded audio support.
- Added config option to override System.OperatingSystem value.
- Added config option to override multitasking mode.
- Added optional log file support to the engine.
- Added support for GNU-style long command line arguments.
- Windows version writes crash dump on "out of memory" error.
Editor Plugin API:
- Added property for getting playable character.
- Added property for getting ScriptsAndHeaders collection.
- Added methods for refreshing project's tree.
- Added method for refreshing property grid.
- Added methods for controlling output panel.
Bug Fixes:
- Editor no longer allows to create more game items than engine supports.
- Fixed "savegameindex[]" array was declared with incorrect size in script.
- Fixed incorrect selection of a new sprite, imported while the "Select sprite" dialog is open.
- Fixed sprite lookup in folders, differing only by name case.
- Fixed the autocomplete list displaying obsolete information in some cases.
- Fixed false notifications of the script had been changed externally after being saved in
the editor.
- Fixed overlapping labels in the Editor Preferences dialog.
- Fixed inventory items and cursor crosshair with alpha channel not being drawn properly.
- Fixed crash that occured when ListBox.GetItemAtLocation() is called from
repeatedly_execute_always() just before the list box is about to be drawn on screen for the
first time.
- Fixed custom dialog options clickable area by correcting its horizontal coordinate range.
- Fixed error that caused audio volume to reset to default during cutscenes.
- Fixed AudioChannel.Volume returning incorrect value when called from skipped cutscene.
- Stopped play.close_mouth_end_speech_time variable from making effect in voice mode and
Sierra-style speech.
- Fixed return value of the AudioChannel.PositionMs for MOD/XM clips.
- Fixed OGG and MP3 speech ending prematurely if the audio file size is a multiple of 32 KB.
- Fixed error which took place when user restored a game saved with background music playing,
in case the music is not found in resources anymore.
- Fixed division by zero which occured if there was a 1px tall walkable area with vector scaling.
- Fixed side-borders that were not applied properly at larger widescreen resolutions.
VERSION 3.2.2 Beta, July 2012:
Following changes made by Tzach Shabtay, unless noted otherwise.
Features:
- Added docking panels and Window menu to control all the windows.
- Added folders for characters, dialogs, inventory items, guis, rooms, scripts and views.
- Added new menu items for all folders to move up/down.
- Added the ability to drag/drop files to be before other files.
- Added highlights for drag&drop and auto-expand folders on hover during drag&drop.
- Script and header files are now combined into one and can be expanded/collapsed, similar to
room settings & script.
- Removed the context menu commands to move script modules up/down, this can now be done with
drag/drop (and not only for scripts). The script dependency rule remains the same
(lower scripts can import symbols from upper ones, but not vice versa).
- Removed the "exclude script" option.
- The "Sort room by number" now sorts within folders.
- Added a menu item to find all usages for characters, dialogs, views,inventory items and
global variables.
- Added a menu item for almost all document tabs, to navigate to their node on the project tree.
- Added "Goto line" dialog from script editor via shortcut Ctrl+G (and changed existing
shortcuts to open global script & header to Ctrl+Shift+G/H).
- Added keyboard shortcut (Ctrl+M) to switch between header and source.
- Objects, characters and edges can now be moved with the arrows in the room editor.
Editor Plugin API:
- ISourceControlProvider interface for editor plugins to define your own source control provider
(Michael Rittenhouse).
Mono Support:
- Partially disabled some features only when running with Mono, since I couldn't see a way to
code them without the
Win API:
- Breaking in debug will not automatically set the editor to the foreground, the user might
have to click on the window.
- Notifying the user on file changes externally if the editor is in focus will not happen.
It will happen when the window is activated, so I hope it won't be too annoying.
Bug Fixes:
- Fixed crash clicking in margin of dialog editor (Chris Jones).
- Fixed RGB colour picker not working in 256-col games with colour numbers > 32 (Chris Jones).
- Fix for: when moving an object after zooming in and out, the floating co-ordinates no longer
appear next to the object.
- Fixed "Go-to definition" on global variables in script editor didn't do anything. It will now
open the global variables editor and select the global variable.
VERSION 3.2.1, March 2011
- Added Find/Replace In All Files capability (Tzach Shabtay)
- Added GUI control snapping, alignment, grouping and locking to GUI editor (Steven
Poulton)
- Added loop cut/copy/paste, Flip All Frames and Import From Sprite Folder options to
Views in editor, to access this right-click to the right of the loop (Tzach Shabtay)
- Added RGB colour selector to the various colour properties (ProgZmax)
- Added Characters option to room editor to show all characters set to start in that
room (ProgZmax)
- Added Find All Usages right-click option to script editor (Tzach Shabtay)
- Added current co-ordinates display while dragging objects/characters in room
editor (Steven Poulton)
- Added syntax colouring to dialog scripts (Steven Poulton)
- Added Dialog.ShowTextParser script property (CJ)
- Upgraded to latest version of LEC template (abstauber)
- Middle mouse button now activates the "Copy co-ordinates to clipboard" option in all
the room editor modes (ProgZmax)
- Fixed D3D tints not working properly (3.2 regression) (Nefasto)
- Fixed crash drawing GUIs with no background (3.2 regression) (CJ)
- Fixed crash restoring/restarting depending on state of crossfading (CJ)
- Fixed intermittent crash moving objects and using the Ctrl+A debug option (CJ)
- Fixed "crossfade buffer null attempting transition" if you restored a save game that
had a different current transition type to the current game position (CJ)
- Fixed script editor tooltips getting stuck if they appeared over the tab bar at the
top of the editor (Tzach Shabtay)
- Fixed editor error if you deleted a room that a character was set to start in (CJ)
- Fixed co-ordinates displayed in room editor not reflecting Low-Res Co-ordinates
setting (ProgZmax)
VERSION 3.2, June 2010
- Rewrote audio system. The old number-based sound and music are gone, replaced with
new named audio clips. Added AudioClip.*, AudioChannel.*, Game.IsAudioPlaying,
Game.SetAudioTypeVolume, Game.StopAudio, System.AudioChannels, System.AudioChannelCount,
System.Volume, ViewFrame.LinkedAudio script commands.
- Added Game.IgnoreUserInputAfterTextTimeoutMs, Maths.Exp, Maths.Log, Maths.Log10,
Maths.Cosh, Maths.Sinh, Maths.Tanh
- Added option to automatically add side borders when running 4:3 games on widescreen
monitors
- The generated EXE version information is now set to your Game Name and Developer Name
instead of "Adventure Game Studio" and "Chris Jones"
- Added new LEC-style template by abstauber
- Added Applies To feature to custom properties, so that you can have properties that
only apply to Rooms or Characters, for example
- Added menu option to remove old Global Messages from the game, to stop them coming
out in translation sources
- Added support for anti-aliased TTF fonts in all situations where they weren't
previously supported.
- Added $APPDATADIR$ support to File.Open to allow you to write files to an accessible
folder that is not the Save Games folder
- Added eMouseMiddleInv support to on_mouse_click
- Added editor plugin API methods IGUIController.ActivePane, IRoomController.PreSaveRoom
- Added plugin API events AGSE_PRESAVEGAME and AGSE_POSTRESTOREGAME
- Improved graphics mode detection so that the screen doesn't keep flickering when
trying to start up a low-res game full screen
- Improved colour quality of mini-sprites displayed in sprite manager
- Improved the user-friendliness of some error messages, thanks to Error Reporting
- Improved editor robustness to recover if the Game.agf.user file was corrupt