ID:1333374
 
(See the best response by LordAndrew.)
Descriptive Problem Summary:
It is possible to override the New() proc on datums to specify a behavior for when they're created.
However; if you create more than one override block it neither:
- Throws a compilation error.
- Runs all blocks.

Numbered Steps to Reproduce Problem:
1. Load the code snippet below into DM.
2. Compile.
3. Run the world and try the "test" verb.

Code Snippet (if applicable) to Reproduce Problem:
var/count = 0

/mob/verb/test()
usr << count

/mob/New()
count += 1

/mob/New()
count += 2


Expected Results:
Either an output of "3" or a compilation error.

Actual Results:
An output of "2".
No compilation error, only the second block is run.

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

When does the problem NOT occur?
N/A

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.

Workarounds:
N/A
Best response
This is intended behavior and how all procedures work. Your second definition of mob.New() is overriding the first one. You need to call ..() in the second mob.New() in order for it to honour the parent behavior.

var/count = 0

/mob/verb/test()
usr << count

/mob/New()
count += 1

/mob/New()
..()
count += 2