From 7e33beab0f0b9f880b7739012ad7d1e42c481eca Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Sun, 28 Jun 2015 18:47:06 +0200 Subject: [PATCH] Fixes drone runtime. Spawning drones no longer cause runtimes. Fixes #9909. --- code/game/machinery/camera/presets.dm | 1 + code/modules/mob/living/silicon/robot/drone/drone.dm | 6 ++---- code/modules/mob/living/silicon/robot/robot.dm | 5 ++--- code/modules/mob/living/silicon/robot/robot_modules.dm | 3 ++- code/setup.dm | 1 + 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm index eeaaa03c4f..608b04d95e 100644 --- a/code/game/machinery/camera/presets.dm +++ b/code/game/machinery/camera/presets.dm @@ -11,6 +11,7 @@ var/global/list/station_networks = list( NETWORK_MINE, NETWORK_RESEARCH, NETWORK_RESEARCH_OUTPOST, + NETWORK_ROBOTS, NETWORK_PRISON, NETWORK_SECURITY ) diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index d0215c7015..8a476087eb 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -57,15 +57,13 @@ updateicon() /mob/living/silicon/robot/drone/init() + aiCamera = new/obj/item/device/camera/siliconcam/drone_camera(src) + if(!laws) laws = new law_type if(!module) module = new module_type(src) - aiCamera = new/obj/item/device/camera/siliconcam/drone_camera(src) flavor_text = "It's a tiny little repair drone. The casing is stamped with an NT logo and the subscript: 'NanoTrasen Recursive Repair Systems: Fixing Tomorrow's Problem, Today!'" playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 0) - spawn(1) - if(camera && ("Robots" in camera.network)) - camera.add_network("Engineering") //Redefining some robot procs... /mob/living/silicon/robot/drone/SetName(pickedName as text) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 6d44309f15..bffda0fa98 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -125,15 +125,14 @@ radio = new /obj/item/device/radio/borg(src) common_radio = radio - init() - if(!scrambledcodes && !camera) camera = new /obj/machinery/camera(src) camera.c_tag = real_name - camera.replace_networks(list("SS13","Robots")) + camera.replace_networks(list(NETWORK_EXODUS,NETWORK_ROBOTS)) if(wires.IsIndexCut(BORG_WIRE_CAMERA)) camera.status = 0 + init() initialize_components() //if(!unfinished) // Create all the robot parts. diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 5e6b949a65..a338588df0 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -108,7 +108,7 @@ var/global/list/robot_modules = list( added_languages.Cut() /obj/item/weapon/robot_module/proc/add_camera_networks(var/mob/living/silicon/robot/R) - if(R.camera && "Robots" in R.camera.network) + if(R.camera && (NETWORK_ROBOTS in R.camera.network)) for(var/network in networks) if(!(network in R.camera.network)) R.camera.add_network(network) @@ -646,6 +646,7 @@ var/global/list/robot_modules = list( /obj/item/weapon/robot_module/drone name = "drone module" no_slip = 1 + networks = list(NETWORK_ENGINEERING) /obj/item/weapon/robot_module/drone/New() ..() diff --git a/code/setup.dm b/code/setup.dm index d3a208ec83..3e7277acfd 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -938,6 +938,7 @@ var/list/be_special_flags = list( #define NETWORK_MINE "MINE" #define NETWORK_RESEARCH "Research" #define NETWORK_RESEARCH_OUTPOST "Research Outpost" +#define NETWORK_ROBOTS "Robots" #define NETWORK_PRISON "Prison" #define NETWORK_SECURITY "Security" #define NETWORK_TELECOM "Tcomsat"