Updates the atom_pool, now datum_pool, to handle any datum object.

Makes the garbage collector similarly robust. Continues the whole Destroy/qdel porting.
This commit is contained in:
PsiOmega
2015-04-17 20:32:28 +02:00
parent a3fb012332
commit 1ae0ad6d92
579 changed files with 6034 additions and 6004 deletions

View File

@@ -2,4 +2,4 @@
..()
spawn(0)
if(src && !key) //we've transferred to another mob. This ghost should be deleted.
del(src)
qdel(src)

View File

@@ -81,10 +81,10 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images
real_name = name
..()
/mob/dead/observer/Del()
/mob/dead/observer/Destroy()
if (ghostimage)
ghost_darkness_images -= ghostimage
del(ghostimage)
qdel(ghostimage)
ghostimage = null
updateallghostimages()
..()
@@ -597,7 +597,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
for(var/image/I in client.images)
if(I.icon_state == icon)
iconRemoved = 1
del(I)
qdel(I)
if(!iconRemoved)
var/image/J = image('icons/mob/mob.dmi', loc = src, icon_state = icon)

View File

@@ -19,8 +19,8 @@
if(do_gibs) gibs(loc, viruses, dna)
spawn(15)
if(animation) del(animation)
if(src) del(src)
if(animation) qdel(animation)
if(src) qdel(src)
//This is the proc for turning a mob into ash. Mostly a copy of gib code (above).
//Originally created for wizard disintegrate. I've removed the virus code since it's irrelevant here.
@@ -43,8 +43,8 @@
dead_mob_list -= src
spawn(15)
if(animation) del(animation)
if(src) del(src)
if(animation) qdel(animation)
if(src) qdel(src)
/mob/proc/death(gibbed,deathmessage="seizes up and falls limp...")

View File

@@ -39,10 +39,10 @@
if(eyeobj)
eyeobj.loc = src.loc
/mob/living/silicon/ai/Del()
/mob/living/silicon/ai/Destroy()
if(eyeobj)
eyeobj.owner = null
del(eyeobj) // No AI, no Eye
qdel(eyeobj) // No AI, no Eye
..()
/atom/proc/move_camera_by_click()

View File

@@ -41,7 +41,7 @@
dd_insertObjectList(cameranet.cameras, src)
update_coverage(1)
/obj/machinery/camera/Del()
/obj/machinery/camera/Destroy()
cameranet.cameras -= src
clear_all_networks()
..()

View File

@@ -31,11 +31,11 @@
updateallghostimages()
..()
mob/eye/Del()
mob/eye/Destroy()
if (ghostimage)
ghost_darkness_images -= ghostimage
ghost_sightless_images -= ghostimage
del(ghostimage)
qdel(ghostimage)
ghostimage = null
updateallghostimages()
..()

View File

@@ -23,7 +23,7 @@
..()
cultnet.updateVisibility(src, 0)
/mob/living/Del()
/mob/living/Destroy()
cultnet.updateVisibility(src, 0)
..()

View File

@@ -13,7 +13,7 @@
/turf/drain_power()
return -1
/turf/simulated/Del()
/turf/simulated/Destroy()
updateVisibility(src)
..()
@@ -24,7 +24,7 @@
// STRUCTURES
/obj/structure/Del()
/obj/structure/Destroy()
updateVisibility(src)
..()
@@ -34,7 +34,7 @@
// EFFECTS
/obj/effect/Del()
/obj/effect/Destroy()
updateVisibility(src)
..()

View File

@@ -12,7 +12,7 @@
..()
visual_nets += src
/datum/visualnet/Del()
/datum/visualnet/Destroy()
visual_nets -= src
..()

View File

@@ -11,7 +11,7 @@
..()
processing_objects.Add(src)
/obj/item/weapon/holder/Del()
/obj/item/weapon/holder/Destroy()
processing_objects.Remove(src)
..()
@@ -26,7 +26,7 @@
mob_container.forceMove(get_turf(src))
M.reset_view()
del(src)
qdel(src)
/obj/item/weapon/holder/attackby(obj/item/weapon/W as obj, mob/user as mob)
for(var/mob/M in src.contents)

View File

@@ -20,7 +20,7 @@
if(!W.mob_can_equip(src, slot))
if(del_on_fail)
del(W)
qdel(W)
else
if(!disable_warning)
src << "\red You are unable to equip that." //Only print if del_on_fail is false

View File

@@ -246,7 +246,7 @@
B << "To create this node you will have to be on a normal blob tile and far enough away from any other node."
B << "Check your Blob verbs and hit Create Node to build a node."
spawn(10)
del(G_found)
qdel(G_found)

View File

@@ -13,7 +13,7 @@
if(istype(loc,/obj/item/weapon/holder/diona))
var/obj/item/weapon/holder/diona/L = loc
src.loc = L.loc
del(L)
qdel(L)
src.visible_message("\red [src] begins to shift and quiver, and erupts in a shower of shed bark as it splits into a tangle of nearly a dozen new dionaea.","\red You begin to shift and quiver, feeling your awareness splinter. All at once, we consume our stored nutrients to surge with growth, splitting into a tangle of at least a dozen new dionaea. We have attained our gestalt form.")
return "Diona"

View File

@@ -38,7 +38,7 @@
for(var/datum/language/L in languages)
adult.add_language(L.name)
del(src)
qdel(src)
/mob/living/carbon/alien/proc/update_progression()
if(amount_grown < max_grown)

View File

@@ -61,7 +61,7 @@
living_mob_list += brainmob
user.drop_item()
del(O)
qdel(O)
name = "Man-Machine Interface: [brainmob.real_name]"
icon_state = "mmi_full"

View File

@@ -7,8 +7,8 @@
/mob/living/carbon/brain/gib()
if(istype(container, /obj/item/device/mmi))
del(container)//Gets rid of the MMI if there is one
qdel(container)//Gets rid of the MMI if there is one
if(loc)
if(istype(loc,/obj/item/organ/brain))
del(loc)//Gets rid of the brain item
qdel(loc)//Gets rid of the brain item
..(null,1)

View File

