diff --git a/baystation12.dme b/baystation12.dme index cc6d10ca41a..f8f9a61b90f 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -2332,6 +2332,43 @@ #include "code\modules\mob\observer\virtual\base.dm" #include "code\modules\mob\observer\virtual\helpers.dm" #include "code\modules\mob\observer\virtual\mob.dm" +#include "code\modules\mob\organs\_organ_setup.dm" +#include "code\modules\mob\organs\blood.dm" +#include "code\modules\mob\organs\organ.dm" +#include "code\modules\mob\organs\pain.dm" +#include "code\modules\mob\organs\robolimbs.dm" +#include "code\modules\mob\organs\external\_external.dm" +#include "code\modules\mob\organs\external\_external_damage.dm" +#include "code\modules\mob\organs\external\_external_icons.dm" +#include "code\modules\mob\organs\external\diona.dm" +#include "code\modules\mob\organs\external\head.dm" +#include "code\modules\mob\organs\external\standard.dm" +#include "code\modules\mob\organs\external\stump.dm" +#include "code\modules\mob\organs\external\unbreakable.dm" +#include "code\modules\mob\organs\external\vox.dm" +#include "code\modules\mob\organs\external\xenos.dm" +#include "code\modules\mob\organs\external\wounds\wound.dm" +#include "code\modules\mob\organs\external\wounds\wound_types.dm" +#include "code\modules\mob\organs\internal\_internal.dm" +#include "code\modules\mob\organs\internal\appendix.dm" +#include "code\modules\mob\organs\internal\borer.dm" +#include "code\modules\mob\organs\internal\brain.dm" +#include "code\modules\mob\organs\internal\cerebrum.dm" +#include "code\modules\mob\organs\internal\embryo.dm" +#include "code\modules\mob\organs\internal\eyes.dm" +#include "code\modules\mob\organs\internal\golem.dm" +#include "code\modules\mob\organs\internal\heart.dm" +#include "code\modules\mob\organs\internal\kidneys.dm" +#include "code\modules\mob\organs\internal\liver.dm" +#include "code\modules\mob\organs\internal\lungs.dm" +#include "code\modules\mob\organs\internal\machine.dm" +#include "code\modules\mob\organs\internal\man_machine_interface.dm" +#include "code\modules\mob\organs\internal\metroid_jelly_vessel.dm" +#include "code\modules\mob\organs\internal\posibrain.dm" +#include "code\modules\mob\organs\internal\stack.dm" +#include "code\modules\mob\organs\internal\stomach.dm" +#include "code\modules\mob\organs\internal\voicebox.dm" +#include "code\modules\mob\organs\internal\vox.dm" #include "code\modules\mob_spawn\mob_spawn.dm" #include "code\modules\mob_spawn\ghost_roles\golem_roles.dm" #include "code\modules\mob_spawn\ghost_roles\spider_roles.dm" @@ -2448,43 +2485,6 @@ #include "code\modules\nano\modules\human_appearance.dm" #include "code\modules\nano\modules\law_manager.dm" #include "code\modules\nano\modules\nano_module.dm" -#include "code\modules\organs\_organ_setup.dm" -#include "code\modules\organs\blood.dm" -#include "code\modules\organs\organ.dm" -#include "code\modules\organs\pain.dm" -#include "code\modules\organs\robolimbs.dm" -#include "code\modules\organs\external\_external.dm" -#include "code\modules\organs\external\_external_damage.dm" -#include "code\modules\organs\external\_external_icons.dm" -#include "code\modules\organs\external\diona.dm" -#include "code\modules\organs\external\head.dm" -#include "code\modules\organs\external\standard.dm" -#include "code\modules\organs\external\stump.dm" -#include "code\modules\organs\external\unbreakable.dm" -#include "code\modules\organs\external\vox.dm" -#include "code\modules\organs\external\xenos.dm" -#include "code\modules\organs\external\wounds\wound.dm" -#include "code\modules\organs\external\wounds\wound_types.dm" -#include "code\modules\organs\internal\_internal.dm" -#include "code\modules\organs\internal\appendix.dm" -#include "code\modules\organs\internal\borer.dm" -#include "code\modules\organs\internal\brain.dm" -#include "code\modules\organs\internal\cerebrum.dm" -#include "code\modules\organs\internal\embryo.dm" -#include "code\modules\organs\internal\eyes.dm" -#include "code\modules\organs\internal\golem.dm" -#include "code\modules\organs\internal\heart.dm" -#include "code\modules\organs\internal\kidneys.dm" -#include "code\modules\organs\internal\liver.dm" -#include "code\modules\organs\internal\lungs.dm" -#include "code\modules\organs\internal\machine.dm" -#include "code\modules\organs\internal\man_machine_interface.dm" -#include "code\modules\organs\internal\metroid_jelly_vessel.dm" -#include "code\modules\organs\internal\posibrain.dm" -#include "code\modules\organs\internal\stack.dm" -#include "code\modules\organs\internal\stomach.dm" -#include "code\modules\organs\internal\voicebox.dm" -#include "code\modules\organs\internal\vox.dm" #include "code\modules\paperwork\adminpaper.dm" #include "code\modules\paperwork\carbonpaper.dm" #include "code\modules\paperwork\clipboard.dm" diff --git a/code/__defines/modifiers.dm b/code/__defines/modifiers.dm index 0b1bcecc21f..e3d88d2b67d 100644 --- a/code/__defines/modifiers.dm +++ b/code/__defines/modifiers.dm @@ -1,3 +1,5 @@ +#define MODIFIER_GENETIC 1 // Modifiers with this flag will be copied to mobs who get cloned. + #define MODIFIER_STACK_FORBID 1 // Disallows stacking entirely. #define MODIFIER_STACK_EXTEND 2 // Disallows a second instance, but will extend the first instance if possible. #define MODIFIER_STACK_ALLOWED 3 // Multiple instances are allowed. diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index eb5c1b434aa..58d3d6ca836 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -483,12 +483,6 @@ /mob var/datum/stack/click_handlers -/mob/Destroy() - if(click_handlers) - click_handlers.QdelClear() - QDEL_NULL(click_handlers) - . = ..() - var/const/CLICK_HANDLER_NONE = 0 var/const/CLICK_HANDLER_REMOVE_ON_MOB_LOGOUT = 1 var/const/CLICK_HANDLER_ALL = (~0) diff --git a/code/_onclick/hud/ability_screen_objects.dm b/code/_onclick/hud/ability_screen_objects.dm index 75556ad8b8c..dc84b7aad66 100644 --- a/code/_onclick/hud/ability_screen_objects.dm +++ b/code/_onclick/hud/ability_screen_objects.dm @@ -199,12 +199,6 @@ return VP return null -/mob/Login() - ..() - if(ability_master) - ability_master.update_abilities(1, src) - ability_master.toggle_open(1) - /mob/Initialize() . = ..() ability_master = new /obj/screen/movable/ability_master(null,src) diff --git a/code/_onclick/hud/skybox.dm b/code/_onclick/hud/skybox.dm index 80a44b6ff05..43e6fabc31d 100644 --- a/code/_onclick/hud/skybox.dm +++ b/code/_onclick/hud/skybox.dm @@ -83,16 +83,3 @@ . = ..() if(. && skybox) skybox.update() - -/mob/Login() - if(!skybox) - skybox = new(src) - skybox.owner = src - client.screen += skybox - ..() - -/mob/Destroy() - if(client) - client.screen -= skybox - QDEL_NULL(skybox) - return ..() diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 4b313e956ac..d23ef095afc 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -156,6 +156,10 @@ update_icon() +/obj/structure/closet/Destroy() + QDEL_NULL(cdoor) + return ..() + /obj/structure/closet/proc/WillContain() return null diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm index bd05c891937..f7921dd05a1 100644 --- a/code/game/objects/structures/inflatable.dm +++ b/code/game/objects/structures/inflatable.dm @@ -116,7 +116,9 @@ for(var/check_dir in GLOB.cardinal) var/turf/T = get_step(get_turf(src), check_dir) - var/datum/gas_mixture/env = T.return_air() + var/datum/gas_mixture/env = T?.return_air() + if(!env) + continue var/pressure = env.return_pressure() min_pressure = min(min_pressure, pressure) max_pressure = max(max_pressure, pressure) diff --git a/code/modules/mob/living/carbon/human/human_species.dm b/code/modules/mob/living/carbon/human/human_species.dm index 0ff24aacd85..232025692de 100644 --- a/code/modules/mob/living/carbon/human/human_species.dm +++ b/code/modules/mob/living/carbon/human/human_species.dm @@ -30,6 +30,9 @@ /mob/living/carbon/human/dummy/mannequin/Life() return // Because we never know +/mob/living/carbon/human/dummy/mannequin/check_shadow() + return + /mob/living/carbon/human/skrell/New(new_loc) h_style = "Skrell Male Tentacles" ..(new_loc, SPECIES_SKRELL) diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index a058910ad85..a950b9a88bc 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -41,12 +41,12 @@ params["name"] = real_name || name world.Export("[config.external.login_export_addr]?[list2params(params)]", null, 1) -/mob - var/client/my_client // Need to keep track of this ourselves, since by the time Logout() is called the client has already been nulled - /mob/Login() CAN_BE_REDEFINED(TRUE) SHOULD_CALL_PARENT(TRUE) + if(!client) + return + GLOB.player_list |= src update_Login_details() world.update_status() @@ -57,7 +57,8 @@ next_move = 1 set_sight(sight|SEE_SELF) - ..() + + client.statobj = src // DO NOT CALL PARENT HERE or BYOND will devour your soul my_client = client @@ -89,5 +90,18 @@ else winset(src, null, "mainwindow.macro=macro hotkey_toggle.is-checked=false input.focus=true") + if(!skybox) + skybox = new(src) + skybox.owner = src + client.screen += skybox + + if(ability_master) + ability_master.update_abilities(1, src) + ability_master.toggle_open(1) + if(mind && ability_master.spell_objects) + for(var/obj/screen/ability/spell/screen in ability_master.spell_objects) + var/datum/spell/S = screen.spell + mind.learned_spells |= S + SEND_GLOBAL_SIGNAL(SIGNAL_LOGGED_IN, src) SEND_SIGNAL(src, SIGNAL_LOGGED_IN, src) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index b5d81d2dc4b..3f2bc793466 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -8,10 +8,16 @@ remove_from_dead_mob_list() remove_from_living_mob_list() GLOB.player_list.Remove(src) + SSmobs.mob_list.Remove(src) unset_machine() + //SStgui.force_close_all_windows(src) Needs further investigating + QDEL_NULL(hud_used) QDEL_NULL(show_inventory) + QDEL_NULL(skybox) + QDEL_NULL(ability_master) + QDEL_NULL(shadow) LAssailant = null for(var/obj/item/grab/G in grabbed_by) @@ -22,6 +28,10 @@ if(ability_master) QDEL_NULL(ability_master) + if(click_handlers) + click_handlers.QdelClear() + QDEL_NULL(click_handlers) + remove_screen_obj_references() if(client) for(var/atom/movable/AM in client.screen) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 656f7e176ab..edfc87ea8f7 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -33,6 +33,8 @@ var/lastKnownIP = null var/computer_id = null + var/client/my_client // Need to keep track of this ourselves, since by the time Logout() is called the client has already been nulled + var/stat = 0 //Whether a mob is alive or dead. TODO: Move this to living - Nodrak var/obj/screen/hands = null @@ -89,6 +91,9 @@ var/bhunger = 0 //Carbon + var/last_pain_message + var/next_pain_time = 0 + var/druggy = 0 //Carbon var/confused = 0 //Carbon var/sleeping = 0 //Carbon diff --git a/code/modules/mob/new_player/login.dm b/code/modules/mob/new_player/login.dm index a0400bf89c1..749b0123378 100644 --- a/code/modules/mob/new_player/login.dm +++ b/code/modules/mob/new_player/login.dm @@ -51,11 +51,10 @@ mind.set_current(src) loc = null - new /obj/screen/splash(client, TRUE) my_client = client - set_sight(sight|SEE_TURFS) + set_sight(sight|SEE_OBJS|SEE_TURFS) GLOB.player_list |= src - CreateRenderers() + new /obj/screen/splash(client, TRUE) if(!SScharacter_setup.initialized) SScharacter_setup.newplayers_requiring_init += src diff --git a/code/modules/mob/new_player/logout.dm b/code/modules/mob/new_player/logout.dm index 31382ccd1a3..c09ba6ac61e 100644 --- a/code/modules/mob/new_player/logout.dm +++ b/code/modules/mob/new_player/logout.dm @@ -8,5 +8,6 @@ ..() if(!spawning)//Here so that if they are spawning and log out, the other procs can play out and they will have a mob to come back to. key = null//We null their key before deleting the mob, so they are properly kicked out. + QDEL_NULL(mind) // We transfer mind during create_character(), so this should only happen if the new_player actually logs out w/out actually entering the round. qdel(src) return diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index bdb1987d4fb..3340dac182f 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -32,6 +32,10 @@ return INITIALIZE_HINT_NORMAL +/mob/new_player/Destroy() + QDEL_NULL(panel) + return ..() + /mob/new_player/proc/new_player_panel(forced = FALSE) if(!SScharacter_setup.initialized && !forced) return // Not ready yet. @@ -552,6 +556,7 @@ mind.gen_relations_info = client.prefs.relations_info["general"] mind.traits = client.prefs.traits.Copy() mind.transfer_to(new_character) //won't transfer key since the mind is not active + mind = null new_character.apply_traits() new_character.SetName(real_name) diff --git a/code/modules/mob/observer/ghost/ghost.dm b/code/modules/mob/observer/ghost/ghost.dm index ed0102ea06c..2bdc1bbc1d9 100644 --- a/code/modules/mob/observer/ghost/ghost.dm +++ b/code/modules/mob/observer/ghost/ghost.dm @@ -95,7 +95,7 @@ GLOBAL_LIST_EMPTY(ghost_sightless_images) ghost_multitool = new(src) - GLOB.ghost_mob_list += src + GLOB.ghost_mob_list |= src ..() diff --git a/code/modules/organs/_organ_setup.dm b/code/modules/mob/organs/_organ_setup.dm similarity index 100% rename from code/modules/organs/_organ_setup.dm rename to code/modules/mob/organs/_organ_setup.dm diff --git a/code/modules/organs/blood.dm b/code/modules/mob/organs/blood.dm similarity index 100% rename from code/modules/organs/blood.dm rename to code/modules/mob/organs/blood.dm diff --git a/code/modules/organs/external/_external.dm b/code/modules/mob/organs/external/_external.dm similarity index 100% rename from code/modules/organs/external/_external.dm rename to code/modules/mob/organs/external/_external.dm diff --git a/code/modules/organs/external/_external_damage.dm b/code/modules/mob/organs/external/_external_damage.dm similarity index 100% rename from code/modules/organs/external/_external_damage.dm rename to code/modules/mob/organs/external/_external_damage.dm diff --git a/code/modules/organs/external/_external_icons.dm b/code/modules/mob/organs/external/_external_icons.dm similarity index 100% rename from code/modules/organs/external/_external_icons.dm rename to code/modules/mob/organs/external/_external_icons.dm diff --git a/code/modules/organs/external/diona.dm b/code/modules/mob/organs/external/diona.dm similarity index 100% rename from code/modules/organs/external/diona.dm rename to code/modules/mob/organs/external/diona.dm diff --git a/code/modules/organs/external/head.dm b/code/modules/mob/organs/external/head.dm similarity index 100% rename from code/modules/organs/external/head.dm rename to code/modules/mob/organs/external/head.dm diff --git a/code/modules/organs/external/standard.dm b/code/modules/mob/organs/external/standard.dm similarity index 100% rename from code/modules/organs/external/standard.dm rename to code/modules/mob/organs/external/standard.dm diff --git a/code/modules/organs/external/stump.dm b/code/modules/mob/organs/external/stump.dm similarity index 100% rename from code/modules/organs/external/stump.dm rename to code/modules/mob/organs/external/stump.dm diff --git a/code/modules/organs/external/unbreakable.dm b/code/modules/mob/organs/external/unbreakable.dm similarity index 100% rename from code/modules/organs/external/unbreakable.dm rename to code/modules/mob/organs/external/unbreakable.dm diff --git a/code/modules/organs/external/vox.dm b/code/modules/mob/organs/external/vox.dm similarity index 100% rename from code/modules/organs/external/vox.dm rename to code/modules/mob/organs/external/vox.dm diff --git a/code/modules/organs/external/wounds/wound.dm b/code/modules/mob/organs/external/wounds/wound.dm similarity index 100% rename from code/modules/organs/external/wounds/wound.dm rename to code/modules/mob/organs/external/wounds/wound.dm diff --git a/code/modules/organs/external/wounds/wound_types.dm b/code/modules/mob/organs/external/wounds/wound_types.dm similarity index 100% rename from code/modules/organs/external/wounds/wound_types.dm rename to code/modules/mob/organs/external/wounds/wound_types.dm diff --git a/code/modules/organs/external/xenos.dm b/code/modules/mob/organs/external/xenos.dm similarity index 100% rename from code/modules/organs/external/xenos.dm rename to code/modules/mob/organs/external/xenos.dm diff --git a/code/modules/organs/internal/_internal.dm b/code/modules/mob/organs/internal/_internal.dm similarity index 100% rename from code/modules/organs/internal/_internal.dm rename to code/modules/mob/organs/internal/_internal.dm diff --git a/code/modules/organs/internal/appendix.dm b/code/modules/mob/organs/internal/appendix.dm similarity index 100% rename from code/modules/organs/internal/appendix.dm rename to code/modules/mob/organs/internal/appendix.dm diff --git a/code/modules/organs/internal/borer.dm b/code/modules/mob/organs/internal/borer.dm similarity index 100% rename from code/modules/organs/internal/borer.dm rename to code/modules/mob/organs/internal/borer.dm diff --git a/code/modules/organs/internal/brain.dm b/code/modules/mob/organs/internal/brain.dm similarity index 100% rename from code/modules/organs/internal/brain.dm rename to code/modules/mob/organs/internal/brain.dm diff --git a/code/modules/organs/internal/cerebrum.dm b/code/modules/mob/organs/internal/cerebrum.dm similarity index 100% rename from code/modules/organs/internal/cerebrum.dm rename to code/modules/mob/organs/internal/cerebrum.dm diff --git a/code/modules/organs/internal/embryo.dm b/code/modules/mob/organs/internal/embryo.dm similarity index 100% rename from code/modules/organs/internal/embryo.dm rename to code/modules/mob/organs/internal/embryo.dm diff --git a/code/modules/organs/internal/eyes.dm b/code/modules/mob/organs/internal/eyes.dm similarity index 100% rename from code/modules/organs/internal/eyes.dm rename to code/modules/mob/organs/internal/eyes.dm diff --git a/code/modules/organs/internal/golem.dm b/code/modules/mob/organs/internal/golem.dm similarity index 100% rename from code/modules/organs/internal/golem.dm rename to code/modules/mob/organs/internal/golem.dm diff --git a/code/modules/organs/internal/heart.dm b/code/modules/mob/organs/internal/heart.dm similarity index 100% rename from code/modules/organs/internal/heart.dm rename to code/modules/mob/organs/internal/heart.dm diff --git a/code/modules/organs/internal/kidneys.dm b/code/modules/mob/organs/internal/kidneys.dm similarity index 100% rename from code/modules/organs/internal/kidneys.dm rename to code/modules/mob/organs/internal/kidneys.dm diff --git a/code/modules/organs/internal/liver.dm b/code/modules/mob/organs/internal/liver.dm similarity index 100% rename from code/modules/organs/internal/liver.dm rename to code/modules/mob/organs/internal/liver.dm diff --git a/code/modules/organs/internal/lungs.dm b/code/modules/mob/organs/internal/lungs.dm similarity index 100% rename from code/modules/organs/internal/lungs.dm rename to code/modules/mob/organs/internal/lungs.dm diff --git a/code/modules/organs/internal/machine.dm b/code/modules/mob/organs/internal/machine.dm similarity index 100% rename from code/modules/organs/internal/machine.dm rename to code/modules/mob/organs/internal/machine.dm diff --git a/code/modules/organs/internal/man_machine_interface.dm b/code/modules/mob/organs/internal/man_machine_interface.dm similarity index 100% rename from code/modules/organs/internal/man_machine_interface.dm rename to code/modules/mob/organs/internal/man_machine_interface.dm diff --git a/code/modules/organs/internal/metroid_jelly_vessel.dm b/code/modules/mob/organs/internal/metroid_jelly_vessel.dm similarity index 100% rename from code/modules/organs/internal/metroid_jelly_vessel.dm rename to code/modules/mob/organs/internal/metroid_jelly_vessel.dm diff --git a/code/modules/organs/internal/posibrain.dm b/code/modules/mob/organs/internal/posibrain.dm similarity index 100% rename from code/modules/organs/internal/posibrain.dm rename to code/modules/mob/organs/internal/posibrain.dm diff --git a/code/modules/organs/internal/stack.dm b/code/modules/mob/organs/internal/stack.dm similarity index 100% rename from code/modules/organs/internal/stack.dm rename to code/modules/mob/organs/internal/stack.dm diff --git a/code/modules/organs/internal/stomach.dm b/code/modules/mob/organs/internal/stomach.dm similarity index 100% rename from code/modules/organs/internal/stomach.dm rename to code/modules/mob/organs/internal/stomach.dm diff --git a/code/modules/organs/internal/voicebox.dm b/code/modules/mob/organs/internal/voicebox.dm similarity index 100% rename from code/modules/organs/internal/voicebox.dm rename to code/modules/mob/organs/internal/voicebox.dm diff --git a/code/modules/organs/internal/vox.dm b/code/modules/mob/organs/internal/vox.dm similarity index 100% rename from code/modules/organs/internal/vox.dm rename to code/modules/mob/organs/internal/vox.dm diff --git a/code/modules/organs/organ.dm b/code/modules/mob/organs/organ.dm similarity index 100% rename from code/modules/organs/organ.dm rename to code/modules/mob/organs/organ.dm diff --git a/code/modules/organs/pain.dm b/code/modules/mob/organs/pain.dm similarity index 98% rename from code/modules/organs/pain.dm rename to code/modules/mob/organs/pain.dm index 02784bcac52..96b58da2871 100644 --- a/code/modules/organs/pain.dm +++ b/code/modules/mob/organs/pain.dm @@ -3,9 +3,6 @@ animate(pain, alpha = target, time = 15, easing = ELASTIC_EASING) animate(pain, alpha = 0, time = 20) -/mob/var/last_pain_message -/mob/var/next_pain_time = 0 - // message is the custom message to be displayed // power decides how much painkillers will stop the message // force means it ignores anti-spam timer diff --git a/code/modules/organs/robolimbs.dm b/code/modules/mob/organs/robolimbs.dm similarity index 100% rename from code/modules/organs/robolimbs.dm rename to code/modules/mob/organs/robolimbs.dm diff --git a/code/modules/modifier/modifier.dm b/code/modules/modifier/modifier.dm index 09cd91f2c4f..7f77b3522ac 100644 --- a/code/modules/modifier/modifier.dm +++ b/code/modules/modifier/modifier.dm @@ -1,5 +1,3 @@ -#define MODIFIER_GENETIC 1 // Modifiers with this flag will be copied to mobs who get cloned. - // This is a datum that tells the mob that something is affecting them. // The advantage of using this datum verses just setting a variable on the mob directly, is that there is no risk of two different procs overwriting diff --git a/code/modules/multiz/zshadow.dm b/code/modules/multiz/zshadow.dm index ad422513d5f..5b8b77791e9 100644 --- a/code/modules/multiz/zshadow.dm +++ b/code/modules/multiz/zshadow.dm @@ -27,12 +27,6 @@ . = ..() // I'm cautious about this, but its the right thing to do. owner = L -/mob/Destroy() - if(shadow) - qdel(shadow) - shadow = null - . = ..() - /mob/zshadow/Destroy() owner = null . = ..() diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 141e4633c10..9cb72761534 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -669,7 +669,7 @@ return /obj/structure/disposalholder/Destroy() - qdel(gas) + QDEL_NULL(gas) active = 0 return ..() diff --git a/code/modules/spells/spells.dm b/code/modules/spells/spells.dm index 6d4649de778..a77b0ec2869 100644 --- a/code/modules/spells/spells.dm +++ b/code/modules/spells/spells.dm @@ -16,17 +16,6 @@ if(SP_HOLDVAR) statpanel(S.panel, "[S.holder_var_type] [S.holder_var_amount]", S.connected_button) -//A fix for when a spell is created before a mob is created -/mob/Login() - . = ..() - if(!mind) - return - - if(ability_master?.spell_objects) - for(var/obj/screen/ability/spell/screen in ability_master.spell_objects) - var/datum/spell/S = screen.spell - mind.learned_spells |= S - /proc/restore_spells(mob/H) if(!H.mind?.learned_spells) return