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"