diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 9048d77b..3d525e05 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -395,7 +395,7 @@ SUBSYSTEM_DEF(job) if(!joined_late) var/obj/S = null for(var/obj/effect/landmark/start/sloc in GLOB.start_landmarks_list) - if(sloc.name != rank) + if(sloc.name != rank && sloc.type != job.override_roundstart_spawn) S = sloc //so we can revert to spawning them on top of eachother if something goes wrong continue if(locate(/mob/living) in sloc.loc) diff --git a/code/modules/jobs/job_types/engineering.dm b/code/modules/jobs/job_types/engineering.dm index 3514e7c8..ce36edcc 100644 --- a/code/modules/jobs/job_types/engineering.dm +++ b/code/modules/jobs/job_types/engineering.dm @@ -196,6 +196,7 @@ Junior Engineer ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_TECH_STORAGE, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM) + override_roundstart_spawn = /obj/effect/landmark/start/station_engineer /datum/outfit/job/engineer/junior name = "Engineering Intern" @@ -228,9 +229,3 @@ Junior Engineer suit_store = /obj/item/tank/internals/oxygen head = null internals_slot = SLOT_S_STORE - -/datum/job/junior_engineer/after_spawn(mob/living/carbon/human/H, mob/M) //Instead of going through the process of adding spawnpoints - var/turf/T - var/spawn_point = locate(/obj/effect/landmark/start/station_engineer) in GLOB.start_landmarks_list - T = get_turf(spawn_point) - H.Move(T) \ No newline at end of file diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm index c0a2aa00..3a8aa68b 100644 --- a/code/modules/jobs/job_types/job.dm +++ b/code/modules/jobs/job_types/job.dm @@ -61,6 +61,8 @@ var/list/alt_titles = list() + var/override_roundstart_spawn = null //Where the player spawns at roundstart if defined + //Only override this proc //H is usually a human unless an /equip override transformed it /datum/job/proc/after_spawn(mob/living/H, mob/M, latejoin = FALSE) diff --git a/code/modules/jobs/job_types/medical.dm b/code/modules/jobs/job_types/medical.dm index 0458ce89..9b07a2ad 100644 --- a/code/modules/jobs/job_types/medical.dm +++ b/code/modules/jobs/job_types/medical.dm @@ -243,6 +243,7 @@ Junior Doctor access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CLONING, ACCESS_MINERAL_STOREROOM) + override_roundstart_spawn = /obj/effect/landmark/start/medical_doctor /datum/outfit/job/doctor/junior name = "Medical Resident" @@ -261,9 +262,3 @@ Junior Doctor duffelbag = /obj/item/storage/backpack/duffelbag/med chameleon_extras = /obj/item/gun/syringe - -/datum/job/junior_doctor/after_spawn(mob/living/carbon/human/H, mob/M) //Instead of going through the process of adding spawnpoints - var/turf/T - var/spawn_point = locate(/obj/effect/landmark/start/medical_doctor) in GLOB.start_landmarks_list - T = get_turf(spawn_point) - H.Move(T) \ No newline at end of file diff --git a/code/modules/jobs/job_types/science.dm b/code/modules/jobs/job_types/science.dm index 1cd36504..0eecd5ff 100644 --- a/code/modules/jobs/job_types/science.dm +++ b/code/modules/jobs/job_types/science.dm @@ -160,6 +160,7 @@ Junior Scientist access = list(ACCESS_ROBOTICS, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM, ACCESS_TECH_STORAGE, ACCESS_GENETICS) minimal_access = list(ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM) + override_roundstart_spawn = /obj/effect/landmark/start/scientist /datum/outfit/job/scientist/junior name = "Scientist" @@ -173,9 +174,3 @@ Junior Scientist backpack = /obj/item/storage/backpack/science satchel = /obj/item/storage/backpack/satchel/tox - -/datum/job/junior_scientist/after_spawn(mob/living/carbon/human/H, mob/M) //Instead of going through the process of adding spawnpoints - var/turf/T - var/spawn_point = locate(/obj/effect/landmark/start/scientist) in GLOB.start_landmarks_list - T = get_turf(spawn_point) - H.Move(T) \ No newline at end of file diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm index 4600fce9..a394fff7 100644 --- a/code/modules/jobs/job_types/security.dm +++ b/code/modules/jobs/job_types/security.dm @@ -375,6 +375,7 @@ Junior Security Officer mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM) blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/nonviolent, /datum/quirk/paraplegic) + override_roundstart_spawn = /obj/effect/landmark/start/security_officer /datum/job/junior_officer/get_access()