[MIRROR] Ports Rapid Cable Layers from /vg/ and paradise (#2162)

* Ports Rapid Cable Layers from /vg/ and paradise

* rej clean up + manual sync

* maps and .rej file cleanup

* sprite and WGW memes

* actual spellchecked memes

* some other map fix memes

* fuck it, let's just hard sync maps

* dumb paperwork shit for maps

* Revert "dumb paperwork shit for maps"

This reverts commit 8e70bbec0f407c334cd81f5b92aafdb90544ca9d.

* *autistic screeching*

* REEEEEEEEEEEEEEEEEEEEE

* Fuck off I want to do something else
This commit is contained in:
CitadelStationBot
2017-08-02 04:56:44 -05:00
committed by Poojawa
parent 76f7fcef9a
commit 8a4ddbe8a8
74 changed files with 62713 additions and 61428 deletions
+5 -1
View File
@@ -13,6 +13,10 @@
name = "Derelict Secondary Hallway"
icon_state = "hallS"
/area/derelict/hallway/primary/port
name = "Derelict Port Hallway"
icon_state = "hallFP"
/area/derelict/arrival
name = "Derelict Arrival Centre"
icon_state = "yellow"
@@ -121,4 +125,4 @@
name = "Abandoned Teleporter"
icon_state = "teleporter"
music = "signal"
ambientsounds = list('sound/ambience/ambimalf.ogg')
ambientsounds = list('sound/ambience/ambimalf.ogg')
-10
View File
@@ -1,10 +0,0 @@
diff a/code/game/atoms.dm b/code/game/atoms.dm (rejected hunks)
@@ -126,7 +126,7 @@
return TRUE
//finally check for centcom itself
- return istype(T.loc,/area/centcom)
+ return istype(T.loc, /area/centcom)
/atom/proc/onSyndieBase()
var/turf/T = get_turf(src)
-10
View File
@@ -1,10 +0,0 @@
diff a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm (rejected hunks)
@@ -266,7 +266,7 @@
if(escaped_total > 0)
SSblackbox.set_val("escaped_total",escaped_total)
send2irc("Server", "Round just ended.")
- if(cult.len && !istype(SSticker.mode,/datum/game_mode/cult))
+ if(cult.len && !istype(SSticker.mode, /datum/game_mode/cult))
datum_cult_completion()
return 0
-35
View File
@@ -1,35 +0,0 @@
diff a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm (rejected hunks)
@@ -1,21 +1,29 @@
+#define IV_TAKING 0
+#define IV_INJECTING 1
+
/obj/machinery/iv_drip
name = "\improper IV drip"
icon = 'icons/obj/iv_drip.dmi'
icon_state = "iv_drip"
- anchored = 0
+ anchored = FALSE
mouse_drag_pointer = MOUSE_ACTIVE_POINTER
var/mob/living/carbon/attached = null
- var/mode = 1 // 1 is injecting, 0 is taking blood.
+ var/mode = IV_INJECTING
var/obj/item/weapon/reagent_containers/beaker = null
var/list/drip_containers = list(/obj/item/weapon/reagent_containers/blood,
- /obj/item/weapon/reagent_containers/food,
- /obj/item/weapon/reagent_containers/glass)
+ /obj/item/weapon/reagent_containers/food,
+ /obj/item/weapon/reagent_containers/glass)
/obj/machinery/iv_drip/Initialize()
..()
update_icon()
drip_containers = typecacheof(drip_containers)
+/obj/machinery/iv_drip/Destroy()
+ attached = null
+ QDEL_NULL(beaker)
+ return ..()
+
/obj/machinery/iv_drip/update_icon()
if(attached)
if(mode)
@@ -1,10 +0,0 @@
diff a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm (rejected hunks)
@@ -52,7 +52,7 @@
. = ..()
/obj/effect/gibspawner/human
- gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/up,/obj/effect/decal/cleanable/blood/gibs/down,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/body,/obj/effect/decal/cleanable/blood/gibs/limb,/obj/effect/decal/cleanable/blood/gibs/core)
+ gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/up, /obj/effect/decal/cleanable/blood/gibs/down, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/body, /obj/effect/decal/cleanable/blood/gibs/limb, /obj/effect/decal/cleanable/blood/gibs/core)
gibamounts = list(1,1,1,1,1,1,1)
/obj/effect/gibspawner/human/Initialize()
@@ -49,6 +49,9 @@
desc = "A shooting target that looks like a xenomorphic alien."
hp = 2350
/obj/item/target/alien/anchored
anchored = TRUE
/obj/item/target/clown
icon_state = "target_c"
desc = "A shooting target that looks like a useless clown."
+202
View File
@@ -0,0 +1,202 @@
/obj/item/weapon/twohanded/rcl
name = "rapid cable layer"
desc = "A device used to rapidly deploy cables. It has screws on the side which can be removed to slide off the cables. Do not use without insulation!"
icon = 'icons/obj/tools.dmi'
icon_state = "rcl-0"
item_state = "rcl-0"
var/obj/structure/cable/last
var/obj/item/stack/cable_coil/loaded
opacity = FALSE
force = 5 //Plastic is soft
throwforce = 5
throw_speed = 1
throw_range = 7
w_class = WEIGHT_CLASS_NORMAL
origin_tech = "engineering=4;materials=2"
var/max_amount = 90
var/active = FALSE
actions_types = list(/datum/action/item_action/rcl)
var/list/colors = list("red", "yellow", "green", "blue", "pink", "orange", "cyan", "white")
var/current_color_index = 1
var/ghetto = FALSE
/obj/item/weapon/twohanded/rcl/attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/C = W
if(user.transferItemToLoc(W, src))
loaded = W
loaded.max_amount = max_amount //We store a lot.
else
to_chat(user, "<span class='warning'>[src] is stuck to your hand!</span>")
return
if(loaded.amount < max_amount)
var/amount = min(loaded.amount + C.amount, max_amount)
C.use(amount - loaded.amount)
loaded.amount = amount
else
return
update_icon()
to_chat(user, "<span class='notice'>You add the cables to the [src]. It now contains [loaded.amount].</span>")
else if(istype(W, /obj/item/weapon/screwdriver))
if(!loaded)
return
if(ghetto && prob(10)) //Is it a ghetto RCL? If so, give it a 10% chance to fall apart
to_chat(user, "<span class='warning'>You attempt to loosen the securing screws on the side, but it falls apart!</span>")
while(loaded.amount > 30) //There are only two kinds of situations: "nodiff" (60,90), or "diff" (31-59, 61-89)
var/diff = loaded.amount % 30
if(diff)
loaded.use(diff)
new /obj/item/stack/cable_coil(get_turf(user), diff)
else
loaded.use(30)
new /obj/item/stack/cable_coil(get_turf(user), 30)
qdel(src)
return
to_chat(user, "<span class='notice'>You loosen the securing screws on the side, allowing you to lower the guiding edge and retrieve the wires.</span>")
while(loaded.amount > 30) //There are only two kinds of situations: "nodiff" (60,90), or "diff" (31-59, 61-89)
var/diff = loaded.amount % 30
if(diff)
loaded.use(diff)
new /obj/item/stack/cable_coil(get_turf(user), diff)
else
loaded.use(30)
new /obj/item/stack/cable_coil(get_turf(user), 30)
loaded.max_amount = initial(loaded.max_amount)
if(!user.put_in_hands(loaded))
loaded.forceMove(get_turf(user))
loaded = null
update_icon()
else
..()
/obj/item/weapon/twohanded/rcl/examine(mob/user)
..()
if(loaded)
to_chat(user, "<span class='info'>It contains [loaded.amount]/[max_amount] cables.</span>")
/obj/item/weapon/twohanded/rcl/Destroy()
QDEL_NULL(loaded)
last = null
active = FALSE
return ..()
/obj/item/weapon/twohanded/rcl/update_icon()
if(!loaded)
icon_state = "rcl-0"
item_state = "rcl-0"
return
switch(loaded.amount)
if(61 to INFINITY)
icon_state = "rcl-30"
item_state = "rcl"
if(31 to 60)
icon_state = "rcl-20"
item_state = "rcl"
if(1 to 30)
icon_state = "rcl-10"
item_state = "rcl"
else
icon_state = "rcl-0"
item_state = "rcl-0"
/obj/item/weapon/twohanded/rcl/proc/is_empty(mob/user, loud = 1)
update_icon()
if(!loaded || !loaded.amount)
if(loud)
to_chat(user, "<span class='notice'>The last of the cables unreel from [src].</span>")
if(loaded)
QDEL_NULL(loaded)
loaded = null
unwield(user)
active = wielded
return TRUE
return FALSE
/obj/item/weapon/twohanded/rcl/dropped(mob/wearer)
..()
active = FALSE
last = null
/obj/item/weapon/twohanded/rcl/attack_self(mob/user)
..()
active = wielded
if(!active)
last = null
else if(!last)
for(var/obj/structure/cable/C in get_turf(user))
if(C.d1 == FALSE || C.d2 == FALSE)
last = C
break
/obj/item/weapon/twohanded/rcl/on_mob_move(direct, mob/user)
if(active)
trigger(user)
/obj/item/weapon/twohanded/rcl/proc/trigger(mob/user)
if(!isturf(user.loc))
return
if(is_empty(user, 0))
to_chat(user, "<span class='warning'>\The [src] is empty!</span>")
return
if(prob(2) && ghetto) //Give ghetto RCLs a 2% chance to jam, requiring it to be reactviated manually.
to_chat(user, "<span class='warning'>[src]'s wires jam!</span>")
active = FALSE
return
else
if(last)
if(get_dist(last, user) == 1) //hacky, but it works
var/turf/T = get_turf(user)
if(T.intact || !T.can_have_cabling())
last = null
return
if(get_dir(last, user) == last.d2)
//Did we just walk backwards? Well, that's the one direction we CAN'T complete a stub.
last = null
return
loaded.cable_join(last, user, FALSE)
if(is_empty(user))
return //If we've run out, display message and exit
else
last = null
loaded.item_color = colors[current_color_index]
last = loaded.place_turf(get_turf(src), user, turn(user.dir, 180))
is_empty(user) //If we've run out, display message
/obj/item/weapon/twohanded/rcl/pre_loaded/Initialize () //Comes preloaded with cable, for testing stuff
. = ..()
loaded = new()
loaded.max_amount = max_amount
loaded.amount = max_amount
update_icon()
/obj/item/weapon/twohanded/rcl/ui_action_click(mob/user, action)
if(istype(action, /datum/action/item_action/rcl))
current_color_index++;
if (current_color_index > colors.len)
current_color_index = 1
var/cwname = colors[current_color_index]
to_chat(user, "Color changed to [cwname]!")
/obj/item/weapon/twohanded/rcl/ghetto
actions_types = list()
max_amount = 30
name = "makeshift rapid cable layer"
ghetto = TRUE
/obj/item/weapon/twohanded/rcl/ghetto/update_icon()
if(!loaded)
icon_state = "rclg-0"
item_state = "rclg-0"
return
switch(loaded.amount)
if(1 to INFINITY)
icon_state = "rclg-1"
item_state = "rcl"
else
icon_state = "rclg-1"
item_state = "rclg-1"
@@ -162,6 +162,26 @@
buildstackamount = 10
var/mob/living/owner = null
/obj/structure/bed/dogbed/ian
desc = "Ian's bed! Looks comfy."
name = "Ian's bed"
anchored = TRUE
/obj/structure/bed/dogbed/cayenne
desc = "Seems kind of... fishy."
name = "Cayenne's bed"
anchored = TRUE
/obj/structure/bed/dogbed/renault
desc = "Renault's bed! Looks comfy. A foxy person needs a foxy pet."
name = "Renault's bed"
anchored = TRUE
/obj/structure/bed/dogbed/runtime
desc = "A comfy-looking cat bed. You can even strap your pet in, in case the gravity turns off."
name = "Runtime's bed"
anchored = TRUE
/obj/structure/bed/dogbed/proc/update_owner(mob/living/M)
owner = M
name = "[M]'s bed"
@@ -174,4 +194,4 @@
/obj/structure/bed/alien
name = "resting contraption"
desc = "This looks similar to contraptions from earth. Could aliens be stealing our technology?"
icon_state = "abed"
icon_state = "abed"
@@ -1,30 +0,0 @@
diff a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm (rejected hunks)
@@ -203,7 +203,7 @@
anchored = TRUE
name = "Secure Evidence Closet"
req_access_txt = "0"
- req_one_access_txt = list(GLOB.access_armory, GLOB.access_forensics_lockers)
+ req_one_access_txt = list(ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS)
/obj/structure/closet/secure_closet/brig/PopulateContents()
..()
@@ -227,16 +227,16 @@
/obj/structure/closet/secure_closet/contraband/armory
anchored = TRUE
name = "Contraband Locker"
- req_access = list(GLOB.access_armory)
+ req_access = list(ACCESS_ARMORY)
/obj/structure/closet/secure_closet/contraband/heads
anchored = TRUE
name = "Contraband Locker"
- req_access = list(GLOB.access_heads)
+ req_access = list(ACCESS_HEADS)
/obj/structure/closet/secure_closet/armory1
name = "armory armor locker"
- req_access = list(GLOB.access_armory)
+ req_access = list(ACCESS_ARMORY)
icon_state = "armory"
/obj/structure/closet/secure_closet/armory1/PopulateContents()
@@ -17,6 +17,9 @@
desc = "It's a storage unit for emergency breath masks and O2 tanks."
icon_state = "emergency"
/obj/structure/closet/emcloset/anchored
anchored = TRUE
/obj/structure/closet/emcloset/PopulateContents()
..()
@@ -148,6 +148,9 @@
buildstacktype = /obj/item/stack/sheet/glass
buildstackamount = 5
/obj/structure/reflector/single/anchored
anchored = TRUE
/obj/structure/reflector/single/get_reflection(srcdir,pdir)
var/new_dir = rotations["[srcdir]"]["[pdir]"]
return new_dir
@@ -171,6 +174,9 @@
buildstacktype = /obj/item/stack/sheet/rglass
buildstackamount = 10
/obj/structure/reflector/double/anchored
anchored = TRUE
/obj/structure/reflector/double/get_reflection(srcdir,pdir)
var/new_dir = double_rotations["[srcdir]"]["[pdir]"]
return new_dir
@@ -194,6 +200,9 @@
buildstacktype = /obj/item/stack/sheet/mineral/diamond
buildstackamount = 1
/obj/structure/reflector/box/anchored
anchored = TRUE
/obj/structure/reflector/box/get_reflection(srcdir,pdir)
var/new_dir = box_rotations["[srcdir]"]["[pdir]"]
return new_dir
+35
View File
@@ -244,6 +244,36 @@
desc = "A sign labelling an area as a place where xenobiological entities are researched."
icon_state = "xenobio"
/obj/structure/sign/evac
name = "\improper EVACUATION"
desc = "A sign labelling an area where evacuation procedures take place."
icon_state = "evac"
/obj/structure/sign/custodian
name = "\improper CUSTODIAN"
desc = "A sign labelling an area where the custodian works."
icon_state = "custodian"
/obj/structure/sign/engineering
name = "\improper ENGINEERING"
desc = "A sign labelling an area where engineers work."
icon_state = "engine"
/obj/structure/sign/cargo
name = "\improper CARGO"
desc = "A sign labelling an area where cargo ships dock."
icon_state = "cargo"
/obj/structure/sign/security
name = "\improper SECURITY"
desc = "A sign labelling an area where the law is law."
icon_state = "security"
/obj/structure/sign/holy
name = "\improper HOLY"
desc = "A sign labelling a religious area."
icon_state = "holy"
/obj/structure/sign/xeno_warning_mining
name = "DANGEROUS ALIEN LIFE"
desc = "A sign that warns would-be travellers of hostile alien life in the vicinity."
@@ -289,3 +319,8 @@
name = "command department"
desc = "A direction sign, pointing out which way the Command department is."
icon_state = "direction_bridge"
/obj/structure/sign/logo
name = "station logo"
desc = "A sign: SPACE STATION 13."
icon_state = "ss13sign-1"
-9
View File
@@ -1,9 +0,0 @@
diff a/code/game/sound.dm b/code/game/sound.dm (rejected hunks)
@@ -154,6 +151,6 @@
soundin = pick('sound/effects/can_open1.ogg', 'sound/effects/can_open2.ogg', 'sound/effects/can_open3.ogg')
return soundin
-/proc/playsound_global(file, repeat=0, wait, channel, volume)
+/proc/playsound_global(file, repeat = 0, wait, channel, volume)
for(var/V in GLOB.clients)
V << sound(file, repeat, wait, channel, volume)
@@ -49,6 +49,9 @@
/turf/open/floor/circuit/telecomms
initial_gas_mix = "n2=100;TEMP=80"
/turf/open/floor/circuit/telecomms/mainframe
name = "Mainframe Base"
/turf/open/floor/circuit/green
icon_state = "gcircuit"
icon_normal = "gcircuit"
@@ -70,6 +73,9 @@
/turf/open/floor/circuit/green/telecomms
initial_gas_mix = "n2=100;TEMP=80"
/turf/open/floor/circuit/green/telecomms/mainframe
name = "Mainframe Base"
/turf/open/floor/circuit/red
icon_state = "rcircuit"
icon_normal = "rcircuit"
@@ -265,4 +271,4 @@
//Do this *after* the turf has changed as qdel in spacevines will call changeturf again if it hasn't
for(var/obj/structure/spacevine/SV in src)
if(!QDESTROYING(SV))//Helps avoid recursive loops
qdel(SV)
qdel(SV)
@@ -17,6 +17,10 @@
/turf/open/floor/plasteel/black
icon_state = "dark"
/turf/open/floor/plasteel/black/telecomms
initial_gas_mix = "n2=100;TEMP=80"
/turf/open/floor/plasteel/black/telecomms/mainframe
name = "Mainframe Floor"
/turf/open/floor/plasteel/airless/black
icon_state = "dark"
/turf/open/floor/plasteel/black/side
@@ -43,6 +47,10 @@
/turf/open/floor/plasteel/brown
icon_state = "brown"
/turf/open/floor/plasteel/brown/telecomms
initial_gas_mix = "n2=100;TEMP=80"
/turf/open/floor/plasteel/brown/telecomms/mainframe
name = "Mainframe Floor"
/turf/open/floor/plasteel/brown/corner
icon_state = "browncorner"
@@ -59,6 +67,8 @@
icon_state = "greenfull"
/turf/open/floor/plasteel/green/side
icon_state = "green"
/turf/open/floor/plasteel/green/side/telecomms
initial_gas_mix = "n2=100;TEMP=80"
/turf/open/floor/plasteel/green/corner
icon_state = "greencorner"
@@ -66,6 +76,8 @@
icon_state = "darkgreenfull"
/turf/open/floor/plasteel/darkgreen/side
icon_state = "darkgreen"
/turf/open/floor/plasteel/darkgreen/side/telecomms
initial_gas_mix = "n2=100;TEMP=80"
/turf/open/floor/plasteel/darkgreen/corner
icon_state = "darkgreencorners"
@@ -89,6 +101,8 @@
icon_state = "darkredfull"
/turf/open/floor/plasteel/darkred/side
icon_state = "darkred"
/turf/open/floor/plasteel/darkred/side/telecomms
initial_gas_mix = "n2=100;TEMP=80"
/turf/open/floor/plasteel/darkred/corner
icon_state = "darkredcorners"
@@ -112,6 +126,8 @@
icon_state = "darkbluefull"
/turf/open/floor/plasteel/darkblue/side
icon_state = "darkblue"
/turf/open/floor/plasteel/darkblue/side/telecomms
initial_gas_mix = "n2=100;TEMP=80"
/turf/open/floor/plasteel/darkblue/corner
icon_state = "darkbluecorners"
@@ -119,6 +135,8 @@
icon_state = "whitebluefull"
/turf/open/floor/plasteel/whiteblue/side
icon_state = "whiteblue"
/turf/open/floor/plasteel/whiteblue/side/telecomms
initial_gas_mix = "n2=100;TEMP=80"
/turf/open/floor/plasteel/whiteblue/corner
icon_state = "whitebluecorner"
@@ -135,6 +153,8 @@
icon_state = "darkyellowfull"
/turf/open/floor/plasteel/darkyellow/side
icon_state = "darkyellow"
/turf/open/floor/plasteel/darkyellow/side/telecomms
initial_gas_mix = "n2=100;TEMP=80"
/turf/open/floor/plasteel/darkyellow/corner
icon_state = "darkyellowcorners"
@@ -158,6 +178,8 @@
icon_state = "darkpurplefull"
/turf/open/floor/plasteel/darkpurple/side
icon_state = "darkpurple"
/turf/open/floor/plasteel/darkpurple/side/telecomms
initial_gas_mix = "n2=100;TEMP=80"
/turf/open/floor/plasteel/darkpurple/corner
icon_state = "darkpurplecorners"
@@ -165,6 +187,8 @@
icon_state = "whitepurplefull"
/turf/open/floor/plasteel/whitepurple/side
icon_state = "whitepurple"
/turf/open/floor/plasteel/whitepurple/side/telecomms
initial_gas_mix = "n2=100;TEMP=80"
/turf/open/floor/plasteel/whitepurple/corner
icon_state = "whitepurplecorner"
@@ -181,6 +205,8 @@
icon_state = "neutralfull"
/turf/open/floor/plasteel/neutral/side
icon_state = "neutral"
/turf/open/floor/plasteel/neutral/side/telecomms
initial_gas_mix = "n2=100;TEMP=80"
/turf/open/floor/plasteel/neutral/corner
icon_state = "neutralcorner"
@@ -325,6 +351,10 @@
/turf/open/floor/plasteel/vault
icon_state = "vault"
/turf/open/floor/plasteel/vault/telecomms
initial_gas_mix = "n2=100;TEMP=80"
/turf/open/floor/plasteel/vault/telecomms/mainframe
name = "Mainframe Floor"
/turf/open/floor/plasteel/cult
icon_state = "cult"
+24 -13
View File
@@ -9,7 +9,7 @@
var/to_be_destroyed = 0 //Used for fire, if a melting temperature was reached, it will be destroyed
var/max_fire_temperature_sustained = 0 //The max temperature of the fire which it was subjected to
var/blocks_air = 0
var/blocks_air = FALSE
flags = CAN_BE_DIRTY
@@ -84,16 +84,28 @@
/turf/attack_hand(mob/user)
user.Move_Pulled(src)
/turf/proc/handleRCL(obj/item/weapon/twohanded/rcl/C, mob/user)
if(C.loaded)
for(var/obj/structure/cable/LC in src)
if(!LC.d1 || !LC.d2)
LC.handlecable(C, user)
return
C.loaded.place_turf(src, user)
C.is_empty(user)
/turf/attackby(obj/item/C, mob/user, params)
if(can_lay_cable() && istype(C, /obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/coil = C
for(var/obj/structure/cable/LC in src)
if((LC.d1==0)||(LC.d2==0))
if(!LC.d1 || !LC.d2)
LC.attackby(C,user)
return
coil.place_turf(src, user)
return TRUE
else if(istype(C, /obj/item/weapon/twohanded/rcl))
handleRCL(C, user)
return FALSE
/turf/CanPass(atom/movable/mover, turf/target)
@@ -117,7 +129,7 @@
return FALSE
var/list/large_dense = list()
//Next, check objects to block entry that are on the border
for(var/atom/movable/border_obstacle in src)
if(border_obstacle.flags & ON_BORDER)
@@ -134,7 +146,7 @@
//Finally, check objects/mobs to block entry that are not on the border
var/atom/movable/tompost_bump
var/top_layer = 0
var/top_layer = FALSE
for(var/atom/movable/obstacle in large_dense)
if(!obstacle.CanPass(mover, mover.loc, 1) && (forget != obstacle))
if(obstacle.layer > top_layer)
@@ -197,14 +209,14 @@
qdel(L)
//wrapper for ChangeTurf()s that you want to prevent/affect without overriding ChangeTurf() itself
/turf/proc/TerraformTurf(path, new_baseturf, defer_change = FALSE, ignore_air = FALSE)
return ChangeTurf(path, new_baseturf, defer_change, ignore_air)
/turf/proc/TerraformTurf(path, new_baseturf, defer_change = FALSE, ignore_air = FALSE, forceop = FALSE)
return ChangeTurf(path, new_baseturf, defer_change, ignore_air, forceop)
//Creates a new turf
/turf/proc/ChangeTurf(path, new_baseturf, defer_change = FALSE, ignore_air = FALSE)
/turf/proc/ChangeTurf(path, new_baseturf, defer_change = FALSE, ignore_air = FALSE, forceop = FALSE)
if(!path)
return
if(!GLOB.use_preloader && path == type) // Don't no-op if the map loader requires it to be reconstructed
if(!GLOB.use_preloader && path == type && !forceop) // Don't no-op if the map loader requires it to be reconstructed
return src
var/old_baseturf = baseturf
@@ -416,8 +428,8 @@
var/thing = allowed_contents[i]
qdel(thing, force=TRUE)
var/turf/newT = ChangeTurf(turf_type, baseturf_type, FALSE, FALSE)
var/turf/newT = ChangeTurf(turf_type, baseturf_type, FALSE, FALSE, forceop = forceop)
SSair.remove_from_active(newT)
newT.CalculateAdjacentTurfs()
SSair.add_to_active(newT,1)
@@ -425,13 +437,12 @@
/turf/proc/is_transition_turf()
return
/turf/acid_act(acidpwr, acid_volume)
. = 1
var/acid_type = /obj/effect/acid
if(acidpwr >= 200) //alien acid power
acid_type = /obj/effect/acid/alien
var/has_acid_effect = 0
var/has_acid_effect = FALSE
for(var/obj/O in src)
if(intact && O.level == 1) //hidden under the floor
continue
@@ -503,4 +514,4 @@
limit--
else
return I
return I
return I
-10
View File
@@ -1,10 +0,0 @@
diff a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm (rejected hunks)
@@ -410,7 +410,7 @@
/turf/proc/empty(turf_type=/turf/open/space, baseturf_type)
// Remove all atoms except observers, landmarks, docking ports
var/static/list/ignored_atoms = typecacheof(list(/mob/dead, /obj/effect/landmark, /obj/docking_port, /atom/movable/lighting_object))
- var/list/allowed_contents = typecache_filter_list(GetAllContents(),ignored_atoms,reversed=TRUE)
+ var/list/allowed_contents = typecache_filter_list_reverse(GetAllContents(),ignored_atoms)
allowed_contents -= src
for(var/i in 1 to allowed_contents.len)
var/thing = allowed_contents[i]