From ed54afbbf03d01c73d160018730c49603b78c529 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 5 Jan 2025 11:54:41 +0100 Subject: [PATCH] fix an issue with multi borg module registering (#16835) * fix an issue with multi borg module registers * fix that * bad feeling --- code/game/dna/dna2_helpers.dm | 2 +- code/game/objects/items/devices/gps.dm | 8 ++++---- code/modules/admin/modify_robot.dm | 6 +++--- code/modules/admin/verbs/modify_robot.dm | 6 +++--- code/modules/mob/living/silicon/robot/robot_ui_module.dm | 9 ++++++--- code/modules/telesci/gps_advanced.dm | 2 +- 6 files changed, 18 insertions(+), 15 deletions(-) diff --git a/code/game/dna/dna2_helpers.dm b/code/game/dna/dna2_helpers.dm index 9d1060db1ca..2f72625f371 100644 --- a/code/game/dna/dna2_helpers.dm +++ b/code/game/dna/dna2_helpers.dm @@ -269,7 +269,7 @@ H.custom_heat = dna.custom_heat H.custom_cold = dna.custom_cold var/datum/species/S = H.species - S.produceCopy(dna.species_traits, H, dna.base_species, FALSE) // Traitgenes edit - reset_dna flag required, or genes get reset on resleeve + S.produceCopy(dna.species_traits, H, dna.base_species/*, FALSE*/) // Traitgenes edit - reset_dna flag required, or genes get reset on resleeve // VOREStation Edit End H.species.blood_reagents = dna.blood_reagents diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index 8f5db5e637a..98993800d79 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -1,4 +1,4 @@ -var/list/GPS_list = list() +GLOBAL_LIST_EMPTY(GPS_list) /obj/item/gps name = "global positioning system" @@ -29,7 +29,7 @@ var/list/GPS_list = list() /obj/item/gps/Initialize() . = ..() compass = new(src) - GPS_list += src + GLOB.GPS_list += src name = "global positioning system ([gps_tag])" update_holder() update_icon() @@ -93,7 +93,7 @@ var/list/GPS_list = list() /obj/item/gps/Destroy() STOP_PROCESSING(SSobj, src) is_in_processing_list = FALSE - GPS_list -= src + GLOB.GPS_list -= src . = ..() update_holder() QDEL_NULL(compass) @@ -199,7 +199,7 @@ var/list/GPS_list = list() dat["z_level_detection"] = using_map.get_map_levels(curr.z, long_range) var/list/gps_list = list() - for(var/obj/item/gps/G in GPS_list - src) + for(var/obj/item/gps/G in GLOB.GPS_list - src) if(!can_track(G, dat["z_level_detection"])) continue diff --git a/code/modules/admin/modify_robot.dm b/code/modules/admin/modify_robot.dm index 6d6ddb94ab4..247fc50bff0 100644 --- a/code/modules/admin/modify_robot.dm +++ b/code/modules/admin/modify_robot.dm @@ -349,8 +349,8 @@ target.radio.keyslot = new /obj/item/encryptionkey/syndicate(target) target.radio.syndie = 1 target.module.channels += list("[selected_radio_channel]" = 1) - target.radio.channels[selected_radio_channel] += target.module.channels[selected_radio_channel] - target.radio.secure_radio_connections[selected_radio_channel] += radio_controller.add_object(target.radio, radiochannels[selected_radio_channel], RADIO_CHAT) + target.radio.channels[selected_radio_channel] = target.module.channels[selected_radio_channel] + target.radio.secure_radio_connections[selected_radio_channel] = radio_controller.add_object(target.radio, radiochannels[selected_radio_channel], RADIO_CHAT) return TRUE if("rem_channel") var/selected_radio_channel = params["channel"] @@ -363,7 +363,7 @@ target.radio.syndie = 0 target.radio.channels = list() for(var/n_chan in target.module.channels) - target.radio.channels[n_chan] -= target.module.channels[n_chan] + target.radio.channels[n_chan] = target.module.channels[n_chan] radio_controller.remove_object(target.radio, radiochannels[selected_radio_channel]) target.radio.secure_radio_connections -= selected_radio_channel return TRUE diff --git a/code/modules/admin/verbs/modify_robot.dm b/code/modules/admin/verbs/modify_robot.dm index 2524f1b50ba..20a846d6b25 100644 --- a/code/modules/admin/verbs/modify_robot.dm +++ b/code/modules/admin/verbs/modify_robot.dm @@ -240,8 +240,8 @@ target.radio.keyslot = new /obj/item/encryptionkey/syndicate(target) target.radio.syndie = 1 target.module.channels += list("[selected_radio_channel]" = 1) - target.radio.channels[selected_radio_channel] += target.module.channels[selected_radio_channel] - target.radio.secure_radio_connections[selected_radio_channel] += radio_controller.add_object(target.radio, radiochannels[selected_radio_channel], RADIO_CHAT) + target.radio.channels[selected_radio_channel] = target.module.channels[selected_radio_channel] + target.radio.secure_radio_connections[selected_radio_channel] = radio_controller.add_object(target.radio, radiochannels[selected_radio_channel], RADIO_CHAT) available_channels -= selected_radio_channel to_chat(usr, span_danger("You added \"[selected_radio_channel]\" channel to [target].")) if(MODIFIY_ROBOT_RADIOC_REMOVE) @@ -258,7 +258,7 @@ target.radio.syndie = 0 target.radio.channels = list() for(var/n_chan in target.module.channels) - target.radio.channels[n_chan] -= target.module.channels[n_chan] + target.radio.channels[n_chan] = target.module.channels[n_chan] radio_controller.remove_object(target.radio, radiochannels[selected_radio_channel]) target.radio.secure_radio_connections -= selected_radio_channel to_chat(usr, span_danger("You removed \"[selected_radio_channel]\" channel from [target].")) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 6fbda3189b4..20d2bde47e3 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -156,9 +156,12 @@ /mob/living/silicon/robot/proc/apply_module(var/datum/robot_sprite/new_datum, var/new_module) icon_selected = TRUE var/module_type = robot_modules[new_module] - modtype = new_module - module = new module_type(src) - feedback_inc("cyborg_[lowertext(new_module)]",1) + if(modtype != new_module || !module) + if(module) + qdel(module) + modtype = new_module + module = new module_type(src) + feedback_inc("cyborg_[lowertext(new_module)]",1) updatename() hud_used.update_robot_modules_display() notify_ai(ROBOT_NOTIFICATION_NEW_MODULE, module.name) diff --git a/code/modules/telesci/gps_advanced.dm b/code/modules/telesci/gps_advanced.dm index 26770531dd2..8c812f0a9b8 100644 --- a/code/modules/telesci/gps_advanced.dm +++ b/code/modules/telesci/gps_advanced.dm @@ -36,7 +36,7 @@ t += "
Set Tag " t += "
Tag: [gps_tag]" - for(var/obj/item/gps/advanced/G in GPS_list) + for(var/obj/item/gps/advanced/G in GLOB.GPS_list) var/turf/pos = get_turf(G) var/area/gps_area = get_area(G) var/tracked_gpstag = G.gps_tag