Speed up mapload significantly

Co-authored-by: Aronai Sieyes <arokha@arokha.com>
This commit is contained in:
ShadowLarkens
2020-03-19 00:28:27 -04:00
committed by Aronai Sieyes
parent 9250685a06
commit 2e23dcdb49
33 changed files with 199 additions and 238 deletions

View File

@@ -843,3 +843,18 @@ proc/dd_sortedTextList(list/incoming)
if(L.len)
. = L[1]
L.Cut(1,2)
//generates a list used to randomize transit animations so they aren't in lockstep
/proc/get_cross_shift_list(var/size)
var/list/result = list()
result += rand(0, 14)
for(var/i in 2 to size)
var/shifts = list(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
shifts -= result[i - 1] //consecutive shifts should not be equal
if(i == size)
shifts -= result[1] //because shift list is a ring buffer
result += pick(shifts)
return result

View File

@@ -19,8 +19,6 @@ var/global/list/side_effects = list() //list of all medical sideeffects types
var/global/list/mechas_list = list() //list of all mechs. Used by hostile mobs target tracking.
var/global/list/joblist = list() //list of all jobstypes, minus borg and AI
var/global/list/turfs = list() //list of all turfs
#define all_genders_define_list list(MALE,FEMALE,PLURAL,NEUTER,HERM) //VOREStaton Edit
#define all_genders_text_list list("Male","Female","Plural","Neuter","Herm") //VOREStation Edit

View File

@@ -38,7 +38,7 @@ SUBSYSTEM_DEF(air)
current_cycle = 0
var/simulated_turf_count = 0
for(var/turf/simulated/S in turfs)
for(var/turf/simulated/S in world)
simulated_turf_count++
S.update_air_properties()
CHECK_TICK

View File

@@ -16,8 +16,7 @@ SUBSYSTEM_DEF(mapping)
if(config.generate_map)
// Map-gen is still very specific to the map, however putting it here should ensure it loads in the correct order.
if(using_map.perform_map_generation())
using_map.refresh_mining_turfs()
using_map.perform_map_generation()
/datum/controller/subsystem/mapping/proc/load_map_templates()

View File

@@ -6,6 +6,38 @@ SUBSYSTEM_DEF(skybox)
flags = SS_NO_FIRE
var/list/skybox_cache = list()
var/list/dust_cache = list()
var/list/speedspace_cache = list()
var/list/phase_shift_by_x = list()
var/list/phase_shift_by_y = list()
/datum/controller/subsystem/skybox/PreInit()
//Static
for (var/i in 0 to 25)
var/image/im = image('icons/turf/space_dust.dmi', "[i]")
im.plane = DUST_PLANE
im.alpha = 128 //80
im.blend_mode = BLEND_ADD
dust_cache["[i]"] = im
//Moving
for (var/i in 0 to 14)
// NORTH/SOUTH
var/image/im = image('icons/turf/space_dust_transit.dmi', "speedspace_ns_[i]")
im.plane = DUST_PLANE
im.blend_mode = BLEND_ADD
speedspace_cache["NS_[i]"] = im
// EAST/WEST
im = image('icons/turf/space_dust_transit.dmi', "speedspace_ew_[i]")
im.plane = DUST_PLANE
im.blend_mode = BLEND_ADD
speedspace_cache["EW_[i]"] = im
//Shuffle some lists
phase_shift_by_x = get_cross_shift_list(15)
phase_shift_by_y = get_cross_shift_list(15)
. = ..()
/datum/controller/subsystem/skybox/Initialize()
. = ..()

View File

@@ -30,7 +30,7 @@ SUBSYSTEM_DEF(xenoarch)
. = ..()
/datum/controller/subsystem/xenoarch/proc/SetupXenoarch()
for(var/turf/simulated/mineral/M in turfs)
for(var/turf/simulated/mineral/M in world)
if(!M.density || M.z in using_map.xenoarch_exempt_levels)
continue

View File

@@ -65,11 +65,11 @@ In short:
for(var/datum/lighting_corner/L in world)
L.update_lumcount(1, 0, 0)
for(var/turf/space/T in turfs)
for(var/turf/space/T in world)
OnTurfChange(T)
/datum/universal_state/hell/proc/MiscSet()
for(var/turf/simulated/floor/T in turfs)
for(var/turf/simulated/floor/T in world)
if(!T.holy && prob(1))
new /obj/effect/gateway/active/cult(T)

View File

@@ -14,8 +14,8 @@
var/next_check=0
var/list/avail_dirs = list(NORTH,SOUTH,EAST,WEST)
/turf/unsimulated/wall/supermatter/New()
..()
/turf/unsimulated/wall/supermatter/Initialize(mapload)
. = ..()
START_PROCESSING(SSturfs, src)
next_check = world.time+5 SECONDS

View File

@@ -98,7 +98,7 @@ The access requirements on the Asteroid Shuttles' consoles have now been revoked
else
L.update_lumcount(0.0, 0.4, 1)
for(var/turf/space/T in turfs)
for(var/turf/space/T in world)
OnTurfChange(T)
/datum/universal_state/supermatter_cascade/proc/MiscSet()

View File

@@ -3,7 +3,7 @@
var/list/pick_turfs = list()
var/list/Z_choices = list()
Z_choices |= using_map.get_map_levels(1, FALSE)
for(var/turf/simulated/floor/T in turfs)
for(var/turf/simulated/floor/T in world)
if(T.z in Z_choices)
if(!T.block_tele)
pick_turfs += T

View File

@@ -55,8 +55,8 @@
B.clean_blood()
..()
/turf/simulated/New()
..()
/turf/simulated/Initialize(mapload)
. = ..()
if(istype(loc, /area/chapel))
holy = 1
levelupdate()

View File

@@ -3,8 +3,8 @@
/turf/simulated/wall/dungeon
block_tele = TRUE // Anti-cheese.
/turf/simulated/wall/dungeon/New(var/newloc)
..(newloc,"dungeonium")
/turf/simulated/wall/dungeon/Initialize(mapload)
. = ..(mapload, "dungeonium")
/turf/simulated/wall/dungeon/attackby()
return
@@ -20,8 +20,8 @@
var/rock_side = "rock_side"
block_tele = TRUE
/turf/simulated/wall/solidrock/New(var/newloc)
..(newloc,"bedrock")
/turf/simulated/wall/solidrock/Initialize(mapload)
. = ..(mapload, "bedrock")
/turf/simulated/wall/solidrock/Initialize()
..()
@@ -81,8 +81,8 @@
desc = "An old, yet impressively durably rock wall."
var/mossyrock_side = "mossyrock_side"
/turf/simulated/wall/solidrock/New(var/newloc)
..(newloc,"mossyrock")
/turf/simulated/wall/solidrock/Initialize(mapload)
. = ..(mapload, "mossyrock")
/turf/simulated/wall/solidrock/mossyrockpoi/update_icon(var/update_neighbors)
if(density)

View File

@@ -35,8 +35,8 @@
/turf/simulated/floor/is_plating()
return !flooring
/turf/simulated/floor/New(var/newloc, var/floortype)
..(newloc)
/turf/simulated/floor/Initialize(mapload, floortype)
. = ..()
if(!floortype && initial_flooring)
floortype = initial_flooring
if(floortype)
@@ -52,25 +52,16 @@
make_plating(defer_icon_update = 1)
flooring = newflooring
footstep_sounds = newflooring.footstep_sounds
// VOREStation Edit - We are plating switching to flooring, swap out old_decals for decals
var/tmp/list/overfloor_decals = old_decals
old_decals = decals
decals = overfloor_decals
// VOREStation Edit End
if(old_decals) // Flooring -> Plating -> Flooring
decals = old_decals
old_decals = null
update_icon(1)
levelupdate()
//This proc will set floor_type to null and the update_icon() proc will then change the icon_state of the turf
//This proc auto corrects the grass tiles' siding.
/turf/simulated/floor/proc/make_plating(var/place_product, var/defer_icon_update)
cut_overlays()
// VOREStation Edit - We are flooring switching to plating, swap out old_decals for decals.
if(flooring)
var/tmp/list/underfloor_decals = old_decals
old_decals = decals
decals = underfloor_decals
// VOREStation Edit End
name = base_name
desc = base_desc
@@ -78,7 +69,9 @@
icon_state = base_icon_state
footstep_sounds = base_footstep_sounds
if(flooring)
if(flooring) // Flooring -> Plating
old_decals = decals
decals = null
if(flooring.build_type && place_product)
new flooring.build_type(src)
flooring = null

View File

@@ -85,7 +85,7 @@
var/join_group = "shuttle" //A tag for what other walls to join with. Null if you don't want them to.
var/static/list/antilight_cache
/turf/simulated/shuttle/New()
/turf/simulated/shuttle/Initialize(mapload)
..()
if(!antilight_cache)
antilight_cache = list()

View File

@@ -24,10 +24,10 @@ var/list/turf_edge_cache = list()
update_icon()
. = ..()
/turf/simulated/floor/New()
/turf/simulated/floor/Initialize(mapload)
if(outdoors)
SSplanets.addTurf(src)
..()
. = ..()
/turf/simulated/floor/Destroy()
if(outdoors)

View File

@@ -1,89 +1,89 @@
/turf/simulated/wall/r_wall
icon_state = "rgeneric"
/turf/simulated/wall/r_wall/New(var/newloc)
..(newloc, "plasteel","plasteel") //3strong
/turf/simulated/wall/r_wall/Initialize(mapload)
. = ..(mapload, "plasteel","plasteel") //3strong
/turf/simulated/wall/shull/New(var/newloc) //Spaaaace ship.
..(newloc, MAT_STEELHULL, null, MAT_STEELHULL)
/turf/simulated/wall/rshull/New(var/newloc)
..(newloc, MAT_STEELHULL, MAT_STEELHULL, MAT_STEELHULL)
/turf/simulated/wall/pshull/New(var/newloc) //Spaaaace-er ship.
..(newloc, MAT_PLASTEELHULL, null, MAT_PLASTEELHULL)
/turf/simulated/wall/rpshull/New(var/newloc)
..(newloc, MAT_PLASTEELHULL, MAT_PLASTEELHULL, MAT_PLASTEELHULL)
/turf/simulated/wall/dshull/New(var/newloc) //Spaaaace-est ship.
..(newloc, MAT_DURASTEELHULL, null, MAT_DURASTEELHULL)
/turf/simulated/wall/rdshull/New(var/newloc)
..(newloc, MAT_DURASTEELHULL, MAT_DURASTEELHULL, MAT_DURASTEELHULL)
/turf/simulated/wall/thull/New(var/newloc)
..(newloc, MAT_TITANIUMHULL, null, MAT_TITANIUMHULL)
/turf/simulated/wall/rthull/New(var/newloc)
..(newloc, MAT_TITANIUMHULL, MAT_TITANIUMHULL, MAT_TITANIUMHULL)
/turf/simulated/wall/shull/Initialize(mapload) //Spaaaace ship.
. = ..(mapload, MAT_STEELHULL, null, MAT_STEELHULL)
/turf/simulated/wall/rshull/Initialize(mapload)
. = ..(mapload, MAT_STEELHULL, MAT_STEELHULL, MAT_STEELHULL)
/turf/simulated/wall/pshull/Initialize(mapload) //Spaaaace-er ship.
. = ..(mapload, MAT_PLASTEELHULL, null, MAT_PLASTEELHULL)
/turf/simulated/wall/rpshull/Initialize(mapload)
. = ..(mapload, MAT_PLASTEELHULL, MAT_PLASTEELHULL, MAT_PLASTEELHULL)
/turf/simulated/wall/dshull/Initialize(mapload) //Spaaaace-est ship.
. = ..(mapload, MAT_DURASTEELHULL, null, MAT_DURASTEELHULL)
/turf/simulated/wall/rdshull/Initialize(mapload)
. = ..(mapload, MAT_DURASTEELHULL, MAT_DURASTEELHULL, MAT_DURASTEELHULL)
/turf/simulated/wall/thull/Initialize(mapload)
. = ..(mapload, MAT_TITANIUMHULL, null, MAT_TITANIUMHULL)
/turf/simulated/wall/rthull/Initialize(mapload)
. = ..(mapload, MAT_TITANIUMHULL, MAT_TITANIUMHULL, MAT_TITANIUMHULL)
/turf/simulated/wall/cult
icon_state = "cult"
/turf/simulated/wall/cult/New(var/newloc)
..(newloc,"cult","cult2","cult")
/turf/simulated/wall/cult/Initialize(mapload)
. = ..(mapload, "cult","cult2","cult")
/turf/unsimulated/wall/cult
name = "cult wall"
desc = "Hideous images dance beneath the surface."
icon = 'icons/turf/wall_masks.dmi'
icon_state = "cult"
/turf/simulated/wall/iron/New(var/newloc)
..(newloc,"iron")
/turf/simulated/wall/uranium/New(var/newloc)
..(newloc,"uranium")
/turf/simulated/wall/diamond/New(var/newloc)
..(newloc,"diamond")
/turf/simulated/wall/gold/New(var/newloc)
..(newloc,"gold")
/turf/simulated/wall/silver/New(var/newloc)
..(newloc,"silver")
/turf/simulated/wall/lead/New(var/newloc)
..(newloc,"lead")
/turf/simulated/wall/r_lead/New(var/newloc)
..(newloc,"lead", "lead")
/turf/simulated/wall/phoron/New(var/newloc)
..(newloc,"phoron")
/turf/simulated/wall/sandstone/New(var/newloc)
..(newloc,"sandstone")
/turf/simulated/wall/ironphoron/New(var/newloc)
..(newloc,"iron","phoron")
/turf/simulated/wall/golddiamond/New(var/newloc)
..(newloc,"gold","diamond")
/turf/simulated/wall/silvergold/New(var/newloc)
..(newloc,"silver","gold")
/turf/simulated/wall/sandstonediamond/New(var/newloc)
..(newloc,"sandstone","diamond")
/turf/simulated/wall/snowbrick/New(var/newloc)
..(newloc,"packed snow")
/turf/simulated/wall/iron/Initialize(mapload)
. = ..(mapload, "iron")
/turf/simulated/wall/uranium/Initialize(mapload)
. = ..(mapload, "uranium")
/turf/simulated/wall/diamond/Initialize(mapload)
. = ..(mapload, "diamond")
/turf/simulated/wall/gold/Initialize(mapload)
. = ..(mapload, "gold")
/turf/simulated/wall/silver/Initialize(mapload)
. = ..(mapload, "silver")
/turf/simulated/wall/lead/Initialize(mapload)
. = ..(mapload, "lead")
/turf/simulated/wall/r_lead/Initialize(mapload)
. = ..(mapload, "lead", "lead")
/turf/simulated/wall/phoron/Initialize(mapload)
. = ..(mapload, "phoron")
/turf/simulated/wall/sandstone/Initialize(mapload)
. = ..(mapload, "sandstone")
/turf/simulated/wall/ironphoron/Initialize(mapload)
. = ..(mapload, "iron","phoron")
/turf/simulated/wall/golddiamond/Initialize(mapload)
. = ..(mapload, "gold","diamond")
/turf/simulated/wall/silvergold/Initialize(mapload)
. = ..(mapload, "silver","gold")
/turf/simulated/wall/sandstonediamond/Initialize(mapload)
. = ..(mapload, "sandstone","diamond")
/turf/simulated/wall/snowbrick/Initialize(mapload)
. = ..(mapload, "packed snow")
/turf/simulated/wall/resin/New(var/newloc)
..(newloc,"resin",null,"resin")
/turf/simulated/wall/resin/Initialize(mapload)
. = ..(mapload, "resin",null,"resin")
// Kind of wondering if this is going to bite me in the butt.
/turf/simulated/wall/skipjack/New(var/newloc)
..(newloc,"alienalloy")
/turf/simulated/wall/skipjack/Initialize(mapload)
. = ..(mapload, "alienalloy")
/turf/simulated/wall/skipjack/attackby()
return
/turf/simulated/wall/titanium/New(var/newloc)
..(newloc,"titanium")
/turf/simulated/wall/titanium/Initialize(mapload)
. = ..(mapload, "titanium")
/turf/simulated/wall/durasteel/New(var/newloc)
..(newloc,"durasteel", "durasteel")
/turf/simulated/wall/durasteel/Initialize(mapload)
. = ..(mapload, "durasteel", "durasteel")
/turf/simulated/wall/wood/New(var/newloc)
..(newloc, MAT_WOOD)
/turf/simulated/wall/wood/Initialize(mapload)
. = ..(mapload, MAT_WOOD)
/turf/simulated/wall/sifwood/New(var/newloc)
..(newloc, MAT_SIFWOOD)
/turf/simulated/wall/sifwood/Initialize(mapload)
. = ..(mapload, MAT_SIFWOOD)
/turf/simulated/wall/log/New(var/newloc)
..(newloc, MAT_LOG)
/turf/simulated/wall/log/Initialize(mapload)
. = ..(mapload, MAT_LOG)
/turf/simulated/wall/log_sif/New(var/newloc)
..(newloc, MAT_SIFLOG)
/turf/simulated/wall/log_sif/Initialize(mapload)
. = ..(mapload, MAT_SIFLOG)
// Shuttle Walls
/turf/simulated/shuttle/wall
@@ -152,16 +152,14 @@
icon_state = "alien-nj"
join_group = null
/turf/simulated/shuttle/wall/New()
..()
//To allow mappers to rename shuttle walls to like "redfloor interior" or whatever for ease of use.
name = true_name
/turf/simulated/shuttle/wall/Initialize()
. = ..()
//To allow mappers to rename shuttle walls to like "redfloor interior" or whatever for ease of use.
name = true_name
if(join_group)
src.auto_join()
auto_join()
else
icon_state = base_state

View File

@@ -27,8 +27,8 @@
for(var/obj/O in src)
O.hide(1)
/turf/simulated/wall/New(var/newloc, var/materialtype, var/rmaterialtype, var/girdertype)
..(newloc)
/turf/simulated/wall/Initialize(mapload, materialtype, rmaterialtype, girdertype)
. = ..()
icon_state = "blank"
if(!materialtype)
materialtype = DEFAULT_WALL_MATERIAL

View File

@@ -9,82 +9,38 @@
thermal_conductivity = OPEN_HEAT_TRANSFER_COEFFICIENT
can_build_into_floor = TRUE
var/keep_sprite = FALSE
// heat_capacity = 700000 No.
var/static/list/dust_cache
var/static/list/speedspace_cache
var/static/list/phase_shift_by_x
var/static/list/phase_shift_by_y
/turf/space/proc/build_dust_cache()
//Static
LAZYINITLIST(dust_cache)
for (var/i in 0 to 25)
var/image/im = image('icons/turf/space_dust.dmi', "[i]")
im.plane = DUST_PLANE
im.alpha = 128 //80
im.blend_mode = BLEND_ADD
dust_cache["[i]"] = im
//Moving
LAZYINITLIST(speedspace_cache)
for (var/i in 0 to 14)
// NORTH/SOUTH
var/image/im = image('icons/turf/space_dust_transit.dmi', "speedspace_ns_[i]")
im.plane = DUST_PLANE
im.blend_mode = BLEND_ADD
speedspace_cache["NS_[i]"] = im
// EAST/WEST
im = image('icons/turf/space_dust_transit.dmi', "speedspace_ew_[i]")
im.plane = DUST_PLANE
im.blend_mode = BLEND_ADD
speedspace_cache["EW_[i]"] = im
/turf/space/Initialize()
. = ..()
if(!keep_sprite)
icon_state = "white"
update_starlight()
if (!dust_cache)
build_dust_cache()
toggle_transit() //add static dust
if(config.starlight)
update_starlight()
toggle_transit() //Add static dust (not passing a dir)
/turf/space/proc/toggle_transit(var/direction)
cut_overlays()
if(!direction)
add_overlay(dust_cache["[((x + y) ^ ~(x * y) + z) % 25]"])
add_overlay(SSskybox.dust_cache["[((x + y) ^ ~(x * y) + z) % 25]"])
return
if(direction & (NORTH|SOUTH))
if(!phase_shift_by_x)
phase_shift_by_x = get_cross_shift_list(15)
var/x_shift = phase_shift_by_x[src.x % (phase_shift_by_x.len - 1) + 1]
var/x_shift = SSskybox.phase_shift_by_x[src.x % (SSskybox.phase_shift_by_x.len - 1) + 1]
var/transit_state = ((direction & SOUTH ? world.maxy - src.y : src.y) + x_shift)%15
add_overlay(speedspace_cache["NS_[transit_state]"])
add_overlay(SSskybox.speedspace_cache["NS_[transit_state]"])
else if(direction & (EAST|WEST))
if(!phase_shift_by_y)
phase_shift_by_y = get_cross_shift_list(15)
var/y_shift = phase_shift_by_y[src.y % (phase_shift_by_y.len - 1) + 1]
var/y_shift = SSskybox.phase_shift_by_y[src.y % (SSskybox.phase_shift_by_y.len - 1) + 1]
var/transit_state = ((direction & WEST ? world.maxx - src.x : src.x) + y_shift)%15
add_overlay(speedspace_cache["EW_[transit_state]"])
add_overlay(SSskybox.speedspace_cache["EW_[transit_state]"])
for(var/atom/movable/AM in src)
if (AM.simulated && !AM.anchored)
AM.throw_at(get_step(src,reverse_direction(direction)), 5, 1)
//generates a list used to randomize transit animations so they aren't in lockstep
/turf/space/proc/get_cross_shift_list(var/size)
var/list/result = list()
result += rand(0, 14)
for(var/i in 2 to size)
var/shifts = list(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
shifts -= result[i - 1] //consecutive shifts should not be equal
if(i == size)
shifts -= result[1] //because shift list is a ring buffer
result += pick(shifts)
return result
/turf/space/is_space()
return 1
@@ -97,8 +53,6 @@
return locate(/obj/structure/lattice, src) //counts as solid structure if it has a lattice
/turf/space/proc/update_starlight()
if(!config.starlight)
return
if(locate(/turf/simulated) in orange(src,1))
set_light(config.starlight)
else

View File

@@ -13,12 +13,10 @@
icon_state = "arrow-north"
pushdirection = SOUTH // south because the space tile is scrolling south
/turf/space/transit/north/New()
..()
if(!phase_shift_by_x)
phase_shift_by_x = get_cross_shift_list(15)
/turf/space/transit/north/Initialize()
. = ..()
var/x_shift = phase_shift_by_x[src.x % (phase_shift_by_x.len - 1) + 1]
var/x_shift = SSskybox.phase_shift_by_x[src.x % (SSskybox.phase_shift_by_x.len - 1) + 1]
var/transit_state = (world.maxy - src.y + x_shift)%15 + 1
icon_state = "speedspace_ns_[transit_state]"
@@ -28,12 +26,10 @@
icon_state = "arrow-south"
pushdirection = SOUTH // south because the space tile is scrolling south
/turf/space/transit/south/New()
..()
if(!phase_shift_by_x)
phase_shift_by_x = get_cross_shift_list(15)
/turf/space/transit/south/Initialize()
. = ..()
var/x_shift = phase_shift_by_x[src.x % (phase_shift_by_x.len - 1) + 1]
var/x_shift = SSskybox.phase_shift_by_x[src.x % (SSskybox.phase_shift_by_x.len - 1) + 1]
var/transit_state = (world.maxy - src.y + x_shift)%15 + 1
var/icon/I = new(icon, "speedspace_ns_[transit_state]")
@@ -45,12 +41,10 @@
icon_state = "arrow-east"
pushdirection = WEST
/turf/space/transit/east/New()
..()
if(!phase_shift_by_y)
phase_shift_by_y = get_cross_shift_list(15)
/turf/space/transit/east/Initialize()
. = ..()
var/y_shift = phase_shift_by_y[src.y % (phase_shift_by_y.len - 1) + 1]
var/y_shift = SSskybox.phase_shift_by_y[src.y % (SSskybox.phase_shift_by_y.len - 1) + 1]
var/transit_state = (world.maxx - src.x + y_shift)%15 + 1
icon_state = "speedspace_ew_[transit_state]"
@@ -60,12 +54,10 @@
icon_state = "arrow-west"
pushdirection = WEST
/turf/space/transit/west/New()
..()
if(!phase_shift_by_y)
phase_shift_by_y = get_cross_shift_list(15)
/turf/space/transit/west/Initialize()
. = ..()
var/y_shift = phase_shift_by_y[src.y % (phase_shift_by_y.len - 1) + 1]
var/y_shift = SSskybox.phase_shift_by_y[src.y % (SSskybox.phase_shift_by_y.len - 1) + 1]
var/transit_state = (world.maxx - src.x + y_shift)%15 + 1
var/icon/I = new(icon, "speedspace_ew_[transit_state]")

View File

@@ -34,26 +34,22 @@
var/can_build_into_floor = FALSE // Used for things like RCDs (and maybe lattices/floor tiles in the future), to see if a floor should replace it.
var/list/dangerous_objects // List of 'dangerous' objs that the turf holds that can cause something bad to happen when stepped on, used for AI mobs.
/turf/New()
..()
for(var/atom/movable/AM as mob|obj in src)
spawn( 0 )
src.Entered(AM)
return
turfs |= src
if(dynamic_lighting)
luminosity = 0
else
luminosity = 1
/turf/Initialize(mapload)
. = ..()
for(var/atom/movable/AM in src)
Entered(AM)
//Lighting related
luminosity = !(dynamic_lighting)
has_opaque_atom = (opacity)
//Pathfinding related
if(movement_cost && pathweight == 1) // This updates pathweight automatically.
pathweight = movement_cost
/turf/Destroy()
turfs -= src
. = QDEL_HINT_IWILLGC
..()
return QDEL_HINT_IWILLGC
/turf/ex_act(severity)
return 0

View File

@@ -11,8 +11,8 @@
icon_state = "0"
dynamic_lighting = FALSE
/turf/unsimulated/fake_space/New()
..()
/turf/unsimulated/fake_space/Initialize(mapload)
. = ..()
icon_state = "[((x + y) ^ ~(x * y) + z) % 25]"
//VOREStation Add End

View File

@@ -15,8 +15,8 @@
name = "Water"
icon_state = "water"
/turf/unsimulated/beach/water/New()
..()
/turf/unsimulated/beach/water/Initialize()
. = ..()
add_overlay(image("icon"='icons/misc/beach.dmi',"icon_state"="water2","layer"=MOB_LAYER+0.1))
/turf/simulated/floor/beach
@@ -54,6 +54,6 @@
/turf/simulated/floor/beach/water/ocean
icon_state = "seadeep"
/turf/simulated/floor/beach/water/New()
..()
/turf/simulated/floor/beach/water/Initialize()
. = ..()
add_overlay(image("icon"='icons/misc/beach.dmi',"icon_state"="water5","layer"=MOB_LAYER+0.1))

View File

@@ -17,8 +17,8 @@
phoron = 0
temperature = T20C
/turf/unsimulated/wall/planetary/New()
..()
/turf/unsimulated/wall/planetary/Initialize()
. = ..()
SSplanets.addTurf(src)
/turf/unsimulated/wall/planetary/Destroy()

View File

@@ -21,7 +21,7 @@
else
alert("Admin jumping disabled")
/client/proc/jumptoturf(var/turf/T in turfs)
/client/proc/jumptoturf(var/turf/T in world)
set name = "Jump to Turf"
set category = "Admin"
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_EVENT))

