diff --git a/code/datums/riding.dm b/code/datums/riding.dm index 62217ae9636..e169e4046c4 100644 --- a/code/datums/riding.dm +++ b/code/datums/riding.dm @@ -1,4 +1,3 @@ - /datum/riding var/generic_pixel_x = 0 //All dirs show this pixel_x for the driver var/generic_pixel_y = 0 //All dirs show this pixel_y for the driver, use these vars if the pixel shift is stable across all dir, override handle_vehicle_offsets otherwise. @@ -39,7 +38,7 @@ //BUCKLE HOOKS -/datum/riding/proc/restore_position(mob/living/buckled_mob,force = 0) +/datum/riding/proc/restore_position(mob/living/buckled_mob) if(istype(buckled_mob)) buckled_mob.pixel_x = 0 buckled_mob.pixel_y = 0 diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 708c1361863..1da8d9c5f00 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -84,7 +84,6 @@ //domestication var/tame = 0 - var/saddled = 0 var/datum/riding/riding_datum = null /mob/living/simple_animal/New() @@ -524,7 +523,7 @@ client.screen |= l_hand //ANIMAL RIDING -/mob/living/simple_animal/unbuckle_mob(mob/living/buckled_mob,force = 0) +/mob/living/simple_animal/unbuckle_mob(mob/living/buckled_mob, force = 0, check_loc = 1) if(riding_datum) riding_datum.restore_position(buckled_mob) . = ..() @@ -535,15 +534,14 @@ if(user.incapacitated()) return for(var/atom/movable/A in get_turf(src)) - if(A.density) - if(A != src && A != M) - return + if(A != src && A != M && A.density) + return M.loc = get_turf(src) riding_datum.handle_vehicle_offsets() riding_datum.ridden = src /mob/living/simple_animal/relaymove(mob/user, direction) - if(tame && saddled && riding_datum) + if(tame && riding_datum) riding_datum.handle_ride(user, direction) /mob/living/simple_animal/Move(NewLoc,Dir=0,step_x=0,step_y=0) @@ -553,7 +551,6 @@ riding_datum.handle_vehicle_offsets() -/mob/living/simple_animal/buckle_mob() - ..() +/mob/living/simple_animal/buckle_mob(mob/living/buckled_mob, force = 0, check_loc = 1) + . = ..() riding_datum = new/datum/riding/animal - diff --git a/code/modules/vehicles/atv.dm b/code/modules/vehicles/atv.dm index ebf3f162d03..e1bb65c1758 100644 --- a/code/modules/vehicles/atv.dm +++ b/code/modules/vehicles/atv.dm @@ -5,7 +5,7 @@ icon_state = "atv" var/static/image/atvcover = null -/obj/vehicle/atv/buckle_mob() +/obj/vehicle/atv/buckle_mob(mob/living/buckled_mob, force = 0, check_loc = 1) . = ..() riding_datum = new/datum/riding/atv @@ -41,8 +41,7 @@ turret = new(loc) turret.base = src -/obj/vehicle/atv/turret/buckle_mob() - ..() +/obj/vehicle/atv/turret/buckle_mob(mob/living/buckled_mob, force = 0, check_loc = 1) + . = ..() riding_datum = new/datum/riding/atv/turret - diff --git a/code/modules/vehicles/pimpin_ride.dm b/code/modules/vehicles/pimpin_ride.dm index d169ca70c13..01813f46ff3 100644 --- a/code/modules/vehicles/pimpin_ride.dm +++ b/code/modules/vehicles/pimpin_ride.dm @@ -13,11 +13,12 @@ mybag = null return ..() -/obj/vehicle/janicart/buckle_mob() +/obj/vehicle/janicart/buckle_mob(mob/living/buckled_mob, force = 0, check_loc = 0) . = ..() riding_datum = new/datum/riding/janicart + /obj/item/key/janitor desc = "A keyring with a small steel key, and a pink fob reading \"Pussy Wagon\"." icon_state = "keyjanitor" @@ -83,4 +84,4 @@ mybag.loc = get_turf(user) user.put_in_hands(mybag) mybag = null - update_icon() + update_icon() \ No newline at end of file diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm index 906620f0464..5a4d81eaaf8 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -13,11 +13,9 @@ user << "You remove the handlebars from [src]." qdel(src) -/obj/vehicle/scooter/buckle_mob() - . = ..() - riding_datum = new/datum/riding/scooter -/obj/vehicle/scooter/buckle_mob(mob/living/M, force = 0) +/obj/vehicle/scooter/buckle_mob(mob/living/M, force = 0, check_loc = 1) + riding_datum = new/datum/riding/scooter if(!istype(M)) return 0 if(M.get_num_legs() < 2 && M.get_num_arms() <= 0) @@ -35,7 +33,7 @@ density = 0 -/obj/vehicle/scooter/skateboard/buckle_mob() +/obj/vehicle/scooter/skateboard/buckle_mob(mob/living/M, force = 0, check_loc = 1) . = ..() riding_datum = new/datum/riding/scooter/skateboard @@ -122,4 +120,4 @@ user << "You add the rods to [src], creating handlebars." C.use(2) new/obj/vehicle/scooter(get_turf(src)) - qdel(src) + qdel(src) \ No newline at end of file diff --git a/code/modules/vehicles/secway.dm b/code/modules/vehicles/secway.dm index 4eac21ffa84..c85088ec8da 100644 --- a/code/modules/vehicles/secway.dm +++ b/code/modules/vehicles/secway.dm @@ -8,6 +8,6 @@ desc = "A keyring with a small steel key, and a rubber stun baton accessory." icon_state = "keysec" -/obj/vehicle/secway/buckle_mob() +/obj/vehicle/secway/buckle_mob(mob/living/buckled_mob, force = 0, check_loc = 1) . = ..() riding_datum = new/datum/riding/secway \ No newline at end of file diff --git a/code/modules/vehicles/speedbike.dm b/code/modules/vehicles/speedbike.dm index ecfcecbc2ed..24c6ecbec74 100644 --- a/code/modules/vehicles/speedbike.dm +++ b/code/modules/vehicles/speedbike.dm @@ -6,7 +6,7 @@ var/overlay_state = "cover_blue" var/image/overlay = null -/obj/vehicle/space/speedbike/buckle_mob() +/obj/vehicle/space/speedbike/buckle_mob(mob/living/M, force = 0, check_loc = 1) . = ..() riding_datum = new/datum/riding/space/speedbike @@ -34,4 +34,4 @@ /obj/vehicle/space/speedbike/red icon_state = "speedbike_red" - overlay_state = "cover_red" \ No newline at end of file + overlay_state = "cover_red" diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index 2e7f5802c40..3664ad5d705 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -25,7 +25,6 @@ icon_state = "key" w_class = WEIGHT_CLASS_TINY - //BUCKLE HOOKS /obj/vehicle/unbuckle_mob(mob/living/buckled_mob,force = 0) if(riding_datum) @@ -45,8 +44,8 @@ if(user.client) user.client.view = view_range if(riding_datum) - riding_datum.handle_vehicle_offsets() riding_datum.ridden = src + riding_datum.handle_vehicle_offsets() //MOVEMENT /obj/vehicle/relaymove(mob/user, direction)