@@ -470,6 +470,7 @@ GLOBAL_LIST_EMPTY(the_station_areas)
|
||||
return
|
||||
|
||||
var/away_name
|
||||
var/datum/space_level/away_level
|
||||
|
||||
var/answer = input("What kind ? ","Away/VR") as null|anything in (possible_options + "Custom")
|
||||
switch(answer)
|
||||
@@ -481,14 +482,19 @@ GLOBAL_LIST_EMPTY(the_station_areas)
|
||||
return
|
||||
away_name = "[mapfile] custom"
|
||||
to_chat(usr,"<span class='notice'>Loading [away_name]...</span>")
|
||||
createSpecificZlevel(choice, ztraits, mapfile)
|
||||
var/datum/map_template/template = new(mapfile, choice, ztraits)
|
||||
away_level = template.load_new_z(ztraits)
|
||||
else
|
||||
away_name = answer
|
||||
to_chat(usr,"<span class='notice'>Loading [away_name]...</span>")
|
||||
createSpecificZlevel(choice, ztraits, away_name)
|
||||
var/datum/map_template/template = new(away_name, choice)
|
||||
away_level = template.load_new_z(ztraits)
|
||||
|
||||
message_admins("Admin [key_name_admin(usr)] has attempted to load [away_name] away mission.")
|
||||
log_admin("Admin [key_name(usr)] has attempted to load [away_name] away mission.")
|
||||
message_admins("Admin [key_name_admin(usr)] has loaded [away_name] away mission.")
|
||||
log_admin("Admin [key_name(usr)] has loaded [away_name] away mission.")
|
||||
if(!away_level)
|
||||
message_admins("Loading [away_name] failed!")
|
||||
return
|
||||
|
||||
/datum/controller/subsystem/mapping/proc/RequestBlockReservation(width, height, z, type = /datum/turf_reservation, turf_type_override, border_type_override)
|
||||
UNTIL((!z || reservation_ready["[z]"]) && !clearing_reserved_turfs)
|
||||
|
||||
@@ -15,14 +15,6 @@
|
||||
INIT_ANNOUNCE("Loaded [name] in [(REALTIMEOFDAY - start_time)/10]s!")
|
||||
GLOB.random_zlevels_generated[name] = TRUE
|
||||
|
||||
/proc/createSpecificZlevel(name = AWAY_MISSION_NAME, list/traits = list(ZTRAIT_AWAY = TRUE), map)
|
||||
var/start_time = REALTIMEOFDAY
|
||||
if(!load_new_z_level(map, name, SOUTH, traits))
|
||||
INIT_ANNOUNCE("Failed to load [name]! map filepath: [map]!")
|
||||
return
|
||||
INIT_ANNOUNCE("Loaded [name] in [(REALTIMEOFDAY - start_time)/10]s!")
|
||||
GLOB.random_zlevels_generated[name] = TRUE
|
||||
|
||||
/obj/effect/landmark/awaystart
|
||||
name = "away mission spawn"
|
||||
desc = "Randomly picked away mission spawn points."
|
||||
|
||||
@@ -90,25 +90,20 @@
|
||||
/datum/map_template/proc/load_new_z(orientation = SOUTH, list/ztraits = src.ztraits || list(ZTRAIT_AWAY = TRUE), centered = TRUE)
|
||||
var/x = centered? max(round((world.maxx - width) / 2), 1) : 1
|
||||
var/y = centered? max(round((world.maxy - height) / 2), 1) : 1
|
||||
message_admins("d1")
|
||||
|
||||
var/datum/space_level/level = SSmapping.add_new_zlevel(name, ztraits)
|
||||
message_admins("d2")
|
||||
var/datum/parsed_map/parsed = load_map(file(mappath), x, y, level.z_value, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop = TRUE, orientation = orientation)
|
||||
message_admins("d3")
|
||||
var/list/bounds = parsed.bounds
|
||||
if(!bounds)
|
||||
return FALSE
|
||||
|
||||
repopulate_sorted_areas()
|
||||
message_admins("d4")
|
||||
|
||||
//initialize things that are normally initialized after map load
|
||||
parsed.initTemplateBounds()
|
||||
message_admins("d5")
|
||||
smooth_zlevel(world.maxz)
|
||||
message_admins("d6")
|
||||
log_game("Z-level [name] loaded at [x],[y],[world.maxz]")
|
||||
on_map_loaded(world.maxz, parsed.bounds)
|
||||
message_admins("d7")
|
||||
|
||||
return level
|
||||
|
||||
|
||||
@@ -17,20 +17,14 @@
|
||||
z_list += S
|
||||
|
||||
/datum/controller/subsystem/mapping/proc/add_new_zlevel(name, traits = list(), z_type = /datum/space_level)
|
||||
message_admins("d1_1")
|
||||
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_NEW_Z, args)
|
||||
var/new_z = z_list.len + 1
|
||||
if(world.maxz < new_z)
|
||||
message_admins("d1_2")
|
||||
if (world.maxz < new_z)
|
||||
world.incrementMaxZ()
|
||||
message_admins("d1_3")
|
||||
//CHECK_TICK
|
||||
CHECK_TICK
|
||||
// TODO: sleep here if the Z level needs to be cleared
|
||||
message_admins("d1_4")
|
||||
var/datum/space_level/S = new z_type(new_z, name, traits)
|
||||
message_admins("d1_5")
|
||||
z_list += S
|
||||
message_admins("d1_6")
|
||||
return S
|
||||
|
||||
/datum/controller/subsystem/mapping/proc/get_level(z)
|
||||
|
||||
Reference in New Issue
Block a user