View File

@@ -28,7 +28,7 @@
to_chat(usr, "Checking for overlapping pipes...")
next_turf:
for(var/turf/T in turfs)
for(var/turf/T in world)
for(var/dir in cardinal)
var/list/connect_types = list(1 = 0, 2 = 0, 3 = 0)
for(var/obj/machinery/atmospherics/pipe in T)

View File

@@ -38,7 +38,7 @@
unsorted_overlays |= gas_data.tile_overlay[id]
for(var/turf/simulated/T in turfs)
for(var/turf/simulated/T in world)
T.air = null
T.overlays.Remove(unsorted_overlays)
T.zone = null

View File

@@ -67,7 +67,8 @@
name = "reinforced holofloor"
icon_state = "reinforced"
/turf/simulated/floor/holofloor/space/New()
/turf/simulated/floor/holofloor/space/Initialize()
. = ..()
icon_state = "[((x + y) ^ ~(x * y) + z) % 25]"
/turf/simulated/floor/holofloor/beach

View File

@@ -9,12 +9,6 @@
var/tmp/list/datum/lighting_corner/corners
var/tmp/has_opaque_atom = FALSE // Not to be confused with opacity, this will be TRUE if there's any opaque atom on the tile.
/turf/New()
. = ..()
if(opacity)
has_opaque_atom = TRUE
// Causes any affecting light sources to be queued for a visibility update, for example a door got opened.
/turf/proc/reconsider_lights()
for(var/datum/light_source/L in affecting_lights)

