diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index 347075f77f9..4f808a9ad0a 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -113,6 +113,8 @@ GLOBAL_LIST_INIT(glass_sheet_types, typecacheof(list(
// Areas
//#define isarea(A, B, C...) BYOND proc, can test multiple arguments and only return TRUE if all are areas
+#define isspacearea(A) (istype(A, /area/space))
+
// Structures
#define isstructure(A) (istype((A), /obj/structure))
diff --git a/code/game/gamemodes/cult/blood_magic.dm b/code/game/gamemodes/cult/blood_magic.dm
index 357665e82d9..30370c7d905 100644
--- a/code/game/gamemodes/cult/blood_magic.dm
+++ b/code/game/gamemodes/cult/blood_magic.dm
@@ -561,7 +561,7 @@
if(is_mining_level(user.z) && !is_mining_level(destination.z)) //No effect if you stay on lavaland
actual_selected_rune.handle_portal("lava")
- else if(!is_station_level(user.z) || istype(get_area(user), /area/space))
+ else if(!is_station_level(user.z) || isspacearea(get_area(user)))
actual_selected_rune.handle_portal("space", origin)
if(user == target)
diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm
index dbc810b059a..f72ed0d0b15 100644
--- a/code/game/gamemodes/cult/cult_items.dm
+++ b/code/game/gamemodes/cult/cult_items.dm
@@ -776,7 +776,7 @@
if(is_mining_level(R.z) && !is_mining_level(actual_selected_rune.z))
actual_selected_rune.handle_portal("lava")
- else if(!is_station_level(R.z) || istype(get_area(src), /area/space))
+ else if(!is_station_level(R.z) || isspacearea(get_area(src)))
actual_selected_rune.handle_portal("space", T)
new /obj/effect/portal/cult(get_turf(R), get_turf(actual_selected_rune), src, 4 MINUTES)
to_chat(user, "You use the magic of the amulet to turn [R] into a portal.")
diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm
index 10a96abacea..b8134a23466 100644
--- a/code/game/gamemodes/cult/ritual.dm
+++ b/code/game/gamemodes/cult/ritual.dm
@@ -136,7 +136,7 @@
var/turf/runeturf = get_turf(user)
var/datum/game_mode/gamemode = SSticker.mode
if(ispath(rune, /obj/effect/rune/summon))
- if(!is_station_level(runeturf.z) || istype(A, /area/space))
+ if(!is_station_level(runeturf.z) || isspacearea(A))
to_chat(user, "The veil is not weak enough here to summon a cultist, you must be on station!")
return
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index f91b17271d6..8ec860cbf36 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -511,7 +511,7 @@ structure_check() searches for nearby cultist structures required for the invoca
..()
if(is_mining_level(z) && !is_mining_level(target.z)) //No effect if you stay on lavaland
actual_selected_rune.handle_portal("lava")
- else if(!is_station_level(z) || istype(get_area(src), /area/space))
+ else if(!is_station_level(z) || isspacearea(get_area(src)))
actual_selected_rune.handle_portal("space", T)
user.visible_message("There is a sharp crack of inrushing air, and everything above the rune disappears!",
"You[moveuser ? "r vision blurs, and you suddenly appear somewhere else":" send everything above the rune away"].")
@@ -907,7 +907,7 @@ structure_check() searches for nearby cultist structures required for the invoca
var/choice = tgui_alert(user, "You tear open a connection to the spirit realm...", "Invoke", list("Summon a Cult Ghost", "Ascend as a Dark Spirit", "Cancel"))
if(choice == "Summon a Cult Ghost")
- if(!is_station_level(z) || istype(get_area(src), /area/space))
+ if(!is_station_level(z) || isspacearea(get_area(src)))
to_chat(user, "The veil is not weak enough here to manifest spirits, you must be on station!")
fail_invoke()
log_game("Manifest rune failed - not on station")
diff --git a/code/game/objects/items/mountable_frames/frames.dm b/code/game/objects/items/mountable_frames/frames.dm
index 526c3eb5b5b..6f35d17317c 100644
--- a/code/game/objects/items/mountable_frames/frames.dm
+++ b/code/game/objects/items/mountable_frames/frames.dm
@@ -32,7 +32,7 @@
return
if(mount_requirements & MOUNTED_FRAME_NOSPACE)
var/area/my_area = get_area(build_turf)
- if(!istype(my_area) || !my_area.requires_power || istype(my_area, /area/space))
+ if(!istype(my_area) || !my_area.requires_power || isspacearea(my_area))
to_chat(user, "[src] cannot be placed in this area.")
return
return TRUE
diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm
index a8e7e3d0653..1f2e5904177 100644
--- a/code/modules/mob/living/simple_animal/bot/floorbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm
@@ -266,7 +266,7 @@
nagged = TRUE
/mob/living/simple_animal/bot/floorbot/proc/is_hull_breach(turf/t) // Ignore space tiles not considered part of a structure, also ignores shuttle docking areas.
- return !istype(get_area(t), /area/space)
+ return !isspacearea(get_area(t))
// Floorbots, having several functions, need sort out special conditions here.
/mob/living/simple_animal/bot/floorbot/process_scan(atom/scan_target)
diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm
index bc5d0dafa08..68b254a349d 100644
--- a/code/modules/shuttle/navigation_computer.dm
+++ b/code/modules/shuttle/navigation_computer.dm
@@ -267,7 +267,7 @@
return ..()
/mob/camera/aiEye/remote/shuttle_docker/setLoc(T)
- if(isspaceturf(get_turf(T)) || istype(get_area(T), /area/space) || istype(get_area(T), /area/shuttle))
+ if(isspaceturf(get_turf(T)) || isspacearea(get_area(T)) || istype(get_area(T), /area/shuttle))
..()
var/obj/machinery/computer/camera_advanced/shuttle_docker/console = origin
console.checkLandingSpot()