From f81f2e571adbb23eac73af2249525d07d3bc79f1 Mon Sep 17 00:00:00 2001 From: mikomyazaki <47489928+mikomyazaki@users.noreply.github.com> Date: Thu, 30 Jul 2020 10:21:21 +0100 Subject: [PATCH] GPSes that are Initialized while being held or implanted will now work properly. (#9508) --- code/modules/telesci/gps.dm | 17 +++++++++++++++++ html/changelogs/cyborg_gps_bugfix.yml | 6 ++++++ 2 files changed, 23 insertions(+) create mode 100644 html/changelogs/cyborg_gps_bugfix.yml diff --git a/code/modules/telesci/gps.dm b/code/modules/telesci/gps.dm index 30427eebc29..6a678d7fe64 100644 --- a/code/modules/telesci/gps.dm +++ b/code/modules/telesci/gps.dm @@ -23,6 +23,23 @@ var/list/GPS_list = list() name = "global positioning system ([gpstag])" update_position() add_overlay("working") + + if(ismob(loc)) + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + if(src in H.get_equipped_items()) + held_by = H + else + implanted_into = loc + else if(issilicon(loc)) + implanted_into = loc + else if(istype(loc, /obj/item/robot_module)) + implanted_into = loc.loc + + if(held_by) + moved_event.register(held_by, src, /obj/item/device/gps/proc/update_position) + if(implanted_into) + moved_event.register(implanted_into, src, /obj/item/device/gps/proc/update_position) moved_event.register(src, src, /obj/item/device/gps/proc/update_position) for(var/gps in GPS_list) diff --git a/html/changelogs/cyborg_gps_bugfix.yml b/html/changelogs/cyborg_gps_bugfix.yml new file mode 100644 index 00000000000..c97a09fb303 --- /dev/null +++ b/html/changelogs/cyborg_gps_bugfix.yml @@ -0,0 +1,6 @@ +author: mikomyazaki + +delete-after: True + +changes: + - bugfix: "Cyborg GPSes will now update properly." \ No newline at end of file