ID:1993834
 
BYOND Version:509.1314
Operating System:Linux
Web Browser:Chrome 45.0.2454.101
Applies to:Dream Maker
Status: Deferred

This issue may be low priority or very difficult to fix, and has been put on the back burner for the time being.
Descriptive Problem Summary:
If you make a verb like this: /client/verb(test as text), it sort of manages to break the object tree.

Numbered Steps to Reproduce Problem:
Create a /client/verb(test as text).

Code Snippet (if applicable) to Reproduce Problem:
Exhibit A:
/client/verb(test as text)
world << test

This compiles without issues, and the verb "verb" appears like any other verb, and functions correctly (asks the user for the "test" var, and outputs it to world.

set name = thing also appears to work without issue.

However:
This happens to the object tree, if viewed in DM:

Which is well, probably not intended.

Exhibit B:
/client/verb(test as text)
world << test

/client/verb/my_test()
world << "test"

This gets even weirder.
Our object tree looks like this:


Well, the fun thing is, this compilation warning happens:
loading iblewit.dme
iblewit.dm:4:warning: my_test: unused label
saving iblewit.dmb (DEBUG mode)
iblewit.dmb - 0 errors, 1 warning (12/6/15 8:17 pm)


Huh? When you run this code, the second verb does not exist, however, executing the first will also execute the second, as if it's being compiled as the same verb.

If we replace "test" with test in the second verb, it gives the following compilation error:
loading iblewit.dme
iblewit.dm:5:error: test: invalid variable
iblewit.dm:4:warning: my_test: unused label
iblewit.dmb - 1 error, 1 warning (12/6/15 8:26 pm)


Note that it's not saying undefined variable, but invalid variable.

Also, adding multiple verbs afterwards all executes them after eachother, and yes, you can use these apperent "labels", and yes, they all appear in the object tree.

Exhibit C:
/client/verb/test()
world << "hrm"

/client/verb(test as text)
world << test

/client/verb/my_test()
world << "test"

The addition of a normal verb above the weird one appears to cover up this entire bug, nothing is seen as a label, and everything gets seen as a seperate verb in game, and they all function correctly, individually, note that the object tree is still screwy for the weird verb.

Expected Results:
This to flat out not compile

Actual Results:
Well, I mean there's a pretty huge writeup up there.

Does the problem occur:
Every time? Or how often? Every time.
In other games? N/A
In other user accounts? Untested, probably.
On other computers? Untested, probably.

When does the problem NOT occur?
Well, not screwing up a verb definition like I did.

Workarounds:
Having a brain.
can confirm

this is true for all improperly defined verbs, not just /client too
Lummox JR changed status to 'Deferred'