From 9ffc841bfbe053bb4619d2c8d9b0e593460a6982 Mon Sep 17 00:00:00 2001 From: AnturK Date: Wed, 21 Oct 2015 22:22:58 +0200 Subject: [PATCH 1/4] Makes is_type helpers inline --- code/__DEFINES/is_helpers.dm | 71 ++++++++++++++++ code/modules/assembly/helpers.dm | 30 +------ code/modules/mob/mob_helpers.dm | 136 +------------------------------ tgstation.dme | 1 + 4 files changed, 74 insertions(+), 164 deletions(-) create mode 100644 code/__DEFINES/is_helpers.dm diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm new file mode 100644 index 00000000000..9874cff38a9 --- /dev/null +++ b/code/__DEFINES/is_helpers.dm @@ -0,0 +1,71 @@ +// simple is_type and similar inline helpers + +// MOB HELPERS + +#define ishuman(A) (istype(A, /mob/living/carbon/human)) + +#define ismonkey(A) (istype(A, /mob/living/carbon/monkey)) + +#define isbrain(A) (istype(A, /mob/living/carbon/brain)) + +#define isalien(A) (istype(A, /mob/living/carbon/alien)) + +#define isalienadult(A) (istype(A, /mob/living/carbon/alien/humanoid)) + +#define islarva(A) (istype(A, /mob/living/carbon/alien/larva)) + +#define isslime(A) (istype(A, /mob/living/simple_animal/slime)) + +#define isrobot(A) (istype(A, /mob/living/silicon/robot)) + +#define isanimal(A) (istype(A, /mob/living/simple_animal)) + +#define iscorgi(A) (istype(A, /mob/living/simple_animal/pet/dog/corgi)) + +#define iscrab(A) (istype(A, /mob/living/simple_animal/crab)) + +#define iscat(A) (istype(A, /mob/living/simple_animal/pet/cat)) + +#define ismouse(A) (istype(A, /mob/living/simple_animal/mouse)) + +#define isbear(A) (istype(A, /mob/living/simple_animal/hostile/bear)) + +#define iscarp(A) (istype(A, /mob/living/simple_animal/hostile/carp)) + +#define isclown(A) (istype(A, /mob/living/simple_animal/hostile/retaliate/clown)) + +#define isAI(A) (istype(A, /mob/living/silicon/ai)) + +#define ispAI(A) (istype(A, /mob/living/silicon/pai)) + +#define iscarbon(A) (istype(A, /mob/living/carbon)) + +#define issilicon(A) (istype(A, /mob/living/silicon)) + +#define isliving(A) (istype(A, /mob/living)) + +#define isobserver(A) (istype(A, /mob/dead/observer)) + +#define isnewplayer(A) (istype(A, /mob/new_player)) + +#define isovermind(A) (istype(A, /mob/camera/blob)) + +#define isdrone(A) (istype(A, /mob/living/simple_animal/drone)) + +#define isswarmer(A) (istype(A, /mob/living/simple_animal/hostile/swarmer)) + +#define islimb(A) (istype(A, /obj/item/organ/limb)) + +// ASSEMBLY HELPERS + +#define isassembly(O) (istype(O, /obj/item/device/assembly)) + +#define isigniter(O) (istype(O, /obj/item/device/assembly/igniter)) + +#define isinfared(O) (istype(O, /obj/item/device/assembly/infra)) + +#define isprox(O) (istype(O, /obj/item/device/assembly/prox_sensor)) + +#define issignaler(O) (istype(O, /obj/item/device/assembly/signaler)) + +#define istimer(O) (istype(O, /obj/item/device/assembly/timer)) \ No newline at end of file diff --git a/code/modules/assembly/helpers.dm b/code/modules/assembly/helpers.dm index 0c8005ad0bc..9013dcfb145 100644 --- a/code/modules/assembly/helpers.dm +++ b/code/modules/assembly/helpers.dm @@ -1,32 +1,4 @@ -/proc/isassembly(O) - if(istype(O, /obj/item/device/assembly)) - return 1 - return 0 - -/proc/isigniter(O) - if(istype(O, /obj/item/device/assembly/igniter)) - return 1 - return 0 - -/proc/isinfared(O) - if(istype(O, /obj/item/device/assembly/infra)) - return 1 - return 0 - -/proc/isprox(O) - if(istype(O, /obj/item/device/assembly/prox_sensor)) - return 1 - return 0 - -/proc/issignaler(O) - if(istype(O, /obj/item/device/assembly/signaler)) - return 1 - return 0 - -/proc/istimer(O) - if(istype(O, /obj/item/device/assembly/timer)) - return 1 - return 0 +// See _DEFINES/is_helpers.dm for type helpers /* Name: IsSpecialAssembly diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index f7cc8017d76..6c8d210d0da 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -1,139 +1,5 @@ -// fun if you want to typecast humans/monkeys/etc without writing long path-filled lines. -/proc/ishuman(A) - if(istype(A, /mob/living/carbon/human)) - return 1 - return 0 - -/proc/ismonkey(A) - if(A && istype(A, /mob/living/carbon/monkey)) - return 1 - return 0 - -/proc/isbrain(A) - if(A && istype(A, /mob/living/carbon/brain)) - return 1 - return 0 - -/proc/isalien(A) - if(istype(A, /mob/living/carbon/alien)) - return 1 - return 0 - -/proc/isalienadult(A) - if(istype(A, /mob/living/carbon/alien/humanoid)) - return 1 - return 0 - -/proc/islarva(A) - if(istype(A, /mob/living/carbon/alien/larva)) - return 1 - return 0 - -/proc/isslime(A) - if(istype(A, /mob/living/simple_animal/slime)) - return 1 - return 0 - -/proc/isrobot(A) - if(istype(A, /mob/living/silicon/robot)) - return 1 - return 0 - -/proc/isanimal(A) - if(istype(A, /mob/living/simple_animal)) - return 1 - return 0 - -/proc/iscorgi(A) - if(istype(A, /mob/living/simple_animal/pet/dog/corgi)) - return 1 - return 0 - -/proc/iscrab(A) - if(istype(A, /mob/living/simple_animal/crab)) - return 1 - return 0 - -/proc/iscat(A) - if(istype(A, /mob/living/simple_animal/pet/cat)) - return 1 - return 0 - -/proc/ismouse(A) - if(istype(A, /mob/living/simple_animal/mouse)) - return 1 - return 0 - -/proc/isbear(A) - if(istype(A, /mob/living/simple_animal/hostile/bear)) - return 1 - return 0 - -/proc/iscarp(A) - if(istype(A, /mob/living/simple_animal/hostile/carp)) - return 1 - return 0 - -/proc/isclown(A) - if(istype(A, /mob/living/simple_animal/hostile/retaliate/clown)) - return 1 - return 0 - -/proc/isAI(A) - if(istype(A, /mob/living/silicon/ai)) - return 1 - return 0 - -/proc/ispAI(A) - if(istype(A, /mob/living/silicon/pai)) - return 1 - return 0 - -/proc/iscarbon(A) - if(istype(A, /mob/living/carbon)) - return 1 - return 0 - -/proc/issilicon(A) - if(istype(A, /mob/living/silicon)) - return 1 - return 0 - -/proc/isliving(A) - if(istype(A, /mob/living)) - return 1 - return 0 - -/proc/isobserver(A) - if(istype(A, /mob/dead/observer)) - return 1 - return 0 - -/proc/isnewplayer(A) - if(istype(A, /mob/new_player)) - return 1 - return 0 - -/proc/isovermind(A) - if(istype(A, /mob/camera/blob)) - return 1 - return 0 - -/proc/isdrone(A) - if(istype(A, /mob/living/simple_animal/drone)) - return 1 - return 0 - -/proc/isswarmer(A) - if(istype(A, /mob/living/simple_animal/hostile/swarmer)) - return 1 - return 0 - -/proc/islimb(A) - if(istype(A, /obj/item/organ/limb)) - return 1 - return 0 +// see _DEFINES/is_helpers.dm for mob type checks /proc/isloyal(A) //Checks to see if the person contains a loyalty implant, then checks that the implant is actually inside of them for(var/obj/item/weapon/implant/loyalty/L in A) diff --git a/tgstation.dme b/tgstation.dme index f4272161a16..e17d0e53956 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -29,6 +29,7 @@ #include "code\__DEFINES\flags.dm" #include "code\__DEFINES\genetics.dm" #include "code\__DEFINES\hud.dm" +#include "code\__DEFINES\is_helpers.dm" #include "code\__DEFINES\machines.dm" #include "code\__DEFINES\math.dm" #include "code\__DEFINES\misc.dm" From 7bf76c115ae0d6781f2818820395d1937a7d0766 Mon Sep 17 00:00:00 2001 From: AnturK Date: Wed, 21 Oct 2015 22:36:21 +0200 Subject: [PATCH 2/4] few more --- code/__DEFINES/is_helpers.dm | 4 ++++ code/__HELPERS/game.dm | 6 ------ code/__HELPERS/lists.dm | 5 ----- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 9874cff38a9..f3f476f9788 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -1,5 +1,9 @@ // simple is_type and similar inline helpers +#define islist(L) (istype(L,/list)) + +#define in_range(source, user) (get_dist(source, user) <= 1) + // MOB HELPERS #define ishuman(A) (istype(A, /mob/living/carbon/human)) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index a0c581966a8..f7c5404bd8f 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -24,12 +24,6 @@ return A return 0 -/proc/in_range(source, user) - if(get_dist(source, user) <= 1) - return 1 - - return 0 //not in range and not telekinetic - // Like view but bypasses luminosity check /proc/get_hear(range, atom/source) diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm index 66ae50cf852..8e73a6004c2 100644 --- a/code/__HELPERS/lists.dm +++ b/code/__HELPERS/lists.dm @@ -40,11 +40,6 @@ return L[index] return -/proc/islist(list/L) - if(istype(L)) - return 1 - return 0 - //Return either pick(list) or null if list is not of type /list or is empty /proc/safepick(list/L) if(istype(L) && L.len) From 1acb8bd6fa5a95a97ef5e6a580127a79c4c40f03 Mon Sep 17 00:00:00 2001 From: AnturK Date: Thu, 22 Oct 2015 12:43:14 +0200 Subject: [PATCH 3/4] Birdstation change --- _maps/map_files/BirdStation/misc.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_maps/map_files/BirdStation/misc.dm b/_maps/map_files/BirdStation/misc.dm index 88efe5a9dd5..746f96e5cd8 100644 --- a/_maps/map_files/BirdStation/misc.dm +++ b/_maps/map_files/BirdStation/misc.dm @@ -7,17 +7,17 @@ L.loc = src.loc - if(issilicon(L)) + if(istype(L,/mob/living/silicon)) playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) else playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) var/gib = 1 - if(iscarbon(L)) + if(istype(L,/mob/living/carbon) gib = 0 add_blood(L) - if(!blood && !issilicon(L)) + if(!blood && !istype(L,/mob/living/silicon)) blood = 1 update_icon() L.Paralyse(5) From bc08682f312c8f325a79c333ac984fda1b81edbb Mon Sep 17 00:00:00 2001 From: AnturK Date: Thu, 22 Oct 2015 19:15:44 +0200 Subject: [PATCH 4/4] Update misc.dm --- _maps/map_files/BirdStation/misc.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_maps/map_files/BirdStation/misc.dm b/_maps/map_files/BirdStation/misc.dm index 746f96e5cd8..b86c9247888 100644 --- a/_maps/map_files/BirdStation/misc.dm +++ b/_maps/map_files/BirdStation/misc.dm @@ -13,7 +13,7 @@ playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) var/gib = 1 - if(istype(L,/mob/living/carbon) + if(istype(L,/mob/living/carbon)) gib = 0 add_blood(L) @@ -60,4 +60,4 @@ new /obj/item/weapon/tank/internals/emergency_oxygen(src) new /obj/item/weapon/reagent_containers/hypospray/medipen(src) new /obj/item/device/radio/off(src) - return \ No newline at end of file + return