-
Notifications
You must be signed in to change notification settings - Fork 52
GMEdit and GM8.x
This page covers GMEdit's support for the more antique GameMaker versions and custom languages that are equivalent to the said GM versions.
- GMEdit can edit code for scripts and objects
- GMEdit will try to open something reasonable for other resource types
- GMEdit cannot create/move/destroy resources because this isn't code that I can reuse from elsewhere
Rest assured, you'll want to have a "regular" IDE open alongside.
Same as usual,
but with structure changes to make up for lack of var name = value.
Using ?arg assumes that you have a constant called undefined in your project.
Having undefined be chr(0) seems to be a reasonable idea in GM8.x.
Should work fine if you'll edit the script to not use buffers.
Some sort of conflict with other syntax extensions? I might look into it eventually.
Need to be able to create/destroy scripts for those!
Older GM versions have no ternary operators, short-circuit evaluations,
and even no formal undefined type,
so most of the other GMEdit extensions can't really work here.
These are exclusive to GM8.x
You can do
var a = 1, b = 2;and this will turn into
var a, b; a = 1; b = 2;Works for globalvar too!
Just like in the newer GM versions, you can use
map[?key], list[|index] and grid[#x, y].
So
grid = ds_grid_create(4, 4);
grid[#1, 2] = "value";
map = ds_map_create();
map[?"key"] = grid[#1, 2];will become
grid = ds_grid_create(4, 4);
ds_grid_set(grid, 1, 2, "value");
map = ds_map_create();
ds_map_set(map, "key", ds_grid_get(grid, 1, 2));Helper functions come from this GML file that you can import by drag-and-dropping it onto GameMaker IDE window.
- Smart auto-completion
- Types
- JSDoc tags (incl. additional ones)
- @hint tag (mostly 2.3)
- `vals: $v1 $v2` (template strings)
- #args (pre-2.3 named arguments)
- ??= (for pre-GM2022 optional arguments)
- ?? ?. ?[ (pre-GM2022 null-conditional operators)
- #lambda (pre-2.3 function literals)
- => (2.3+ function shorthands)
- #import (namespaces and aliases)
- v:Type (local variable types)
- #mfunc (macros with arguments)
- #gmcr (coroutines)