From 604712db339b497c5fd1385b327b2c2a5e9a6e92 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Sun, 7 Jan 2018 16:49:29 -0800
Subject: [PATCH 1/2] Ridden vehicles now move mobs post-buckle via the
buckle_mob proc instead of pre, fixing lavaboats setting people on fire
---
code/modules/vehicles/ridden.dm | 74 +++++++++++++++++++++++++++++++++
1 file changed, 74 insertions(+)
diff --git a/code/modules/vehicles/ridden.dm b/code/modules/vehicles/ridden.dm
index 32975e1e0f..9aaff60ef7 100644
--- a/code/modules/vehicles/ridden.dm
+++ b/code/modules/vehicles/ridden.dm
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
/obj/vehicle/ridden
name = "ridden vehicle"
can_buckle = TRUE
@@ -74,3 +75,76 @@
if(!force && occupant_amount() >= max_occupants)
return FALSE
return ..()
+=======
+/obj/vehicle/ridden
+ name = "ridden vehicle"
+ can_buckle = TRUE
+ max_buckled_mobs = 1
+ buckle_lying = FALSE
+ default_driver_move = FALSE
+ var/legs_required = 2
+ var/arms_requires = 0 //why not?
+
+/obj/vehicle/ridden/Initialize()
+ . = ..()
+ LoadComponent(/datum/component/riding)
+
+/obj/vehicle/ridden/examine(mob/user)
+ . = ..()
+ to_chat(user, "Put a key inside it by clicking it with the key. If there's a key inside, you can remove it via Alt-Click!")
+
+/obj/vehicle/ridden/generate_action_type(actiontype)
+ var/datum/action/vehicle/ridden/A = ..()
+ . = A
+ if(istype(A))
+ A.vehicle_ridden_target = src
+
+/obj/vehicle/ridden/post_unbuckle_mob(mob/living/M)
+ remove_occupant(M)
+ return ..()
+
+/obj/vehicle/ridden/post_buckle_mob(mob/living/M)
+ add_occupant(M)
+ return ..()
+
+/obj/vehicle/ridden/attackby(obj/item/I, mob/user, params)
+ if(key_type && !is_key(inserted_key) && is_key(I))
+ if(user.transferItemToLoc(I, src))
+ to_chat(user, "You insert \the [I] into \the [src].")
+ if(inserted_key) //just in case there's an invalid key
+ inserted_key.forceMove(drop_location())
+ inserted_key = I
+ else
+ to_chat(user, "[I] seems to be stuck to your hand!")
+ return
+ return ..()
+
+/obj/vehicle/ridden/AltClick(mob/user)
+ if(user.Adjacent(src) && inserted_key)
+ if(!is_occupant(user))
+ to_chat(user, "You must be riding the [src] to remove [src]'s key!")
+ return
+ to_chat(user, "You remove \the [inserted_key] from \the [src].")
+ inserted_key.forceMove(drop_location())
+ user.put_in_hands(inserted_key)
+ inserted_key = null
+ return ..()
+
+/obj/vehicle/ridden/driver_move(mob/user, direction)
+ if(key_type && !is_key(inserted_key))
+ to_chat(user, "[src] has no key inserted!")
+ return FALSE
+ var/datum/component/riding/R = GetComponent(/datum/component/riding)
+ R.handle_ride(user, direction)
+ return ..()
+
+/obj/vehicle/ridden/user_buckle_mob(mob/living/M, mob/user, check_loc = TRUE)
+ if(!in_range(user, src) || !in_range(M, src))
+ return FALSE
+ . = ..(M, user, FALSE)
+
+/obj/vehicle/ridden/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE)
+ if(!force && occupant_amount() >= max_occupants)
+ return FALSE
+ return ..()
+>>>>>>> 46022c8... Buckling now moves post-buckling instead of pre on vehicles (#34150)
From 94b664f934fbe9c174362cecf9e6b27204a61469 Mon Sep 17 00:00:00 2001
From: deathride58
Date: Sun, 7 Jan 2018 23:10:44 -0500
Subject: [PATCH 2/2] Update ridden.dm
---
code/modules/vehicles/ridden.dm | 79 ---------------------------------
1 file changed, 79 deletions(-)
diff --git a/code/modules/vehicles/ridden.dm b/code/modules/vehicles/ridden.dm
index 9aaff60ef7..5690bb1ad4 100644
--- a/code/modules/vehicles/ridden.dm
+++ b/code/modules/vehicles/ridden.dm
@@ -1,81 +1,3 @@
-<<<<<<< HEAD
-/obj/vehicle/ridden
- name = "ridden vehicle"
- can_buckle = TRUE
- max_buckled_mobs = 1
- buckle_lying = FALSE
- default_driver_move = FALSE
- var/legs_required = 2
- var/arms_requires = 0 //why not?
-
-/obj/vehicle/ridden/Initialize()
- . = ..()
- LoadComponent(/datum/component/riding)
-
-/obj/vehicle/ridden/examine(mob/user)
- . = ..()
- to_chat(user, "Put a key inside it by clicking it with the key. If there's a key inside, you can remove it via Alt-Click!")
-
-/obj/vehicle/ridden/generate_action_type(actiontype)
- var/datum/action/vehicle/ridden/A = ..()
- . = A
- if(istype(A))
- A.vehicle_ridden_target = src
-
-/obj/vehicle/ridden/post_unbuckle_mob(mob/living/M)
- remove_occupant(M)
- return ..()
-
-/obj/vehicle/ridden/post_buckle_mob(mob/living/M)
- add_occupant(M)
- return ..()
-
-/obj/vehicle/ridden/attackby(obj/item/I, mob/user, params)
- if(key_type && !is_key(inserted_key) && is_key(I))
- if(user.transferItemToLoc(I, src))
- to_chat(user, "You insert \the [I] into \the [src].")
- if(inserted_key) //just in case there's an invalid key
- inserted_key.forceMove(drop_location())
- inserted_key = I
- else
- to_chat(user, "[I] seems to be stuck to your hand!")
- return
- return ..()
-
-/obj/vehicle/ridden/AltClick(mob/user)
- if(user.Adjacent(src) && inserted_key)
- if(!is_occupant(user))
- to_chat(user, "You must be riding the [src] to remove [src]'s key!")
- return
- to_chat(user, "You remove \the [inserted_key] from \the [src].")
- inserted_key.forceMove(drop_location())
- user.put_in_hands(inserted_key)
- inserted_key = null
- return ..()
-
-/obj/vehicle/ridden/driver_move(mob/user, direction)
- if(key_type && !is_key(inserted_key))
- to_chat(user, "[src] has no key inserted!")
- return FALSE
- var/datum/component/riding/R = GetComponent(/datum/component/riding)
- R.handle_ride(user, direction)
- return ..()
-
-/obj/vehicle/ridden/user_buckle_mob(mob/living/M, mob/user, check_loc = TRUE)
- if(user.incapacitated())
- return
- for(var/atom/movable/A in get_turf(src))
- if(A.density)
- if(A != src && A != M)
- return
- M.forceMove(get_turf(src))
- . = ..()
-
-/obj/vehicle/ridden/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE)
- if(!force && occupant_amount() >= max_occupants)
- return FALSE
- return ..()
-=======
/obj/vehicle/ridden
name = "ridden vehicle"
can_buckle = TRUE
@@ -147,4 +69,3 @@
if(!force && occupant_amount() >= max_occupants)
return FALSE
return ..()
->>>>>>> 46022c8... Buckling now moves post-buckling instead of pre on vehicles (#34150)