Rivals-Workshop-Community-Projects / rivals-workshop-assistant

An all-in-one tool for automating Rivals of Aether modding tasks
MIT License
4 stars 4 forks source link

Detect all changed variables, possibly related to debugging breakpoints. #136

Open Qazzquimby opened 3 years ago

Qazzquimby commented 3 years ago

#define debug_monitor_variables
/// debug_monitor_variables(in_instance = id, blocklist = [])
var in_instance = argument_count > 0 ? argument[0] : id;
var blocklist = argument_count > 1 ? argument[1] : [];
    if("debug_variables_archive" in in_instance) {
        for(var vars = variable_instance_get_names(in_instance), counteroo = 0; counteroo < array_length_1d(vars); counteroo++;) {
            if(variable_instance_get(in_instance, vars[counteroo]) != variable_instance_get(debug_variables_archive, vars[counteroo])) {
                var in_blocklist = false;
                for(var incrementeroo = 0; incrementeroo < array_length_1d(blocklist); incrementeroo++;)
                    if(blocklist[incrementeroo] == vars[counteroo])
                        in_blocklist = true;
                if(!in_blocklist) print(`Variable ${vars[counteroo]} has changed from ${variable_instance_get(debug_variables_archive, vars[counteroo])} to ${variable_instance_get(in_instance, vars[counteroo])}`);
            }
        }
    }
    in_instance.debug_variables_archive = {};
    for(var vars = variable_instance_get_names(in_instance), counteroo = 0; counteroo < array_length_1d(vars); counteroo++) {
        variable_instance_set(debug_variables_archive, vars[counteroo], variable_instance_get(in_instance, vars[counteroo]));
    }```