ID:801736
 
Keywords: button, underscore
Not a bug
BYOND Version:494
Operating System:Windows 7 Home Basic
Web Browser:Chrome 19.0.1084.52
Applies to:Dream Maker
Status: Not a bug

This is not a bug. It may be an incorrect use of syntax or a limitation in the software. For further discussion on the matter, please consult the BYOND forums.
Descriptive Problem Summary:
No underscores in Interface button commands

Numbered Steps to Reproduce Problem:
Create button add command a verb with an underscore.

Code Snippet (if applicable) to Reproduce Problem:
http://files.byondhome.com/ATHK/Demo.zip

Expected Results:
To work as normal and call the verb

Actual Results:
Does not call the verb

Does the problem occur:
Every time? Or how often? - Everytime
In other games? - Indeed
In other user accounts? - N/A
On other computers? - Yes

When does the problem NOT occur? - When I don't use an underscore

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.) - no idea

Workarounds: - Don't use an underscore

Not sure if not having an underscore was intentional or not, seems a bit silly that you can't use them.
You have to use a dash in interfaces.
Underscores in verb names are converted to spaces by default. You can use the 'set name' directive on the verb to override this.
Tom resolved issue (Not a bug)
Well that's a bit stupid ... it's not what I have actually called the verb in the DM file.

Will the interface button still connect to the verb if set name is used? I didn't think it would.
The interface button is a shorthand for the command line. The name of the verb my_verb is "my verb" (and maybe also my-verb) for legacy reasons, but you can change this with "set name = my_verb".
Fair enough I understand that now ..

Still silly in my opinion ...

mob/verb/my_verb()
set name = "my verb"

mob/proc_proccy()
my-verb()
my verb()


Obviously won't work so why should it in the interface button?

Anyway not a HUGE deal and obviously not a bug.
The notation is outdated and we can probably support both forms, but it's not a bug. The interface functions are client-side, and the client uses the verb name, which is usually the same as the function name, but not always ( which is what 'set name' does). Your example above is using function calls, which are server-side.

The problem stems from the fact that byond is built around this command line system that no one really uses anymore.
Fair enough thanks for the explanation.