Basically, if you use random crap in the arguments of a proc call, that the proc itself don't use, dream deamon will crash with no warning or runtime.
Now, if the proc DOES use the arguments, it won't crash.
By random crap I mean something like do_stuff(crash = "rip") when crash is not a variable itself.
Numbered Steps to Reproduce Problem:
Just use the code provided on this post to reproduce it, it's fairly simple.
Code Snippet (if applicable) to Reproduce Problem:
mob
verb/do_stuff()
var/obj/H = new /obj(src)
world << "object created"
sleep(20)
H.crashing(pete = 10)// just some random crap to crash
obj
obj/proc/crashing() //crash here
world << "we didn't crash" //this never happens
return
Expected Results:
to have a runtime or maybe a compile error? Crashes with no warning or logs ain't fun
Actual Results:
crash!
Does the problem occur:
Explained in the summary, when you use random crap in the arguments of a proc call. It always happen but the exception explained below.
When does the problem NOT occur?
Explained in the summary, when the arguments are actually used by the proc.
Did the problem NOT occur in any earlier versions? If so, what was the last version that worked?
I do not know.
Workarounds:
Fill your proc call arguments properly.
btw I think I'm using 504.1232 because I have my byond up to date and that's what the download page says that it's the lates version and I have no idea how to check my own version
To test with older versions--that would be helpful because I don't think this is a new bug--follow these steps:
1) Go to http://www.byond.com/download/build and download the zip file from an older build, such as the last 500 build.
2) Open the folder where BYOND is installed; you'll see folders like bin, cfg, etc. Create a new dir called bin500.
3) Open up the zip you downloaded, and go to its byond/bin folder.
4) Copy everything from that part of the zip into the bin500 dir you just made.
5) While in bin500, double-click on dreammaker.exe and load up your test project. When you run it from there with Ctrl+R, it will run in version 500.
I can do some tests on this myself too, but those steps are good to remember if you ever need to do any testing with older builds.