turf/Tree
icon = 'Trees.dmi'
icon_state = "Default"
proc/GenerateTrees(var/density = 1 as num)
var/placeX
var/placeY
var/placeZ
while(density)
density -= 1
placeX = rand(1,world.maxx)
placeY = rand(1,world.maxy)
placeZ = rand(1,world.maxz)
var/list/Trees = list()
var/Tree = new /turf/Tree (placeX,placeY,placeZ) // <-- Problem Line
Trees.Add(Tree)
var/Generate = (density+1)*10
while(Generate)
Generate -= 1
var/placer = rand(-6,6)
var/Xrand = rand(1,placer)
placeX += Xrand
if(placeX > world.maxx) placeX = world.maxx
var/Yrand = rand(1,placer)
placeY += Yrand
if(placeY > world.maxy) placeY = world.maxy
Tree = new /turf/Tree (placeX,placeY,placeZ)
placeX -= Xrand
placeY -= Yrand
Trees.Add(Tree)
for(var/turf/Tree/T in Trees)
var/chooser = rand(1,2)
T.icon_state = "[chooser]tree"
This spits a confusing bad loc error back at me:
runtime error: bad loc
proc name: GenerateTrees (/proc/GenerateTrees)
usr: null
src: null
call stack:
GenerateTrees(0)
: New()
Where did it get GenerateTrees(0)? It is called on world.New() as follows:
world/New()
..()
GenerateTrees(1)
Also, what does : New() mean?
-Lord of Water
And as a side note, unless you're using that proc as a verb, proc/GenerateTrees(density=1) should work just as well.