diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm index e08777caad2..f7bd7d1aa84 100644 --- a/code/modules/jobs/access.dm +++ b/code/modules/jobs/access.dm @@ -30,6 +30,11 @@ var/mob/living/simple_animal/animal = accessor if(check_access(animal.access_card)) return TRUE + else if(isbrain(accessor) && istype(accessor.loc, /obj/item/mmi)) + var/obj/item/mmi/brain_mmi = accessor.loc + if(ismecha(brain_mmi.loc)) + var/obj/vehicle/sealed/mecha/big_stompy_robot = brain_mmi.loc + return check_access_list(big_stompy_robot.operation_req_access) return FALSE /obj/item/proc/GetAccess() diff --git a/code/modules/vehicles/sealed.dm b/code/modules/vehicles/sealed.dm index 3ec5f1ae6d5..1e3dcec1191 100644 --- a/code/modules/vehicles/sealed.dm +++ b/code/modules/vehicles/sealed.dm @@ -31,7 +31,9 @@ . = ..() if(istype(A, /obj/machinery/door)) var/obj/machinery/door/conditionalwall = A - for(var/occupant in occupants) + for(var/mob/occupant as anything in return_drivers()) + if(conditionalwall.try_safety_unlock(occupant)) + return conditionalwall.bumpopen(occupant) /obj/vehicle/sealed/after_add_occupant(mob/M)