ID:2672730
 
BYOND Version:513
Operating System:Windows 10 Home 64-bit
Web Browser:Chrome 89.0.4389.128
Applies to:DM Language
Status: Open

Issue hasn't been assigned a status value.
When attempting to use a winset() such as winset(src, "macro.ELEMENTID", "parent=macro; name=\"somemacroname\"; command=\"somecommand\""), the operation is blocked with a message, "Cannot insert new element [macro.ELEMENTID]: already exists.", even though the macro does not exist.

But attempt to unset this macro the engine says exists via winset(src, "macro.ELEMENTID", "parent="), you get a message saying the macro does not exist.

Suggestion: Since I cannot reproduce these issues, a sufficient workaround to these bugs would be to change winset() so that it overwrites instead of blocks when attempting to set a macro that it thinks exists already. This would allow me to force-set the macros that are not loading properly for some users and ensure their IDs are correct so that they can be interacted with at runtime.
I can't actually reproduce your issue with my existing test code.

mob/verb/InsertMacro()
winset(usr, "newmacro", "parent=macro;name=Ctrl+center;command=\"say Testing\"")
mob/verb/DeleteMacro()
winset(usr, "macro.newmacro", "parent=")

If I try to insert twice, there is no error message.

Do you have a test case project that can reliably produce the error message? I know you haven't been able to reproduce the problems you're having at startup, but the duplicate macro definition should be doable.

Login to reply.