There's a but with the program execution wherein the program is not instantiated if on the first execution of the script there is an active message to process. The script only processes the active message and then doesn't proceed to run the program.
Example script:
#Listener
async call comms
:comms
listen "ReferenceCoords"
wait until false
repeat
#Sender
:TransmitReference
set Command to "set global reference to " + ("Remote Control" position) + " as vector"
print Command
send Command to "ReferenceCoords"
repeat
I believe the fix here is to wipe all channels that were previously being listened to whenever we reset the program state.
This means the script will ignore any previous messages sent when you re-compile, which is appropriate. It would fix other bugs too such as changing the channel you are listening to, which currently wouldn't cause you to stop listening on the old channel I believe.
There's a but with the program execution wherein the program is not instantiated if on the first execution of the script there is an active message to process. The script only processes the active message and then doesn't proceed to run the program.
Example script:
I believe the fix here is to wipe all channels that were previously being listened to whenever we reset the program state.
This means the script will ignore any previous messages sent when you re-compile, which is appropriate. It would fix other bugs too such as changing the channel you are listening to, which currently wouldn't cause you to stop listening on the old channel I believe.