use crate::gml::assembly::assemble_instructions;
use crate::gml::instruction::Instruction;
use crate::prelude::*;
pub fn toggle(data: &mut GMData, enable: bool) -> Result<()> {
let assembly = "
jmp 5
pushim 1337
conv.i.v
ret
exit
push.i (function)gml_Script_scr_debug
conv.i.v
pushim -1
conv.i.v
call method(argc=2)
dup.v 0
pushim -1
pop.v.v [stacktop]self.scr_debug
popz.v
";
let pushim = Instruction::PushImmediate { integer: i16::from(enable) };
let mut instructions = assemble_instructions(assembly, data)?;
instructions[1] = pushim;
let code_ref = data.scripts.code_ref_by_name("scr_debug")?;
let code = data.codes.by_ref_mut(code_ref)?;
code.instructions = instructions;
Ok(())
}