If you are connecting through Steam, your Steam display name is the name that appears in chat.
If you are connecting directly, there should be a button with your name before Host/Join buttons - click it and you should be able to enter a new name.
I think that’s missing because there is no sequence_get_name
function to automatically figure out sequences in the game by looping over them, though I could have sworn that I had a workaround implemented for that.
In the meantime you can add the following to the end of obj_gmlive’s Create event:
live_constant_add("Sequence22", Sequence22);
(repeat for each sequence you want to use in “live” code)
or do
layer_sequence_create(layer, x, y, asset_get_index("Sequence22"))
instead of just
layer_sequence_create(layer, x, y, Sequence22)
When a file is opened with or dragged and dropped onto GMEdit, it will first try to open it with existing means (as there’s already a bunch of code for figuring out what to do when you open a .project.gmx
vs .object.gmx
, for example) and then it’ll go over each installed dialect until it finds one where projectRegex matches the provided path. If nothing matches, it asks Windows to open the file.
For example, Nuclear Throne matches (slightly ambiguously named) main.txt
/ main.cfg
files, but also anything with .ntgml
extension.
This is not a perfect system, but it is the only one that allows GMEdit to be set as the app for opening mod files without asking the user for dialect / GM version on open.
I explain the caveats in the documentation - you can do whatever you want so long as you draw things correctly (if you don’t, it’ll still work, but the edges will look funny).
A further inspection reveals that it’s not been caused by a format change itself, but forgotten code from adjusting the format. You’ll want to find the following in GMLive
script:
var l_lrs = ds_map_find_value(l_rm, "layers");
var l_lrk = ds_list_size(l_lrs);
for (var l_lri = 0, l__g1 = ds_list_size(l_lrs); l_lri < l__g1; l_lri++) {
live_room_loader_add_layer(ds_list_find_value(l_lrs, l_lrk));
}
and replace it with
var l_lrs = ds_map_find_value(l_rm, "layers");
for (var l_lri = 0, l__g1 = ds_list_size(l_lrs); l_lri < l__g1; l_lri++) {
live_room_loader_add_layer(ds_list_find_value(l_lrs, l_lri)); // <- lri instead of lrk
}
Edit: and also find this
var l_ql_sublayer_count = ds_list_size(l_ql_sublayers);
and replace it with
var l_ql_sublayer_count = l_ql_sublayers != undefined && l_ql_sublayers != pointer_null ? ds_list_size(l_ql_sublayers) : 0;
It’s a Sunday afternoon and I have electricity this time, so you can even have a more proper solution.
You can use application_surface_draw_enable
to disable automatic drawing of application_surface and then draw it yourself as you please in Draw GUI event (e.g. right before Gameframe’s draw).
The only thing to be aware with this is that you need to do a little math to calculate the mouse position because there isn’t a application_set_position
function.
If someone paid me, I think I could make the extension load one frame at a time, which would then let you load the GIF bit-by-bit instead of all at once.
If you know Haxe, you can try doing that yourself (see source code) - gotta split up the GifReader.read and Gif.read methods.
To those whom it may concern:
Silver has a whole lot of glyph ranges, so I consider it to be easier to load it dynamically.
So you would add Silver.ttf to your Included Files, and then do the following on game start:
globalvar fnt_silver;
font_add_enable_aa(false);
fnt_silver = font_add("Silver.ttf", 14, false, false, 0, 0);
Then you can do draw_set_font(fnt_silver)
and GameMaker will load the glyphs when you first use them.
Hello, that will be a thing once I decide how to handle custom widths for glyphs.
Writing a FontForge script is a good solution if you iterate on the font a lot.
If you only need to pin the window, that’s window_set_topmost
in the other, free extension. It can be used on its own or along with this/other extensions.
I also have an extension for custom window shapes.