1.1.5#
Moved initialization code out of gml_pragma
into a global script for compatibility with latest versions of GameMaker Studio.
Renamed array_create_ext
to array_create_general
code> to avoid conflicts with the new built-in function of the same name.
Removed array_find_index
, array_find_value
, and array_shuffle
, as they have been superceded by built-in functions.
Removed string_explode
and string_implode
, as they have been superceded by built-in functions.
General code cleanup and improvements.
1.1.4#
Added collision_line_meeting
for identifying exact
coordinates of a collision intersection
Added ds_struct_equals
for recursively comparing
contents of structs
Added struct support to is_empty
Added emod
for calculating remainder with Euclidean
division (always positive result)
Fixed angle_refract
clipping mirror angle below 0
degrees
Improved instance_link
to no longer depend on
obj_server_gmlp
Improved accuracy of game_get_step
when
obj_server_gmlp
is present
Optimized mouse and frame-time constants
Optimized game_get_time
Deprecated universal image_angle_previous
,
image_x/yscale_previous
for performance reasons, as
they are no longer needed for instance_link
(see
Compatibility Notes)
1.1.3#
Added ds_struct_copy
for "deep cloning"
structs and all contents (including other structs/arrays)
Added ds_struct_find_first
,
ds_struct_find_next
,
ds_struct_find_previous
,
ds_struct_find_last
Added support for objects to foreach
(loops all
instances of an object)
Improved wait
timer accuracy when application is
running below performance target
Fixed string_explode
returning an empty first value if
the delimeter doesn't exist in the string
Strings with no delimeters will now return the string as an
array of one value as expected
Fixed string_implode
returning a string with a
delimeter even if only one array value exists
Strings will now only include delimeters when two or more
array values exist as expected
1.1.2#
Improved foreach
syntax and behavior
1.1.0#
GameMaker Studio 2.3.1 support!
Completely reorganized code structure, updated to new
standards
Added foreach
function to iterate the contents of a
wide variety of data types, including numbers, strings, arrays, and
data structures
Added is_empty
function to check the contents of a wide
variety of data types, including numbers, strings, arrays, data
structures, surfaces, and buffers
Added surface read
and surface_write
functions for handling surfaces as strings
Added draw_get_surface
to restore broken surfaces from
cached memory
Added camera_get_view
to complement built-in
view_get_camera
function
Added ds_struct
functions for interacting with structs
like other data structures
Supports struct hierarchies, unlike built-in functions!
Added ds_grid_empty
function, bringing parity between
grids and other data structures
Added instance_link
function for grouping objects by
position, rotation, and scale
Added image_angle_previous
,
image_xscale_previous
, and
image_yscale_previous
built-in variables to all instances via obj_gmlp
Added angle_reflect
and angle_refract
to
Angle Functions
Added support for animation curve assets to interp
.
Make your own custom curves using the built-in visual editor in
GameMaker Studio 2.3!
Added string_explode
, string_implode
, and
string_trim
functions for converting data between
strings and arrays
Added string_upper_*
and string_lower_*
functions for manipulating string case on an
individual, per-word, or whole-string basis
string_upper_all
and
string_lower_all
are 2x faster than equivalent
built-in GML!
Multiple changes to array functions:
Added array_clear
and
array_shuffle
for greater parity with data
structure functions
Replaced array_create_2d
with
array_create_ext
, now supporting any number of
dimensions!
Replaced array_fill_2d
with
array_fill
, now supporting any number of
dimensions!
Replaced array_width
and
array_height
with array_depth
to
complement the new built-in array_length
function
Replaced array_find_col
and
array_find_row
with
array_find_index
and
array_find_dim
for better compliance with
updated GML behaviors
Removed array_sort
,
array_delete_*
, and array_insert_*
functions, as they have been replaced by official functions
Fixed wait
returning true
on the first
frame of the first cycle
Now will wait the specified duration once before first
returning true
1.0.0#