Replaces "istype"s with is_helpers macros (#28676)

This commit is contained in:
nicbn
2017-06-22 15:03:19 -03:00
committed by Leo
parent 4ac64a7014
commit 77a2d3f5cd
125 changed files with 192 additions and 184 deletions
+11 -1
View File
@@ -52,6 +52,14 @@
#define isalienadult(A) (istype(A, /mob/living/carbon/alien/humanoid))
#define isalienhunter(A) (istype(A, /mob/living/carbon/alien/humanoid/hunter))
#define isaliensentinel(A) (istype(A, /mob/living/carbon/alien/humanoid/sentinel))
#define isalienroyal(A) (istype(A, /mob/living/carbon/alien/humanoid/royal))
#define isalienqueen(A) (istype(A, /mob/living/carbon/alien/humanoid/royal/queen))
#define isdevil(A) (istype(A, /mob/living/carbon/true_devil))
//Silicon mobs
@@ -109,6 +117,8 @@
//Misc mobs
#define isobserver(A) (istype(A, /mob/dead/observer))
#define isdead(A) (istype(A, /mob/dead))
#define isnewplayer(A) (istype(A, /mob/dead/new_player))
#define isovermind(A) (istype(A, /mob/camera/blob))
@@ -116,7 +126,7 @@
//Objects
#define isobj(A) istype(A, /obj) //override the byond proc because it returns true on children of /atom/movable that aren't objs
#define islimb(A) (istype(A, /obj/item/bodypart))
#define isitem(A) (istype(A, /obj/item))
#define is_cleanable(A) (istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/rune)) //if something is cleanable
+2 -2
View File
@@ -287,7 +287,7 @@
//Converts a bitfield to a list of numbers (or words if a wordlist is provided)
/proc/bitfield2list(bitfield = 0, list/wordlist)
var/list/r = list()
if(istype(wordlist,/list))
if(islist(wordlist))
var/max = min(wordlist.len,16)
var/bit = 1
for(var/i=1, i<=max, i++)
@@ -450,7 +450,7 @@
. |= key_list[key]
//Picks from the list, with some safeties, and returns the "default" arg if it fails
#define DEFAULTPICK(L, default) ((istype(L, /list) && L:len) ? pick(L) : default)
#define DEFAULTPICK(L, default) ((islist(L) && L:len) ? pick(L) : default)
#define LAZYINITLIST(L) if (!L) L = list()
#define UNSETEMPTY(L) if (L && !L.len) L = null
#define LAZYREMOVE(L, I) if(L) { L -= I; if(!L.len) { L = null; } }
+1 -1
View File
@@ -103,7 +103,7 @@
/proc/datum_info_line(datum/D)
if(!istype(D))
return
if(!istype(D, /mob))
if(!ismob(D))
return "[D] ([D.type])"
var/mob/M = D
return "[M] ([M.ckey]) ([M.type])"
+1 -1
View File
@@ -61,7 +61,7 @@
var/adjacencies = 0
var/atom/movable/AM
if(istype(A, /atom/movable))
if(ismovableatom(A))
AM = A
if(AM.can_be_unanchored && !AM.anchored)
return 0
+1 -1
View File
@@ -1222,7 +1222,7 @@ proc/pick_closest_path(value, list/matches = get_fancy_list_of_atom_types())
/proc/flash_color(mob_or_client, flash_color="#960000", flash_time=20)
var/client/C
if(istype(mob_or_client, /mob))
if(ismob(mob_or_client))
var/mob/M = mob_or_client
if(M.client)
C = M.client
+4 -4
View File
@@ -64,18 +64,18 @@
* Must be on a turf
*/
/atom/movable/Adjacent(var/atom/neighbor)
if(neighbor == loc)
if(neighbor == loc)
return TRUE
if(!isturf(loc))
if(!isturf(loc))
return FALSE
if(loc.Adjacent(neighbor,target = neighbor))
if(loc.Adjacent(neighbor,target = neighbor))
return TRUE
return FALSE
// This is necessary for storage items not on your person.
/obj/item/Adjacent(var/atom/neighbor, var/recurse = 1)
if(neighbor == loc) return 1
if(istype(loc,/obj/item))
if(isitem(loc))
if(recurse > 0)
return loc.Adjacent(neighbor,recurse - 1)
return 0
+5 -5
View File
@@ -114,7 +114,7 @@
W.attack_self(src)
update_inv_hands()
return
//These are always reachable.
//User itself, current loc, and user inventory
if(DirectAccess(A))
@@ -125,7 +125,7 @@
changeNext_move(CLICK_CD_MELEE)
UnarmedAttack(A)
return
//Can't reach anything else in lockers or other weirdness
if(!loc.AllowClick())
return
@@ -281,7 +281,7 @@
return
/mob/living/carbon/MiddleClickOn(atom/A)
if(!src.stat && src.mind && src.mind.changeling && src.mind.changeling.chosen_sting && (istype(A, /mob/living/carbon)) && (A != src))
if(!src.stat && src.mind && src.mind.changeling && src.mind.changeling.chosen_sting && (iscarbon(A)) && (A != src))
next_click = world.time + 5
mind.changeling.chosen_sting.try_to_sting(src, A)
else
@@ -341,7 +341,7 @@
return
/mob/living/carbon/AltClickOn(atom/A)
if(!src.stat && src.mind && src.mind.changeling && src.mind.changeling.chosen_sting && (istype(A, /mob/living/carbon)) && (A != src))
if(!src.stat && src.mind && src.mind.changeling && src.mind.changeling.chosen_sting && (iscarbon(A)) && (A != src))
next_click = world.time + 5
mind.changeling.chosen_sting.try_to_sting(src, A)
else
@@ -443,7 +443,7 @@
/obj/screen/click_catcher/Click(location, control, params)
var/list/modifiers = params2list(params)
if(modifiers["middle"] && istype(usr, /mob/living/carbon))
if(modifiers["middle"] && iscarbon(usr))
var/mob/living/carbon/C = usr
C.swap_hand()
else
+3 -3
View File
@@ -6,7 +6,7 @@
icon_state = "leap_off"
/obj/screen/alien/leap/Click()
if(istype(usr, /mob/living/carbon/alien/humanoid/hunter))
if(isalienhunter(usr))
var/mob/living/carbon/alien/humanoid/hunter/AH = usr
AH.toggle_leap()
@@ -57,7 +57,7 @@
static_inventory += using
action_intent = using
if(istype(mymob, /mob/living/carbon/alien/humanoid/hunter))
if(isalienhunter(mymob))
var/mob/living/carbon/alien/humanoid/hunter/H = mymob
H.leap_icon = new /obj/screen/alien/leap()
H.leap_icon.screen_loc = ui_alien_storage_r
@@ -96,7 +96,7 @@
alien_plasma_display = new /obj/screen/alien/plasma_display()
infodisplay += alien_plasma_display
if(!istype(mymob, /mob/living/carbon/alien/humanoid/royal/queen))
if(!isalienqueen(mymob))
alien_queen_finder = new /obj/screen/alien/alien_queen_finder
infodisplay += alien_queen_finder
+1 -1
View File
@@ -9,7 +9,7 @@
return // seems legit.
// Things you might plausibly want to follow
if(istype(A, /atom/movable))
if(ismovableatom(A))
ManualFollow(A)
// Otherwise jump
+1 -1
View File
@@ -122,7 +122,7 @@
return
if(!isturf(target) && istype(focus,/obj/item) && target.Adjacent(focus))
if(!isturf(target) && isitem(focus) && target.Adjacent(focus))
apply_focus_overlay()
var/obj/item/I = focus
I.melee_attack_chain(tk_user, target, params) //isn't copying the attack chain fun. we should do it more often.
+2 -2
View File
@@ -17,7 +17,7 @@ SUBSYSTEM_DEF(server_maint)
/datum/controller/subsystem/server_maint/fire(resumed = FALSE)
if(!resumed)
src.currentrun = GLOB.clients.Copy()
var/list/currentrun = src.currentrun
var/round_started = SSticker.HasRoundStarted()
@@ -27,7 +27,7 @@ SUBSYSTEM_DEF(server_maint)
if(round_started && config.kick_inactive)
if(C.is_afk(config.afk_period))
var/cmob = C.mob
if(!(istype(cmob, /mob/dead/observer) || (istype(cmob, /mob/dead) && C.holder)))
if(!(isobserver(cmob) || (isdead(cmob) && C.holder)))
log_access("AFK: [key_name(C)]")
to_chat(C, "<span class='danger'>You have been inactive for more than [config.afk_period / 600] minutes and have been disconnected.</span>")
qdel(C)
+2 -2
View File
@@ -38,7 +38,7 @@
/datum/antagonist/traitor/on_body_transfer(mob/living/old_body, mob/living/new_body)
if(istype(new_body,/mob/living/silicon/ai)==istype(old_body,/mob/living/silicon/ai))
if(isAI(new_body)==isAI(old_body))
..()
else
silent = TRUE
@@ -63,7 +63,7 @@
/datum/antagonist/traitor/proc/specialise()
silent = TRUE
if(owner.current&&istype(owner.current,/mob/living/silicon/ai))
if(owner.current&&isAI(owner.current))
owner.add_antag_datum(ai_datum)
else owner.add_antag_datum(human_datum)
on_removal()
+3 -3
View File
@@ -360,14 +360,14 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
/datum/antagonist/devil/proc/check_banishment(mob/living/body)
switch(banish)
if(BANISH_WATER)
if(istype(body, /mob/living/carbon))
if(iscarbon(body))
var/mob/living/carbon/H = body
return H.reagents.has_reagent("holy water")
return 0
if(BANISH_COFFIN)
return (body && istype(body.loc, /obj/structure/closet/coffin))
if(BANISH_FORMALDYHIDE)
if(istype(body, /mob/living/carbon))
if(iscarbon(body))
var/mob/living/carbon/H = body
return H.reagents.has_reagent("formaldehyde")
return 0
@@ -459,7 +459,7 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
/datum/antagonist/devil/proc/update_hud()
if(istype(owner.current, /mob/living/carbon))
if(iscarbon(owner.current))
var/mob/living/C = owner.current
if(C.hud_used && C.hud_used.devilsouldisplay)
C.hud_used.devilsouldisplay.update_counter(SOULVALUE)
+2 -2
View File
@@ -387,7 +387,7 @@
/proc/debug_variable(name, value, level, datum/DA = null, sanitize = TRUE)
var/header
if(DA)
if (istype(DA, /list))
if (islist(DA))
var/index = name
if (value)
name = DA[name] //name is really the index until this line
@@ -442,7 +442,7 @@
else
item = "<a href='?_src_=vars;Vars=\ref[value]'>[VV_HTML_ENCODE(name)] \ref[value]</a> = [D.type]"
else if (istype(value, /list))
else if (islist(value))
var/list/L = value
var/list/items = list()
+1 -1
View File
@@ -46,7 +46,7 @@
for(var/V in DD.vars)
if(V in skipped)
continue
if(istype(DD.vars[V],/list))
if(islist(DD.vars[V]))
var/list/L = D.vars[V]
DD.vars[V] = L.Copy()
else
+1 -1
View File
@@ -85,7 +85,7 @@
. = message_AI
else if(ismonkey(user) && message_monkey)
. = message_monkey
else if(istype(user, /mob/living/simple_animal) && message_simple)
else if(isanimal(user) && message_simple)
. = message_simple
/datum/emote/proc/select_param(mob/user, params)
+2 -2
View File
@@ -1149,7 +1149,7 @@
to_chat(usr, "<span class='notice'>The objectives for changeling [key] have been generated. You can edit them and anounce manually.</span>")
if("initialdna")
if( !changeling || !changeling.stored_profiles.len || !istype(current, /mob/living/carbon))
if( !changeling || !changeling.stored_profiles.len || !iscarbon(current))
to_chat(usr, "<span class='danger'>Resetting DNA failed!</span>")
else
var/mob/living/carbon/C = current
@@ -1443,7 +1443,7 @@
if(!(has_antag_datum(ANTAG_DATUM_TRAITOR)))
var/datum/antagonist/traitor/traitordatum = add_antag_datum(ANTAG_DATUM_TRAITOR)
return traitordatum
/datum/mind/proc/make_Nuke(turf/spawnloc, nuke_code, leader=0, telecrystals = TRUE)
if(!(src in SSticker.mode.syndicates))
+2 -2
View File
@@ -339,7 +339,7 @@
/datum/riding/cyborg/ride_check(mob/user)
if(user.incapacitated())
var/kick = TRUE
if(istype(ridden, /mob/living/silicon/robot))
if(iscyborg(ridden))
var/mob/living/silicon/robot/R = ridden
if(R.module && R.module.ride_allow_incapacitated)
kick = FALSE
@@ -347,7 +347,7 @@
to_chat(user, "<span class='userdanger'>You fall off of [ridden]!</span>")
Unbuckle(user)
return
if(istype(user, /mob/living/carbon))
if(iscarbon(user))
var/mob/living/carbon/carbonuser = user
if(!carbonuser.get_num_arms())
Unbuckle(user)
+2 -2
View File
@@ -148,7 +148,7 @@
reagents = new()
reagents.reagent_list.Add(A)
reagents.conditional_update()
else if(istype(A, /atom/movable))
else if(ismovableatom(A))
var/atom/movable/M = A
if(isliving(M.loc))
var/mob/living/L = M.loc
@@ -400,7 +400,7 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons)
return 1
/atom/proc/clean_blood()
if(istype(blood_DNA, /list))
if(islist(blood_DNA))
blood_DNA = null
return 1
+1 -1
View File
@@ -217,7 +217,7 @@ GLOBAL_LIST_INIT(slot2type, list("head" = /obj/item/clothing/head/changeling, "w
/*/datum/game_mode/changeling/check_finished()
var/changelings_alive = 0
for(var/datum/mind/changeling in changelings)
if(!istype(changeling.current,/mob/living/carbon))
if(!iscarbon(changeling.current))
continue
if(changeling.current.stat==2)
continue
@@ -8,7 +8,7 @@
/obj/effect/proc_holder/changeling/biodegrade/sting_action(mob/living/carbon/human/user)
var/used = FALSE // only one form of shackles removed per use
if(!user.restrained() && istype(user.loc, /turf/open))
if(!user.restrained() && isopenturf(user.loc))
to_chat(user, "<span class='warning'>We are already free!</span>")
return 0
@@ -312,7 +312,7 @@
H.dropItemToGround(source.gun, TRUE) //Unequip thus delete the tentacle on hit
if(blocked >= 100)
return 0
if(istype(target, /obj/item))
if(isitem(target))
var/obj/item/I = target
if(!I.anchored)
to_chat(firer, "<span class='notice'>You pull [I] towards yourself.</span>")
@@ -165,7 +165,7 @@
return FALSE
var/input_target_key = input(invoker, "Choose a target to form a rift to.", "Spatial Gateway") as null|anything in possible_targets
var/atom/movable/target = possible_targets[input_target_key]
if(!src || !input_target_key || !invoker || !invoker.canUseTopic(src, !issilicon(invoker)) || !is_servant_of_ratvar(invoker) || (istype(src, /obj/item) && invoker.get_active_held_item() != src) || !invoker.can_speak_vocal())
if(!src || !input_target_key || !invoker || !invoker.canUseTopic(src, !issilicon(invoker)) || !is_servant_of_ratvar(invoker) || (isitem(src) && invoker.get_active_held_item() != src) || !invoker.can_speak_vocal())
return FALSE //if any of the involved things no longer exist, the invoker is stunned, too far away to use the object, or does not serve ratvar, or if the object is an item and not in the mob's active hand, fail
if(!target) //if we have no target, but did have a key, let them retry
to_chat(invoker, "<span class='warning'>That target no longer exists!</span>")
@@ -272,8 +272,8 @@
target.changeNext_move(CLICK_CD_MELEE)
blockchance = initial(blockchance)
playsound(src, 'sound/magic/clockwork/fellowship_armory.ogg', 30, 1, 0, 1) //clang
visible_message("<span class='boldannounce'>[src] blocks [target && istype(textobject, /obj/item) ? "[target]'s [textobject.name]":"\the [textobject]"]!</span>", \
"<span class='userdanger'>You block [target && istype(textobject, /obj/item) ? "[target]'s [textobject.name]":"\the [textobject]"]!</span>")
visible_message("<span class='boldannounce'>[src] blocks [target && isitem(textobject) ? "[target]'s [textobject.name]":"\the [textobject]"]!</span>", \
"<span class='userdanger'>You block [target && isitem(textobject) ? "[target]'s [textobject.name]":"\the [textobject]"]!</span>")
if(target && Adjacent(target))
if(prob(counterchance))
counterchance = initial(counterchance)
@@ -253,7 +253,7 @@ Judgement: 12 servants, 5 caches, 300 CV, and any existing AIs are converted or
to_chat(invoker, creator_message)
var/obj/O = new object_path (get_turf(invoker))
O.ratvar_act() //update the new object so it gets buffed if ratvar is alive
if(istype(O, /obj/item))
if(isitem(O))
invoker.put_in_hands(O)
return TRUE
@@ -40,7 +40,7 @@
/obj/singularity,
/mob/living/simple_animal/hostile/morph,
/obj/effect))
var/playstyle_string = "<b><font size=3 color='red'>You are a morph,</font> an abomination of science created primarily with changeling cells. \
You may take the form of anything nearby by shift-clicking it. This process will alert any nearby \
observers, and can only be performed once every five seconds. While morphed, you move faster, but do \
@@ -187,7 +187,7 @@
if(eat(L))
adjustHealth(-50)
return
else if(istype(target,/obj/item)) //Eat items just to be annoying
else if(isitem(target)) //Eat items just to be annoying
var/obj/item/I = target
if(!I.anchored)
if(do_after(src, 20, target = I))
+2 -2
View File
@@ -70,7 +70,7 @@
for(var/datum/mind/rev_mind in head_revolutionaries) //People with return to lobby may still be in the lobby. Let's pick someone else in that case.
if(istype(rev_mind.current,/mob/dead/new_player))
if(isnewplayer(rev_mind.current))
head_revolutionaries -= rev_mind
var/list/newcandidates = shuffle(antag_candidates)
if(newcandidates.len == 0)
@@ -79,7 +79,7 @@
var/datum/mind/lenin = M
antag_candidates -= lenin
newcandidates -= lenin
if(istype(lenin.current,/mob/dead/new_player)) //We don't want to make the same mistake again
if(isnewplayer(lenin.current)) //We don't want to make the same mistake again
continue
else
var/mob/Nm = lenin.current
+2 -2
View File
@@ -51,7 +51,7 @@
throw EXCEPTION("No camera network")
user.unset_machine()
return
if (!(istype(network,/list)))
if (!(islist(network)))
throw EXCEPTION("Camera network is not a list")
user.unset_machine()
return
@@ -136,7 +136,7 @@
if(!C.network)
stack_trace("Camera in a cameranet has no camera network")
continue
if(!(istype(C.network,/list)))
if(!(islist(C.network)))
stack_trace("Camera in a cameranet has a non-list camera network")
continue
var/list/tempnetwork = C.network&network
+1 -1
View File
@@ -439,7 +439,7 @@
if(iscarbon(mob_occupant))
var/mob/living/carbon/C = mob_occupant
dna = C.has_dna()
if(istype(mob_occupant, /mob/living/brain))
if(isbrain(mob_occupant))
var/mob/living/brain/B = mob_occupant
dna = B.stored_dna
@@ -42,7 +42,7 @@
return 1
var/obj/machinery/camera/C = null
var/list/CL = null
if(O && istype(O, /list))
if(O && islist(O))
CL = O
if (CL.len == 1)
C = CL[1]
+1 -1
View File
@@ -221,7 +221,7 @@
replacer.play_rped_sound()
return
if(istype(P, /obj/item) && get_req_components_amt())
if(isitem(P) && get_req_components_amt())
for(var/I in req_components)
if(istype(P, I) && (req_components[I] > 0))
if(istype(P, /obj/item/stack))
+2 -2
View File
@@ -95,7 +95,7 @@
colour = rgb(255,255,0)
colour2 = rgb(255,128,0)
if(istype(AM, /mob))
if(ismob(AM))
if(AM:client)
colour = rgb(255,0,0)
else
@@ -241,7 +241,7 @@
if(AM.icon_state=="alarm:1")
colour = rgb(255,255,0)
if(istype(AM, /mob))
if(ismob(AM))
if(AM:client)
colour = rgb(255,0,0)
else
+1 -1
View File
@@ -247,7 +247,7 @@ GLOBAL_LIST_INIT(pipeID2State, list(
/obj/item/pipe/suicide_act(mob/user)
if(pipe_type in list(PIPE_PUMP, PIPE_PASSIVE_GATE, PIPE_VOLUME_PUMP))
user.visible_message("<span class='suicide'>[user] shoves the [src] in [user.p_their()] mouth and turns it on! It looks like [user.p_theyre()] trying to commit suicide!</span>")
if(istype(user, /mob/living/carbon))
if(iscarbon(user))
var/mob/living/carbon/C = user
for(var/i=1 to 20)
C.vomit(0, TRUE, FALSE, 4, FALSE)
+1 -1
View File
@@ -299,7 +299,7 @@
if (!com.target)
visible_message("<span class='alert'>Cannot authenticate locked on coordinates. Please reinstate coordinate matrix.</span>")
return
if (istype(M, /atom/movable))
if (ismovableatom(M))
if(do_teleport(M, com.target))
if(!calibrated && prob(30 - ((accurate) * 10))) //oh dear a problem
if(ishuman(M))//don't remove people from the round randomly you jerks
@@ -482,7 +482,7 @@
if(get_dist(src,A) >= 4)
occupant_message("The object is too far away.")
return 0
if(!A.reagents || istype(A,/mob))
if(!A.reagents || ismob(A))
occupant_message("<span class=\"alert\">No reagent info gained from [A].</span>")
return 0
occupant_message("Analyzing reagents...")
+1 -1
View File
@@ -428,7 +428,7 @@
/obj/item/punching_glove/throw_impact(atom/hit_atom)
if(!..())
if(istype(hit_atom, /atom/movable))
if(ismovableatom(hit_atom))
var/atom/movable/AM = hit_atom
AM.throw_at(get_edge_target_turf(AM,get_dir(src, AM)), 7, 2)
qdel(src)
+1 -1
View File
@@ -938,7 +938,7 @@
if(ishuman(occupant))
mob_container = occupant
RemoveActions(occupant, human_occupant=1)
else if(istype(occupant, /mob/living/brain))
else if(isbrain(occupant))
var/mob/living/brain/brain = occupant
RemoveActions(brain)
mob_container = brain.container
@@ -25,7 +25,7 @@
for(var/j = 1, j<= gibamounts[i], j++)
var/gibType = gibtypes[i]
gib = new gibType(loc)
if(istype(loc,/mob/living/carbon))
if(iscarbon(loc))
var/mob/living/carbon/digester = loc
digester.stomach_contents += gib
+2 -2
View File
@@ -16,7 +16,7 @@
return
if(isobserver(H) && !affect_ghosts)
return
if(!istype(H, /mob) && mobs_only)
if(!ismob(H) && mobs_only)
return
Trigger(H)
@@ -45,7 +45,7 @@
var/list/affecting = list()
/obj/effect/step_trigger/thrower/Trigger(atom/A)
if(!A || !istype(A, /atom/movable))
if(!A || !ismovableatom(A))
return
var/atom/movable/AM = A
var/curtiles = 0
+1 -1
View File
@@ -188,7 +188,7 @@
/proc/create_area(mob/living/creator)
var/res = detect_room(get_turf(creator))
if(!istype(res,/list))
if(!islist(res))
switch(res)
if(ROOM_ERR_SPACE)
to_chat(creator, "<span class='warning'>The new area must be completely airtight.</span>")
@@ -34,7 +34,7 @@
if(!check_sprite(target))
return
if(!active_dummy)
if(istype(target,/obj/item) && !istype(target, /obj/item/weapon/disk/nuclear))
if(isitem(target) && !istype(target, /obj/item/weapon/disk/nuclear))
playsound(get_turf(src), 'sound/weapons/flash.ogg', 100, 1, -6)
to_chat(user, "<span class='notice'>Scanned [target].</span>")
var/obj/temp = new/obj()
+1 -1
View File
@@ -69,7 +69,7 @@
if(href_list["setdna"])
if(pai.master_dna)
return
if(!istype(usr, /mob/living/carbon))
if(!iscarbon(usr))
to_chat(usr, "<span class='warning'>You don't have any DNA, or your DNA is incompatible with this device!</span>")
else
var/mob/living/carbon/M = usr
@@ -27,7 +27,7 @@
sigdev = new
sigdev.code = roundstart_signaller_code
sigdev.frequency = roundstart_signaller_freq
if(istype(loc, /turf/open))
if(isopenturf(loc))
hide(TRUE)
/obj/item/device/pressure_plate/Crossed(atom/movable/AM)
@@ -78,14 +78,14 @@
on = !( on )
icon_state = "electropack[on]"
if(!( master ))
if(istype(loc, /mob))
if(ismob(loc))
attack_self(loc)
else
for(var/mob/M in viewers(1, src))
if(M.client)
attack_self(M)
else
if(istype(master.loc, /mob))
if(ismob(master.loc))
attack_self(master.loc)
else
for(var/mob/M in viewers(1, master))
+2 -2
View File
@@ -28,7 +28,7 @@
to_chat(user, "<span class='danger'>\The [M] is dead, you cannot help [t_him]!</span>")
return
if(!istype(M, /mob/living/carbon) && !istype(M, /mob/living/simple_animal))
if(!iscarbon(M) && !isanimal(M))
to_chat(user, "<span class='danger'>You don't know how to apply \the [src] to [M]!</span>")
return 1
@@ -56,7 +56,7 @@
if(user)
if (M != user)
if (istype(M, /mob/living/simple_animal))
if (isanimal(M))
var/mob/living/simple_animal/critter = M
if (!(critter.healable))
to_chat(user, "<span class='notice'> You cannot use [src] on [M]!</span>")
+1 -1
View File
@@ -171,7 +171,7 @@
if(new_item.amount <= 0)//if the stack is empty, i.e it has been merged with an existing stack and has been garbage collected
return
if (istype(O,/obj/item))
if (isitem(O))
usr.put_in_hands(O)
O.add_fingerprint(usr)
@@ -20,7 +20,7 @@
/obj/item/stack/telecrystal/afterattack(obj/item/I, mob/user, proximity)
if(!proximity)
return
if(istype(I, /obj/item) && I.hidden_uplink && I.hidden_uplink.active) //No metagaming by using this on every PDA around just to see if it gets used up.
if(isitem(I) && I.hidden_uplink && I.hidden_uplink.active) //No metagaming by using this on every PDA around just to see if it gets used up.
I.hidden_uplink.telecrystals += amount
use(amount)
to_chat(user, "<span class='notice'>You slot [src] into the [I] and charge its internal uplink.</span>")
+1 -1
View File
@@ -54,7 +54,7 @@
if(target.anchored)
return
if(istype(target, /obj/item))
if(isitem(target))
var/obj/item/I = target
if(!I.can_be_package_wrapped())
return
+1 -1
View File
@@ -49,7 +49,7 @@
if(!open)
return
if(!istype(M, /mob))
if(!ismob(M))
return
if(ishuman(M))
@@ -64,7 +64,7 @@
else
explosion(location, boom_sizes[1], boom_sizes[2], boom_sizes[3])
location.ex_act(2, target)
if(istype(target, /mob))
if(ismob(target))
var/mob/M = target
M.gib()
qdel(src)
+2 -2
View File
@@ -31,7 +31,7 @@
return
// chance of monkey retaliation
if(istype(C, /mob/living/carbon/monkey) && prob(MONKEY_CUFF_RETALIATION_PROB))
if(ismonkey(C) && prob(MONKEY_CUFF_RETALIATION_PROB))
var/mob/living/carbon/monkey/M
M = C
M.retaliate(user)
@@ -303,7 +303,7 @@
addtimer(CALLBACK(src, .proc/dissipate), 100)
/obj/item/weapon/restraints/legcuffs/beartrap/energy/proc/dissipate()
if(!istype(loc, /mob))
if(!ismob(loc))
do_sparks(1, TRUE, src)
qdel(src)
@@ -64,7 +64,7 @@
if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)))
usr.set_machine(src)
if(istype(loc, /mob))
if(ismob(loc))
attack_self(loc)
else
for(var/mob/M in viewers(1, src))
@@ -69,7 +69,7 @@
updateTank(tank, 1, user)
else if(loadedWeightClass >= maxWeightClass)
to_chat(user, "<span class='warning'>\The [src] can't hold any more items!</span>")
else if(istype(W, /obj/item))
else if(isitem(W))
var/obj/item/IW = W
load_item(IW, user)
@@ -35,7 +35,7 @@
/obj/item/weapon/twohanded/singularityhammer/proc/vortex(turf/pull, mob/wielder)
for(var/atom/X in orange(5,pull))
if(istype(X, /atom/movable))
if(ismovableatom(X))
var/atom/movable/A = X
if(A == wielder)
continue
@@ -155,7 +155,7 @@
cut_overlays()
/obj/item/weapon/storage/fancy/cigarettes/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
if(!istype(M, /mob))
if(!ismob(M))
return
var/obj/item/clothing/mask/cigarette/cig = locate(/obj/item/clothing/mask/cigarette) in contents
if(cig)
@@ -62,7 +62,7 @@
/obj/item/weapon/storage/MouseDrop_T(atom/movable/O, mob/user)
if(istype(O, /obj/item))
if(isitem(O))
var/obj/item/I = O
if(iscarbon(user) || isdrone(user))
var/mob/living/L = user
@@ -114,7 +114,7 @@ Frequency:
else
if (href_list["temp"])
src.temp = null
if (istype(src.loc, /mob))
if (ismob(src.loc))
attack_self(src.loc)
else
for(var/mob/M in viewers(1, src))
+1 -1
View File
@@ -622,7 +622,7 @@
/obj/item/weapon/twohanded/pitchfork/demonic/ascended/afterattack(atom/target, mob/user, proximity)
if(!proximity || !wielded)
return
if(istype(target, /turf/closed/wall))
if(iswallturf(target))
var/turf/closed/wall/W = target
user.visible_message("<span class='danger'>[user] blasts \the [target] with \the [src]!</span>")
playsound(target, 'sound/magic/disintegrate.ogg', 100, 1)
@@ -276,7 +276,7 @@
var/actuallyismob = 0
if(isliving(O))
actuallyismob = 1
else if(!istype(O, /obj/item))
else if(!isitem(O))
return
var/turf/T = get_turf(src)
var/list/targets = list(O, src)
@@ -355,7 +355,7 @@
/obj/structure/closet/container_resist(mob/living/user)
if(opened)
return
if(istype(loc, /atom/movable))
if(ismovableatom(loc))
user.changeNext_move(CLICK_CD_BREAKOUT)
user.last_special = world.time + CLICK_CD_BREAKOUT
var/atom/movable/AM = loc
+1 -1
View File
@@ -276,7 +276,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
to_chat(user, "<span class='warning'>That's not connected to anything!</span>")
/obj/structure/tray/MouseDrop_T(atom/movable/O as mob|obj, mob/user)
if(!istype(O, /atom/movable) || O.anchored || !Adjacent(user) || !user.Adjacent(O) || O.loc == user)
if(!ismovableatom(O) || O.anchored || !Adjacent(user) || !user.Adjacent(O) || O.loc == user)
return
if(!ismob(O))
if(!istype(O, /obj/structure/closet/body_bag))
+1 -1
View File
@@ -289,7 +289,7 @@
/obj/machinery/shower/proc/wash_obj(atom/movable/O)
O.clean_blood()
if(istype(O,/obj/item))
if(isitem(O))
var/obj/item/I = O
I.acid_level = 0
I.extinguish()
+1 -1
View File
@@ -369,7 +369,7 @@
for(var/V in contents)
var/atom/A = V
if(A.level >= affecting_level)
if(istype(A,/atom/movable))
if(ismovableatom(A))
var/atom/movable/AM = A
if(!AM.ex_check(explosion_id))
continue
+1 -1
View File
@@ -335,7 +335,7 @@
return
SSblackbox.add_details("admin_secrets_fun_used","Traitor All ([objective])")
for(var/mob/living/H in GLOB.player_list)
if(!(istype(H, /mob/living/carbon/human)||istype(H, /mob/living/silicon/))) continue
if(!(ishuman(H)||istype(H, /mob/living/silicon/))) continue
if(H.stat == 2 || !H.client || !H.mind || ispAI(H)) continue
if(is_special_character(H)) continue
H.mind.add_antag_datum(ANTAG_DATUM_TRAITOR_CUSTOM)
+2 -2
View File
@@ -1927,10 +1927,10 @@
O.setDir(obj_dir)
if(obj_name)
O.name = obj_name
if(istype(O,/mob))
if(ismob(O))
var/mob/M = O
M.real_name = obj_name
if(where == "inhand" && isliving(usr) && istype(O, /obj/item))
if(where == "inhand" && isliving(usr) && isitem(O))
var/mob/living/L = usr
var/obj/item/I = O
L.put_in_hands(I)
+3 -3
View File
@@ -44,7 +44,7 @@ GLOBAL_PROTECT(VVpixelmovement)
else
. = VV_TYPE
else if (istype(var_value,/list))
else if (islist(var_value))
. = VV_LIST
else if (isfile(var_value))
@@ -528,7 +528,7 @@ GLOBAL_PROTECT(VVpixelmovement)
variable = input("Which var?","Var") as null|anything in names
if(!variable)
return
if(!O.can_vv_get(variable))
return
@@ -594,7 +594,7 @@ GLOBAL_PROTECT(VVpixelmovement)
switch(class)
if(VV_LIST)
if(!istype(var_value,/list))
if(!islist(var_value))
mod_list(list(), O, original_name, variable)
mod_list(var_value, O, original_name, variable)
@@ -104,13 +104,13 @@
else if(isalienadult(occupant))
if(istype(occupant, /mob/living/carbon/alien/humanoid/royal)) // Queen and prae
if(isalienroyal(occupant)) // Queen and prae
occupant_overlay = image(CRYOMOBS, "alienq")
else if(istype(occupant, /mob/living/carbon/alien/humanoid/hunter)) // Hunter
else if(isalienhunter(occupant)) // Hunter
occupant_overlay = image(CRYOMOBS, "alienh")
else if(istype(occupant, /mob/living/carbon/alien/humanoid/sentinel)) // Sentinel
else if(isaliensentinel(occupant)) // Sentinel
occupant_overlay = image(CRYOMOBS, "aliens")
else // Drone (or any other alien that isn't any of the above)
+1 -1
View File
@@ -11,7 +11,7 @@
/datum/export/material/get_amount(obj/O)
if(!material_id)
return 0
if(!istype(O, /obj/item))
if(!isitem(O))
return 0
var/obj/item/I = O
if(!(material_id in I.materials))
+1 -1
View File
@@ -133,7 +133,7 @@
target.name = initial(picked_item.name)
target.desc = initial(picked_item.desc)
target.icon_state = initial(picked_item.icon_state)
if(istype(target, /obj/item))
if(isitem(target))
var/obj/item/I = target
I.item_state = initial(picked_item.item_state)
I.item_color = initial(picked_item.item_color)
+1 -1
View File
@@ -280,7 +280,7 @@ BLIND // can't see anything
/obj/item/clothing/head/Initialize()
. = ..()
if(istype(loc, /mob/living/carbon/human) && dynamic_hair_suffix)
if(ishuman(loc) && dynamic_hair_suffix)
var/mob/living/carbon/human/H = loc
H.update_hair()
+1 -1
View File
@@ -269,7 +269,7 @@
playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1)
toggle_hardsuit_mode(user)
user.update_inv_head()
if(istype(user, /mob/living/carbon))
if(iscarbon(user))
var/mob/living/carbon/C = user
C.head_update(src, forced = 1)
for(var/X in actions)
+1 -1
View File
@@ -13,7 +13,7 @@
M.bloody_hands--
if(!suit_fibers) suit_fibers = list()
var/fibertext
var/item_multiplier = istype(src,/obj/item)?1.2:1
var/item_multiplier = isitem(src)?1.2:1
if(M.wear_suit)
fibertext = "Material from \a [M.wear_suit]."
if(prob(10*item_multiplier) && !(fibertext in suit_fibers))
+1 -1
View File
@@ -61,7 +61,7 @@
if(!(istype(M, /obj/mecha) && mech_sized))
return
if(istype(M, /atom/movable))
if(ismovableatom(M))
var/turf/target
if(GLOB.portals.len)
var/obj/effect/portal/P = pick(GLOB.portals)
+1 -1
View File
@@ -227,7 +227,7 @@
. = new trash(location)
trash = null
return
else if(istype(trash, /obj/item))
else if(isitem(trash))
var/obj/item/trash_item = trash
trash_item.forceMove(location)
. = trash
@@ -154,7 +154,7 @@
return FALSE
/obj/machinery/smartfridge/proc/load(obj/item/O)
if(istype(O.loc,/mob))
if(ismob(O.loc))
var/mob/M = O.loc
if(!M.transferItemToLoc(O, src))
to_chat(usr, "<span class='warning'>\the [O] is stuck to your hand, you cannot put it in \the [src]!</span>")
+6 -6
View File
@@ -214,18 +214,18 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("data/iconCache.sav")) //Cache of ic
if (istype(message, /image) || istype(message, /sound) || istype(target, /savefile))
target << message
CRASH("Invalid message! [message]")
if(!istext(message))
return
if(target == world)
target = GLOB.clients
var/list/targets
if(!islist(target))
targets = list(target)
else
targets = target
targets = target
if(!targets.len)
return
@@ -241,11 +241,11 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("data/iconCache.sav")) //Cache of ic
if (!C)
continue
if(!C.chatOutput || C.chatOutput.broken) // A player who hasn't updated his skin file.
C << message
return TRUE
if(!C.chatOutput.loaded)
//Client sucks at loading things, put their messages in a queue
C.chatOutput.messageQueue += message
@@ -257,7 +257,7 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("data/iconCache.sav")) //Cache of ic
/proc/grab_client(target)
if(istype(target, /client))
return target
else if(istype(target, /mob))
else if(ismob(target))
var/mob/M = target
if(M.client)
return M.client
+5 -5
View File
@@ -13,7 +13,7 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars,list("tag","area","type","loc","locs",
if(perfectcopy && O && original)
for(var/V in original.vars - GLOB.duplicate_forbidden_vars)
if(istype(original.vars[V],/list))
if(islist(original.vars[V]))
var/list/L = original.vars[V]
O.vars[V] = L.Copy()
else if(istype(original.vars[V],/datum))
@@ -21,12 +21,12 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars,list("tag","area","type","loc","locs",
else
O.vars[V] = original.vars[V]
if(istype(O, /obj))
if(isobj(O))
var/obj/N = O
if(holoitem)
N.resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF // holoitems do not burn
if(nerf && istype(O,/obj/item))
if(nerf && isitem(O))
var/obj/item/I = O
I.damtype = STAMINA // thou shalt not
@@ -98,12 +98,12 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars,list("tag","area","type","loc","locs",
for(var/obj/O in T)
var/obj/O2 = DuplicateObject(O , perfectcopy=TRUE, newloc = B, nerf=nerf_weapons, holoitem=TRUE)
if(!O2)
if(!O2)
continue
copiedobjs += O2.GetAllContents()
for(var/mob/M in T)
if(istype(M, /mob/camera))
if(istype(M, /mob/camera))
continue // If we need to check for more mobs, I'll add a variable
var/mob/SM = DuplicateObject(M , perfectcopy=TRUE, newloc = B, holoitem=TRUE)
copiedobjs += SM.GetAllContents()
+1 -1
View File
@@ -93,7 +93,7 @@
/obj/machinery/computer/holodeck/proc/derez(var/obj/obj, var/silent = 1, var/forced = 0)
// Emagging a machine creates an anomaly in the derez systems.
if(obj && src.emagged && !src.stat && !forced)
if((ismob(obj) || istype(obj.loc,/mob)) && prob(50))
if((ismob(obj) || ismob(obj.loc)) && prob(50))
spawn(50) .(obj,silent) // may last a disturbingly long time
return
spawned.Remove(obj)
+1 -1
View File
@@ -119,7 +119,7 @@
..()
/obj/structure/holohoop/CanPass(atom/movable/mover, turf/target, height=0)
if (istype(mover,/obj/item) && mover.throwing)
if (isitem(mover) && mover.throwing)
var/obj/item/I = mover
if(istype(I, /obj/item/projectile))
return
+1 -1
View File
@@ -78,7 +78,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili/attack_hand(mob/user)
..()
if( istype(src.loc, /mob) )
if( ismob(src.loc) )
held_mob = src.loc
START_PROCESSING(SSobj, src)
+1 -1
View File
@@ -191,7 +191,7 @@
to_chat(usr, "<span class='notice'>\The [src] is full.</span>")
return 0
if(istype(O.loc,/mob))
if(ismob(O.loc))
var/mob/M = O.loc
if(!M.drop_item())
return 0
+2 -2
View File
@@ -68,7 +68,7 @@
var/datum/language_holder/other
if(istype(thing, /datum/language_holder))
other = thing
else if(istype(thing, /atom/movable))
else if(ismovableatom(thing))
var/atom/movable/AM = thing
other = AM.get_language_holder()
else if(istype(thing, /datum/mind))
@@ -88,7 +88,7 @@
language_menu.ui_interact(user)
/datum/language_holder/proc/get_atom()
if(istype(owner, /atom/movable))
if(ismovableatom(owner))
. = owner
else if(istype(owner, /datum/mind))
var/datum/mind/M = owner
+1 -1
View File
@@ -37,7 +37,7 @@
if (!light_power || !light_range) // We won't emit light anyways, destroy the light source.
QDEL_NULL(light)
else
if (!istype(loc, /atom/movable)) // We choose what atom should be the top atom of the light here.
if (!ismovableatom(loc)) // We choose what atom should be the top atom of the light here.
. = src
else
. = loc
+1 -1
View File
@@ -103,7 +103,7 @@ interface with the mining shuttle at the landing site if a mobile beacon is also
if(href_list["random"] && !possible_destinations)
usr.changeNext_move(CLICK_CD_RAPID) //Anti-spam
var/turf/LZ = safepick(Z_TURFS(ZLEVEL_MINING)) //Pick a random mining Z-level turf
if(!istype(LZ, /turf/closed/mineral) && !istype(LZ, /turf/open/floor/plating/asteroid))
if(!ismineralturf(LZ) && !istype(LZ, /turf/open/floor/plating/asteroid))
//Find a suitable mining turf. Reduces chance of landing in a bad area
to_chat(usr, "<span class='warning'>Landing zone scan failed. Please try again.</span>")
updateUsrDialog()
@@ -18,7 +18,7 @@
if(!loaded)
return
if(isliving(target) && proximity_flag)
if(istype(target, /mob/living/simple_animal))
if(isanimal(target))
var/mob/living/simple_animal/M = target
if(M.sentience_type != revive_type)
to_chat(user, "<span class='info'>[src] does not work on this sort of creature.</span>")
@@ -208,9 +208,7 @@
..(mapload, TRUE)
/obj/machinery/smartfridge/survival_pod/accept_check(obj/item/O)
if(istype(O, /obj/item))
return 1
return 0
return isitem(O)
/obj/machinery/smartfridge/survival_pod/Initialize(mapload, empty)
. = ..()
@@ -96,7 +96,7 @@
if(!(istype(M, /obj/mecha) && mech_sized))
return
if(istype(M, /atom/movable))
if(ismovableatom(M))
if(do_teleport(M, hard_target, 6))
// KERPLUNK
playsound(M,'sound/weapons/resonator_blast.ogg',50,1)
@@ -258,7 +258,7 @@
/obj/item/projectile/hook/on_hit(atom/target)
. = ..()
if(istype(target, /atom/movable))
if(ismovableatom(target))
var/atom/movable/A = target
if(A.anchored)
return
+1 -1
View File
@@ -773,7 +773,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
register_pai()
/mob/dead/observer/proc/register_pai()
if(istype(src, /mob/dead/observer))
if(isobserver(src))
if(SSpai)
SSpai.recruitWindow(src)
else
@@ -22,7 +22,7 @@ Doesn't work on other aliens/AI.*/
action = new(src)
/obj/effect/proc_holder/alien/Click()
if(!istype(usr,/mob/living/carbon))
if(!iscarbon(usr))
return 1
var/mob/living/carbon/user = usr
if(cost_check(check_turf,user))
@@ -127,7 +127,7 @@
icon = 'icons/mob/alien.dmi'
/obj/item/queenpromote/attack(mob/living/M, mob/living/carbon/alien/humanoid/user)
if(!isalienadult(M) || istype(M, /mob/living/carbon/alien/humanoid/royal))
if(!isalienadult(M) || isalienroyal(M))
to_chat(user, "<span class='noticealien'>You may only use this with your adult, non-royal children!</span>")
return
if(get_alien_type(/mob/living/carbon/alien/humanoid/royal/praetorian/))
@@ -6,7 +6,7 @@
return 0
var/obj/item/bodypart/BP = null
if(islimb(def_zone)) //we specified a bodypart object
if(isbodypart(def_zone)) //we specified a bodypart object
BP = def_zone
else
if(!def_zone)
@@ -3,7 +3,7 @@
var/organnum = 0
if(def_zone)
if(islimb(def_zone))
if(isbodypart(def_zone))
return checkarmor(def_zone, type)
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(def_zone))
return checkarmor(affecting, type)
@@ -632,7 +632,7 @@
if(!TARGET in blacklistItems)
insert_into_backpack() // dump random item into backpack to make space
//---------ITEMS
if(istype(TARGET, /obj/item))
if(isitem(TARGET))
if(istype(TARGET, /obj/item/weapon))
var/obj/item/weapon/W = TARGET
if(W.force >= best_force || prob((FUZZY_CHANCE_LOW+FUZZY_CHANCE_HIGH)/2))
@@ -939,7 +939,7 @@
retal = 1
retal_target = traitorTarget
if(SNPC_STEALTH)
if(istype(traitorTarget,/mob)) // it's inside something, lets kick their shit in
if(ismob(traitorTarget)) // it's inside something, lets kick their shit in
var/mob/M = traitorTarget
if(!M.stat)
retal = 1
@@ -1258,7 +1258,7 @@
return 0
var/obj/item/bodypart/BP = null
if(islimb(def_zone))
if(isbodypart(def_zone))
BP = def_zone
else
if(!def_zone)
+1 -1
View File
@@ -286,7 +286,7 @@
if(M.loc != src)
stomach_contents.Remove(M)
continue
if(istype(M, /mob/living/carbon) && stat != DEAD)
if(iscarbon(M) && stat != DEAD)
if(M.stat == DEAD)
M.death(1)
stomach_contents.Remove(M)
+1 -1
View File
@@ -467,7 +467,7 @@
/datum/emote/living/spin/run_emote(mob/user)
user.spin(20, 1)
if(istype(user, /mob/living/silicon/robot))
if(iscyborg(user))
var/mob/living/silicon/robot/R = user
if(R.buckled_mobs)
for(var/mob/M in R.buckled_mobs)
+1 -1
View File
@@ -94,7 +94,7 @@
var/obj/O = A
if(ObjBump(O))
return
if(istype(A, /atom/movable))
if(ismovableatom(A))
var/atom/movable/AM = A
if(PushAM(AM))
return
+1 -1
View File
@@ -877,7 +877,7 @@
if(istype(A,/obj/machinery/camera))
current = A
if(client)
if(istype(A, /atom/movable))
if(ismovableatom(A))
client.perspective = EYE_PERSPECTIVE
client.eye = A
else
@@ -24,7 +24,7 @@
var/obj/item/device/pda/P = card.loc
P.pai = null
P.visible_message("<span class='notice'>[src] ejects itself from [P]!</span>")
if(istype(card.loc, /mob/living))
if(isliving(card.loc))
var/mob/living/L = card.loc
if(!L.temporarilyRemoveItemFromInventory(card))
to_chat(src, "<span class='warning'>Error: Unable to expand to mobile form. Chassis is restrained by some device or person.</span>")
@@ -563,7 +563,7 @@
else if(ismonkey(M))
var/mob/living/carbon/monkey/george = M
//they can only hold things :(
if(istype(george.get_active_held_item(), /obj/item))
if(isitem(george.get_active_held_item()))
return check_access(george.get_active_held_item())
return 0
@@ -575,7 +575,7 @@
if(!L.len) //no requirements
return 1
if(!istype(I, /obj/item/weapon/card/id) && istype(I, /obj/item))
if(!istype(I, /obj/item/weapon/card/id) && isitem(I))
I = I.GetID()
if(!I || !I.access) //not ID or no access

Some files were not shown because too many files have changed in this diff Show More