From 3baf0071cb8c5c5e545bf827a617cf8179f3fa7a Mon Sep 17 00:00:00 2001 From: Redo Date: Sat, 19 Nov 2022 16:04:58 -0600 Subject: [PATCH] add fast unsafe sendinput for roms --- bricks/special/rom.cs | 2 +- scripts/utilities.cs | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/bricks/special/rom.cs b/bricks/special/rom.cs index 71e15ef..d746293 100644 --- a/bricks/special/rom.cs +++ b/bricks/special/rom.cs @@ -157,5 +157,5 @@ function lualogic_rom_updatedata_final(%brick) { // send output //talk("rom" SPC %brick SPC %data_str); - lualogic_sendinput(%brick, 1, %data_str); + lualogic_sendinput_raw(%brick, 1, %data_str); } diff --git a/scripts/utilities.cs b/scripts/utilities.cs index 5cea903..8da4bbb 100644 --- a/scripts/utilities.cs +++ b/scripts/utilities.cs @@ -131,16 +131,14 @@ function lualogic_savedata(){ lualogic_send("SAVE"); } -function lualogic_sendinput(%gate, %argc, %arg0, %arg1, %arg2, %arg3, %arg4, %arg5, %arg6, %arg7, %arg8, %arg9, %arg10, %arg11, %arg12, %arg13, %arg14, %arg15) -{ +function lualogic_sendinput(%gate, %argc, %arg0, %arg1, %arg2, %arg3, %arg4, %arg5, %arg6, %arg7, %arg8, %arg9, %arg10, %arg11, %arg12, %arg13, %arg14, %arg15) { %args = lualogic_expandescape(%arg0); - for(%i = 1; %i < %argc; %i++) - %args = %args @ ";" @ lualogic_expandescape(%arg[%i]); - - if(%argc > 0) - lualogic_send("IN;" @ %gate.getID() @ ";" @ %argc @ ";" @ %args); - else - lualogic_send("IN;" @ %gate.getID() @ ";" @ %argc); + for(%i = 1; %i < %argc; %i++) { %args = %args @ ";" @ lualogic_expandescape(%arg[%i]); } + lualogic_sendinput_raw(%gate, %argc, %args); +} +function lualogic_sendinput_raw(%gate, %argc, %args) { + if(%argc > 0) { lualogic_send("IN;" @ %gate.getID() @ ";" @ %argc @ ";" @ %args); } + else { lualogic_send("IN;" @ %gate.getID() @ ";0"); } } function lualogic_ss(%obj, %state)