Game Maker 5.2

Game Maker 5.2 has been released in December 2003. It has appeared with an improved room design form and additional actions for e.g. particles. Also included were functions to deal with data structures.

Incompatibilities
Game Maker 5.2 is fully compatible with version 5.1 (except that maybe some corrected errors can make that games work slightly different).

Room editor
The room editor has been largely rewritten. Instances and tiles can now be moved around. Also there is a popup menu to set the position of instances precisely and to set creation code. The drawing in the room editor has been considerably improved making it easier to create large rooms. Also an isometric grid can be used for making isometric games. An undo function has been added and there is now the possibility to stretch the background rather than tile it.

Tile layers
Tiles can now be added in different layers. This makes it possible for instance to move in between tile layers. Functions have been added to change or move entire tile layers. Also it is easier now to use different sizes of tiles.

Addition actions
Two new collections of actions have been added. One collection makes it easy to create particles. The other collection contains actions to deal with CD music, to replace sprites, backgrounds and sounds from files, and some additional actions like the possibility to change the mouse cursor. (Registered version only.)

Data structures
For advanced users a collection of functions has been added to create and use stacks, queues, lists, maps, and priority queues. (Registered version only.)

File handling functions
The file handling functions have been improved, making it possible to use multiple files at the same moment. There are also routines to work with binary files and functions to manipulate file names.

Deactivating instances
It is now possible to temporarily deactivate instances, for example those outside the current view. This can speed-up certain games.

Many smaller improvements
There are many other smaller improvements, in particular:
 * separate horizontal and vertical scaling of backgrounds
 * the priority of the game process can be changed in the game options
 * in the sprite and image editor you can now shift the hue or partially replace it
 * functions to create colored and gradient backgrounds
 * maximal length of keyboard_string was increased to 1024
 * function to set the mouse position

Bug corrections
A number of bugs have been corrected, in particular:
 * Solved a bug in the loading and saving of games during game play that could result in multiple instances or tiles having the same id
 * Corrected an off by one error in the size of the image in screen_save_part, sprite_create_from_screen, sprite_add_from_screen, background_create_from_screen
 * Replaced constant cr_arrrow by cr_arrow
 * Added function external_free for color coding and syntax checking
 * Opening an INI file in a different folder or with a full path now gives an error rather than a crash
 * Corrected the tab order in some option forms and the event form
 * Corrected a bug when a particle type with a lifetime of 0
 * Panel with actions now resized depending on number of tabs
 * Corrected a bug when using a gradient fill in the image editor for large images
 * Solved a problem with image_speed < 1 showing the first sub image shorter
 * You can now set the image_single and image_index to real values as it should
 * Corrected a bug in the way collision events between parent objects is picked when overriding them
 * The function distance_to_object(obj) now correctly takes parents into account (and is faster)
 * Corrected error in string_format such that the length is now correct
 * When having just one backup file, backups were not correctly saved.