mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
Fixed holodeck hard dels (#27415)
* Fixed holodeck hard dels, MURDERED VARIABLE COPYING * air but differently * Add return type hint
This commit is contained in:
@@ -184,6 +184,7 @@
|
||||
return 0
|
||||
|
||||
/turf/return_air()
|
||||
RETURN_TYPE(/datum/gas_mixture)
|
||||
//Create gas mixture to hold data for passing
|
||||
var/datum/gas_mixture/unsimulated/GM = new
|
||||
|
||||
|
||||
@@ -961,22 +961,20 @@ proc/GaussRandRound(var/sigma,var/roundto)
|
||||
var/datum/coords/CR = new(x_pos+C.x_pos,y_pos+C.y_pos,z_pos+C.z_pos)
|
||||
return CR
|
||||
|
||||
proc/DuplicateObject(obj/original, var/perfectcopy = 0 , var/sameloc = 0)
|
||||
if(!original)
|
||||
return null
|
||||
|
||||
var/obj/O = null
|
||||
|
||||
if(sameloc)
|
||||
O=new original.type(original.loc)
|
||||
else
|
||||
O=new original.type(locate(0,0,0))
|
||||
|
||||
if(perfectcopy)
|
||||
if((O) && (original))
|
||||
for(var/V in original.vars - variables_not_to_be_copied)
|
||||
O.vars[V] = original.vars[V]
|
||||
return O
|
||||
// If you're looking at this proc and thinking "that's exactly what I need!"
|
||||
// then you're wrong and you need to take a step back and reconsider.
|
||||
/atom/movable/proc/DuplicateObject(var/location)
|
||||
var/atom/movable/duplicate = new src.type(location)
|
||||
duplicate.change_dir(dir)
|
||||
duplicate.plane = plane
|
||||
duplicate.layer = layer
|
||||
duplicate.name = name
|
||||
duplicate.desc = desc
|
||||
duplicate.pixel_x = pixel_x
|
||||
duplicate.pixel_y = pixel_y
|
||||
duplicate.pixel_w = pixel_w
|
||||
duplicate.pixel_z = pixel_z
|
||||
return duplicate
|
||||
|
||||
|
||||
/area/proc/copy_contents_to(var/area/A , var/platingRequired = 0 )
|
||||
@@ -1035,6 +1033,7 @@ proc/DuplicateObject(obj/original, var/perfectcopy = 0 , var/sameloc = 0)
|
||||
var/datum/coords/C_trg = refined_trg[B]
|
||||
if(C_src.x_pos == C_trg.x_pos && C_src.y_pos == C_trg.y_pos)
|
||||
|
||||
var/old_name = T.name
|
||||
var/old_dir1 = T.dir
|
||||
var/old_icon_state1 = T.icon_state
|
||||
var/old_icon1 = T.icon
|
||||
@@ -1044,10 +1043,13 @@ proc/DuplicateObject(obj/original, var/perfectcopy = 0 , var/sameloc = 0)
|
||||
continue moving
|
||||
|
||||
var/turf/X = B.ChangeTurf(T.type)
|
||||
X.name = old_name
|
||||
X.dir = old_dir1
|
||||
X.icon_state = old_icon_state1
|
||||
X.icon = old_icon1 //Shuttle floors are in shuttle.dmi while the defaults are floors.dmi
|
||||
|
||||
X.return_air().copy_from(T.return_air())
|
||||
|
||||
var/list/objs = new/list()
|
||||
var/list/newobjs = new/list()
|
||||
var/list/mobs = new/list()
|
||||
@@ -1062,11 +1064,7 @@ proc/DuplicateObject(obj/original, var/perfectcopy = 0 , var/sameloc = 0)
|
||||
|
||||
|
||||
for(var/obj/O in objs)
|
||||
newobjs += DuplicateObject(O , 1)
|
||||
|
||||
|
||||
for(var/obj/O in newobjs)
|
||||
O.forceMove(X)
|
||||
newobjs += O.DuplicateObject(X)
|
||||
|
||||
for(var/mob/M in T)
|
||||
|
||||
@@ -1075,25 +1073,11 @@ proc/DuplicateObject(obj/original, var/perfectcopy = 0 , var/sameloc = 0)
|
||||
mobs += M
|
||||
|
||||
for(var/mob/M in mobs)
|
||||
newmobs += DuplicateObject(M , 1)
|
||||
|
||||
for(var/mob/M in newmobs)
|
||||
M.forceMove(X)
|
||||
newmobs += M.DuplicateObject(X)
|
||||
|
||||
copiedobjs += newobjs
|
||||
copiedobjs += newmobs
|
||||
|
||||
|
||||
|
||||
for(var/V in T.vars - variables_not_to_be_copied)
|
||||
X.vars[V] = T.vars[V]
|
||||
|
||||
// var/area/AR = X.loc
|
||||
|
||||
// if(AR.dynamic_lighting)
|
||||
// X.opacity = !X.opacity
|
||||
// X.sd_SetOpacity(!X.opacity) //TODO: rewrite this code so it's not messed by lighting ~Carn
|
||||
|
||||
toupdate += X
|
||||
|
||||
refined_src -= T
|
||||
|
||||
@@ -313,6 +313,14 @@
|
||||
</ul>"}
|
||||
|
||||
|
||||
/obj/machinery/conveyor/DuplicateObject(var/location)
|
||||
var/obj/machinery/conveyor/duplicate = ..()
|
||||
duplicate.in_reverse = in_reverse
|
||||
duplicate.backwards = backwards
|
||||
duplicate.forwards = forwards
|
||||
duplicate.movedir = movedir
|
||||
return duplicate
|
||||
|
||||
/obj/machinery/conveyor/multitool_topic(var/mob/user,var/list/href_list,var/obj/O)
|
||||
. = ..()
|
||||
if(.)
|
||||
|
||||
Reference in New Issue
Block a user