ID:1925201
 
(See the best response by Super Saiyan X.)
I just downloaded one of tg-station builds to host, and got this when compiling:

code\WorkInProgress\Chinsky\overmap\sectors.dm:43:error: proc definition not allowed inside another proc

Here the code:

code\WorkInProgress\Chinsky\overmap\sectors.dm:43:error: proc definition not allowed inside another proc

How to fix this?


Without showing us any code, we can't help you, it's an issue with their codebase.

https://github.com/tgstation/-tg-station/issues

You can make an issue report yourself and bring it to their attention.
1. The build at that point in time may simply not compile properly
2. You didn't post the actual code segment from the file
3. You should ask in their IRC channel, @Rizon.net, channel #coderbus

Or try downloading their most recent build instead
Me sorry. Forgot to post code, feel stupid now.

here it is:


var/global/list/map_sectors = list()

/proc/build_map() //I had a problem reading this, so I decided to explain everything.
if(!config.use_overmap)
return 0
try
world.log << "building overmap..."
testing("Building overmap...")
var/obj/effect/mapinfo/data

moving_levels.len = world.maxz

for(var/level in 1 to world.maxz)

data = locate("sector[level]")
if(istype(data, /obj/effect/mapinfo/ship)) //First we'll check for ships, because they can occupy multiplie levels
var/obj/effect/map/ship/found_ship = locate("ship_[data.shipname]")
if(found_ship) //If there is a ship with such a name...
testing("Ship \"[data.shipname]\" found at [data.mapx],[data.mapy] corresponding to zlevel [level]")
found_ship.ship_levels += level //Adding this z-level to the list of the ship's z-levels.
map_sectors["[level]"] = found_ship
world.log << "Ship \"[data.shipname]\" found at [data.mapx],[data.mapy] corresponding to zlevel [level]"
else
found_ship = new data.obj_type(data) //If there is no ship with such name, we will create one.
found_ship.ship_levels += level
map_sectors["[level]"] = found_ship
testing("Ship \"[data.shipname]\" created \"[data.name]\" at [data.mapx],[data.mapy] corresponding to zlevel [level]")

else if (data) //Else we will just create an object, corresponding to it.
testing("Located sector \"[data.name]\" at [data.mapx],[data.mapy] corresponding to zlevel [level]")
map_sectors["[level]"] = new data.obj_type(data)
world.log << "Located sector \"[data.name]\" at [data.mapx],[data.mapy] corresponding to zlevel [level]"


update_overmap_computers()

return 1
catch(var/exception/e)
testing(e) ----- An error

Best response
Try updating your BYOND.
Yep, try/catch was recently added in one of the latest betas. The reason it won't compile is likely that catch statement in that function owing to you not having a compatible version of BYOND.
One of the first included files should trigger an #ERROR if they aren't using the right version telling them to use the right version...

What i would try, would be this link: https://github.com/tgstation/-tg-station/archive/ d7eca4f3277cae3e55b6e8e5938d310dce2df5b6.zip

Its time frozen, and its the code currently running on both of our servers at the time of this post.

The build at that point in time may simply not compile properly
We do have a bot that test compiles all commits and reports any errors. But it can't always tell when two change requests would create compile errors once merged in.



That being said, the code file they are getting that error in doesn't exist in /tg/station13. There is no WorkInProgress folder in the code folder.

I think this is an error with their change. Maybe they added 508 code to a 507 version of tgstation, but didn't copy over the compile error (or disabled it), then changed some stuff.