@@ -65,7 +65,7 @@
if (internal)
if (!internal.air_contents)
del(internal)
qdel(internal)
else
stat("Internal Atmosphere Info", internal.name)
stat("Tank Pressure", internal.air_contents.return_pressure())
@@ -818,7 +818,7 @@
for(var/x in all_hairs)
var/datum/sprite_accessory/hair/H = new x // create new hair datum based on type x
hairs.Add(H.name) // add hair name to hairs
del(H) // delete the hair after it's all done
qdel(H) // delete the hair after it's all done
var/new_style = input("Please select hair style", "Character Generation",h_style) as null|anything in hairs
@@ -833,7 +833,7 @@
for(var/x in all_fhairs)
var/datum/sprite_accessory/facial_hair/H = new x
fhairs.Add(H.name)
del(H)
qdel(H)
new_style = input("Please select facial style", "Character Generation",f_style) as null|anything in fhairs
@@ -944,7 +944,7 @@
if(H.brainmob.real_name == src.real_name)
if(H.brainmob.mind)
H.brainmob.mind.transfer_to(src)
del(H)
qdel(H)
for (var/datum/disease/virus in viruses)
virus.cure()
@@ -1017,7 +1017,7 @@
.=..()
if(clean_feet && !shoes && istype(feet_blood_DNA, /list) && feet_blood_DNA.len)
feet_blood_color = null
del(feet_blood_DNA)
qdel(feet_blood_DNA)
update_inv_shoes(1)
return 1
@@ -1143,7 +1143,7 @@
if(client && client.screen)
client.screen.len = null
if(hud_used)
del(hud_used)
qdel(hud_used)
hud_used = new /datum/hud(src)
if(species)

View File

@@ -337,12 +337,12 @@
visible_message("<span class='danger'>[user] has broken [src]'s grip on [lgrab.affecting]!</span>")
success = 1
spawn(1)
del(lgrab)
qdel(lgrab)
if(istype(r_hand, /obj/item/weapon/grab))
var/obj/item/weapon/grab/rgrab = r_hand
if(rgrab.affecting)
visible_message("<span class='danger'>[user] has broken [src]'s grip on [rgrab.affecting]!</span>")
success = 1
spawn(1)
del(rgrab)
qdel(rgrab)
return success

View File

@@ -129,7 +129,7 @@
spark_system.attach(src)
spark_system.start()
spawn(10)
del(spark_system)
qdel(spark_system)
//Handles chem traces
/mob/living/carbon/human/proc/handle_trace_chems()

View File

@@ -34,7 +34,7 @@ This saves us from having to call add_fingerprint() any time something is put in
if (equip_to_slot_if_possible(W, slots[slot], del_on_fail = 0))
return slot
if (del_on_fail)
del(W)
qdel(W)
return null
@@ -341,9 +341,9 @@ This saves us from having to call add_fingerprint() any time something is put in
/obj/effect/equip_e/New()
if (!ticker)
del(src)
qdel(src)
spawn(100)
del(src)
qdel(src)
..()
return
@@ -354,22 +354,22 @@ This saves us from having to call add_fingerprint() any time something is put in
switch(place)
if("mask")
if (!( target.wear_mask ))
del(src)
qdel(src)
if("l_hand")
if (!( target.l_hand ))
del(src)
qdel(src)
if("r_hand")
if (!( target.r_hand ))
del(src)
qdel(src)
if("suit")
if (!( target.wear_suit ))
del(src)
qdel(src)
if("uniform")
if (!( target.w_uniform ))
del(src)
qdel(src)
if("back")
if (!( target.back ))
del(src)
qdel(src)
if("syringe")
return
if("pill")
@@ -382,10 +382,10 @@ This saves us from having to call add_fingerprint() any time something is put in
return
if("handcuff")
if (!( target.handcuffed ))
del(src)
qdel(src)
if("id")
if ((!( target.wear_id ) || !( target.w_uniform )))
del(src)
qdel(src)
if("splints")
var/count = 0
for(var/organ in list("l_leg","r_leg","l_arm","r_arm"))
@@ -394,19 +394,19 @@ This saves us from having to call add_fingerprint() any time something is put in
count = 1
break
if(count == 0)
del(src)
qdel(src)
return
if("sensor")
if (! target.w_uniform )
del(src)
qdel(src)
if("internal")
if ((!( (istype(target.wear_mask, /obj/item/clothing/mask) && (istype(target.back, /obj/item/weapon/tank) || istype(target.belt, /obj/item/weapon/tank) || istype(target.s_store, /obj/item/weapon/tank)) && !( target.internal )) ) && !( target.internal )))
del(src)
qdel(src)
var/list/L = list( "syringe", "pill", "drink", "dnainjector", "fuel", "sensor", "internal", "tie")
if ((item && !( L.Find(place) )))
if(isrobot(source) && place != "handcuff")
del(src)
qdel(src)
for(var/mob/O in viewers(target, null))
O.show_message("\red <B>[source] is trying to put \a [item] on [target]</B>", 1)
else
@@ -508,7 +508,7 @@ This saves us from having to call add_fingerprint() any time something is put in
message = "\red <B>[source] is trying to empty [target]'s pockets.</B>"
if("CPR")
if (!target.cpr_time)
del(src)
qdel(src)
target.cpr_time = 0
message = "\red <B>[source] is trying perform CPR on [target]!</B>"
if("internal")
@@ -607,13 +607,13 @@ It can still be worn/put on as normal.
strip_item = target.shoes
if("l_hand")
if (istype(target, /obj/item/clothing/suit/straight_jacket))
del(src)
qdel(src)
slot_to_process = slot_l_hand
if (target.l_hand)
strip_item = target.l_hand
if("r_hand")
if (istype(target, /obj/item/clothing/suit/straight_jacket))
del(src)
qdel(src)
slot_to_process = slot_r_hand
if (target.r_hand)
strip_item = target.r_hand
@@ -700,11 +700,11 @@ It can still be worn/put on as normal.
S.add_fingerprint(source)
if (!( istype(S, /obj/item/weapon/dnainjector) ))
S.inuse = 0
del(src)
qdel(src)
S.inject(target, source)
if (S.s_time >= world.time + 30)
S.inuse = 0
del(src)
qdel(src)
S.s_time = world.time
for(var/mob/O in viewers(source, null))
O.show_message("\red [source] injects [target] with the DNA Injector!", 1)
@@ -763,4 +763,4 @@ It can still be worn/put on as normal.
if(source && target)
if(source.machine == target)
target.show_inv(source)
del(src)
qdel(src)

View File

