diff --git a/code/modules/vehicles/interior/interactable/seats.dm b/code/modules/vehicles/interior/interactable/seats.dm index 7048aa44ccc3..59de952ddf97 100644 --- a/code/modules/vehicles/interior/interactable/seats.dm +++ b/code/modules/vehicles/interior/interactable/seats.dm @@ -327,6 +327,7 @@ var/mob_old_x = 0 var/buckle_offset_y = 0 var/mob_old_y = 0 + var/allways_undense = FALSE /obj/structure/bed/chair/vehicle/Initialize() . = ..() @@ -384,24 +385,34 @@ if(buckle_offset_y != 0) M.pixel_y = mob_old_y mob_old_y = 0 - - for(var/obj/structure/bed/chair/vehicle/VS in get_turf(src)) - if(VS != src) - //if both seats on same tile have buckled mob, we become dense, otherwise, not dense. - if(buckled_mob) - if(VS.buckled_mob) - REMOVE_TRAIT(buckled_mob, TRAIT_UNDENSE, DOUBLE_SEATS_TRAIT) - REMOVE_TRAIT(VS.buckled_mob, TRAIT_UNDENSE, DOUBLE_SEATS_TRAIT) + if(allways_undense) + ADD_TRAIT(buckled_mob, TRAIT_UNDENSE, DOUBLE_SEATS_TRAIT) + else + for(var/obj/structure/bed/chair/vehicle/VS in get_turf(src)) + if(VS != src) + //if both seats on same tile have buckled mob, we become dense, otherwise, not dense. + if(buckled_mob) + if(VS.buckled_mob) + REMOVE_TRAIT(buckled_mob, TRAIT_UNDENSE, DOUBLE_SEATS_TRAIT) + REMOVE_TRAIT(VS.buckled_mob, TRAIT_UNDENSE, DOUBLE_SEATS_TRAIT) + else + ADD_TRAIT(buckled_mob, TRAIT_UNDENSE, DOUBLE_SEATS_TRAIT) else - ADD_TRAIT(buckled_mob, TRAIT_UNDENSE, DOUBLE_SEATS_TRAIT) - else - if(VS.buckled_mob) - ADD_TRAIT(VS.buckled_mob, TRAIT_UNDENSE, DOUBLE_SEATS_TRAIT) - REMOVE_TRAIT(M, TRAIT_UNDENSE, DOUBLE_SEATS_TRAIT) - break + if(VS.buckled_mob) + ADD_TRAIT(VS.buckled_mob, TRAIT_UNDENSE, DOUBLE_SEATS_TRAIT) + REMOVE_TRAIT(M, TRAIT_UNDENSE, DOUBLE_SEATS_TRAIT) + break + + handle_rotation() +/obj/structure/bed/chair/vehicle/unbuckle() + if(buckled_mob && buckled_mob.buckled == src) + REMOVE_TRAIT(buckled_mob, TRAIT_UNDENSE, DOUBLE_SEATS_TRAIT) + . = ..() + + //attack handling /obj/structure/bed/chair/vehicle/attack_alien(mob/living/user) diff --git a/code/modules/vehicles/van/rt01.dm b/code/modules/vehicles/van/rt01.dm index 3797b7a0d5d0..69c97ad550f7 100644 --- a/code/modules/vehicles/van/rt01.dm +++ b/code/modules/vehicles/van/rt01.dm @@ -321,6 +321,7 @@ /obj/structure/bed/chair/vehicle/comfy icon = 'icons/obj/vehicles/interiors/rt01_general.dmi' + allways_undense = TRUE /obj/structure/bed/chair/vehicle/comfy/alt icon_state = "alt_vehicle_seat"