View File

@@ -17,8 +17,8 @@
updateVisibility(src)
return ..()
/turf/simulated/New()
..()
/turf/simulated/Initialize()
. = ..()
updateVisibility(src)

View File

@@ -33,8 +33,8 @@ var/global/list/map_sectors = list()
opacity = 1
density = 1
/turf/unsimulated/map/New()
..()
/turf/unsimulated/map/Initialize()
. = ..()
name = "[x]-[y]"
var/list/numbers = list()

View File

@@ -1,5 +1,5 @@
/turf/simulated/wall/diona/New(var/newloc)
..(newloc,"biomass")
/turf/simulated/wall/diona/Initialize(mapload)
..(mapload, "biomass")
/turf/simulated/wall/diona/attack_generic(var/mob/user, var/damage, var/attack_message)
if(istype(user, /mob/living/carbon/alien/diona))

View File

@@ -1,2 +1,2 @@
/turf/simulated/wall/elevator/New(var/newloc)
..(newloc,"elevatorium")
/turf/simulated/wall/elevator/Initialize(mapload)
..(mapload, "elevatorium")

View File

@@ -141,17 +141,6 @@ var/list/all_maps = list()
/datum/map/proc/perform_map_generation()
return
// Used to apply various post-compile procedural effects to the map.
/datum/map/proc/refresh_mining_turfs()
set background = 1
set waitfor = 0
// Update all turfs to ensure everything looks good post-generation. Yes,
// it's brute-forcey, but frankly the alternative is a mine turf rewrite.
for(var/turf/simulated/mineral/M in turfs) // Ugh.
M.update_icon()
/datum/map/proc/get_network_access(var/network)
return 0