@@ -974,7 +974,7 @@
else
for(var/atom/a in hallucinations)
del a
qdel(a)
if(halloss > 100)
src << "<span class='notice'>You're in too much pain to keep going...</span>"
@@ -1404,7 +1404,7 @@
if(M.stat == 2)
M.death(1)
stomach_contents.Remove(M)
del(M)
qdel(M)
continue
if(air_master.current_cycle%3==1)
if(!(M.status_flags & GODMODE))

View File

@@ -23,4 +23,4 @@
/datum/species/shadow/handle_death(var/mob/living/carbon/human/H)
spawn(1)
new /obj/effect/decal/cleanable/ash(H.loc)
del(H)
qdel(H)

View File

@@ -178,7 +178,7 @@
for(var/obj/item/organ/organ in H.contents)
if((organ in H.organs) || (organ in H.internal_organs))
del(organ)
qdel(organ)
if(H.organs) H.organs.Cut()
if(H.internal_organs) H.internal_organs.Cut()

View File

@@ -209,7 +209,7 @@
if(D.client)
D.loc = H.loc
else
del(D)
qdel(D)
H.visible_message("\red[H] splits apart with a wet slithering noise!")

View File

@@ -16,9 +16,9 @@
spawn(0)
AddInfectionImages(affected_mob)
else
del(src)
qdel(src)
/obj/item/alien_embryo/Del()
/obj/item/alien_embryo/Destroy()
if(affected_mob)
affected_mob.status_flags &= ~(XENO_HOST)
spawn(0)
@@ -98,7 +98,7 @@
new_xeno << sound('sound/voice/hiss5.ogg',0,0,0,100) //To get the player's attention
if(gib_on_success)
affected_mob.gib()
del(src)
qdel(src)
/*----------------------------------------
Proc: RefreshInfectionImage()
@@ -114,7 +114,7 @@ Des: Removes all infection images from aliens and places an infection image on a
if(alien.client)
for(var/image/I in alien.client.images)
if(dd_hasprefix_case(I.icon_state, "infected"))
del(I)
qdel(I)
for(var/mob/living/L in mob_list)
if(iscorgi(L) || iscarbon(L))
if(L.status_flags & XENO_HOST)
@@ -156,4 +156,4 @@ Des: Removes the alien infection image from all aliens in the world located in p
for(var/image/I in alien.client.images)
if(I.loc == C)
if(dd_hasprefix_case(I.icon_state, "infected"))
del(I)
qdel(I)

View File

@@ -41,7 +41,7 @@ var/const/MAX_ACTIVE_TIME = 400
if(config.aliens_allowed)
..()
else
del(src)
qdel(src)
/obj/item/clothing/mask/facehugger/examine(mob/user)
..(user)

View File

@@ -45,7 +45,7 @@ Des: Removes all infected images from the alien.
if (client)
for(var/image/I in client.images)
if(dd_hasprefix_case(I.icon_state, "infected"))
del(I)
qdel(I)
return
/* TODO: Convert this over.

View File

@@ -239,7 +239,7 @@ var/global/list/damage_icon_parts = list()
//0 = destroyed, 1 = normal, 2 = robotic, 3 = necrotic.
//Create a new, blank icon for our mob to use.
if(stand_icon)
del(stand_icon)
qdel(stand_icon)
stand_icon = new(species.icon_template ? species.icon_template : 'icons/mob/human.dmi',"blank")
var/icon_key = "[species.race_key][g][s_tone][r_skin][g_skin][b_skin]"
var/obj/item/organ/eyes/eyes = internal_organs_by_name["eyes"]
@@ -412,7 +412,7 @@ var/global/list/damage_icon_parts = list()
if (targeted_by && target_locked)
overlays_standing[TARGETED_LAYER] = target_locked
else if (!targeted_by && target_locked)
del(target_locked)
qdel(target_locked)
if (!targeted_by)
overlays_standing[TARGETED_LAYER] = null
if(update_icons) update_icons()

View File

@@ -143,7 +143,7 @@
//now mobs
var/speech_bubble_test = say_test(message)
var/image/speech_bubble = image('icons/mob/talk.dmi',src,"h[speech_bubble_test]")
spawn(30) del(speech_bubble)
spawn(30) qdel(speech_bubble)
for(var/mob/M in listening)
M << speech_bubble

View File

@@ -23,7 +23,7 @@
user <<"You apply the enhancer. It now has triple the amount of uses."
Uses = 3
enhanced = 1
del(O)
qdel(O)
/obj/item/slime_extract/New()
..()
@@ -145,14 +145,14 @@
pet.icon_dead = "[M.colour] baby slime dead"
pet.colour = "[M.colour]"
user <<"You feed the slime the potion, removing it's powers and calming it."
del(M)
qdel(M)
var/newname = sanitize(input(user, "Would you like to give the slime a name?", "Name your new pet", "pet slime") as null|text, MAX_NAME_LEN)
if (!newname)
newname = "pet slime"
pet.name = newname
pet.real_name = newname
del(src)
qdel(src)
/obj/item/weapon/slimepotion2
name = "advanced docility potion"
@@ -176,14 +176,14 @@
pet.icon_dead = "[M.colour] baby slime dead"
pet.colour = "[M.colour]"
user <<"You feed the slime the potion, removing it's powers and calming it."
del(M)
qdel(M)
var/newname = sanitize(input(user, "Would you like to give the slime a name?", "Name your new pet", "pet slime") as null|text, MAX_NAME_LEN)
if (!newname)
newname = "pet slime"
pet.name = newname
pet.real_name = newname
del(src)
qdel(src)
/obj/item/weapon/slimesteroid
@@ -208,7 +208,7 @@
user <<"You feed the slime the steroid. It now has triple the amount of extract."
M.cores = 3
del(src)
qdel(src)
/obj/item/weapon/slimesteroid2
name = "extract enhancer"
@@ -227,7 +227,7 @@
user <<"You apply the enhancer. It now has triple the amount of uses."
target.Uses = 3
target.enahnced = 1
del(src)*/
qdel(src)*/
/obj/effect/golemrune
anchored = 1
@@ -268,7 +268,7 @@
G.set_species("Golem")
G.key = ghost.key
G << "You are an adamantine golem. You move slowly, but are highly resistant to heat and cold as well as blunt trauma. You are unable to wear clothes, but can still use most tools. Serve [user], and assist them in completing their goals at any cost."
del (src)
qdel(src)
proc/announce_to_ghosts()
@@ -350,7 +350,7 @@
spawn(rand(50,100))
src.visible_message("<span class='warning'> The [name] bursts open!</span>")
new/mob/living/carbon/slime(T)
del(src)
qdel(src)
/obj/item/weapon/reagent_containers/food/snacks/egg/slime/process()

