Compatibility Notes
Some updates include certain changes which require existing projects to be modified to retain compatibility with updated versions. This section documents those changes as well as the remedies to any incompatibilities they create.
#
1.1.4- New dependency:
angle_refract
now depends onemod
for accurate modulo calculation- Projects currently using
angle_refract
must also importemod
when updating.
- Projects currently using
- Obsolete dependency:
instance_link
no longer depends onobj_server_gmlp
- Projects which included
obj_server_gmlp
only forinstance_link
can now safely remove it.
- Projects which included
- Deprecated: universal
image_angle_previous
,image_x/yscale_previous
- These were previously included for full functionality of
instance_link
, which no longer requires them. - Universally updating these variables has a measurable performance cost whether or not they are used.
- This feature is now disabled by default, but can be re-enabled by modifying
obj_server_gmlp
:- In the object Create Event, under "Configure GML+", change
expanded_image_previous
totrue
. - No other modifications to
obj_server_gmlp
should be made.
- In the object Create Event, under "Configure GML+", change
- These were previously included for full functionality of
#
1.1.3- Added support for objects to
foreach
- Due to the way GameMaker handles pointers, this may potentially disrupt integer
foreach
loops if the integer happens to match an object asset index. - If existing code with an integer
foreach
loop now attemps to loop through instances of an object, use arepeat
loop instead.
- Due to the way GameMaker handles pointers, this may potentially disrupt integer
- Fixed
string_explode
returning an empty first value if the delimeter doesn't exist in the string- Any code that previously handled empty first values must be updated to assume an array length of 1 if no delimeter was found in the string.
- Fixed
string_implode
returning a string with a delimeter even if only one array value exists- Any code that previously handled single-value strings with delimeters must be updated to assume no delimeter is present.
- Renamed
obj_gmlp
toobj_server_gmlp
for consistency with other XGASOFT middleware- Any existing references to the old name must be updated to match the new nomenclature
- (Recommended: Use global search & replace)
#
1.1.2- Improved
foreach
syntax and behavior- Parentheses now close before
call
keyword rather than after - Existing instances of this function must be updated to match the new syntax
- (Recommended: Use regex global search & replace in external code editor)
- Parentheses now close before
#
1.1.0- Changed
timer_get
andtimer_set
totimer_get_time
andtimer_set_time
for clarity and consistency with other get and set functions.- Existing instances of these functions must be renamed to match the updated syntax
- (Recommended: Use global search & replace)
- Replaced
array_create_2d
witharray_create_ext
, now supporting arbitrary dimensions- Existing instances of the old function must be renamed to match the new function.
- Instances providing two dimensions and a default value require no further changes.
- Setting a default value is now required, as additional arguments are treated as new dimensions preferentially. Instances which previously set no default value must be updated to include one.
- (Recommended: Use global search & replace)
- Replaced
array_fill_2d
witharray_fill
, now supporting arbitrary dimensions- Existing instances of the old function must be renamed to match the new function.
- (Recommended: Use global search & replace)
- Replaced
array_width
andarray_height
witharray_depth
to complement the new built-inarray_length
functionarray_width
generally maps toarray_length
andarray_height
generally maps toarray_depth
. However, behaviors may not be identical in all cases due to multidimensional arrays now acting as arrays within arrays. Evaluate existing code and update as needed.- (Recommended: Use global search & replace)
- Replaced
array_find_col
andarray_find_row
witharray_find_index
andarray_find_dim
array_find_col
generally maps toarray_find_index
andarray_find_row
generally maps toarray_find_dim
. However, behaviors may not be identical in all cases due to multidimensional arrays now acting as arrays within arrays. Evaluate existing code and update as needed.- (Recommended: Use global search & replace)