https://drive.google.com/file/d/1QVH...o965gnC6I/view
Added continuous hotkey support for the COG hotkey message. Which means support for "axis" controls such as movement and turning.
Added a hacky magic COG syntax experiment to access the contents of the jkString text buffer for use by other verbs that want a string. A minimal example is:
Code:
jkStringClear();
jkStringConcatAsciiString("Test");
Print(ÜÜ);
(Note that the Ü needs to be 1-byte and not unicode. Make sure whatever text editor you use doesn't lose its mind if you add extended ascii to a COG file.)
This example would show the message Test at the top of the screen. Capital U-umlaut (Ü) is actually equivalent to a quotation mark (") to the COG parser due to a flaw in the parser. No sane person was likely even aware, and no one who was also used ÜÜ for an empty string, so I'm using it as a magical value to create a string symbol that points to the jkStringX-verbs string. In vanilla, ÜÜ is treated the same as "" (an empty string).
Was mainly imagining using it to build a string for ParseArg(dummy, ÜÜ);.
Here's an example for the hotkey message in use:
https://drive.google.com/file/d/1vl1...b6-b4n1mI/view
Uncomment the following in the hotkey message section to get info about expected values for GetSenderId() and GetParam(0).
Code:
hotkey:
# jkStringClear();
# jkStringConcatAsciiString("hotkey:");
# jkStringConcatFormattedInt(GetSenderId(), " id: %i");
# jkStringConcatFormattedInt(GetParam(0), " param: %i");
# jkStringOutput(negone, negone);
...and activate the IR Goggles item in game.
Uhm, try not to go insane if you look at that COG; it has some pretty crazy stuff going on. It's just the only one where I'd used SetHotkeyCog(GetSelfCog()); so it's a functional example. As is it passes checksum.
My point regarding ParseArg was that if all three of those attributes work when set via ParseArg, making a Set verb for them is likely reasonably possible. But if any of them don't work when set via ParseArg, making a Set verb for that attribute may be tricky.
QM