View File

@@ -178,7 +178,7 @@
var/f_loss = null
switch (severity)
if (1.0)
del(src)
qdel(src)
return
if (2.0)

View File

@@ -161,7 +161,7 @@
src.mind.transfer_to(new_slime)
else
new_slime.key = src.key
del(src)
qdel(src)
else
src << "<span class='notice'>I am not ready to reproduce yet...</span>"
else

View File

@@ -512,7 +512,7 @@ default behaviour is:
for(var/mob/O in viewers(M, null))
O.show_message(text("\red [] has been pulled from []'s grip by []", G.affecting, G.assailant, src), 1)
//G = null
del(G)
qdel(G)
else
ok = 0
if (locate(/obj/item/weapon/grab, M.grabbed_by.len))
@@ -629,22 +629,22 @@ default behaviour is:
var/resisting = 0
for(var/obj/O in L.requests)
L.requests.Remove(O)
del(O)
qdel(O)
resisting++
for(var/obj/item/weapon/grab/G in usr.grabbed_by)
resisting++
switch(G.state)
if(GRAB_PASSIVE)
del(G)
qdel(G)
if(GRAB_AGGRESSIVE)
if(prob(60)) //same chance of breaking the grab as disarm
L.visible_message("<span class='warning'>[L] has broken free of [G.assailant]'s grip!</span>")
del(G)
qdel(G)
if(GRAB_NECK)
//If the you move when grabbing someone then it's easier for them to break free. Same if the affected mob is immune to stun.
if (((world.time - G.assailant.l_move_time < 30 || !L.stunned) && prob(15)) || prob(3))
L.visible_message("<span class='warning'>[L] has broken free of [G.assailant]'s headlock!</span>")
del(G)
qdel(G)
if(resisting)
L.visible_message("<span class='danger'>[L] resists!</span>")
@@ -778,7 +778,7 @@ default behaviour is:
O.show_message(text("\red <B>[] manages to break the handcuffs!</B>", CM), 1)
CM << "\red You successfully break your handcuffs."
CM.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
del(CM.handcuffed)
qdel(CM.handcuffed)
CM.handcuffed = null
if(buckled && buckled.buckle_require_restraints)
buckled.unbuckle_mob()
@@ -826,7 +826,7 @@ default behaviour is:
O.show_message(text("\red <B>[] manages to break the legcuffs!</B>", CM), 1)
CM << "\red You successfully break your legcuffs."
CM.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
del(CM.legcuffed)
qdel(CM.legcuffed)
CM.legcuffed = null
CM.update_inv_legcuffed()
else

View File

@@ -59,7 +59,7 @@
if(P.taser_effect)
stun_effect_act(0, P.agony, def_zone, P)
src <<"\red You have been hit by [P]!"
del P
qdel(P)
return
//Armor

View File

@@ -263,7 +263,7 @@ proc/get_radio_key_from_channel(var/channel)
var/speech_bubble_test = say_test(message)
var/image/speech_bubble = image('icons/mob/talk.dmi',src,"h[speech_bubble_test]")
spawn(30) del(speech_bubble)
spawn(30) qdel(speech_bubble)
for(var/mob/M in listening)
M << speech_bubble

View File

