Allows admins to pass parameters to New() (#26613)

* /proc/print_single_line(list/L)

* Admin datum/New parameters

* Fixes
This commit is contained in:
Cyberboss
2017-05-01 11:55:58 -06:00
committed by duncathan salt
parent 1955724e28
commit 9d0185c023
5 changed files with 61 additions and 8 deletions
+23 -2
View File
@@ -610,20 +610,41 @@
set desc = "(atom path) Spawn an atom"
set name = "Spawn"
return spawn_atom_impl(object, FALSE)
/datum/admins/proc/spawn_atom_adv(object as text)
set category = "Debug"
set desc = "(atom path) Spawn an atom with New() parameters"
set name = "Advanced Spawn"
return spawn_atom_impl(object, TRUE)
/datum/admins/proc/spawn_atom_impl(object, params)
if(!check_rights(R_SPAWN))
return
var/chosen = pick_closest_path(object)
if(!chosen)
return
var/list/arguments
if(ispath(chosen,/turf))
var/turf/T = get_turf(usr.loc)
T.ChangeTurf(chosen)
else
var/atom/A = new chosen(usr.loc)
if(params)
arguments = usr.client.get_callproc_args(TRUE)
if(!usr)
return
arguments = list(usr.loc) + arguments
var/atom/A = new chosen(arglist(arguments))
A.admin_spawned = TRUE
log_admin("[key_name(usr)] spawned [chosen] at ([usr.x],[usr.y],[usr.z])")
log_admin("[key_name(usr)] spawned [chosen] at [COORD(usr)][LAZYLEN(arguments) > 1 ? " with parameters [print_single_line(arguments)]": ""]")
SSblackbox.add_details("admin_verb","Spawn Atom") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!