Merge pull request #2321 from Fox-McCloud/another-del-pass

Another del->qdel pass
This commit is contained in:
TheDZD
2015-10-09 18:05:00 -04:00
69 changed files with 201 additions and 761 deletions
+3 -3
View File
@@ -42,7 +42,7 @@ Pipelines + Other Objects -> Pipe network
pipe_color = null
..()
/obj/machinery/atmospherics/initialize()
..()
@@ -54,7 +54,7 @@ Pipelines + Other Objects -> Pipe network
M.remove_ventcrawl()
M.forceMove(loc)
if(pipe_image)
del(pipe_image) //we have to del it, or it might keep a ref somewhere else
qdel(pipe_image) //we have to del it, or it might keep a ref somewhere else
return ..()
// Icons/overlays/underlays
@@ -213,7 +213,7 @@ Pipelines + Other Objects -> Pipe network
dir = D
initialize_directions = P
var/turf/T = loc
level = T.intact ? 2 : 1
level = T.intact ? 2 : 1
add_fingerprint(usr)
initialize()
var/list/nodes = pipeline_expansion()
+2 -2
View File
@@ -35,7 +35,7 @@
if(parent && isnull(parent.gcDestroyed))
qdel(parent)
parent = null
/obj/machinery/atmospherics/pipe/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/device/analyzer))
atmosanalyzer_scan(parent.air, user)
@@ -51,7 +51,7 @@
/obj/machinery/atmospherics/pipe/proc/check_pressure(pressure)
//Return 1 if parent should continue checking other pipes
//Return null if parent should stop checking other pipes. Recall: del(src) will by default return null
//Return null if parent should stop checking other pipes. Recall: qdel(src) will by default return null
return 1
+2 -1
View File
@@ -48,7 +48,8 @@
if(button)
if(T.client)
T.client.screen -= button
del(button)
qdel(button)
button = null
T.actions.Remove(src)
T.update_action_buttons()
owner = null
+12 -12
View File
@@ -164,14 +164,14 @@
var/list/overflow_whitelist = list() //whitelist for overflow
var/disable_away_missions = 0 // disable away missions
var/autoconvert_notes = 0 //if all connecting player's notes should attempt to be converted to the database
var/ooc_allowed = 1
var/looc_allowed = 1
var/dooc_allowed = 1
var/dsay_allowed = 1
var/disable_lobby_music = 0 // Disables the lobby music
/datum/configuration/New()
@@ -341,13 +341,13 @@
if ("forumurl")
config.forumurl = value
if ("rulesurl")
config.rulesurl = value
if ("donationsurl")
config.donationsurl = value
if ("repositoryurl")
config.repositoryurl = value
@@ -544,11 +544,11 @@
config.disable_away_missions = 1
if("autoconvert_notes")
config.autoconvert_notes = 1
config.autoconvert_notes = 1
if("disable_lobby_music")
config.disable_lobby_music = 1
config.disable_lobby_music = 1
else
diary << "Unknown setting in configuration: '[name]'"
@@ -678,7 +678,7 @@
var/datum/game_mode/M = new T()
if (M.config_tag && M.config_tag == mode_name)
return M
del(M)
qdel(M)
return new /datum/game_mode/extended()
/datum/configuration/proc/get_runnable_modes()
@@ -687,10 +687,10 @@
var/datum/game_mode/M = new T()
//world << "DEBUG: [T], tag=[M.config_tag], prob=[probabilities[M.config_tag]]"
if (!(M.config_tag in modes))
del(M)
qdel(M)
continue
if (probabilities[M.config_tag]<=0)
del(M)
qdel(M)
continue
if (M.can_start())
runnable_modes[M] = probabilities[M.config_tag]
+10 -10
View File
@@ -587,7 +587,7 @@
objectives.Insert(objective_pos, new_objective)
else
objectives += new_objective
log_admin("[key_name(usr)] has updated [key_name(current)]'s objectives: [new_objective]")
message_admins("[key_name_admin(usr)] has updated [key_name_admin(current)]'s objectives: [new_objective]")
@@ -595,7 +595,7 @@
var/datum/objective/objective = locate(href_list["obj_delete"])
if(!istype(objective)) return
objectives -= objective
log_admin("[key_name(usr)] has removed one of [key_name(current)]'s objectives: [objective]")
message_admins("[key_name_admin(usr)] has removed one of [key_name_admin(current)]'s objectives: [objective]")
@@ -603,7 +603,7 @@
var/datum/objective/objective = locate(href_list["obj_completed"])
if(!istype(objective)) return
objective.completed = !objective.completed
log_admin("[key_name(usr)] has toggled the completion of one of [key_name(current)]'s objectives")
message_admins("[key_name_admin(usr)] has toggled the completion of one of [key_name_admin(current)]'s objectives")
@@ -628,7 +628,7 @@
var/obj/item/organ/external/affected = H.organs_by_name["head"]
affected.implants += L
L.part = affected
log_admin("[key_name(usr)] has given [key_name(current)] a loyalty implant")
message_admins("[key_name_admin(usr)] has given [key_name_admin(current)] a loyalty implant")
@@ -864,7 +864,7 @@
current << "<B><font color='red'>Your powers are awoken. A flash of memory returns to us...we are a changeling!</font></B>"
log_admin("[key_name(usr)] has changelinged [key_name(current)]")
message_admins("[key_name_admin(usr)] has changelinged [key_name_admin(current)]")
if("autoobjectives")
ticker.mode.forge_changeling_objectives(src)
usr << "\blue The objectives for changeling [key] have been generated. You can edit them and anounce manually."
@@ -901,7 +901,7 @@
current << "<B><font color='red'>Your powers are awoken. Your lust for blood grows... You are a Vampire!</font></B>"
log_admin("[key_name(usr)] has vampired [key_name(current)]")
message_admins("[key_name_admin(usr)] has vampired [key_name_admin(current)]")
if("autoobjectives")
ticker.mode.forge_vampire_objectives(src)
usr << "\blue The objectives for vampire [key] have been generated. You can edit them and announce manually."
@@ -961,7 +961,7 @@
return
log_admin("[key_name(usr)] has equipped [key_name(current)] as a nuclear operative")
message_admins("[key_name_admin(usr)] has equipped [key_name_admin(current)] as a nuclear operative")
if("tellcode")
var/code
for (var/obj/machinery/nuclearbomb/bombue in machines)
@@ -1177,10 +1177,10 @@
var/list/L = current.get_contents()
for (var/t in L)
if (istype(t, /obj/item/device/pda))
if (t:uplink) del(t:uplink)
if (t:uplink) qdel(t:uplink)
t:uplink = null
else if (istype(t, /obj/item/device/radio))
if (t:traitorradio) del(t:traitorradio)
if (t:traitorradio) qdel(t:traitorradio)
t:traitorradio = null
t:traitor_frequency = 0.0
else if (istype(t, /obj/item/weapon/SWF_uplink) || istype(t, /obj/item/weapon/syndicate_uplink))
@@ -1189,7 +1189,7 @@
R.loc = current.loc
R.traitorradio = null
R.traitor_frequency = 0.0
del(t)
qdel(t)
// remove wizards spells
//If there are more special powers that need removal, they can be procced into here./N
+2 -1
View File
@@ -24,7 +24,8 @@ var/list/modules = list( // global associative list
var/mneed = mods.inmodlist(type) // find if this type has modules defined
if(!mneed) // not found in module list?
del(src) // delete self, thus ending proc
qdel(src) // delete self, thus ending proc
return
var/needed = mods.getbitmask(type) // get a bitmask for the number of modules in this object
status = needed
-168
View File
@@ -1,168 +0,0 @@
/* sd_Alert library
by Shadowdarke (shadowdarke@byond.com)
sd_Alert() is a powerful and flexible alternative to the built in BYOND
alert() proc. sd_Alert offers timed popups, unlimited buttons, custom
appearance, and even the option to popup without stealing keyboard focus
from the map or command line.
Please see demo.dm for detailed examples.
FORMAT
sd_Alert(who, message, title, buttons, default, duration, unfocus, \
size, table, style, tag, select, flags)
ARGUMENTS
who - the client or mob to display the alert to.
message - text message to display
title - title of the alert box
buttons - list of buttons
Default Value: list("Ok")
default - default button selestion
Default Value: the first button in the list
duration - the number of ticks before this alert expires. If not
set, the alert lasts until a button is clicked.
Default Value: 0 (unlimited)
unfocus - if this value is set, the popup will not steal keyboard
focus from the map or command line.
Default Value: 1 (do not take focus)
size - size of the popup window in px
Default Value: "300x200"
table - optional parameters for the HTML table in the alert
Default Value: "width=100% height=100%" (fill the window)
style - optional style sheet information
tag - lets you specify a certain tag for this sd_Alert so you may manipulate it
externally. (i.e. force the alert to close, change options and redisplay,
reuse the same window, etc.)
select - if set, the buttons will be replaced with a selection box with a number of
lines displayed equal to this value.
Default value: 0 (use buttons)
flags - optional flags effecting the alert display. These flags may be ORed (|)
together for multiple effects.
SD_ALERT_SCROLL = display a scrollbar
SD_ALERT_SELECT_MULTI = forces selection box display (instead of
buttons) allows the user to select multiple
choices.
SD_ALERT_LINKS = display each choice as a plain text link.
Any selection box style overrides this flag.
SD_ALERT_NOVALIDATE = don't validate responses
Default value: SD_ALERT_SCROLL
(button display with scroll bar, validate responses)
RETURNS
The text of the selected button, or null if the alert duration expired
without a button click.
Version 1 changes (from version 0):
* Added the tag, select, and flags arguments, thanks to several suggestions from Foomer.
* Split the sd_Alert/Alert() proc into New(), Display(), and Response() to allow more
customization by developers. Primarily developers would want to use Display() to change
the display of active tagged windows
*/
#define SD_ALERT_SCROLL 1
#define SD_ALERT_SELECT_MULTI 2
#define SD_ALERT_LINKS 4
#define SD_ALERT_NOVALIDATE 8
proc/sd_Alert(client/who, message, title, buttons = list("Ok"),\
default, duration = 0, unfocus = 1, size = "300x200", \
table = "width=100% height=100%", style, tag, select, flags = SD_ALERT_SCROLL)
if(ismob(who))
var/mob/M = who
who = M.client
if(!istype(who)) CRASH("sd_Alert: Invalid target:[who] (\ref[who])")
var/sd_alert/T = locate(tag)
if(T)
if(istype(T)) del(T)
else CRASH("sd_Alert: tag \"[tag]\" is already in use by datum '[T]' (type: [T.type])")
T = new(who, tag)
if(duration)
spawn(duration)
if(T) del(T)
return
T.Display(message,title,buttons,default,unfocus,size,table,style,select,flags)
. = T.Response()
sd_alert
var
client/target
response
list/validation
Destroy()
target << browse(null,"window=\ref[src]")
return ..()
New(who, tag)
..()
target = who
src.tag = tag
Topic(href,params[])
if(usr.client != target) return
response = params["clk"]
proc/Display(message,title,list/buttons,default,unfocus,size,table,style,select,flags)
if(unfocus) spawn() target << browse(null,null)
if(istext(buttons)) buttons = list(buttons)
if(!default) default = buttons[1]
if(!(flags & SD_ALERT_NOVALIDATE)) validation = buttons.Copy()
var/html = {"<head><title>[title]</title>[style]<script>\
function c(x) {document.location.href='BYOND://?src=\ref[src];'+x;}\
</script></head><body onLoad="fcs.focus();"\
[(flags&SD_ALERT_SCROLL)?"":" scroll=no"]><table [table]><tr>\
<td>[message]</td></tr><tr><th>"}
if(select || (flags & SD_ALERT_SELECT_MULTI)) // select style choices
html += {"<FORM ID=fcs ACTION='BYOND://?' METHOD=GET>\
<INPUT TYPE=HIDDEN NAME=src VALUE='\ref[src]'>
<SELECT NAME=clk SIZE=[select]\
[(flags & SD_ALERT_SELECT_MULTI)?" MULTIPLE":""]>"}
for(var/b in buttons)
html += "<OPTION[(b == default)?" SELECTED":""]>\
[html_encode(b)]</OPTION>"
html += "</SELECT><BR><INPUT TYPE=SUBMIT VALUE=Submit></FORM>"
else if(flags & SD_ALERT_LINKS) // text link style
for(var/b in buttons)
var/list/L = list()
L["clk"] = b
var/html_string=list2params(L)
var/focus
if(b == default) focus = " ID=fcs"
html += "<A[focus] href=# onClick=\"c('[html_string]')\">[html_encode(b)]</A>\
<BR>"
else // button style choices
for(var/b in buttons)
var/list/L = list()
L["clk"] = b
var/html_string=list2params(L)
var/focus
if(b == default) focus = " ID=fcs"
html += "<INPUT[focus] TYPE=button VALUE='[html_encode(b)]' \
onClick=\"c('[html_string]')\"> "
html += "</th></tr></table></body>"
target << browse(html,"window=\ref[src];size=[size];can_close=0")
proc/Response()
var/validated
while(!validated)
while(target && !response) // wait for a response
sleep(2)
if(response && validation)
if(istype(response, /list))
var/list/L = response - validation
if(L.len) response = null
else validated = 1
else if(response in validation) validated = 1
else response=null
else validated = 1
spawn(2) del(src)
return response
-1
View File
@@ -34,7 +34,6 @@
if(reagents)
qdel(reagents)
reagents = null
set_opacity(0)
invisibility = 101
return ..()
+1 -1
View File
@@ -94,7 +94,7 @@
M.perform_infestation(first_host.current)
forge_borer_objectives(borer, first_host)
del(original)
qdel(original)
log_admin("Created [borers.len] borers.")
+3 -3
View File
@@ -103,7 +103,7 @@ var/global/datum/controller/gameticker/ticker
can_continue = src.mode.pre_setup()//Setup special modes
job_master.DivideOccupations() //Distribute jobs
if(!can_continue)
del(mode)
qdel(mode)
current_state = GAME_STATE_PREGAME
world << "<B>Error setting up [master_mode].</B> Reverting to pre-game lobby."
job_master.ResetOccupations()
@@ -138,7 +138,7 @@ var/global/datum/controller/gameticker/ticker
for(var/obj/effect/landmark/start/S in landmarks_list)
//Deleting Startpoints but we need the ai point to AI-ize people later
if (S.name != "AI")
del(S)
qdel(S)
// take care of random spesspod spawning
var/list/obj/effect/landmark/spacepod/random/L = list()
@@ -149,7 +149,7 @@ var/global/datum/controller/gameticker/ticker
var/obj/effect/landmark/spacepod/random/S = pick(L)
new /obj/spacepod/random(S.loc)
for(var/obj/effect/landmark/spacepod/random/R in L)
del(R)
qdel(R)
world << "<FONT color='blue'><B>Enjoy the game!</B></FONT>"
world << sound('sound/AI/welcome.ogg') // Skie
+1 -1
View File
@@ -115,7 +115,7 @@ proc/issyndicate(mob/living/M as mob)
for(var/obj/effect/landmark/A in landmarks_list)
if(A.name == "Syndicate-Spawn")
synd_spawn += get_turf(A)
del(A)
qdel(A)
continue
var/obj/effect/landmark/uplinklocker = locate("landmark*Syndicate-Uplink") //i will be rewriting this shortly
+2 -2
View File
@@ -159,7 +159,7 @@
var/mob/living/carbon/human/M = new /mob/living/carbon/human(A.loc)
M.real_name = "Corpse"
M.death()
del(A)
qdel(A)
continue
if (A.name == "Corpse-Engineer")
var/mob/living/carbon/human/M = new /mob/living/carbon/human(A.loc)
@@ -247,6 +247,6 @@
else
M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/swat(M), slot_head)
del(A)
qdel(A)
continue
*/
+3 -3
View File
@@ -65,7 +65,7 @@
for(var/obj/effect/landmark/A in landmarks_list)
if(A.name == "Xenos-Spawn")
xenos_spawn += get_turf(A)
del(A)
qdel(A)
continue
var/xenoqueen_selected = 0
@@ -82,7 +82,7 @@
else
O.key = xeno_mind.current.key
xeno_mind.name = O.name
//del(xeno_mind)
//qdel(xeno_mind)
xenoqueen_selected = 1
spawnpos++
continue
@@ -94,7 +94,7 @@
else
O.key = xeno_mind.current.key
xeno_mind.name = O.name
//del(xeno_mind)
//qdel(xeno_mind)
spawnpos++
spawn (rand(waittime_l, waittime_h))
+1 -1
View File
@@ -317,7 +317,7 @@
occupant.unEquip(W)
W.loc = src
if(W.contents.len) //Make sure we catch anything not handled by del() on the items.
if(W.contents.len) //Make sure we catch anything not handled by qdel() on the items.
var/preserve = null
for(var/T in preserve_items)
if(istype(W,T))
+1 -1
View File
@@ -139,7 +139,7 @@
if(input_obj)
if(isturf(input_obj.loc))
input_plate = input_obj.loc
del(input_obj)
qdel(input_obj)
break
if(!input_plate)
+1 -1
View File
@@ -164,7 +164,7 @@
if(prob(electricity_level))
explosion(loc, 0, 1, 2, 3) // ooo dat shit EXPLODES son
spawn(2)
del(src)
qdel(src)
*/
updateicon()
+1 -1
View File
@@ -145,7 +145,7 @@
//Allow you to push disposal pipes into it (for those with density 1)
/obj/machinery/pipedispenser/disposal/Crossed(var/obj/structure/disposalconstruct/pipe as obj)
if(istype(pipe) && !pipe.anchored)
del(pipe)
qdel(pipe)
Nah
*/
+2 -2
View File
@@ -34,7 +34,7 @@
SUIT_TYPE = /obj/item/clothing/suit/space/eva
HELMET_TYPE = /obj/item/clothing/head/helmet/space/eva
MASK_TYPE = /obj/item/clothing/mask/breath
/obj/machinery/suit_storage_unit/captain
SUIT_TYPE = /obj/item/clothing/suit/space/captain
HELMET_TYPE = /obj/item/clothing/head/helmet/space/capspace
@@ -496,7 +496,7 @@
src.update_icon()
// for(var/obj/O in src)
// del(O)
// qdel(O)
src.add_fingerprint(usr)
src.updateUsrDialog()
@@ -90,6 +90,11 @@ would spawn and follow the beaker, even if it is carried or thrown.
var/atom/holder
var/setup = 0
Destroy()
holder = null
location = null
return ..()
proc/set_up(n = 3, c = 0, turf/loc)
if(n > 10)
n = 10
+38 -37
View File
@@ -14,7 +14,7 @@
switch(name) //some of these are probably obsolete
if("shuttle")
shuttle_z = z
del(src)
qdel(src)
if("airtunnel_stop")
airtunnel_stop = x
@@ -27,35 +27,35 @@
if("monkey")
monkeystart += loc
del(src)
qdel(src)
if("start")
newplayer_start += loc
del(src)
qdel(src)
if("wizard")
wizardstart += loc
del(src)
qdel(src)
if("JoinLate")
latejoin += loc
del(src)
qdel(src)
if("JoinLateGateway")
latejoin_gateway += loc
del(src)
qdel(src)
if("JoinLateCryo")
latejoin_cryo += loc
del(src)
qdel(src)
if("JoinLateCyborg")
latejoin_cyborg += loc
del(src)
qdel(src)
//prisoners
if("prisonwarp")
prisonwarp += loc
del(src)
qdel(src)
// if("mazewarp")
// mazewarp += loc
if("Holding Facility")
@@ -74,19 +74,19 @@
//not prisoners
if("prisonsecuritywarp")
prisonsecuritywarp += loc
del(src)
qdel(src)
if("blobstart")
blobstart += loc
del(src)
qdel(src)
if("xeno_spawn")
xeno_spawn += loc
del(src)
qdel(src)
if("ninjastart")
ninjastart += loc
del(src)
qdel(src)
if("carpspawn")
carplist += loc
@@ -99,7 +99,8 @@
/obj/effect/landmark/Destroy()
landmarks_list -= src
return ..()
..()
return QDEL_HINT_HARDDEL_NOW
/obj/effect/landmark/nations
name = "nations"
@@ -134,51 +135,51 @@
var/list/options = typesof(/obj/effect/landmark/costume)
var/PICK= options[rand(1,options.len)]
new PICK(src.loc)
del(src)
qdel(src)
//SUBCLASSES. Spawn a bunch of items and disappear likewise
/obj/effect/landmark/costume/chicken/New()
new /obj/item/clothing/suit/chickensuit(src.loc)
new /obj/item/clothing/head/chicken(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/egg(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/gladiator/New()
new /obj/item/clothing/under/gladiator(src.loc)
new /obj/item/clothing/head/helmet/gladiator(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/madscientist/New()
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/suit/storage/labcoat/mad(src.loc)
new /obj/item/clothing/glasses/gglasses(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/elpresidente/New()
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/mask/cigarette/cigar/havana(src.loc)
new /obj/item/clothing/shoes/jackboots(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/nyangirl/New()
new /obj/item/clothing/under/schoolgirl(src.loc)
new /obj/item/clothing/head/kitty(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/maid/New()
new /obj/item/clothing/under/blackskirt(src.loc)
var/CHOICE = pick( /obj/item/clothing/head/beret , /obj/item/clothing/head/rabbitears )
new CHOICE(src.loc)
new /obj/item/clothing/glasses/sunglasses/blindfold(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/butler/New()
new /obj/item/clothing/suit/wcoat(src.loc)
new /obj/item/clothing/under/suit_jacket(src.loc)
new /obj/item/clothing/head/that(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/scratch/New()
new /obj/item/clothing/gloves/color/white(src.loc)
@@ -186,12 +187,12 @@
new /obj/item/clothing/under/scratch(src.loc)
if (prob(30))
new /obj/item/clothing/head/cueball(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/highlander/New()
new /obj/item/clothing/under/kilt(src.loc)
new /obj/item/clothing/head/beret(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/prig/New()
new /obj/item/clothing/suit/wcoat(src.loc)
@@ -202,24 +203,24 @@
new /obj/item/weapon/cane(src.loc)
new /obj/item/clothing/under/sl_suit(src.loc)
new /obj/item/clothing/mask/fakemoustache(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/plaguedoctor/New()
new /obj/item/clothing/suit/bio_suit/plaguedoctorsuit(src.loc)
new /obj/item/clothing/head/plaguedoctorhat(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/nightowl/New()
new /obj/item/clothing/under/owl(src.loc)
new /obj/item/clothing/mask/gas/owl_mask(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/waiter/New()
new /obj/item/clothing/under/waiter(src.loc)
var/CHOICE= pick( /obj/item/clothing/head/kitty, /obj/item/clothing/head/rabbitears)
new CHOICE(src.loc)
new /obj/item/clothing/suit/apron(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/pirate/New()
new /obj/item/clothing/under/pirate(src.loc)
@@ -227,46 +228,46 @@
var/CHOICE = pick( /obj/item/clothing/head/pirate , /obj/item/clothing/head/bandana )
new CHOICE(src.loc)
new /obj/item/clothing/glasses/eyepatch(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/commie/New()
new /obj/item/clothing/under/soviet(src.loc)
new /obj/item/clothing/head/ushanka(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/imperium_monk/New()
new /obj/item/clothing/suit/imperium_monk(src.loc)
if (prob(25))
new /obj/item/clothing/mask/gas/cyborg(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/holiday_priest/New()
new /obj/item/clothing/suit/holidaypriest(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/marisawizard/fake/New()
new /obj/item/clothing/head/wizard/marisa/fake(src.loc)
new/obj/item/clothing/suit/wizrobe/marisa/fake(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/cutewitch/New()
new /obj/item/clothing/under/sundress(src.loc)
new /obj/item/clothing/head/witchwig(src.loc)
new /obj/item/weapon/twohanded/staff/broom(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/fakewizard/New()
new /obj/item/clothing/suit/wizrobe/fake(src.loc)
new /obj/item/clothing/head/wizard/fake(src.loc)
new /obj/item/weapon/twohanded/staff/(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/sexyclown/New()
new /obj/item/clothing/mask/gas/sexyclown(src.loc)
new /obj/item/clothing/under/sexyclown(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/costume/sexymime/New()
new /obj/item/clothing/mask/gas/sexymime(src.loc)
new /obj/item/clothing/under/sexymime(src.loc)
del(src)
qdel(src)
@@ -102,7 +102,7 @@
p4.air_contents.temperature = btemp + T0C
p2.secured = 1
del(src)
qdel(src)
*/
/obj/effect/spawner/newbomb
@@ -169,4 +169,4 @@
V.update_icon()
del(src)
qdel(src)
@@ -23,4 +23,4 @@
else
new /turf/simulated/floor/vault(locate(i,j,z),type)
del(src)
qdel(src)
@@ -168,7 +168,7 @@
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
else
usr << "All the leaves have fallen off the nettle from violent whacking."
del(src)
qdel(src)
/obj/item/weapon/grown/nettle/changePotency(newValue) //-QualityVan
potency = newValue
@@ -220,7 +220,7 @@
else
usr << "All the leaves have fallen off the deathnettle from violent whacking."
del(src)
qdel(src)
/obj/item/weapon/grown/deathnettle/changePotency(newValue) //-QualityVan
potency = newValue
@@ -235,6 +235,6 @@
if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || istype(W, /obj/item/weapon/kitchen/utensil/knife) || istype(W, /obj/item/weapon/kitchenknife) || istype(W, /obj/item/weapon/kitchenknife/ritual))
user << "<span class='notice'>You use [W] to fashion a pipe out of the corn cob!</span>"
new /obj/item/clothing/mask/cigarette/pipe/cobpipe (user.loc)
del(src)
qdel(src)
return
*/
@@ -248,7 +248,7 @@
usr.client.screen -= S
S.dropped(usr)
if(!S.amount)
del(S)
qdel(S)
else
S.loc = src
@@ -293,7 +293,7 @@
N.amount = stacksize
S.amount -= stacksize
if(!S.amount)
del(S) // todo: there's probably something missing here
qdel(S) // todo: there's probably something missing here
orient2hud(usr)
if(usr.s_active)
usr.s_active.show_to(usr)
@@ -476,9 +476,9 @@
else target.ex_act(1)
if (isobj(target))
if (target)
del(target)
qdel(target)
if (src)
del(src)
qdel(src)
*/
/obj/item/weapon/storage/belt/bluespace/attack(mob/M as mob, mob/user as mob, def_zone)
@@ -53,7 +53,7 @@
//If you want to re-add fire, just add "fire" = 15 to the pick list.
/*if ("fire")
new /obj/structure/closet/firecloset(src.loc)
del(src)*/
qdel(src)*/
/obj/structure/closet/emcloset/legacy/New()
new /obj/item/weapon/tank/oxygen(src)
+1 -1
View File
@@ -66,7 +66,7 @@
/obj/structure/lattice/proc/updateOverlays()
//if(!(istype(src.loc, /turf/space)))
// del(src)
// qdel(src)
spawn(1)
overlays = list()
@@ -90,7 +90,7 @@
moving = 0
// Should I return a copy here? If the caller edits or del()s the returned
// Should I return a copy here? If the caller edits or qdel()s the returned
// datum, there might be problems if I don't...
/obj/structure/transit_tube_pod/return_air()
var/datum/gas_mixture/GM = new()
+4 -4
View File
@@ -112,7 +112,7 @@ var/send_emergency_team
return
var/client/C = src.client
var/mob/living/carbon/human/new_commando = C.create_response_team(L.loc)
del(L) // Do not qdel landmarks!
qdel(L)
new_commando.mind.key = usr.key
new_commando.key = usr.key
new_commando.update_icons()
@@ -322,12 +322,12 @@ var/send_emergency_team
if("Commander")
command_slots = 0
// Override name and age for the commander
M.real_name = "[pick("Lieutenant", "Captain", "Major")] [pick(last_names)]"
M.real_name = "[pick("Lieutenant", "Captain", "Major")] [pick(last_names)]"
M.name = M.real_name
M.age = rand(35,45)
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/ert/commander(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/responseteam(M), slot_in_backpack)
+1 -1
View File
@@ -324,7 +324,7 @@
/** ACT UNSIMULATED! **/
/*
assume_air(datum/gas_mixture/giver) //use this for machines to adjust air
del(giver)
qdel(giver)
return 0
return_air()
+2 -2
View File
@@ -16,7 +16,7 @@ var/list/admin_datums = list()
/datum/admins/New(initial_rank = "Temporary Admin", initial_rights = 0, ckey)
if(!ckey)
error("Admin datum created without a ckey argument. Datum has been deleted")
del(src)
qdel(src)
return
admincaster_signature = "Nanotrasen Officer #[rand(0,9)][rand(0,9)][rand(0,9)]"
rank = initial_rank
@@ -86,7 +86,7 @@ you will have to do something like if(client.holder.rights & R_ADMIN) yourself.
holder.disassociate()
del(holder)
return 1
//This proc checks whether subject has at least ONE of the rights specified in rights_required.
/proc/check_rights_for(client/subject, rights_required)
if(subject && subject.holder)
+5 -5
View File
@@ -25,7 +25,7 @@
message_admins("[key_name_admin(usr)] rejected [key_name_admin(C.mob)]'s admin help")
log_admin("[key_name(usr)] rejected [key_name(C.mob)]'s admin help")
if(href_list["stickyban"])
stickyban(href_list["stickyban"],href_list)
@@ -1062,7 +1062,7 @@
message_admins("\blue [key_name_admin(usr)] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
del(M.client)
//del(M) // See no reason why to delete mob. Important stuff can be lost. And ban can be lifted before round ends.
//qdel(M) // See no reason why to delete mob. Important stuff can be lost. And ban can be lifted before round ends.
if("No")
var/reason = input(usr,"Please state the reason","Reason") as message|null
if(!reason)
@@ -1086,7 +1086,7 @@
DB_ban_record(BANTYPE_PERMA, M, -1, reason)
del(M.client)
//del(M)
//qdel(M)
if("Cancel")
return
@@ -2173,7 +2173,7 @@
log_admin("[key_name(usr)] has kicked [afkonly ? "all AFK" : "all"] clients from the lobby. [length(listkicked)] clients kicked: [strkicked ? strkicked : "--"]")
else
usr << "You may only use this when the game is running."
else if(href_list["memoeditlist"])
if(!check_rights(R_SERVER)) return
var/sql_key = sanitizeSQL("[href_list["memoeditlist"]]")
@@ -2216,7 +2216,7 @@
if (M.client)
M.client.perspective = MOB_PERSPECTIVE
M.client.eye = M
del(O)
qdel(O)
ok = 1*/
if("monkey")
feedback_inc("admin_secrets_fun_used",1)
+2 -3
View File
@@ -17,7 +17,7 @@
/client/proc/SDQL2_query(query_text as message)
set category = "Debug"
if(!check_rights(R_PROCCALL)) //Shouldn't happen... but just to be safe.
message_admins("<span class='danger'>ERROR: Non-admin [key_name_admin(usr)] attempted to execute a SDQL query!</span>")
log_admin("Non-admin [key_name(usr)] attempted to execute a SDQL query!")
@@ -95,7 +95,7 @@
if("delete")
for(var/datum/d in objs)
del d
del(d)
if("select")
var/text = ""
@@ -474,4 +474,3 @@
if(word != "")
query_list += word
return query_list
+19 -19
View File
@@ -40,8 +40,8 @@ var/intercom_range_display_status = 0
/client/proc/camera_view()
set category = "Mapping"
set name = "Camera Range Display"
if(!check_rights(R_DEBUG))
if(!check_rights(R_DEBUG))
return
if(camera_range_display_status)
@@ -50,7 +50,7 @@ var/intercom_range_display_status = 0
camera_range_display_status = 1
for(var/obj/effect/debugging/camera_range/C in world)
del(C)
qdel(C)
if(camera_range_display_status)
for(var/obj/machinery/camera/C in cameranet.cameras)
@@ -60,8 +60,8 @@ var/intercom_range_display_status = 0
/client/proc/sec_camera_report()
set category = "Mapping"
set name = "Camera Report"
if(!check_rights(R_DEBUG))
if(!check_rights(R_DEBUG))
return
var/list/obj/machinery/camera/CL = list()
@@ -99,8 +99,8 @@ var/intercom_range_display_status = 0
/client/proc/intercom_view()
set category = "Mapping"
set name = "Intercom Range Display"
if(!check_rights(R_DEBUG))
if(!check_rights(R_DEBUG))
return
if(intercom_range_display_status)
@@ -109,17 +109,17 @@ var/intercom_range_display_status = 0
intercom_range_display_status = 1
for(var/obj/effect/debugging/marker/M in world)
del(M)
qdel(M)
if(intercom_range_display_status)
for(var/obj/item/device/radio/intercom/I in world)
for(var/turf/T in orange(7,I))
var/obj/effect/debugging/marker/F = new/obj/effect/debugging/marker(T)
if (!(F in view(7,I.loc)))
del(F)
qdel(F)
feedback_add_details("admin_verb","mIRD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
var/list/admin_verbs_show_debug_verbs = list(
var/list/admin_verbs_show_debug_verbs = list(
/client/proc/camera_view,
/client/proc/sec_camera_report,
/client/proc/intercom_view,
@@ -128,7 +128,7 @@ var/list/admin_verbs_show_debug_verbs = list(
/client/proc/powerdebug, //check power
/client/proc/count_objects_on_z_level,
/client/proc/count_objects_all,
/client/proc/cmd_assume_direct_control,
/client/proc/cmd_assume_direct_control,
/client/proc/startSinglo,
/client/proc/ticklag,
/client/proc/cmd_admin_grantfullaccess,
@@ -140,12 +140,12 @@ var/list/admin_verbs_show_debug_verbs = list(
/client/proc/forceEvent,
/client/proc/nanomapgen_DumpImage
)
/client/proc/enable_debug_verbs()
set category = "Debug"
set name = "Debug verbs"
if(!check_rights(R_DEBUG))
if(!check_rights(R_DEBUG))
return
verbs += admin_verbs_show_debug_verbs
@@ -155,10 +155,10 @@ var/list/admin_verbs_show_debug_verbs = list(
/client/proc/count_objects_on_z_level()
set category = "Mapping"
set name = "Count Objects On Level"
if(!check_rights(R_DEBUG))
return
if(!check_rights(R_DEBUG))
return
var/level = input("Which z-level?","Level?") as text
if(!level) return
var/num_level = text2num(level)
@@ -193,8 +193,8 @@ var/list/admin_verbs_show_debug_verbs = list(
/client/proc/count_objects_all()
set category = "Mapping"
set name = "Count Objects All"
if(!check_rights(R_DEBUG))
if(!check_rights(R_DEBUG))
return
var/type_text = input("Which type path?","") as text
+2 -2
View File
@@ -279,12 +279,12 @@ client/proc/one_click_antag()
for (var/obj/effect/landmark/A in /area/syndicate_station/start)//Because that's the only place it can BE -Sieve
if (A.name == "Syndicate-Gear-Closet")
new /obj/structure/closet/syndicate/personal(A.loc)
del(A)
qdel(A)
continue
if (A.name == "Syndicate-Bomb")
new /obj/effect/spawner/newbomb/timer/syndicate(A.loc)
del(A)
qdel(A)
continue
for(var/datum/mind/synd_mind in ticker.mode.syndicates)
+2 -2
View File
@@ -84,7 +84,7 @@ var/global/sent_strike_team = 0
var/obj/item/weapon/paper/P = new(L.loc)
P.info = "<p><b>Good morning soldier!</b>. This compact guide will familiarize you with standard operating procedure. There are three basic rules to follow:<br>#1 Work as a team.<br>#2 Accomplish your objective at all costs.<br>#3 Leave no witnesses.<br>You are fully equipped and stocked for your mission--before departing on the Spec. Ops. Shuttle due South, make sure that all operatives are ready. Actual mission objective will be relayed to you by Central Command through your headsets.<br>If deemed appropriate, Central Command will also allow members of your team to equip assault power-armor for the mission. You will find the armor storage due West of your position. Once you are ready to leave, utilize the Special Operations shuttle console and toggle the hull doors via the other console.</p><p>In the event that the team does not accomplish their assigned objective in a timely manner, or finds no other way to do so, attached below are instructions on how to operate a Nanotrasen Nuclear Device. Your operations <b>LEADER</b> is provided with a nuclear authentication disk and a pin-pointer for this reason. You may easily recognize them by their rank: Lieutenant, Captain, or Major. The nuclear device itself will be present somewhere on your destination.</p><p>Hello and thank you for choosing Nanotrasen for your nuclear information needs. Today's crash course will deal with the operation of a Fission Class Nanotrasen made Nuclear Device.<br>First and foremost, <b>DO NOT TOUCH ANYTHING UNTIL THE BOMB IS IN PLACE.</b> Pressing any button on the compacted bomb will cause it to extend and bolt itself into place. If this is done to unbolt it one must completely log in which at this time may not be possible.<br>To make the device functional:<br>#1 Place bomb in designated detonation zone<br> #2 Extend and anchor bomb (attack with hand).<br>#3 Insert Nuclear Auth. Disk into slot.<br>#4 Type numeric code into keypad ([nuke_code]).<br>Note: If you make a mistake press R to reset the device.<br>#5 Press the E button to log onto the device.<br>You now have activated the device. To deactivate the buttons at anytime, for example when you have already prepped the bomb for detonation, remove the authentication disk OR press the R on the keypad. Now the bomb CAN ONLY be detonated using the timer. A manual detonation is not an option.<br>Note: Toggle off the <b>SAFETY</b>.<br>Use the - - and + + to set a detonation time between 5 seconds and 10 minutes. Then press the timer toggle button to start the countdown. Now remove the authentication disk so that the buttons deactivate.<br>Note: <b>THE BOMB IS STILL SET AND WILL DETONATE</b><br>Now before you remove the disk if you need to move the bomb you can: Toggle off the anchor, move it, and re-anchor.</p><p>The nuclear authorization code is: <b>[nuke_code ? nuke_code : "None provided"]</b></p><p><b>Good luck, soldier!</b></p>"
P.name = "Spec. Ops Manual"
P.icon = "pamphlet-ds"
P.icon = "pamphlet-ds"
var/obj/item/weapon/stamp/centcom/stamp = new
P.stamp(stamp)
qdel(stamp)
@@ -92,7 +92,7 @@ var/global/sent_strike_team = 0
for (var/obj/effect/landmark/L in landmarks_list)
if (L.name == "Commando-Bomb")
new /obj/effect/spawner/newbomb/timer/syndicate(L.loc)
del(L)
qdel(L)
message_admins("\blue [key_name_admin(usr)] has spawned a CentCom strike squad.", 1)
log_admin("[key_name(usr)] used Spawn Death Squad.")
@@ -93,7 +93,7 @@ var/global/sent_syndicate_strike_team = 0
for (var/obj/effect/landmark/L in landmarks_list)
if (L.name == "Syndicate-Commando-Bomb")
new /obj/effect/spawner/newbomb/timer/syndicate(L.loc)
del(L)
qdel(L)
message_admins("\blue [key_name_admin(usr)] has spawned a Syndicate strike squad.", 1)
log_admin("[key_name(usr)] used Spawn Syndicate Squad.")
@@ -121,7 +121,7 @@ var/global/sent_syndicate_strike_team = 0
new_syndicate_commando.mind.special_role = "Syndicate Commando"
ticker.mode.traitors |= new_syndicate_commando.mind //Adds them to current traitor list. Which is really the extra antagonist list.
new_syndicate_commando.equip_syndicate_commando(syndicate_leader_selected)
del(spawn_location)
qdel(spawn_location)
return new_syndicate_commando
/mob/living/carbon/human/proc/equip_syndicate_commando(syndicate_leader_selected = 0)
+1 -1
View File
@@ -84,7 +84,7 @@
if(src.coffin == 1)
var/obj/structure/closet/coffin/sarcophagus/sarc = locate(/obj/structure/closet/coffin/sarcophagus) in loc
if(sarc) M.loc = sarc
del(src)
qdel(src)
+1 -1
View File
@@ -21,4 +21,4 @@
continue
new loot_path(get_turf(src))
del(src)
qdel(src)
@@ -321,7 +321,7 @@ var/global/dmm_suite/preloader/_preloader = null
/dmm_suite/preloader/New(var/list/the_attributes, var/path)
.=..()
if(!the_attributes.len)
Del()
del(src)
return
attributes = the_attributes
target_path = path
@@ -329,4 +329,4 @@ var/global/dmm_suite/preloader/_preloader = null
/dmm_suite/preloader/proc/load(atom/what)
for(var/attribute in attributes)
what.vars[attribute] = attributes[attribute]
Del()
del(src)
+1 -1
View File
@@ -366,7 +366,7 @@
else //We are deconstructing, make glass sheets instead of shards
var/sheets = shard_count + 1 //Deconstructing it salvages all the glass used to build the tank
new /obj/item/stack/sheet/glass(get_turf(src), sheets) //Produce the appropriate number of glass sheets, in a single stack
qdel(src) //QDel the tank and it's contents
qdel(src) //qdel the tank and it's contents
T.air_update_turf(1) //Update the air for the turf, to avoid permanent atmos sealing with wall tanks
/obj/machinery/fishtank/proc/spill_water()
+5 -5
View File
@@ -442,18 +442,18 @@ Gunshots/explosions/opening doors/less rare audio (done)
/obj/effect/fake_attacker/proc/updateimage()
// del src.currentimage
// qdel(src.currentimage)
if(src.dir == NORTH)
del(src.currentimage)
qdel(src.currentimage)
src.currentimage = new /image(up,src)
else if(src.dir == SOUTH)
del(src.currentimage)
qdel(src.currentimage)
src.currentimage = new /image(down,src)
else if(src.dir == EAST)
del(src.currentimage)
qdel(src.currentimage)
src.currentimage = new /image(right,src)
else if(src.dir == WEST)
del(src.currentimage)
qdel(src.currentimage)
src.currentimage = new /image(left,src)
my_target << currentimage
+1 -1
View File
@@ -125,7 +125,7 @@
setCooked(I, newfood)
newfood.cooktype[thiscooktype] = 1
turnoff(I)
//del(I)
//qdel(I)
// MAKE SURE TO OVERRIDE THESE ON THE MACHINE IF IT HAS SPECIAL FOOD INTERACTIONS!
// FAILURE TO OVERRIDE WILL RESULT IN FAILURE TO PROPERLY HANDLE SPECIAL INTERACTIONS! --FalseIncarnate
+2 -2
View File
@@ -395,13 +395,13 @@
var/obj/item/stack/medical/bruise_pack/tajaran/poultice = new /obj/item/stack/medical/bruise_pack/tajaran(user.loc)
poultice.heal_brute = potency
user << "<span class='notice'>You mash the leaves into a poultice.</span>"
del(src)
qdel(src)
return
if("mtear")
var/obj/item/stack/medical/ointment/tajaran/poultice = new /obj/item/stack/medical/ointment/tajaran(user.loc)
poultice.heal_burn = potency
user << "<span class='notice'>You mash the petals into a poultice.</span>"
del(src)
qdel(src)
return
*/
+2 -2
View File
@@ -93,7 +93,7 @@
//world << "falsewall_spawner found in wall"
var/obj/structure/temple_falsewall/fwall = new(F.loc)
fwall.mineral = mineral
del(F)
qdel(F)
for(var/obj/effect/landmark/door_spawner/D in T.contents)
//world << "door_spawner found in wall"
@@ -101,7 +101,7 @@
T.icon_state = "dark"
var/spawn_type = text2path("/obj/machinery/door/airlock/[door_mineral]")
new spawn_type(T)
del(D)*/
qdel(D)*/
//a shuttle has crashed somewhere on the map, it should have a power cell to let the adventurers get home
/area/jungle/crash_ship_source
+2 -2
View File
@@ -49,7 +49,7 @@
New()
if(prob(10))
new /obj/effect/glowshroom(src.loc)
del(src)
qdel(src)
/obj/effect/landmark/loot_spawn
name = "loot spawner"
@@ -267,7 +267,7 @@
for(var/i=0,i<num,i++)
new /mob/living/simple_animal/hostile/viscerator(C)
del(src)
qdel(src)
/obj/effect/landmark/loot_spawn/low
name = "low prob loot spawner"
@@ -40,7 +40,7 @@ proc/move_labor_shuttle() //TODO: Security Access only; add moving the shuttle t
*/
if(istype(T, /turf/simulated))
del(T)
qdel(T)
for(var/mob/living/carbon/bug in toArea) // If someone somehow is still in the shuttle's docking area...
bug.gib()
@@ -86,6 +86,6 @@
else
new_xeno.key = key
new_xeno.mind.name = new_xeno.name
del(src)
qdel(src)
return
*/
@@ -117,7 +117,7 @@
else
new_xeno.key = key
new_xeno.mind.name = new_xeno.name
del(src)
qdel(src)
else
src << "<span class='notice'>We already have an alive empress.</span>"
return
@@ -255,4 +255,4 @@
else
var/mob/living/carbon/alien/humanoid/A = new(loc)
A.key = key
del(src) */
qdel(src) */
@@ -462,7 +462,7 @@
if(D.client)
D.loc = H.loc
else
del(D)
qdel(D)
H.visible_message("<span class='danger">[H] splits apart with a wet slithering noise!"</span>) */
@@ -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)
@@ -63,7 +63,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]")
+5 -5
View File
@@ -30,7 +30,7 @@
client.images = null //remove the images such as AIs being unable to see runes
client.screen = list() //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
@@ -46,7 +46,7 @@
if(ckey in deadmins)
verbs += /client/proc/readmin
verbs += /client/proc/readmin
//Clear ability list and update from mob.
client.verbs -= ability_verbs
@@ -58,12 +58,12 @@
var/mob/living/carbon/human/H = src
if(H.species && H.species.abilities)
client.verbs |= H.species.abilities
client.screen += client.void
CallHook("Login", list("client" = src.client, "mob" = src))
// Calling update_interface() in /mob/Login() causes the Cyborg to immediately be ghosted; because of winget().
// Calling it in the overriden Login, such as /mob/living/Login() doesn't cause this.
/mob/proc/update_interface()
@@ -189,9 +189,9 @@ datum/preferences
return clothes_s
proc/update_preview_icon(var/for_observer=0) //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"
@@ -806,8 +806,8 @@ 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(socks_s)
del(clothes_s)
qdel(eyes_s)
qdel(underwear_s)
qdel(undershirt_s)
qdel(socks_s)
qdel(clothes_s)
+1 -1
View File
@@ -1046,7 +1046,7 @@
src.occupier.mind.transfer_to(src.occupier.parent)
src.occupier.parent.adjustOxyLoss(src.occupier.getOxyLoss())
src.occupier.parent.cancel_camera()
del(src.occupier) // qdel
qdel(src.occupier) // qdel
if (seclevel2num(get_security_level()) == SEC_LEVEL_DELTA)
for(var/obj/item/weapon/pinpointer/point in world)
for(var/datum/mind/AI_mind in ticker.mode.malf_ai)
+1 -1
View File
@@ -610,7 +610,7 @@ obj/structure/cable/proc/cableColor(var/colorC)
if(ismob(loc)) //handle mob icon update
var/mob/M = loc
M.unEquip(src)
qqdel(src)
qdel(src)
return 1
else
amount -= used
+1 -1
View File
@@ -80,5 +80,5 @@
else
icon_state = icon_state_off
for(var/obj/structure/cable/C in src.loc)
del(C)
qdel(C)
*/
+3 -400
View File
@@ -229,12 +229,12 @@
f.hotspot_expose(1000,CELL_VOLUME)
if((x == 1 || x == world.maxx || y == 1 || y == world.maxy))
//world << "deleting"
//del(src) //Delete if it passes the world edge
//qdel(src) //Delete if it passes the world edge
broken = 1
return
if(kill_count < 1)
//world << "deleting"
//del(src)
//qdel(src)
broken = 1
kill_count--
//world << "[x] [y]"
@@ -271,401 +271,4 @@
if(istype(target, /mob/living))
var/mob/living/M = target
M.playsound_local(src, "explosion", 50, 1)
..()
/*
/*
* Use: Caches beam state images and holds turfs that had these images overlaid.
* Structure:
* beam_master
* icon_states/dirs of beams
* image for that beam
* references for fired beams
* icon_states/dirs for each placed beam image
* turfs that have that icon_state/dir
*/
var/list/beam_master = list()
// Special laser the captains gun uses
/obj/item/projectile/beam/captain
name = "captain laser"
damage = 40
/obj/item/projectile/beam/lightning
invisibility = 101
name = "lightning"
damage = 0
icon = 'icons/obj/lightning.dmi'
icon_state = "lightning"
stun = 10
weaken = 10
stutter = 50
eyeblur = 50
var/tang = 0
layer = 3
var/turf/last = null
kill_count = 6
proc/adjustAngle(angle)
angle = round(angle) + 45
if(angle > 180)
angle -= 180
else
angle += 180
if(!angle)
angle = 1
/*if(angle < 0)
//angle = (round(abs(get_angle(A, user))) + 45) - 90
angle = round(angle) + 45 + 180
else
angle = round(angle) + 45*/
return angle
process()
var/first = 1 //So we don't make the overlay in the same tile as the firer
var/broke = 0
var/broken
var/atom/curr = current
var/Angle=round(Get_Angle(firer,curr))
var/icon/I=new('icons/obj/zap.dmi',"lightning")
I.Turn(Angle)
var/DX=(32*curr.x+curr.pixel_x)-(32*firer.x+firer.pixel_x)
var/DY=(32*curr.y+curr.pixel_y)-(32*firer.y+firer.pixel_y)
var/N=0
var/length=round(sqrt((DX)**2+(DY)**2))
var/count = 0
for(N,N<length,N+=32)
if(count >= kill_count)
break
count++
var/obj/effect/overlay/beam/X=new(loc)
X.BeamSource=src
if(N+32>length)
var/icon/II=new(icon,icon_state)
II.DrawBox(null,1,(length-N),32,32)
II.Turn(Angle)
X.icon=II
else X.icon=I
var/Pixel_x=round(sin(Angle)+32*sin(Angle)*(N+16)/32)
var/Pixel_y=round(cos(Angle)+32*cos(Angle)*(N+16)/32)
if(DX==0) Pixel_x=0
if(DY==0) Pixel_y=0
if(Pixel_x>32)
for(var/a=0, a<=Pixel_x,a+=32)
X.x++
Pixel_x-=32
if(Pixel_x<-32)
for(var/a=0, a>=Pixel_x,a-=32)
X.x--
Pixel_x+=32
if(Pixel_y>32)
for(var/a=0, a<=Pixel_y,a+=32)
X.y++
Pixel_y-=32
if(Pixel_y<-32)
for(var/a=0, a>=Pixel_y,a-=32)
X.y--
Pixel_y+=32
X.pixel_x=Pixel_x
X.pixel_y=Pixel_y
var/turf/TT = get_turf(X.loc)
if(TT == firer.loc)
continue
if(TT.density)
del(X)
break
for(var/atom/O in TT)
if(!O.CanPass(src))
del(X)
broke = 1
break
for(var/mob/living/O in TT.contents)
if(istype(O, /mob/living))
if(O.density)
del(X)
broke = 1
break
if(broke)
if(X)
del(X)
break
spawn
while(src) //Move until we hit something
if(first)
icon = midicon
if((!( current ) || loc == current)) //If we pass our target
broken = 1
icon = endicon
tang = adjustAngle(get_angle(original,current))
if(tang > 180)
tang -= 180
else
tang += 180
icon_state = "[tang]"
var/turf/simulated/floor/f = current
if(f && istype(f))
f.break_tile()
f.hotspot_expose(1000,CELL_VOLUME)
if((x == 1 || x == world.maxx || y == 1 || y == world.maxy))
//world << "deleting"
//del(src) //Delete if it passes the world edge
broken = 1
return
if(kill_count < 1)
//world << "deleting"
//del(src)
broken = 1
kill_count--
//world << "[x] [y]"
if(!bumped && !isturf(original))
if(loc == get_turf(original))
if(!(original in permutated))
icon = endicon
if(!broken)
tang = adjustAngle(get_angle(original,current))
if(tang > 180)
tang -= 180
else
tang += 180
icon_state = "[tang]"
Bump(original)
first = 0
if(broken)
//world << "breaking"
break
else
last = get_turf(src.loc)
step_towards(src, current) //Move~
if(src.loc != current)
tang = adjustAngle(get_angle(src.loc,current))
icon_state = "[tang]"
del(src)
return
/*cleanup(reference) //Waits .3 seconds then removes the overlay.
//world << "setting invisibility"
sleep(50)
src.invisibility = 101
return*/
on_hit(atom/target, blocked = 0)
if(istype(target, /mob/living))
var/mob/living/M = target
M.playsound_local(src, "explosion", 50, 1)
..()
/obj/item/projectile/beam
name = "laser"
icon_state = "laser"
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
damage = 40
damage_type = BURN
hitsound = 'sound/weapons/sear.ogg'
flag = "laser"
eyeblur = 4
var/frequency = 1
process()
var/reference = "\ref[src]" //So we do not have to recalculate it a ton
var/first = 1 //So we don't make the overlay in the same tile as the firer
spawn while(src) //Move until we hit something
if((!( current ) || loc == current)) //If we pass our target
current = locate(min(max(x + xo, 1), world.maxx), min(max(y + yo, 1), world.maxy), z)
if((x == 1 || x == world.maxx || y == 1 || y == world.maxy))
del(src) //Delete if it passes the world edge
return
step_towards(src, current) //Move~
if(kill_count < 1)
del(src)
return
kill_count--
if(!bumped && !isturf(original))
if(loc == get_turf(original))
if(!(original in permutated))
Bump(original)
if(!first) //Add the overlay as we pass over tiles
var/target_dir = get_dir(src, current) //So we don't call this too much
//If the icon has not been added yet
if( !("[icon_state][target_dir]" in beam_master) )
var/image/I = image(icon,icon_state,10,target_dir) //Generate it.
beam_master["[icon_state][target_dir]"] = I //And cache it!
//Finally add the overlay
src.loc.overlays += beam_master["[icon_state][target_dir]"]
//Add the turf to a list in the beam master so they can be cleaned up easily.
if(reference in beam_master)
var/list/turf_master = beam_master[reference]
if("[icon_state][target_dir]" in turf_master)
var/list/turfs = turf_master["[icon_state][target_dir]"]
turfs += loc
else
turf_master["[icon_state][target_dir]"] = list(loc)
else
var/list/turfs = list()
turfs["[icon_state][target_dir]"] = list(loc)
beam_master[reference] = turfs
else
first = 0
cleanup(reference)
return
dumbfire(var/dir)
var/reference = "\ref[src]" //So we do not have to recalculate it a ton
var/first = 1 //So we don't make the overlay in the same tile as the firer
if(!dir)
del(src)
spawn while(src) //Move until we hit something
if((x == 1 || x == world.maxx || y == 1 || y == world.maxy))
del(src) //Delete if it passes the world edge
return
var/turf/T = get_step(src, dir)
step_towards(src, T) //Move~
if(kill_count < 1)
del(src)
kill_count--
if(!bumped && !isturf(original))
if(loc == get_turf(original))
if(!(original in permutated))
Bump(original)
if(!first) //Add the overlay as we pass over tiles
var/target_dir = dir //So we don't call this too much
//If the icon has not been added yet
if( !("[icon_state][target_dir]" in beam_master) )
var/image/I = image(icon,icon_state,10,target_dir) //Generate it.
beam_master["[icon_state][target_dir]"] = I //And cache it!
//Finally add the overlay
src.loc.overlays += beam_master["[icon_state][target_dir]"]
//Add the turf to a list in the beam master so they can be cleaned up easily.
if(reference in beam_master)
var/list/turf_master = beam_master[reference]
if("[icon_state][target_dir]" in turf_master)
var/list/turfs = turf_master["[icon_state][target_dir]"]
turfs += loc
else
turf_master["[icon_state][target_dir]"] = list(loc)
else
var/list/turfs = list()
turfs["[icon_state][target_dir]"] = list(loc)
beam_master[reference] = turfs
else
first = 0
cleanup(reference)
return
proc/cleanup(reference) //Waits .3 seconds then removes the overlay.
src = null // Redundant.
spawn(3)
var/list/turf_master = beam_master[reference]
for(var/laser_state in turf_master)
var/list/turfs = turf_master[laser_state]
for(var/turf/T in turfs)
T.overlays -= beam_master[laser_state]
return
/obj/item/projectile/beam/practice
name = "laser"
icon_state = "laser"
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
damage = 0
damage_type = BURN
flag = "laser"
eyeblur = 2
//Heavy lasers now deal slightly more damage, but have a slower firing rate; overall DPS still identical to lasers.
/obj/item/projectile/beam/heavylaser
name = "heavy laser"
icon_state = "heavylaser"
damage = 50
/obj/item/projectile/beam/xray
name = "xray beam"
icon_state = "xray"
damage = 15
irradiate = 30
kill_count = 50
/obj/item/projectile/beam/pulse
name = "pulse"
icon_state = "u_laser"
damage = 50
on_hit(var/atom/target, var/blocked = 0)
if(istype(target,/turf/)||istype(target,/obj/structure/))
target.ex_act(2)
..()
/obj/item/projectile/beam/deathlaser
name = "death laser"
icon_state = "heavylaser"
damage = 60
/obj/item/projectile/beam/emitter
name = "emitter beam"
icon_state = "emitter"
damage = 30
/obj/item/projectile/beam/lastertag/blue
name = "lasertag beam"
icon_state = "bluelaser"
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
damage = 0
damage_type = BURN
flag = "laser"
on_hit(var/atom/target, var/blocked = 0)
if(istype(target, /mob/living/carbon/human))
var/mob/living/carbon/human/M = target
if(istype(M.wear_suit, /obj/item/clothing/suit/redtag))
M.Weaken(5)
return 1
/obj/item/projectile/beam/lastertag/red
name = "lasertag beam"
icon_state = "laser"
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
damage = 0
damage_type = BURN
flag = "laser"
on_hit(var/atom/target, var/blocked = 0)
if(istype(target, /mob/living/carbon/human))
var/mob/living/carbon/human/M = target
if(istype(M.wear_suit, /obj/item/clothing/suit/bluetag))
M.Weaken(5)
return 1
/obj/item/projectile/beam/lastertag/omni//A laser tag bolt that stuns EVERYONE
name = "lasertag beam"
icon_state = "omnilaser"
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
damage = 0
damage_type = BURN
flag = "laser"
on_hit(var/atom/target, var/blocked = 0)
if(istype(target, /mob/living/carbon/human))
var/mob/living/carbon/human/M = target
if((istype(M.wear_suit, /obj/item/clothing/suit/bluetag))||(istype(M.wear_suit, /obj/item/clothing/suit/redtag)))
M.Weaken(5)
return 1
/obj/item/projectile/beam/stun
name = "stun beam"
icon_state = "stun"
nodamage = 1
damage = 0
agony = 40
damage_type = HALLOSS
*/
..()
+1 -1
View File
@@ -288,7 +288,7 @@ client/verb/ToggleGunMode()
else
usr << "Target may no longer move."
target_can_run = 0
del(usr.gun_run_icon) //no need for icon for running permission
qdel(usr.gun_run_icon) //no need for icon for running permission
//Updating walking permission button
if(usr.gun_move_icon)
@@ -5,7 +5,7 @@
if(istype(W,/obj/item/weapon/shard) || istype(W,/obj/item/weapon/reagent_containers/food/snacks))
var/obj/item/weapon/reagent_containers/food/snacks/csandwich/S = new(get_turf(src))
S.attackby(W,user, params)
del(src)
qdel(src)
..()
/obj/item/weapon/reagent_containers/food/snacks/csandwich
@@ -77,7 +77,7 @@
/obj/item/weapon/reagent_containers/food/snacks/csandwich/Destroy()
for(var/obj/item/O in ingredients)
del(O)
qdel(O)
return ..()
/obj/item/weapon/reagent_containers/food/snacks/csandwich/examine(mob/user)
@@ -1686,7 +1686,7 @@
surprise.icon_state = ook.icon_state
surprise.name = "malformed [ook.name]"
surprise.desc = "Looks like \a very deformed [ook.name], a little small for its kind. It shows no signs of life."
del(ook) //rip nullspace monkey
qdel(ook) //rip nullspace monkey
surprise.transform *= 0.6
surprise.add_blood(M)
var/mob/living/carbon/human/H = M
@@ -99,7 +99,7 @@
//failure
user.visible_message("<font color='red'><b>[src] suddenly crumbles away.</b></font>",\
"\red [src] has disintegrated under your onslaught, any secrets it was holding are long gone.")
del(src)
qdel(src)
return
if(prob(excavation_level))
@@ -115,4 +115,4 @@
else
user.visible_message("<font color='red'><b>[src] suddenly crumbles away.</b></font>",\
"\blue [src] has been whittled away under your careful excavation, but there was nothing of interest inside.")
del(src)
qdel(src)
@@ -13,7 +13,7 @@
if(created_field.len)
for(var/obj/effect/energy_field/F in created_field)
created_field.Remove(F)
del F
qdel(F)
else if(holder)
var/turf/T = get_turf(holder)
while(created_field.len < 16)
@@ -57,7 +57,7 @@
else
for(var/mob/M in viewers(world.view, user))
M.show_message("<span class='info'>[src] burns away into nothing.</span>",1)
del(src)
qdel(src)
w.remove_fuel(4)
else
for(var/mob/M in viewers(world.view, user))
@@ -73,7 +73,7 @@
..()
if(prob(33))
src.visible_message("<span class='warning'>[src] crumbles away, leaving some dust and gravel behind.</span>")
del(src)
qdel(src)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Archaeological finds
@@ -547,7 +547,7 @@
talking_atom.holder_atom = new_item
talking_atom.init()
del(src)
qdel(src)
else if(talkative)
src.talking_atom = new()
@@ -17,7 +17,7 @@
var/turf/T = get_turf(src)
if(istype(T, /turf/simulated/mineral))
T:last_find = W
del src
qdel(src)
/obj/item/weapon/fossil/bone
name = "Fossilised bone"
@@ -40,8 +40,8 @@
var/b = new src.type
o.contents.Add(a)
o.contents.Add(b)
del W
del src
qdel(W)
qdel(src)
/obj/skeleton
name = "Incomplete skeleton"
@@ -62,7 +62,7 @@
if(!bstate)
bnum++
src.contents.Add(new/obj/item/weapon/fossil/bone)
del W
qdel(W)
if(bnum==breq)
usr = user
icon_state = "skel"
@@ -108,7 +108,7 @@ datum/controller/game_controller/proc/SetupXenoarch()
if(!genome_prefixes)
genome_prefixes = alphabet_uppercase.Copy()
if(!genome_prefixes.len)
del genome_prefixes
qdel(genome_prefixes)
genome_prefixes = alphabet_uppercase.Copy()
//create animal gene sequences
+1 -1
View File
@@ -46,7 +46,7 @@ var/const/Represents a special statement in the code triggered by a keyword.
nS_Keyword
New(inline=0)
if(inline)
del src
del(src)
kwReturn
Parse(n_Parser/nS_Parser/parser)