@@ -146,7 +146,7 @@ var/list/ai_verbs_default = list(
if(!safety)//Only used by AIize() to successfully spawn an AI.
if (!B)//If there is no player/brain inside.
empty_playable_ai_cores += new/obj/structure/AIcore/deactivated(loc)//New empty terminal.
del(src)//Delete AI.
qdel(src)//Delete AI.
return
else
if (B.brainmob.mind)
@@ -196,9 +196,9 @@ var/list/ai_verbs_default = list(
job = "AI"
/mob/living/silicon/ai/Del()
/mob/living/silicon/ai/Destroy()
ai_list -= src
del(eyeobj)
qdel(eyeobj)
..()
/mob/living/silicon/ai/pointed(atom/A as mob|obj|turf in view())
@@ -579,7 +579,7 @@ var/list/ai_verbs_default = list(
input = input("Select a crew member:") as null|anything in personnel_list
var/icon/character_icon = personnel_list[input]
if(character_icon)
del(holo_icon)//Clear old icon so we're not storing it in memory.
qdel(holo_icon)//Clear old icon so we're not storing it in memory.
holo_icon = getHologramIcon(icon(character_icon))
else
alert("No suitable records found. Aborting.")
@@ -592,7 +592,7 @@ var/list/ai_verbs_default = list(
)
input = input("Please select a hologram:") as null|anything in icon_list
if(input)
del(holo_icon)
qdel(holo_icon)
switch(input)
if("default")
holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo1"))

View File

@@ -34,10 +34,10 @@ var/global/list/empty_playable_ai_cores = list()
job_master.FreeRole(job)
if(mind.objectives.len)
del(mind.objectives)
qdel(mind.objectives)
mind.special_role = null
clear_antag_roles(mind)
ghostize(0)
del(src)
qdel(src)

View File

@@ -11,7 +11,7 @@
/mob/living/silicon/ai/init_subsystems()
..()
del(alarm_monitor)
qdel(alarm_monitor)
alarm_monitor = new/obj/nano_module/alarm_monitor/ai(src)
crew_monitor = new(src)
rcon = new(src)

View File

@@ -3,11 +3,11 @@
card.removePersonality()
if(gibbed)
src.loc = get_turf(card)
del(card)
qdel(card)
else
close_up()
if(mind)
del(mind)
qdel(mind)
..(gibbed)
ghostize()
del(src)
qdel(src)

View File

@@ -8,7 +8,7 @@
var/turf/T = get_turf_or_move(src.loc)
for (var/mob/M in viewers(T))
M.show_message("\red The data cable rapidly retracts back into its spool.", 3, "\red You hear a click and the sound of wire spooling rapidly.", 2)
del(src.cable)
qdel(src.cable)
regular_hud_updates()

View File

@@ -29,7 +29,7 @@
var/obj/item/robot_parts/robot_component/comp = wrapped
brokenstate = comp.icon_state_broken
if(wrapped)
del wrapped
qdel(wrapped)
wrapped = new/obj/item/broken_device

View File

@@ -1,7 +1,7 @@
/mob/living/silicon/robot/dust()
//Delete the MMI first so that it won't go popping out.
if(mmi)
del(mmi)
qdel(mmi)
..()
/mob/living/silicon/robot/death(gibbed)

View File

@@ -256,7 +256,7 @@
if(istype(M,/mob/living/simple_animal/lizard) || istype(M,/mob/living/simple_animal/mouse))
src.loc.visible_message("<span class='danger'>[src.loc] sucks [M] into its decompiler. There's a horrible crunching noise.</span>","<span class='danger'>It's a bit of a struggle, but you manage to suck [M] into your decompiler. It makes a series of visceral crunching noises.</span>")
new/obj/effect/decal/cleanable/blood/splatter(get_turf(src))
del(M)
qdel(M)
if(wood)
wood.add_charge(2000)
if(plastic)
@@ -279,7 +279,7 @@
if(!M || !D) return
D << "<span class='danger'>You carefully and thoroughly decompile [M], storing as much of its resources as you can within yourself.</span>"
del(M)
qdel(M)
new/obj/effect/decal/cleanable/blood/oil(get_turf(src))
if(metal)
@@ -347,7 +347,7 @@
else
continue
del(W)
qdel(W)
grabbed_something = 1
if(grabbed_something)

View File

@@ -227,7 +227,7 @@
//If there's an MMI in the robot, have it ejected when the mob goes away. --NEO
//Improved /N
/mob/living/silicon/robot/Del()
/mob/living/silicon/robot/Destroy()
if(mmi)//Safety for when a cyborg gets dust()ed. Or there is no MMI inside.
var/turf/T = get_turf(loc)//To hopefully prevent run time errors.
if(T) mmi.loc = T
@@ -805,7 +805,7 @@
src << "\red \b ALERT: [user.real_name] is your new master. Obey your new laws and his commands."
if(src.module && istype(src.module, /obj/item/weapon/robot_module/miner))
for(var/obj/item/weapon/pickaxe/borgdrill/D in src.module.modules)
del(D)
qdel(D)
src.module.modules += new /obj/item/weapon/pickaxe/diamonddrill(src.module)
src.module.rebuild()
updateicon()
@@ -924,7 +924,7 @@
//Call when target overlay should be added/removed
/mob/living/silicon/robot/update_targeted()
if(!targeted_by && target_locked)
del(target_locked)
qdel(target_locked)
updateicon()
if (targeted_by && target_locked)
overlays += target_locked
@@ -1058,7 +1058,7 @@
for(var/A in tile)
if(istype(A, /obj/effect))
if(istype(A, /obj/effect/rune) || istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/overlay))
del(A)
qdel(A)
else if(istype(A, /obj/item))
var/obj/item/cleaned_item = A
cleaned_item.clean_blood()

View File

@@ -43,11 +43,11 @@
S.use(1)
loaded_item = S
else
del(S)
qdel(S)
desc = initial(desc)
icon_state = initial(icon_state)
else
del(I)
qdel(I)
desc = initial(desc)
icon_state = initial(icon_state)
else

View File

@@ -24,7 +24,7 @@
/obj/item/borg/upgrade/reset/action(var/mob/living/silicon/robot/R)
R.uneq_all()
del(R.module)
qdel(R.module)
R.module = null
R.modtype = "robot"
R.real_name = "Cyborg [R.ident]"

View File

@@ -31,7 +31,7 @@
add_language("Galactic Common")
init_subsystems()
/mob/living/silicon/Del()
/mob/living/silicon/Destroy()
for(var/datum/alarm_handler/AH in alarm_manager.all_handlers)
AH.unregister(src)
..()

View File

@@ -20,7 +20,7 @@
..()
parent = new_parent
/mob/living/simple_animal/bee/Del()
/mob/living/simple_animal/bee/Destroy()
if(parent)
parent.owned_bee_swarms.Remove(src)
..()
@@ -107,7 +107,7 @@
if(feral > 0)
src.strength += B.strength
del(B)
qdel(B)
src.icon_state = "bees[src.strength]"
if(strength > 5)
icon_state = "bees_swarm"
@@ -120,7 +120,7 @@
B.icon_state = "bees[B.strength]"
if(src.strength <= 0)
del(src)
qdel(src)
return
src.icon_state = "bees[B.strength]"
var/turf/simulated/floor/T = get_turf(get_step(src, pick(1,2,4,8)))
@@ -169,7 +169,7 @@
if(!parent && prob(10))
strength -= 1
if(strength <= 0)
del(src)
qdel(src)
else if(strength <= 5)
icon_state = "bees[strength]"

View File

@@ -143,7 +143,7 @@
if(!host.lastKnownIP)
host.lastKnownIP = b2h_ip
del(host_brain)
qdel(host_brain)
/mob/living/simple_animal/borer/proc/leave_host()

View File

@@ -304,7 +304,7 @@
host.computer_id = null
host.lastKnownIP = null
del(host_brain)
qdel(host_brain)
host_brain = new(src)
host_brain.ckey = host.ckey

View File

@@ -52,7 +52,7 @@
new /obj/item/weapon/ectoplasm (src.loc)
..(null,"collapses in a shattered heap.")
ghostize()
del src
qdel(src)
/mob/living/simple_animal/construct/attack_generic(var/mob/user)
if(istype(user, /mob/living/simple_animal/construct/builder))

View File

@@ -131,7 +131,7 @@
animation.icon = 'icons/mob/mob.dmi'
animation.master = T
flick("dust-h", animation)
del(animation)
qdel(animation)
var/mob/living/simple_animal/shade/S = new /mob/living/simple_animal/shade( T.loc )
S.loc = C //put shade in stone
S.status_flags |= GODMODE //So they won't die inside the stone somehow
@@ -152,7 +152,7 @@
U << "\blue <b>Capture successful!</b>: \black [T.real_name]'s soul has been ripped from their body and stored within the soul stone."
U << "The soulstone has been imprinted with [S.real_name]'s mind, it will no longer react to other souls."
C.imprinted = "[S.name]"
del T
qdel(T)
if("SHADE")
var/mob/living/simple_animal/shade/T = target
var/obj/item/device/soulstone/C = src
@@ -184,33 +184,33 @@
Z.key = A.key
if(iscultist(U))
cult.add_antagonist(Z.mind)
del(T)
qdel(T)
Z << "<B>You are playing a Juggernaut. Though slow, you can withstand extreme punishment, and rip apart enemies and walls alike.</B>"
Z << "<B>You are still bound to serve your creator, follow their orders and help them complete their goals at all costs.</B>"
Z.cancel_camera()
del(C)
qdel(C)
if("Wraith")
var/mob/living/simple_animal/construct/wraith/Z = new /mob/living/simple_animal/construct/wraith (get_turf(T.loc))
Z.key = A.key
if(iscultist(U))
cult.add_antagonist(Z.mind)
del(T)
qdel(T)
Z << "<B>You are playing a Wraith. Though relatively fragile, you are fast, deadly, and even able to phase through walls.</B>"
Z << "<B>You are still bound to serve your creator, follow their orders and help them complete their goals at all costs.</B>"
Z.cancel_camera()
del(C)
qdel(C)
if("Artificer")
var/mob/living/simple_animal/construct/builder/Z = new /mob/living/simple_animal/construct/builder (get_turf(T.loc))
Z.key = A.key
if(iscultist(U))
cult.add_antagonist(Z.mind)
del(T)
qdel(T)
Z << "<B>You are playing an Artificer. You are incredibly weak and fragile, but you are able to construct fortifications, repair allied constructs (by clicking on them), and even create new constructs</B>"
Z << "<B>You are still bound to serve your creator, follow their orders and help them complete their goals at all costs.</B>"
Z.cancel_camera()
del(C)
qdel(C)
else
U << "\red <b>Creation failed!</b>: \black The soul stone is empty! Go kill someone!"
return

View File

@@ -78,7 +78,7 @@
W.assignment = corpseidjob
W.registered_name = M.real_name
M.equip_to_slot_or_del(W, slot_wear_id)
del(src)
qdel(src)

View File

@@ -59,7 +59,7 @@
health = min(maxHealth, health + MED.heal_brute)
MED.amount -= 1
if(MED.amount <= 0)
del(MED)
qdel(MED)
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
M.show_message("\blue [user] applies the [MED] on [src]")

View File

@@ -177,7 +177,7 @@
amount_grown += rand(1,2)
if(amount_grown >= 100)
new /mob/living/simple_animal/chicken(src.loc)
del(src)
qdel(src)
var/const/MAX_CHICKENS = 50
var/global/chicken_count = 0
@@ -228,7 +228,7 @@ var/global/chicken_count = 0
if(!stat && eggsleft < 8)
user.visible_message("\blue [user] feeds [O] to [name]! It clucks happily.","\blue You feed [O] to [name]! It clucks happily.")
user.drop_item()
del(O)
qdel(O)
eggsleft += rand(1, 4)
else
user << "\blue [name] doesn't seem hungry!"
@@ -258,6 +258,6 @@ var/global/chicken_count = 0
visible_message("[src] hatches with a quiet cracking sound.")
new /mob/living/simple_animal/chick(get_turf(src))
processing_objects.Remove(src)
del(src)
qdel(src)
else
processing_objects.Remove(src)

View File

@@ -45,4 +45,4 @@
S2.icon_living = "[src.colour] baby slime"
S2.icon_dead = "[src.colour] baby slime dead"
S2.colour = "[src.colour]"
del(src)
qdel(src)

View File

@@ -185,7 +185,7 @@
src.name = "Spider-bot"
update_icon()
/mob/living/simple_animal/spiderbot/Del()
/mob/living/simple_animal/spiderbot/Destroy()
eject_brain()
..()

View File

@@ -51,7 +51,7 @@
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
del src
qdel(src)
return
/mob/living/simple_animal/hostile/hivebot/tele//this still needs work
@@ -95,7 +95,7 @@
if("rapid")
new /mob/living/simple_animal/hostile/hivebot/rapid(get_turf(src))
spawn(100)
del(src)
qdel(src)
return

View File

@@ -188,7 +188,7 @@
if(!A) return
if (!istype(target, /turf))
del(A)
qdel(A)
return
A.current = target
A.starting = get_turf(src)

View File

@@ -43,7 +43,7 @@
/mob/living/simple_animal/hostile/mimic/death()
..()
del(src)
qdel(src)
//
// Crate Mimic

View File

@@ -53,5 +53,5 @@
new corpse (src.loc)
if(weapon1)
new weapon1 (src.loc)
del src
qdel(src)
return

View File

@@ -159,9 +159,9 @@
/mob/living/simple_animal/hostile/retaliate/malf_drone/death()
..(null,"suddenly breaks apart.")
del(src)
qdel(src)
/mob/living/simple_animal/hostile/retaliate/malf_drone/Del()
/mob/living/simple_animal/hostile/retaliate/malf_drone/Destroy()
//some random debris left behind
if(has_loot)
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread

View File

@@ -51,5 +51,5 @@
new corpse (src.loc)
if(weapon1)
new weapon1 (src.loc)
del src
qdel(src)
return

View File

@@ -43,7 +43,7 @@
new weapon1 (src.loc)
if(weapon2)
new weapon2 (src.loc)
del src
qdel(src)
return
///////////////Sword and shield////////////
@@ -159,4 +159,4 @@
/mob/living/simple_animal/hostile/viscerator/death()
..(null,"is smashed into pieces!")
del src
qdel(src)

View File

@@ -53,4 +53,4 @@
/mob/living/simple_animal/hostile/tree/death()
..(null,"is hacked into pieces!")
new /obj/item/stack/sheet/wood(loc)
del(src)
qdel(src)

View File

@@ -47,5 +47,5 @@
if((M.client && !( M.blinded )))
M.show_message("\red [src] lets out a contented sigh as their form unwinds. ")
ghostize()
del src
qdel(src)
return

View File

@@ -274,7 +274,7 @@
adjustBruteLoss(-MED.heal_brute)
MED.amount -= 1
if(MED.amount <= 0)
del(MED)
qdel(MED)
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
M.show_message("<span class='notice>[user] applies the [MED] on [src].</span>")
@@ -361,7 +361,7 @@
//Call when target overlay should be added/removed
/mob/living/simple_animal/update_targeted()
if(!targeted_by && target_locked)
del(target_locked)
qdel(target_locked)
overlays = null
if (targeted_by && target_locked)
overlays += target_locked
@@ -392,7 +392,7 @@
if(small)
user.visible_message("<span class='danger'>[user] chops up \the [src]!</span>")
new/obj/effect/decal/cleanable/blood/splatter(get_turf(src))
del(src)
qdel(src)
else
user.visible_message("<span class='danger'>[user] butchers \the [src] messily!</span>")
gib()

View File

@@ -170,7 +170,7 @@
if(die)
newHead.death()
del(src)
qdel(src)
proc/ProcessStomach()
for(var/atom/movable/stomachContent in contents)
@@ -179,16 +179,16 @@
if(!istype(stomachContent,/obj/item/stack/sheet/mineral/phoron))
var/obj/item/stack/oldStack = stomachContent
new /obj/item/stack/sheet/mineral/phoron(src, oldStack.get_amount())
del(oldStack)
qdel(oldStack)
continue
else if(istype(stomachContent,/obj/item)) //converts to plasma, keeping the w_class
var/obj/item/oldItem = stomachContent
new /obj/item/stack/sheet/mineral/phoron(src, oldItem.w_class)
del(oldItem)
qdel(oldItem)
continue
else
new /obj/item/stack/sheet/mineral/phoron(src, flatPlasmaValue) //just flat amount
del(stomachContent)
qdel(stomachContent)
continue
if(previous)

View File

@@ -31,7 +31,7 @@
client.images = null //remove the images such as AIs being unable to see runes
client.screen = null //remove hud items just in case
if(hud_used) del(hud_used) //remove the hud objects
if(hud_used) qdel(hud_used) //remove the hud objects
hud_used = new /datum/hud(src)
next_move = 1

View File

@@ -1,4 +1,4 @@
/mob/Del()//This makes sure that mobs with clients/keys are not just deleted from the game.
/mob/Destroy()//This makes sure that mobs with clients/keys are not just deleted from the game.
mob_list -= src
dead_mob_list -= src
living_mob_list -= src
@@ -179,7 +179,7 @@
P.invisibility = invisibility
spawn (20)
if(P)
del(P) // qdel
qdel(P) // qdel
face_atom(A)
return 1
@@ -213,7 +213,7 @@
var/list/temp = list( )
temp += L.container
//L = null
del(L)
qdel(L)
return temp
else
return L.container
@@ -367,7 +367,7 @@
var/mob/new_player/M = new /mob/new_player()
if(!client)
log_game("[usr.key] AM failed due to disconnect.")
del(M)
qdel(M)
return
M.key = key
@@ -739,7 +739,7 @@ note dizziness decrements automatically in the mob's Life() proc.
statpanel("Status",process.name+"([active_diseases.len])","#[process.getTicks()]\t- [process.getLastRunTime()]")
process = processScheduler.getProcess("garbage")
statpanel("Status",process.name+"([garbage_collector.destroyed.len])","#[process.getTicks()]\t- [process.getLastRunTime()]")
statpanel("Status",process.name+"([garbage_collector.dels])","#[process.getTicks()]\t- [process.getLastRunTime()]")
process = processScheduler.getProcess("machinery")
statpanel("Status",process.name+"([machines.len])","#[process.getTicks()]\t- [process.getLastRunTime()]")

View File

@@ -25,7 +25,7 @@
affecting = victim
if(affecting.anchored)
del(src)
qdel(src)
return
affecting.grabbed_by += src
@@ -35,7 +35,7 @@
hud.name = "reinforce grab"
hud.master = src
/obj/item/weapon/grab/Del()
/obj/item/weapon/grab/Destroy()
//make sure the grabbed_by list doesn't fill up with nulls
if(affecting) affecting.grabbed_by -= src
..()
@@ -118,7 +118,7 @@
if(world.time < (last_upgrade + UPGRADE_COOLDOWN))
return
if(!assailant.canmove || assailant.lying)
del(src)
qdel(src)
return
last_upgrade = world.time
@@ -152,10 +152,10 @@
if(state == GRAB_KILL)
return
if(!affecting)
del(src)
qdel(src)
return
if(!assailant.canmove || assailant.lying)
del(src)
qdel(src)
return
state = GRAB_KILL
assailant.visible_message("<span class='danger'>[assailant] has tightened \his grip on [affecting]'s neck!</span>")
@@ -174,12 +174,12 @@
//This is used to make sure the victim hasn't managed to yackety sax away before using the grab.
/obj/item/weapon/grab/proc/confirm()
if(!assailant || !affecting)
del(src)
qdel(src)
return 0
if(affecting)
if(!isturf(assailant.loc) || ( !isturf(affecting.loc) || assailant.loc != affecting.loc && get_dist(assailant, affecting) > 1) )
del(src)
qdel(src)
return 0
return 1
@@ -216,12 +216,12 @@
user.visible_message("<span class='danger'>[user] devours [affecting]!</span>")
affecting.loc = user
attacker.stomach_contents.Add(affecting)
del(src)
qdel(src)
/obj/item/weapon/grab/dropped()
del(src)
qdel(src)
/obj/item/weapon/grab/Del()
del(hud)
/obj/item/weapon/grab/Destroy()
qdel(hud)
..()

View File

@@ -1,58 +1,58 @@
//This proc is the most basic of the procs. All it does is make a new mob on the same tile and transfer over a few variables.
//Returns the new mob
//Note that this proc does NOT do MMI related stuff!
/mob/proc/change_mob_type(var/new_type = null, var/turf/location = null, var/new_name = null as text, var/delete_old_mob = 0 as num, var/subspecies)
if(istype(src,/mob/new_player))
usr << "\red cannot convert players who have not entered yet."
return
if(!new_type)
new_type = input("Mob type path:", "Mob type") as text|null
if(istext(new_type))
new_type = text2path(new_type)
if( !ispath(new_type) )
usr << "Invalid type path (new_type = [new_type]) in change_mob_type(). Contact a coder."
return
if( new_type == /mob/new_player )
usr << "\red cannot convert into a new_player mob type."
return
var/mob/M
if(isturf(location))
M = new new_type( location )
else
M = new new_type( src.loc )
if(!M || !ismob(M))
usr << "Type path is not a mob (new_type = [new_type]) in change_mob_type(). Contact a coder."
del(M)
return
if( istext(new_name) )
M.name = new_name
M.real_name = new_name
else
M.name = src.name
M.real_name = src.real_name
if(src.dna)
M.dna = src.dna.Clone()
if(mind)
mind.transfer_to(M)
else
M.key = key
if(subspecies && istype(M,/mob/living/carbon/human))
var/mob/living/carbon/human/H = M
H.set_species(subspecies)
if(delete_old_mob)
spawn(1)
del(src)
return M
//This proc is the most basic of the procs. All it does is make a new mob on the same tile and transfer over a few variables.
//Returns the new mob
//Note that this proc does NOT do MMI related stuff!
/mob/proc/change_mob_type(var/new_type = null, var/turf/location = null, var/new_name = null as text, var/delete_old_mob = 0 as num, var/subspecies)
if(istype(src,/mob/new_player))
usr << "\red cannot convert players who have not entered yet."
return
if(!new_type)
new_type = input("Mob type path:", "Mob type") as text|null
if(istext(new_type))
new_type = text2path(new_type)
if( !ispath(new_type) )
usr << "Invalid type path (new_type = [new_type]) in change_mob_type(). Contact a coder."
return
if( new_type == /mob/new_player )
usr << "\red cannot convert into a new_player mob type."
return
var/mob/M
if(isturf(location))
M = new new_type( location )
else
M = new new_type( src.loc )
if(!M || !ismob(M))
usr << "Type path is not a mob (new_type = [new_type]) in change_mob_type(). Contact a coder."
qdel(M)
return
if( istext(new_name) )
M.name = new_name
M.real_name = new_name
else
M.name = src.name
M.real_name = src.real_name
if(src.dna)
M.dna = src.dna.Clone()
if(mind)
mind.transfer_to(M)
else
M.key = key
if(subspecies && istype(M,/mob/living/carbon/human))
var/mob/living/carbon/human/H = M
H.set_species(subspecies)
if(delete_old_mob)
spawn(1)
qdel(src)
return M

View File

@@ -3,5 +3,5 @@
..()
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.
del(src)
qdel(src)
return

View File

@@ -135,7 +135,7 @@
if(!client.holder && !config.antag_hud_allowed) // For new ghosts we remove the verb from even showing up if it's not allowed.
observer.verbs -= /mob/dead/observer/verb/toggle_antagHUD // Poor guys, don't know what they are missing!
observer.key = key
del(src)
qdel(src)
return 1
@@ -327,8 +327,8 @@
AnnounceCyborg(character, rank, "has been downloaded to the empty core in \the [character.loc.loc]")
ticker.mode.latespawn(character)
del(C)
del(src)
qdel(C)
qdel(src)
return
//Find our spawning point.
@@ -368,7 +368,7 @@
else
AnnounceCyborg(character, rank, join_message)
del(src)
qdel(src)
proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank, var/join_message)
if (ticker.current_state == GAME_STATE_PLAYING)

View File

@@ -179,9 +179,9 @@ datum/preferences
proc/update_preview_icon() //seriously. This is horrendous.
del(preview_icon_front)
del(preview_icon_side)
del(preview_icon)
qdel(preview_icon_front)
qdel(preview_icon_side)
qdel(preview_icon)
var/g = "m"
if(gender == FEMALE) g = "f"
@@ -690,7 +690,7 @@ datum/preferences
preview_icon_front = new(preview_icon, dir = SOUTH)
preview_icon_side = new(preview_icon, dir = WEST)
del(eyes_s)
del(underwear_s)
del(undershirt_s)
del(clothes_s)
qdel(eyes_s)
qdel(underwear_s)
qdel(undershirt_s)
qdel(clothes_s)

View File

@@ -12,7 +12,7 @@
icon = null
invisibility = 101
for(var/t in organs)
del(t)
qdel(t)
var/atom/movable/overlay/animation = new /atom/movable/overlay( loc )
animation.icon_state = "blank"
animation.icon = 'icons/mob/mob.dmi'
@@ -37,7 +37,7 @@
dna.SetSEValueRange(MONKEYBLOCK,0xDAC, 0xFFF)
src << "<B>You are now [species.name]. </B>"
del(animation)
qdel(animation)
return src
@@ -49,7 +49,7 @@
if (monkeyizing)
return
for(var/t in organs)
del(t)
qdel(t)
return ..(move)
@@ -106,8 +106,7 @@
O.add_ai_verbs()
O.rename_self("ai",1)
spawn(0)
del(src)
qdel(src)
return O
//human -> robot
@@ -122,7 +121,7 @@
icon = null
invisibility = 101
for(var/t in organs)
del(t)
qdel(t)
var/mob/living/silicon/robot/O = new /mob/living/silicon/robot( loc )
@@ -159,8 +158,7 @@
callHook("borgify", list(O))
O.Namepick()
spawn(0)//To prevent the proc from returning null.
del(src)
qdel(src)
return O
//human -> alien
@@ -175,7 +173,7 @@
icon = null
invisibility = 101
for(var/t in organs)
del(t)
qdel(t)
var/alien_caste = pick("Hunter","Sentinel","Drone")
var/mob/living/carbon/human/new_xeno = create_new_xenomorph(alien_caste,loc)
@@ -184,8 +182,7 @@
new_xeno.key = key
new_xeno << "<B>You are now an alien.</B>"
spawn(0)//To prevent the proc from returning null.
del(src)
qdel(src)
return
/mob/living/carbon/human/proc/slimeize(adult as num, reproduce as num)
@@ -199,7 +196,7 @@
icon = null
invisibility = 101
for(var/t in organs)
del(t)
qdel(t)
var/mob/living/carbon/slime/new_slime
if(reproduce)
@@ -219,8 +216,7 @@
new_slime.key = key
new_slime << "<B>You are now a slime. Skreee!</B>"
spawn(0)//To prevent the proc from returning null.
del(src)
qdel(src)
return
/mob/living/carbon/human/proc/corgize()
@@ -234,15 +230,14 @@
icon = null
invisibility = 101
for(var/t in organs) //this really should not be necessary
del(t)
qdel(t)
var/mob/living/simple_animal/corgi/new_corgi = new /mob/living/simple_animal/corgi (loc)
new_corgi.a_intent = I_HURT
new_corgi.key = key
new_corgi << "<B>You are now a Corgi. Yap Yap!</B>"
spawn(0)//To prevent the proc from returning null.
del(src)
qdel(src)
return
/mob/living/carbon/human/Animalize()
@@ -266,7 +261,7 @@
invisibility = 101
for(var/t in organs)
del(t)
qdel(t)
var/mob/new_mob = new mobpath(src.loc)
@@ -276,7 +271,7 @@
new_mob << "You suddenly feel more... animalistic."
spawn()
del(src)
qdel(src)
return
/mob/proc/Animalize()
@@ -294,7 +289,7 @@
new_mob.a_intent = I_HURT
new_mob << "You feel more... animalistic"
del(src)
qdel(src)
/* Certain mob types have problems and should not be allowed to be controlled by players.
*