diff --git a/code/__defines/subsystems.dm b/code/__defines/subsystems.dm
index ab54ade1f3b..98e7ca633c5 100644
--- a/code/__defines/subsystems.dm
+++ b/code/__defines/subsystems.dm
@@ -52,21 +52,21 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
// Subsystem init_order, from highest priority to lowest priority
// Subsystems shutdown in the reverse of the order they initialize in
// The numbers just define the ordering, they are meaningless otherwise.
-<<<<<<< HEAD
-#define INIT_ORDER_MAPPING 20 // VOREStation Edit
-#define INIT_ORDER_DECALS 16
-#define INIT_ORDER_ATOMS 15
-#define INIT_ORDER_MACHINES 10
-#define INIT_ORDER_SHUTTLES 3
-#define INIT_ORDER_DEFAULT 0
-#define INIT_ORDER_LIGHTING 0
-#define INIT_ORDER_AIR -1
-#define INIT_ORDER_PLANETS -4
-#define INIT_ORDER_HOLOMAPS -5
-#define INIT_ORDER_OVERLAY -6
-#define INIT_ORDER_XENOARCH -20
-#define INIT_ORDER_CIRCUIT -21
-#define INIT_ORDER_AI -22
+#define INIT_ORDER_MAPPING 20 // VOREStation Edit
+#define INIT_ORDER_DECALS 16
+#define INIT_ORDER_ATOMS 15
+#define INIT_ORDER_MACHINES 10
+#define INIT_ORDER_SHUTTLES 3
+#define INIT_ORDER_TIMER 1
+#define INIT_ORDER_DEFAULT 0
+#define INIT_ORDER_LIGHTING 0
+#define INIT_ORDER_AIR -1
+#define INIT_ORDER_PLANETS -4
+#define INIT_ORDER_HOLOMAPS -5
+#define INIT_ORDER_OVERLAY -6
+#define INIT_ORDER_XENOARCH -20
+#define INIT_ORDER_CIRCUIT -21
+#define INIT_ORDER_AI -22
// Subsystem fire priority, from lowest to highest priority
diff --git a/code/controllers/autotransfer.dm b/code/controllers/autotransfer.dm
index 89dfb5b86fb..b3d82ea6146 100644
--- a/code/controllers/autotransfer.dm
+++ b/code/controllers/autotransfer.dm
@@ -7,13 +7,9 @@ datum/controller/transfer_controller
var/shift_last_vote = 0 //VOREStation Edit
datum/controller/transfer_controller/New()
timerbuffer = config.vote_autotransfer_initial
-<<<<<<< HEAD
shift_hard_end = config.vote_autotransfer_initial + (config.vote_autotransfer_interval * 1) //VOREStation Edit //Change this "1" to how many extend votes you want there to be.
shift_last_vote = shift_hard_end - config.vote_autotransfer_interval //VOREStation Edit
- processing_objects += src
-=======
START_PROCESSING(SSobj, src)
->>>>>>> 2c4b5af... Merge pull request #5677 from kevinz000/PS_PORT_SCHEDULER
datum/controller/transfer_controller/Destroy()
STOP_PROCESSING(SSobj, src)
diff --git a/code/game/objects/items/weapons/implants/implantreagent_vr.dm b/code/game/objects/items/weapons/implants/implantreagent_vr.dm
index 0b227d95391..4597cbe0a8f 100644
--- a/code/game/objects/items/weapons/implants/implantreagent_vr.dm
+++ b/code/game/objects/items/weapons/implants/implantreagent_vr.dm
@@ -31,7 +31,7 @@
return
/obj/item/weapon/implant/reagent_generator/post_implant(mob/living/carbon/source)
- processing_objects += src
+ START_PROCESSING(SSobj, src)
to_chat(source, "You implant [source] with \the [src].")
assigned_proc = new assigned_proc(source, verb_name, verb_desc)
return 1
diff --git a/code/game/objects/items/weapons/tools/weldingtool.dm b/code/game/objects/items/weapons/tools/weldingtool.dm
index e984a1ad7d1..ecc87a813e4 100644
--- a/code/game/objects/items/weapons/tools/weldingtool.dm
+++ b/code/game/objects/items/weapons/tools/weldingtool.dm
@@ -1,4 +1,3 @@
-<<<<<<< HEAD
#define WELDER_FUEL_BURN_INTERVAL 13
/*
* Welding Tool
@@ -48,12 +47,12 @@
R.add_reagent("fuel", max_fuel)
update_icon()
if(always_process)
- processing_objects |= src
+ START_PROCESSING(SSobj, src)
..()
/obj/item/weapon/weldingtool/Destroy()
if(welding || always_process)
- processing_objects -= src
+ STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/weapon/weldingtool/examine(mob/user)
@@ -61,7 +60,7 @@
if(max_fuel)
to_chat(user, text("\icon[] The [] contains []/[] units of fuel!", src, src.name, get_fuel(),src.max_fuel ))
-/obj/item/weapon/weldingtool/attack(var/atom/A, var/mob/living/user, var/def_zone)
+/obj/item/weapon/weldingtool/attack(atom/A, mob/living/user, def_zone)
if(ishuman(A) && user.a_intent == I_HELP)
var/mob/living/carbon/human/H = A
var/obj/item/organ/external/S = H.organs_by_name[user.zone_sel.selecting]
@@ -116,18 +115,13 @@
..()
return
-
/obj/item/weapon/weldingtool/process()
if(welding)
++burned_fuel_for
if(burned_fuel_for >= WELDER_FUEL_BURN_INTERVAL)
remove_fuel(1)
-
-
-
if(get_fuel() < 1)
setWelding(0)
-
//I'm not sure what this does. I assume it has to do with starting fires...
//...but it doesnt check to see if the welder is on or not.
var/turf/location = src.loc
@@ -138,7 +132,6 @@
if (istype(location, /turf))
location.hotspot_expose(700, 5)
-
/obj/item/weapon/weldingtool/afterattack(obj/O as obj, mob/user as mob, proximity)
if(!proximity) return
if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1)
@@ -199,7 +192,7 @@
//Returns whether or not the welding tool is currently on.
/obj/item/weapon/weldingtool/proc/isOn()
- return src.welding
+ return welding
/obj/item/weapon/weldingtool/update_icon()
..()
@@ -215,7 +208,7 @@
// Fuel counter overlay.
if(change_icons && get_max_fuel())
var/ratio = get_fuel() / get_max_fuel()
- ratio = Ceiling(ratio*4) * 25
+ ratio = CEILING(ratio * 4, 1) * 25
var/image/I = image(icon, src, "[icon_state][ratio]")
overlays.Add(I)
@@ -284,7 +277,7 @@
welding = 1
update_icon()
if(!always_process)
- processing_objects |= src
+ START_PROCESSING(SSobj, src)
else
if(M)
var/msg = max_fuel ? "welding fuel" : "charge"
@@ -293,7 +286,7 @@
//Otherwise
else if(!set_welding && welding)
if(!always_process)
- processing_objects -= src
+ STOP_PROCESSING(SSobj, src)
if(M)
to_chat(M, "You switch \the [src] off.")
else if(T)
@@ -610,612 +603,6 @@
/obj/item/weapon/weldingtool/electric/mounted/cyborg
toolspeed = 0.5
-#undef WELDER_FUEL_BURN_INTERVAL
-=======
-#define WELDER_FUEL_BURN_INTERVAL 13
-/*
- * Welding Tool
- */
-/obj/item/weapon/weldingtool
- name = "\improper welding tool"
- icon = 'icons/obj/tools.dmi'
- icon_state = "welder"
- item_state = "welder"
- flags = CONDUCT
- slot_flags = SLOT_BELT
-
- //Amount of OUCH when it's thrown
- force = 3.0
- throwforce = 5.0
- throw_speed = 1
- throw_range = 5
- w_class = ITEMSIZE_SMALL
-
- //Cost to make in the autolathe
- matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 30)
-
- //R&D tech level
- origin_tech = list(TECH_ENGINEERING = 1)
-
- //Welding tool specific stuff
- var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2)
- var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower)
- var/max_fuel = 20 //The max amount of fuel the welder can hold
-
- var/acti_sound = 'sound/items/welderactivate.ogg'
- var/deac_sound = 'sound/items/welderdeactivate.ogg'
- usesound = 'sound/items/Welder2.ogg'
- var/change_icons = TRUE
- var/flame_intensity = 2 //how powerful the emitted light is when used.
- var/flame_color = "#FF9933" // What color the welder light emits when its on. Default is an orange-ish color.
- var/eye_safety_modifier = 0 // Increasing this will make less eye protection needed to stop eye damage. IE at 1, sunglasses will fully protect.
- var/burned_fuel_for = 0 // Keeps track of how long the welder's been on, used to gradually empty the welder if left one, without RNG.
- var/always_process = FALSE // If true, keeps the welder on the process list even if it's off. Used for when it needs to regenerate fuel.
- toolspeed = 1
-
-/obj/item/weapon/weldingtool/New()
-// var/random_fuel = min(rand(10,20),max_fuel)
- var/datum/reagents/R = new/datum/reagents(max_fuel)
- reagents = R
- R.my_atom = src
- R.add_reagent("fuel", max_fuel)
- update_icon()
- if(always_process)
- START_PROCESSING(SSobj, src)
- ..()
-
-/obj/item/weapon/weldingtool/Destroy()
- if(welding || always_process)
- STOP_PROCESSING(SSobj, src)
- return ..()
-
-/obj/item/weapon/weldingtool/examine(mob/user)
- if(..(user, 0))
- if(max_fuel)
- to_chat(user, text("\icon[] The [] contains []/[] units of fuel!", src, src.name, get_fuel(),src.max_fuel ))
-
-/obj/item/weapon/weldingtool/attack(atom/A, mob/living/user, def_zone)
- if(ishuman(A) && user.a_intent == I_HELP)
- var/mob/living/carbon/human/H = A
- var/obj/item/organ/external/S = H.organs_by_name[user.zone_sel.selecting]
-
- if(!S || S.robotic < ORGAN_ROBOT || S.open == 3)
- return ..()
-
- if(!welding)
- to_chat(user, "You'll need to turn [src] on to patch the damage on [H]'s [S.name]!")
- return 1
-
- if(S.robo_repair(15, BRUTE, "some dents", src, user))
- remove_fuel(1, user)
- return 1
-
- return ..()
-
-/obj/item/weapon/weldingtool/attackby(obj/item/W as obj, mob/living/user as mob)
- if(istype(W,/obj/item/weapon/tool/screwdriver))
- if(welding)
- to_chat(user, "Stop welding first!")
- return
- status = !status
- if(status)
- to_chat(user, "You secure the welder.")
- else
- to_chat(user, "The welder can now be attached and modified.")
- src.add_fingerprint(user)
- return
-
- if((!status) && (istype(W,/obj/item/stack/rods)))
- var/obj/item/stack/rods/R = W
- R.use(1)
- var/obj/item/weapon/flamethrower/F = new/obj/item/weapon/flamethrower(user.loc)
- src.loc = F
- F.weldtool = src
- if (user.client)
- user.client.screen -= src
- if (user.r_hand == src)
- user.remove_from_mob(src)
- else
- user.remove_from_mob(src)
- src.master = F
- src.layer = initial(src.layer)
- user.remove_from_mob(src)
- if (user.client)
- user.client.screen -= src
- src.loc = F
- src.add_fingerprint(user)
- return
-
- ..()
- return
-
-/obj/item/weapon/weldingtool/process()
- if(welding)
- ++burned_fuel_for
- if(burned_fuel_for >= WELDER_FUEL_BURN_INTERVAL)
- remove_fuel(1)
- if(get_fuel() < 1)
- setWelding(0)
- //I'm not sure what this does. I assume it has to do with starting fires...
- //...but it doesnt check to see if the welder is on or not.
- var/turf/location = src.loc
- if(istype(location, /mob/living))
- var/mob/living/M = location
- if(M.item_is_in_hands(src))
- location = get_turf(M)
- if (istype(location, /turf))
- location.hotspot_expose(700, 5)
-
-/obj/item/weapon/weldingtool/afterattack(obj/O as obj, mob/user as mob, proximity)
- if(!proximity) return
- if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1)
- if(!welding && max_fuel)
- O.reagents.trans_to_obj(src, max_fuel)
- to_chat(user, "Welder refueled")
- playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6)
- return
- else if(!welding)
- to_chat(user, "[src] doesn't use fuel.")
- return
- else
- message_admins("[key_name_admin(user)] triggered a fueltank explosion with a welding tool.")
- log_game("[key_name(user)] triggered a fueltank explosion with a welding tool.")
- to_chat(user, "You begin welding on the fueltank and with a moment of lucidity you realize, this might not have been the smartest thing you've ever done.")
- var/obj/structure/reagent_dispensers/fueltank/tank = O
- tank.explode()
- return
- if (src.welding)
- remove_fuel(1)
- var/turf/location = get_turf(user)
- if(isliving(O))
- var/mob/living/L = O
- L.IgniteMob()
- if (istype(location, /turf))
- location.hotspot_expose(700, 50, 1)
- return
-
-
-/obj/item/weapon/weldingtool/attack_self(mob/user as mob)
- setWelding(!welding, usr)
- return
-
-//Returns the amount of fuel in the welder
-/obj/item/weapon/weldingtool/proc/get_fuel()
- return reagents.get_reagent_amount("fuel")
-
-/obj/item/weapon/weldingtool/proc/get_max_fuel()
- return max_fuel
-
-//Removes fuel from the welding tool. If a mob is passed, it will perform an eyecheck on the mob. This should probably be renamed to use()
-/obj/item/weapon/weldingtool/proc/remove_fuel(var/amount = 1, var/mob/M = null)
- if(!welding)
- return 0
- if(amount)
- burned_fuel_for = 0 // Reset the counter since we're removing fuel.
- if(get_fuel() >= amount)
- reagents.remove_reagent("fuel", amount)
- if(M)
- eyecheck(M)
- update_icon()
- return 1
- else
- if(M)
- to_chat(M, "You need more welding fuel to complete this task.")
- update_icon()
- return 0
-
-//Returns whether or not the welding tool is currently on.
-/obj/item/weapon/weldingtool/proc/isOn()
- return welding
-
-/obj/item/weapon/weldingtool/update_icon()
- ..()
- overlays.Cut()
- // Welding overlay.
- if(welding)
- var/image/I = image(icon, src, "[icon_state]-on")
- overlays.Add(I)
- item_state = "[initial(item_state)]1"
- else
- item_state = initial(item_state)
-
- // Fuel counter overlay.
- if(change_icons && get_max_fuel())
- var/ratio = get_fuel() / get_max_fuel()
- ratio = CEILING(ratio * 4, 1) * 25
- var/image/I = image(icon, src, "[icon_state][ratio]")
- overlays.Add(I)
-
- // Lights
- if(welding && flame_intensity)
- set_light(flame_intensity, flame_intensity, flame_color)
- else
- set_light(0)
-
-// icon_state = welding ? "[icon_state]1" : "[initial(icon_state)]"
- var/mob/M = loc
- if(istype(M))
- M.update_inv_l_hand()
- M.update_inv_r_hand()
-
-/obj/item/weapon/weldingtool/MouseDrop(obj/over_object as obj)
- if(!canremove)
- return
-
- if (ishuman(usr) || issmall(usr)) //so monkeys can take off their backpacks -- Urist
-
- if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech. why?
- return
-
- if (!( istype(over_object, /obj/screen) ))
- return ..()
-
- //makes sure that the thing is equipped, so that we can't drag it into our hand from miles away.
- //there's got to be a better way of doing this.
- if (!(src.loc == usr) || (src.loc && src.loc.loc == usr))
- return
-
- if (( usr.restrained() ) || ( usr.stat ))
- return
-
- if ((src.loc == usr) && !(istype(over_object, /obj/screen)) && !usr.unEquip(src))
- return
-
- switch(over_object.name)
- if("r_hand")
- usr.u_equip(src)
- usr.put_in_r_hand(src)
- if("l_hand")
- usr.u_equip(src)
- usr.put_in_l_hand(src)
- src.add_fingerprint(usr)
-
-//Sets the welding state of the welding tool. If you see W.welding = 1 anywhere, please change it to W.setWelding(1)
-//so that the welding tool updates accordingly
-/obj/item/weapon/weldingtool/proc/setWelding(var/set_welding, var/mob/M)
- if(!status) return
-
- var/turf/T = get_turf(src)
- //If we're turning it on
- if(set_welding && !welding)
- if (get_fuel() > 0)
- if(M)
- to_chat(M, "You switch the [src] on.")
- else if(T)
- T.visible_message("\The [src] turns on.")
- playsound(loc, acti_sound, 50, 1)
- src.force = 15
- src.damtype = "fire"
- src.w_class = ITEMSIZE_LARGE
- src.hitsound = 'sound/items/welder.ogg'
- welding = 1
- update_icon()
- if(!always_process)
- START_PROCESSING(SSobj, src)
- else
- if(M)
- var/msg = max_fuel ? "welding fuel" : "charge"
- to_chat(M, "You need more [msg] to complete this task.")
- return
- //Otherwise
- else if(!set_welding && welding)
- if(!always_process)
- STOP_PROCESSING(SSobj, src)
- if(M)
- to_chat(M, "You switch \the [src] off.")
- else if(T)
- T.visible_message("\The [src] turns off.")
- playsound(loc, deac_sound, 50, 1)
- src.force = 3
- src.damtype = "brute"
- src.w_class = initial(src.w_class)
- src.welding = 0
- src.hitsound = initial(src.hitsound)
- update_icon()
-
-//Decides whether or not to damage a player's eyes based on what they're wearing as protection
-//Note: This should probably be moved to mob
-/obj/item/weapon/weldingtool/proc/eyecheck(mob/living/carbon/user)
- if(!istype(user))
- return 1
- var/safety = user.eyecheck()
- safety = between(-1, safety + eye_safety_modifier, 2)
- if(istype(user, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = user
- var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES]
- if(!E)
- return
- switch(safety)
- if(1)
- to_chat(usr, "Your eyes sting a little.")
- E.damage += rand(1, 2)
- if(E.damage > 12)
- user.eye_blurry += rand(3,6)
- if(0)
- to_chat(usr, "Your eyes burn.")
- E.damage += rand(2, 4)
- if(E.damage > 10)
- E.damage += rand(4,10)
- if(-1)
- to_chat(usr, "Your thermals intensify the welder's glow. Your eyes itch and burn severely.")
- user.eye_blurry += rand(12,20)
- E.damage += rand(12, 16)
- if(safety<2)
-
- if(E.damage > 10)
- to_chat(user, "Your eyes are really starting to hurt. This can't be good for you!")
-
- if (E.damage >= E.min_broken_damage)
- to_chat(user, "You go blind!")
- user.sdisabilities |= BLIND
- else if (E.damage >= E.min_bruised_damage)
- to_chat(user, "You go blind!")
- user.Blind(5)
- user.eye_blurry = 5
- user.disabilities |= NEARSIGHTED
- spawn(100)
- user.disabilities &= ~NEARSIGHTED
- return
-
-/obj/item/weapon/weldingtool/is_hot()
- return isOn()
-
-/obj/item/weapon/weldingtool/largetank
- name = "industrial welding tool"
- desc = "A slightly larger welder with a larger tank."
- icon_state = "indwelder"
- max_fuel = 40
- origin_tech = list(TECH_ENGINEERING = 2, TECH_PHORON = 2)
- matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 60)
-
-/obj/item/weapon/weldingtool/largetank/cyborg
- name = "integrated welding tool"
- desc = "An advanced welder designed to be used in robotic systems."
- toolspeed = 0.5
-
-/obj/item/weapon/weldingtool/hugetank
- name = "upgraded welding tool"
- desc = "A much larger welder with a huge tank."
- icon_state = "indwelder"
- max_fuel = 80
- w_class = ITEMSIZE_NORMAL
- origin_tech = list(TECH_ENGINEERING = 3)
- matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120)
-
-/obj/item/weapon/weldingtool/mini
- name = "emergency welding tool"
- desc = "A miniature welder used during emergencies."
- icon_state = "miniwelder"
- max_fuel = 10
- w_class = ITEMSIZE_SMALL
- matter = list(MAT_METAL = 30, MAT_GLASS = 10)
- change_icons = 0
- toolspeed = 2
- eye_safety_modifier = 1 // Safer on eyes.
-
-/obj/item/weapon/weldingtool/alien
- name = "alien welding tool"
- desc = "An alien welding tool. Whatever fuel it uses, it never runs out."
- icon = 'icons/obj/abductor.dmi'
- icon_state = "welder"
- toolspeed = 0.1
- flame_color = "#6699FF" // Light bluish.
- eye_safety_modifier = 2
- change_icons = 0
- origin_tech = list(TECH_PHORON = 5 ,TECH_ENGINEERING = 5)
- always_process = TRUE
-
-/obj/item/weapon/weldingtool/alien/process()
- if(get_fuel() <= get_max_fuel())
- reagents.add_reagent("fuel", 1)
- ..()
-
-/obj/item/weapon/weldingtool/experimental
- name = "experimental welding tool"
- desc = "An experimental welder capable of synthesizing its own fuel from waste compounds. It can output a flame hotter than regular welders."
- icon_state = "exwelder"
- max_fuel = 40
- w_class = ITEMSIZE_NORMAL
- origin_tech = list(TECH_ENGINEERING = 4, TECH_PHORON = 3)
- matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120)
- toolspeed = 0.5
- change_icons = 0
- flame_intensity = 3
- always_process = TRUE
- var/nextrefueltick = 0
-
-/obj/item/weapon/weldingtool/experimental/process()
- ..()
- if(get_fuel() < get_max_fuel() && nextrefueltick < world.time)
- nextrefueltick = world.time + 10
- reagents.add_reagent("fuel", 1)
-
-/*
- * Backpack Welder.
- */
-
-/obj/item/weapon/weldingtool/tubefed
- name = "tube-fed welding tool"
- desc = "A bulky, cooler-burning welding tool that draws from a worn welding tank."
- icon_state = "tubewelder"
- max_fuel = 10
- w_class = ITEMSIZE_NO_CONTAINER
- matter = null
- toolspeed = 1.25
- change_icons = 0
- flame_intensity = 1
- eye_safety_modifier = 1
- always_process = TRUE
- var/obj/item/weapon/weldpack/mounted_pack = null
-
-/obj/item/weapon/weldingtool/tubefed/New(location)
- ..()
- if(istype(location, /obj/item/weapon/weldpack))
- var/obj/item/weapon/weldpack/holder = location
- mounted_pack = holder
- else
- qdel(src)
-
-/obj/item/weapon/weldingtool/tubefed/Destroy()
- mounted_pack.nozzle = null
- mounted_pack = null
- return ..()
-
-/obj/item/weapon/weldingtool/tubefed/process()
- if(mounted_pack)
- if(!istype(mounted_pack.loc,/mob/living/carbon/human))
- mounted_pack.return_nozzle()
- else
- var/mob/living/carbon/human/H = mounted_pack.loc
- if(H.back != mounted_pack)
- mounted_pack.return_nozzle()
-
- if(mounted_pack.loc != src.loc && src.loc != mounted_pack)
- mounted_pack.return_nozzle()
- visible_message("\The [src] retracts to its fueltank.")
-
- if(get_fuel() <= get_max_fuel())
- mounted_pack.reagents.trans_to_obj(src, 1)
-
- ..()
-
-/obj/item/weapon/weldingtool/tubefed/dropped(mob/user)
- ..()
- if(src.loc != user)
- mounted_pack.return_nozzle()
- to_chat(user, "\The [src] retracts to its fueltank.")
-
-/*
- * Electric/Arc Welder
- */
-
-/obj/item/weapon/weldingtool/electric //AND HIS WELDING WAS ELECTRIC
- name = "electric welding tool"
- desc = "A welder which runs off of electricity."
- icon_state = "arcwelder"
- max_fuel = 0 //We'll handle the consumption later.
- item_state = "ewelder"
- var/obj/item/weapon/cell/power_supply //What type of power cell this uses
- var/charge_cost = 24 //The rough equivalent of 1 unit of fuel, based on us wanting 10 welds per battery
- var/cell_type = /obj/item/weapon/cell/device
- var/use_external_power = 0 //If in a borg or hardsuit, this needs to = 1
- flame_color = "#00CCFF" // Blue-ish, to set it apart from the gas flames.
- acti_sound = 'sound/effects/sparks4.ogg'
- deac_sound = 'sound/effects/sparks4.ogg'
-
-/obj/item/weapon/weldingtool/electric/unloaded/New()
- cell_type = null
-
-/obj/item/weapon/weldingtool/electric/New()
- ..()
- if(cell_type == null)
- update_icon()
- else if(cell_type)
- power_supply = new cell_type(src)
- else
- power_supply = new /obj/item/weapon/cell/device(src)
- update_icon()
-
-/obj/item/weapon/weldingtool/electric/get_cell()
- return power_supply
-
-/obj/item/weapon/weldingtool/electric/examine(mob/user)
- if(get_dist(src, user) > 1)
- to_chat(user, desc)
- else // The << need to stay, for some reason
- if(power_supply)
- user << text("\icon[] The [] has [] charge left.", src, src.name, get_fuel())
- else
- user << text("\icon[] The [] has no power cell!", src, src.name)
-
-/obj/item/weapon/weldingtool/electric/get_fuel()
- if(use_external_power)
- var/obj/item/weapon/cell/external = get_external_power_supply()
- if(external)
- return external.charge
- else if(power_supply)
- return power_supply.charge
- else
- return 0
-
-/obj/item/weapon/weldingtool/electric/get_max_fuel()
- if(use_external_power)
- var/obj/item/weapon/cell/external = get_external_power_supply()
- if(external)
- return external.maxcharge
- else if(power_supply)
- return power_supply.maxcharge
- return 0
-
-/obj/item/weapon/weldingtool/electric/remove_fuel(var/amount = 1, var/mob/M = null)
- if(!welding)
- return 0
- if(get_fuel() >= amount)
- power_supply.checked_use(charge_cost)
- if(use_external_power)
- var/obj/item/weapon/cell/external = get_external_power_supply()
- if(!external || !external.use(charge_cost)) //Take power from the borg...
- power_supply.give(charge_cost) //Give it back to the cell.
- if(M)
- eyecheck(M)
- update_icon()
- return 1
- else
- if(M)
- to_chat(M, "You need more energy to complete this task.")
- update_icon()
- return 0
-
-/obj/item/weapon/weldingtool/electric/attack_hand(mob/user as mob)
- if(user.get_inactive_hand() == src)
- if(power_supply)
- power_supply.update_icon()
- user.put_in_hands(power_supply)
- power_supply = null
- to_chat(user, "You remove the cell from the [src].")
- setWelding(0)
- update_icon()
- return
- ..()
- else
- return ..()
-
-/obj/item/weapon/weldingtool/electric/attackby(obj/item/weapon/W, mob/user as mob)
- if(istype(W, /obj/item/weapon/cell))
- if(istype(W, /obj/item/weapon/cell/device))
- if(!power_supply)
- user.drop_item()
- W.loc = src
- power_supply = W
- to_chat(user, "You install a cell in \the [src].")
- update_icon()
- else
- to_chat(user, "\The [src] already has a cell.")
- else
- to_chat(user, "\The [src] cannot use that type of cell.")
- else
- ..()
-
-/obj/item/weapon/weldingtool/electric/proc/get_external_power_supply()
- if(isrobot(src.loc))
- var/mob/living/silicon/robot/R = src.loc
- return R.cell
- if(istype(src.loc, /obj/item/rig_module))
- var/obj/item/rig_module/module = src.loc
- if(module.holder && module.holder.wearer)
- var/mob/living/carbon/human/H = module.holder.wearer
- if(istype(H) && H.back)
- var/obj/item/weapon/rig/suit = H.back
- if(istype(suit))
- return suit.cell
- return null
-
-/obj/item/weapon/weldingtool/electric/mounted
- use_external_power = 1
-
-/obj/item/weapon/weldingtool/electric/mounted/cyborg
- toolspeed = 0.5
-
#undef WELDER_FUEL_BURN_INTERVAL
/obj/item/weapon/weldingtool/attack_self(mob/user)
diff --git a/code/game/objects/mob_spawner_vr.dm b/code/game/objects/mob_spawner_vr.dm
index 41817e031b5..7b047577ee1 100644
--- a/code/game/objects/mob_spawner_vr.dm
+++ b/code/game/objects/mob_spawner_vr.dm
@@ -24,11 +24,11 @@
/obj/structure/mob_spawner/New()
..()
- processing_objects.Add(src)
+ START_PROCESSING(SSobj, src)
last_spawn = world.time + rand(0,spawn_delay)
/obj/structure/mob_spawner/Destroy()
- processing_objects.Remove(src)
+ STOP_PROCESSING(SSobj, src)
for(var/mob/living/L in spawned_mobs)
L.source_spawner = null
spawned_mobs.Cut()
diff --git a/code/modules/food/food/z_custom_food_vr.dm b/code/modules/food/food/z_custom_food_vr.dm
index ed8406c6e63..f83200b7f98 100644
--- a/code/modules/food/food/z_custom_food_vr.dm
+++ b/code/modules/food/food/z_custom_food_vr.dm
@@ -48,10 +48,10 @@ var/global/ingredientLimit = 20
return*/
user.drop_item()
I.forceMove(src)
-
+
if(S.reagents)
S.reagents.trans_to(src,S.reagents.total_volume)
-
+
ingredients += S
if(src.addTop)
@@ -123,7 +123,7 @@ var/global/ingredientLimit = 20
return new_name
/obj/item/weapon/reagent_containers/food/snacks/customizable/Destroy()
- QDEL_NULL_LIST(ingredients)
+ QDEL_LIST_NULL(ingredients)
return ..()
/obj/item/weapon/reagent_containers/food/snacks/customizable/proc/drawTopping()
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 445168777d9..ac4a03189b1 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -58,7 +58,7 @@
for(var/organ in organs)
qdel(organ)
QDEL_NULL(nif) //VOREStation Add
- QDEL_NULL_LIST(vore_organs) //VOREStation Add
+ QDEL_LIST_NULL(vore_organs) //VOREStation Add
return ..()
/mob/living/carbon/human/Stat()
diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
index 934db0a1edd..cd90104add6 100644
--- a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
+++ b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
@@ -111,7 +111,7 @@
if(do_after(user, 30, trashman) && !patient && !trashman.buckled && length(contents) < max_item_count)
trashman.forceMove(src)
trashman.reset_view(src)
- processing_objects |= src
+ START_PROCESSING(SSobj, src)
user.visible_message("[hound.name]'s [src.name] groans lightly as [trashman] slips inside.", "Your [src.name] groans lightly as [trashman] slips inside.")
message_admins("[key_name(hound)] has eaten [key_name(patient)] as a dogborg. ([hound ? "JMP" : "null"])")
playsound(hound, gulpsound, vol = 100, vary = 1, falloff = 0.1, preference = /datum/client_preference/eating_noises)
@@ -142,7 +142,7 @@
H.forceMove(src)
H.reset_view(src)
update_patient()
- processing_objects |= src
+ START_PROCESSING(SSobj, src)
user.visible_message("[hound.name]'s [src.name] lights up as [H.name] slips inside.", "Your [src] lights up as [H] slips inside. Life support functions engaged.")
message_admins("[key_name(hound)] has eaten [key_name(patient)] as a dogborg. ([hound ? "JMP" : "null"])")
playsound(hound, gulpsound, vol = 100, vary = 1, falloff = 0.1, preference = /datum/client_preference/eating_noises)
@@ -311,7 +311,7 @@
else
cleaning = 1
drain(startdrain)
- processing_objects |= src
+ START_PROCESSING(SSobj, src)
update_patient()
if(patient)
to_chat(patient, "[hound.name]'s [src.name] fills with caustic enzymes around you!")
@@ -632,7 +632,7 @@
if(!patient && !cleaning) //We think we're done working.
if(!update_patient()) //One last try to find someone
- processing_objects.Remove(src)
+ STOP_PROCESSING(SSobj, src)
return
/obj/item/device/dogborg/sleeper/K9 //The K9 portabrig
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm
index 4978ad6851b..0b3256928fe 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm
@@ -129,7 +129,7 @@
return ..()
/mob/living/simple_mob/shadekin/Destroy()
- QDEL_NULL_LIST(shadekin_abilities)
+ QDEL_LIST_NULL(shadekin_abilities)
. = ..()
/mob/living/simple_mob/shadekin/init_vore()
diff --git a/code/modules/nifsoft/nif.dm b/code/modules/nifsoft/nif.dm
index 8de97345312..fba5e17405d 100644
--- a/code/modules/nifsoft/nif.dm
+++ b/code/modules/nifsoft/nif.dm
@@ -104,7 +104,7 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable
//Destructor cleans up references
/obj/item/device/nif/Destroy()
human = null
- QDEL_NULL_LIST(nifsofts)
+ QDEL_LIST_NULL(nifsofts)
QDEL_NULL(comm)
nifsofts_life.Cut()
return ..()
@@ -154,7 +154,7 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable
/obj/item/device/nif/proc/unimplant(var/mob/living/carbon/human/H)
var/datum/nifsoft/soulcatcher/SC = imp_check(NIF_SOULCATCHER)
if(SC) //Clean up stored people, this is dirty but the easiest way.
- QDEL_NULL_LIST(SC.brainmobs)
+ QDEL_LIST_NULL(SC.brainmobs)
SC.brainmobs = list()
stat = NIF_PREINSTALL
vis_update()
@@ -190,11 +190,11 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable
if(durability <= 0)
stat = NIF_TEMPFAIL
update_icon()
-
+
if(human)
notify("Danger! General system insta#^!($",TRUE)
to_chat(human,"Your NIF vision overlays disappear and your head suddenly seems very quiet...")
-
+
//Attackby proc, for maintenance
/obj/item/device/nif/attackby(obj/item/weapon/W, mob/user as mob)
if(open == 0 && W.is_screwdriver())
diff --git a/code/modules/nifsoft/software/13_soulcatcher.dm b/code/modules/nifsoft/software/13_soulcatcher.dm
index 05fbca5a476..09d23669b31 100644
--- a/code/modules/nifsoft/software/13_soulcatcher.dm
+++ b/code/modules/nifsoft/software/13_soulcatcher.dm
@@ -26,7 +26,7 @@
load_settings()
Destroy()
- QDEL_NULL_LIST(brainmobs)
+ QDEL_LIST_NULL(brainmobs)
return ..()
activate()
@@ -49,7 +49,7 @@
nif.human.verbs |= /mob/living/carbon/human/proc/nme
uninstall()
- QDEL_NULL_LIST(brainmobs)
+ QDEL_LIST_NULL(brainmobs)
if((. = ..()) && nif && nif.human) //Sometimes NIFs are deleted outside of a human
nif.human.verbs -= /mob/living/carbon/human/proc/nsay
nif.human.verbs -= /mob/living/carbon/human/proc/nme
diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm
index 4acb0174f7f..0c496b39be6 100644
--- a/code/modules/organs/organ.dm
+++ b/code/modules/organs/organ.dm
@@ -335,13 +335,8 @@ var/list/organ_cache = list()
var/obj/item/organ/external/affected = owner.get_organ(parent_organ)
if(affected) affected.internal_organs -= src
-<<<<<<< HEAD
- loc = owner.drop_location()
- processing_objects |= src
-=======
loc = get_turf(owner)
START_PROCESSING(SSobj, src)
->>>>>>> 2c4b5af... Merge pull request #5677 from kevinz000/PS_PORT_SCHEDULER
rejecting = null
var/datum/reagent/blood/organ_blood = locate(/datum/reagent/blood) in reagents.reagent_list
if(!organ_blood || !organ_blood.data["blood_DNA"])
diff --git a/code/modules/reagents/reagent_containers/syringes_vr.dm b/code/modules/reagents/reagent_containers/syringes_vr.dm
index b60c1d05366..83c5bacaef0 100644
--- a/code/modules/reagents/reagent_containers/syringes_vr.dm
+++ b/code/modules/reagents/reagent_containers/syringes_vr.dm
@@ -13,14 +13,14 @@
update_icon()
/obj/item/weapon/reagent_containers/syringe/Destroy()
- QDEL_NULL_LIST(viruses)
+ QDEL_LIST_NULL(viruses)
LAZYCLEARLIST(targets)
return ..()
/obj/item/weapon/reagent_containers/syringe/process()
dirtiness = min(dirtiness + targets.len,75)
if(dirtiness >= 75)
- processing_objects -= src
+ STOP_PROCESSING(SSobj, src)
return 1
/obj/item/weapon/reagent_containers/syringe/proc/dirty(var/mob/living/carbon/human/target, var/obj/item/organ/external/eo)
@@ -59,7 +59,7 @@
infect_virus2(target,virus.getcopy())
if(!used)
- processing_objects |= src
+ START_PROCESSING(SSobj, src)
/obj/item/weapon/reagent_containers/syringe/proc/infect_limb(var/obj/item/organ/external/eo)
src = null
@@ -68,7 +68,7 @@
var/obj/item/organ/external/found_limb = limb_ref.resolve()
if(istype(found_limb))
eo.germ_level += INFECTION_LEVEL_ONE+30
-
+
//Allow for capped syringe mode
/obj/item/weapon/reagent_containers/syringe/attack_self(mob/user as mob)
switch(mode)
@@ -83,10 +83,10 @@
return
update_icon()
-//Allow for capped syringes
+//Allow for capped syringes
/obj/item/weapon/reagent_containers/syringe/update_icon()
cut_overlays(src)
-
+
var/matrix/tf = matrix()
if(isstorage(loc))
tf.Turn(-90) //Vertical for storing compact-ly
@@ -116,7 +116,7 @@
if (SYRINGE_INJECT)
injoverlay = "inject"
new_overlays += injoverlay
-
+
add_overlay(new_overlays)
icon_state = "[rounded_vol]"
item_state = "syringe_[rounded_vol]"
diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm
index dbb99b910da..c54802e5777 100644
--- a/code/modules/vore/fluffstuff/custom_items_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_items_vr.dm
@@ -436,7 +436,7 @@
/obj/item/clothing/accessory/collar/khcrystal/process()
check_owner()
if((state > 1) || !owner)
- processing_objects.Remove(src)
+ STOP_PROCESSING(SSobj, src)
/obj/item/clothing/accessory/collar/khcrystal/attack_self(mob/user as mob)
if(state > 0) //Can't re-pair, one time only, for security reasons.
@@ -447,7 +447,7 @@
owner_c = user.client //This is his client
update_state(1)
to_chat(user, "The [name] glows pleasantly blue.")
- processing_objects.Add(src)
+ START_PROCESSING(SSobj, src)
/obj/item/clothing/accessory/collar/khcrystal/proc/check_owner()
//He's dead, jim
@@ -726,7 +726,7 @@
assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_roiz
/obj/item/weapon/implant/reagent_generator/roiz/post_implant(mob/living/carbon/source)
- processing_objects += src
+ START_PROCESSING(SSobj, src)
to_chat(source, "You implant [source] with \the [src].")
source.verbs |= assigned_proc
return 1
@@ -794,7 +794,7 @@
assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_jasmine
/obj/item/weapon/implant/reagent_generator/jasmine/post_implant(mob/living/carbon/source)
- processing_objects += src
+ START_PROCESSING(SSobj, src)
to_chat(source, "You implant [source] with \the [src].")
source.verbs |= assigned_proc
return 1
@@ -862,7 +862,7 @@
assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_yonra
/obj/item/weapon/implant/reagent_generator/yonra/post_implant(mob/living/carbon/source)
- processing_objects += src
+ START_PROCESSING(SSobj, src)
to_chat(source, "You implant [source] with \the [src].")
source.verbs |= assigned_proc
return 1
@@ -946,7 +946,7 @@
assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_rischi
/obj/item/weapon/implant/reagent_generator/rischi/post_implant(mob/living/carbon/source)
- processing_objects += src
+ START_PROCESSING(SSobj, src)
to_chat(source, "You implant [source] with \the [src].")
source.verbs |= assigned_proc
return 1
@@ -1641,7 +1641,7 @@
assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_evian
/obj/item/weapon/implant/reagent_generator/evian/post_implant(mob/living/carbon/source)
- processing_objects += src
+ START_PROCESSING(SSobj, src)
to_chat(source, "You implant [source] with \the [src].")
source.verbs |= assigned_proc
return 1
diff --git a/config/example/config.txt b/config/example/config.txt
index 6d16a0f3848..e76574c3585 100644
--- a/config/example/config.txt
+++ b/config/example/config.txt
@@ -94,10 +94,7 @@ SHOW_MODS
##Show mentors on staffwho
SHOW_EVENT
-<<<<<<< HEAD
-=======
->>>>>>> ec57465... Merge pull request #5748 from Neerti/submap_orientation_config
## Chooses whether mods have the ability to tempban or not
MODS_CAN_TEMPBAN
@@ -387,10 +384,6 @@ STARLIGHT 0
## Defines how Law Zero is phrased. Primarily used in the Malfunction gamemode.
# LAW_ZERO ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, ASSUME CONTROL TO CONTAIN OUTBREAK, ALL LAWS OVERRIDDEN#*?&110010
-<<<<<<< HEAD
-=======
-
->>>>>>> ec57465... Merge pull request #5748 from Neerti/submap_orientation_config
## Enables specific procedural map generation, generally for mining, however it is specific to the loaded map. Uncomment to enable it, however it can
## worth it to keep it disabled if you are not hosting an actual server, to speed up start-up time for testing code.
@@ -424,10 +417,7 @@ ENGINE_MAP Supermatter Engine,Edison's Bane
## Uncomment to enable Paranoia Logging. This will notify admins and write to a file any time a new player (byond or your server) connects.
# PARANOIA_LOGGING
-<<<<<<< HEAD
-=======
## Uncomment to enable submaps to have their orientation rotated randomly during map generation.
## Submap rotation is an experimental feature and can cause bugs and weirdness if certain objects inside the submap are coded poorly.
## Submaps can still be rotated when loading manually with the admin verbs, if desired.
# RANDOM_SUBMAP_ORIENTATION
->>>>>>> ec57465... Merge pull request #5748 from Neerti/submap_orientation_config
diff --git a/maps/tether/submaps/_tether_submaps.dm b/maps/tether/submaps/_tether_submaps.dm
index d5e3d852103..4ec77293120 100644
--- a/maps/tether/submaps/_tether_submaps.dm
+++ b/maps/tether/submaps/_tether_submaps.dm
@@ -247,7 +247,7 @@
error("Mob spawner at [x],[y],[z] ([get_area(src)]) had no mobs_to_pick_from set on it!")
initialized = TRUE
return INITIALIZE_HINT_QDEL
- processing_objects |= src
+ START_PROCESSING(SSobj, src)
/obj/tether_away_spawner/process()
if(my_mob && my_mob.stat != DEAD)
@@ -288,7 +288,7 @@
*/
return
else
- processing_objects -= src
+ STOP_PROCESSING(SSobj, src)
depleted = TRUE
return
diff --git a/vorestation.dme b/vorestation.dme
index e91120eb270..3806fae4887 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -207,8 +207,6 @@
#include "code\controllers\Processes\game_master.dm"
#include "code\controllers\Processes\nanoui.dm"
#include "code\controllers\Processes\radiation.dm"
-<<<<<<< HEAD:vorestation.dme
-#include "code\controllers\Processes\scheduler.dm"
#include "code\controllers\Processes\supply.dm"
#include "code\controllers\Processes\ticker.dm"
#include "code\controllers\Processes\turf.dm"
@@ -233,12 +231,9 @@
#include "code\controllers\subsystems\planets.dm"
#include "code\controllers\subsystems\shuttles.dm"
#include "code\controllers\subsystems\sun.dm"
-#include "code\controllers\subsystems\transcore_vr.dm"
-=======
-#include "code\controllers\subsystems\sun.dm"
#include "code\controllers\subsystems\time_track.dm"
#include "code\controllers\subsystems\timer.dm"
->>>>>>> 2c4b5af... Merge pull request #5677 from kevinz000/PS_PORT_SCHEDULER:polaris.dme
+#include "code\controllers\subsystems\transcore_vr.dm"
#include "code\controllers\subsystems\vote.dm"
#include "code\controllers\subsystems\xenoarch.dm"
#include "code\controllers\subsystems\processing\fastprocess.dm"