Skip to content

Instantly share code, notes, and snippets.

View evolutionleo's full-sized avatar
im totally fine

Evoleo evolutionleo

im totally fine
View GitHub Profile
@evolutionleo
evolutionleo / InheritFunction.gml
Last active June 10, 2021 20:33
A script that allows you to merge 2+ functions into 1, using a cool workaround
//#macro super merge_functions // uncomment this if you prefer the name 'super'
///@function merge_functions(func1, func2, <func3>)
///@param {function} func1
///@param {function} *func2
///@param {function} *func3
function merge_functions() {
var funcs = array_create(argument_count, undefined)
for(var i = 0; i < argument_count; i++)
@evolutionleo
evolutionleo / Pack.gml
Created January 18, 2021 05:08
A cool workaround for passing local variables into functions
// usage:
/*
pack(data);
function() {
data = unpack();
...
}
depack();
// you can also pass the `name` argument into any function
@evolutionleo
evolutionleo / CleanPug.gml
Last active July 8, 2021 12:49
clean pug for @JujuAdams' CleanShapes lib
/// @desc
if live_call() return live_result
// I didn't use batches, because apparently they are screwed up by transforms
CleanTransformReset()
// Head
var _x = room_width/2
@evolutionleo
evolutionleo / ArgManip.gml
Created June 25, 2022 14:40
a script in GameMaker Language that allows you to treat function arguments as an array
#macro arguments argument_count == 0 ? [] : (argument_count == 1 ? [argument[0]] : (argument_count == 2 ? [argument[0], argument[1]] : (argument_count == 3 ? [argument[0], argument[1], argument[2]] : (argument_count == 4 ? [argument[0], argument[1], argument[2], argument[3]] : (argument_count == 5 ? [argument[0], argument[1], argument[2], argument[3], argument[4]] : (argument_count == 6 ? [argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]] : (argument_count == 7 ? [argument[0], argument[1], argument[2], argument[3], argument[4], argument[5], argument[6]] : (argument_count == 8 ? [argument[0], argument[1], argument[2], argument[3], argument[4], argument[5], argument[6], argument[7]] : (argument_count == 9 ? [argument[0], argument[1], argument[2], argument[3], argument[4], argument[5], argument[6], argument[7], argument[8]] : (argument_count == 10 ? [argument[0], argument[1], argument[2], argument[3], argument[4], argument[5], argument[6], argument[7], argument[8], argument[9]] : (arg