diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm index 1f3aae999d..feea5bff52 100644 --- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm +++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm @@ -138,7 +138,7 @@ obj/machinery/atmospherics/binary/passive_gate if(!src.allowed(user)) user << "\red Access denied." return - usr.machine = src + usr.set_machine(src) interact(user) return @@ -149,7 +149,7 @@ obj/machinery/atmospherics/binary/passive_gate if(href_list["set_press"]) var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",src.target_pressure) as num src.target_pressure = max(0, min(4500, new_pressure)) - usr.machine = src + usr.set_machine(src) src.update_icon() src.updateUsrDialog() return diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm index 03c5ec3eee..71cde943ea 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm @@ -150,7 +150,7 @@ obj/machinery/atmospherics/binary/pump if(!src.allowed(user)) user << "\red Access denied." return - usr.machine = src + usr.set_machine(src) interact(user) return @@ -161,7 +161,7 @@ obj/machinery/atmospherics/binary/pump if(href_list["set_press"]) var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",src.target_pressure) as num src.target_pressure = max(0, min(4500, new_pressure)) - usr.machine = src + usr.set_machine(src) src.update_icon() src.updateUsrDialog() return diff --git a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm index c04a927fc4..e52f89e218 100644 --- a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm @@ -147,7 +147,7 @@ obj/machinery/atmospherics/binary/volume_pump if(!src.allowed(user)) user << "\red Access denied." return - usr.machine = src + usr.set_machine(src) interact(user) return @@ -158,7 +158,7 @@ obj/machinery/atmospherics/binary/volume_pump if(href_list["set_transfer_rate"]) var/new_transfer_rate = input(usr,"Enter new output volume (0-200l/s)","Flow control",src.transfer_rate) as num src.transfer_rate = max(0, min(200, new_transfer_rate)) - usr.machine = src + usr.set_machine(src) src.update_icon() src.updateUsrDialog() return diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm index 55b0a19516..a2d72ca523 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm @@ -211,7 +211,7 @@ obj/machinery/atmospherics/trinary/filter/attack_hand(user as mob) // -- TLE obj/machinery/atmospherics/trinary/filter/Topic(href, href_list) // -- TLE if(..()) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) if(href_list["filterset"]) src.filter_type = text2num(href_list["filterset"]) diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm index 026c3531fd..69307784a9 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm @@ -112,7 +112,7 @@ obj/machinery/atmospherics/trinary/mixer if(!src.allowed(user)) user << "\red Access denied." return - usr.machine = src + usr.set_machine(src) var/dat = {"Power: [on?"On":"Off"]
Desirable output pressure: [target_pressure]kPa | Change diff --git a/code/FEA/FEA_airgroup.dm b/code/FEA/FEA_airgroup.dm index 00a6afc394..67b5c75756 100644 --- a/code/FEA/FEA_airgroup.dm +++ b/code/FEA/FEA_airgroup.dm @@ -90,7 +90,8 @@ datum/air_group if (next_check > 0) next_check-- return 1 - next_check += check_delay + rand(max(check_delay, 1)/2,check_delay) + var/player_count = max(player_list.len, 3) / 3 + next_check += check_delay + rand(player_count, player_count * 1.5) check_delay++ var/turf/simulated/list/border_individual = list() diff --git a/code/FEA/FEA_turf_tile.dm b/code/FEA/FEA_turf_tile.dm index d043e34824..1fd6aaf715 100644 --- a/code/FEA/FEA_turf_tile.dm +++ b/code/FEA/FEA_turf_tile.dm @@ -304,7 +304,8 @@ turf if (next_check > 0) next_check-- return 1 - next_check += check_delay + rand(max(check_delay, 1)/2,check_delay) + var/player_count = max(player_list.len, 3) / 3 + next_check += check_delay + rand(player_count, player_count * 1.5) check_delay++ var/turf/simulated/list/possible_fire_spreads = list() diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index f6b522f631..3e693ad9a2 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -587,7 +587,7 @@ Turf and target are seperate in case you want to teleport some distance from a t // so just reset the user mob's machine var if(src && src.mob) //world << "[src] was [src.mob.machine], setting to null" - src.mob.machine = null + src.mob.unset_machine() return //Will return the location of the turf an atom is ultimatly sitting on diff --git a/code/datums/diseases/alien_embryo.dm b/code/datums/diseases/alien_embryo.dm index 1e01cffe97..16fa9754ff 100644 --- a/code/datums/diseases/alien_embryo.dm +++ b/code/datums/diseases/alien_embryo.dm @@ -91,15 +91,15 @@ Des: Removes all infection images from aliens and places an infection image on a ----------------------------------------*/ /datum/disease/alien_embryo/proc/RefreshInfectionImage() spawn(0) - for (var/mob/living/carbon/alien/alien in world) + for (var/mob/living/carbon/alien/alien in player_list) if (alien.client) for(var/image/I in alien.client.images) if(I.icon_state == "infected") del(I) - for (var/mob/living/carbon/alien/alien in world) + for (var/mob/living/carbon/alien/alien in player_list) if (alien.client) - for (var/mob/living/carbon/C in world) + for (var/mob/living/carbon/C in mob_list) if(C) if (C.status_flags & XENO_HOST) var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected") @@ -112,7 +112,7 @@ Des: Checks if the passed mob (C) is infected with the alien egg, then gives eac ----------------------------------------*/ /datum/disease/alien_embryo/proc/AddInfectionImages(var/mob/living/carbon/C) if (C) - for (var/mob/living/carbon/alien/alien in world) + for (var/mob/living/carbon/alien/alien in player_list) if (alien.client) if (C.status_flags & XENO_HOST) var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected") @@ -126,7 +126,7 @@ Des: Removes the alien infection image from all aliens in the world located in p /datum/disease/alien_embryo/proc/RemoveInfectionImages(var/mob/living/carbon/C) if (C) - for (var/mob/living/carbon/alien/alien in world) + for (var/mob/living/carbon/alien/alien in player_list) if (alien.client) for(var/image/I in alien.client.images) if(I.loc == C) diff --git a/code/game/dna.dm b/code/game/dna.dm index 0ea61c118e..b107f962ae 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -907,7 +907,7 @@ if(!src || !src.connected) return if ((usr.contents.Find(src) || in_range(src, usr) && istype(src.loc, /turf)) || (istype(usr, /mob/living/silicon))) - usr.machine = src + usr.set_machine(src) if (href_list["locked"]) if ((src.connected && src.connected.occupant)) src.connected.locked = !( src.connected.locked ) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index fd423f382f..8d624b2c46 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -46,7 +46,7 @@ /obj/machinery/nuclearbomb/attack_hand(mob/user as mob) if (src.extended) - user.machine = src + user.set_machine(src) var/dat = text("Nuclear Fission Explosive
\nAuth. Disk: []
", src, (src.auth ? "++++++++++" : "----------")) if (src.auth) if (src.yes_code) @@ -91,7 +91,7 @@ usr << "\red You don't have the dexterity to do this!" return 1 if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf)))) - usr.machine = src + usr.set_machine(src) if (href_list["auth"]) if (src.auth) src.auth.loc = src.loc diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index 8f6e9a7bcc..c6924d0335 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -267,7 +267,7 @@ . = ..() /obj/item/weapon/pinpointer/attack_self(mob/user as mob) - user.machine = src + user.set_machine(src) var/dat if (src.temp) dat = "[src.temp]

Clear" @@ -298,7 +298,7 @@ return if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf)))) - usr.machine = src + usr.set_machine(src) if (href_list["refresh"]) src.temp = "Nuclear Disk Pinpointer
" var/turf/sr = get_turf(src) diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index 4fcfe38ba9..66fc0330fc 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -39,7 +39,7 @@ attack_self(mob/user) if (!in_range(src, user)) return - user.machine = src + user.set_machine(src) var/dat = "Soul Stone
" for(var/mob/living/simple_animal/shade/A in src) dat += "Captured Soul: [A.name]
" @@ -57,16 +57,16 @@ var/mob/U = usr if (!in_range(src, U)||U.machine!=src) U << browse(null, "window=aicard") - U.machine = null + U.unset_machine() return add_fingerprint(U) - U.machine = src + U.set_machine(src) switch(href_list["choice"])//Now we switch based on choice. if ("Close") U << browse(null, "window=aicard") - U.machine = null + U.unset_machine() return if ("Summon") diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index d61461f289..043954f917 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -2,7 +2,7 @@ //SPELL BOOK PROCS /obj/item/weapon/spellbook/attack_self(mob/user as mob) - user.machine = src + user.set_machine(src) var/dat if (src.temp) dat = "[src.temp]

Clear" @@ -53,7 +53,7 @@ if (!( istype(H, /mob/living/carbon/human))) return 1 if ((usr.contents.Find(src) || (in_range(src,usr) && istype(src.loc, /turf)))) - usr.machine = src + usr.set_machine(src) if(href_list["spell_choice"]) if(src.uses >= 1 && src.max_uses >=1 && text2num(href_list["spell_choice"]) < 18) src.uses-- diff --git a/code/game/machinery/Freezer.dm b/code/game/machinery/Freezer.dm index f082eb4160..319c7a8900 100644 --- a/code/game/machinery/Freezer.dm +++ b/code/game/machinery/Freezer.dm @@ -42,7 +42,7 @@ return src.attack_hand(user) attack_hand(mob/user as mob) - user.machine = src + user.set_machine(src) var/temp_text = "" if(air_contents.temperature > (T0C - 20)) temp_text = "[air_contents.temperature]" @@ -63,7 +63,7 @@ Topic(href, href_list) if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai))) - usr.machine = src + usr.set_machine(src) if (href_list["start"]) src.on = !src.on update_icon() @@ -128,7 +128,7 @@ return src.attack_hand(user) attack_hand(mob/user as mob) - user.machine = src + user.set_machine(src) var/temp_text = "" if(air_contents.temperature > (T20C+40)) temp_text = "[air_contents.temperature]" @@ -147,7 +147,7 @@ Topic(href, href_list) if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai))) - usr.machine = src + usr.set_machine(src) if (href_list["start"]) src.on = !src.on update_icon() diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index a1eb4f21a5..9994d29a78 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -84,7 +84,7 @@ if(..()) return if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai))) - usr.machine = src + usr.set_machine(src) if (src.connected) if (src.connected.occupant) if(src.connected.occupant.health > 0) diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm index ca07a4c98b..4df9f2a5a8 100644 --- a/code/game/machinery/ai_slipper.dm +++ b/code/game/machinery/ai_slipper.dm @@ -39,7 +39,7 @@ user << "You [ locked ? "lock" : "unlock"] the device." if (locked) if (user.machine==src) - user.machine = null + user.unset_machine() user << browse(null, "window=ai_slipper") else if (user.machine==src) @@ -58,11 +58,11 @@ if ( (get_dist(src, user) > 1 )) if (!istype(user, /mob/living/silicon)) user << text("Too far away.") - user.machine = null + user.unset_machine() user << browse(null, "window=ai_slipper") return - user.machine = src + user.set_machine(src) var/loc = src.loc if (istype(loc, /turf)) loc = loc:loc diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index dad383d0d0..2884f1a470 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -176,11 +176,11 @@ . = ..() if (.) return - user.machine = src + user.set_machine(src) if ( (get_dist(src, user) > 1 )) if (!istype(user, /mob/living/silicon)) - user.machine = null + user.unset_machine() user << browse(null, "window=air_alarm") user << browse(null, "window=AAlarmwires") return @@ -715,11 +715,11 @@ table tr:first-child th:first-child { border: none;} if(..()) return src.add_fingerprint(usr) - usr.machine = src + usr.set_machine(src) if ( (get_dist(src, usr) > 1 )) if (!istype(usr, /mob/living/silicon)) - usr.machine = null + usr.unset_machine() usr << browse(null, "window=air_alarm") usr << browse(null, "window=AAlarmwires") return @@ -1079,7 +1079,7 @@ table tr:first-child th:first-child { border: none;} if(user.stat || stat & (NOPOWER|BROKEN)) return - user.machine = src + user.set_machine(src) var/area/A = src.loc var/d1 var/d2 @@ -1121,7 +1121,7 @@ table tr:first-child th:first-child { border: none;} if (usr.stat || stat & (BROKEN|NOPOWER)) return if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) - usr.machine = src + usr.set_machine(src) if (href_list["reset"]) src.reset() else @@ -1174,7 +1174,7 @@ table tr:first-child th:first-child { border: none;} if(user.stat || stat & (NOPOWER|BROKEN)) return - user.machine = src + user.set_machine(src) var/area/A = src.loc var/d1 var/d2 @@ -1236,7 +1236,7 @@ table tr:first-child th:first-child { border: none;} if (usr.stat || stat & (BROKEN|NOPOWER)) return if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai))) - usr.machine = src + usr.set_machine(src) if (href_list["reset"]) src.reset() else diff --git a/code/game/machinery/atmo_control.dm b/code/game/machinery/atmo_control.dm index 582054c1a9..94861257b5 100644 --- a/code/game/machinery/atmo_control.dm +++ b/code/game/machinery/atmo_control.dm @@ -88,7 +88,7 @@ obj/machinery/computer/general_air_control attack_hand(mob/user) user << browse(return_text(),"window=computer") - user.machine = src + user.set_machine(src) onclose(user, "computer") process() diff --git a/code/game/machinery/atmoalter/area_atmos_computer.dm b/code/game/machinery/atmoalter/area_atmos_computer.dm index 474f41614e..c6a5e8f2ce 100644 --- a/code/game/machinery/atmoalter/area_atmos_computer.dm +++ b/code/game/machinery/atmoalter/area_atmos_computer.dm @@ -87,7 +87,7 @@ Topic(href, href_list) if(..()) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 05329f5321..910651cfb6 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -202,7 +202,7 @@ if (src.destroyed) return - user.machine = src + user.set_machine(src) var/holding_text if(holding) holding_text = {"
Tank Pressure: [holding.air_contents.return_pressure()] KPa
@@ -232,7 +232,7 @@ Release Pressure: - - - [src.oddbutton ? "Yes" : "No" /obj/machinery/bot/cleanbot/Topic(href, href_list) if(..()) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) switch(href_list["operation"]) if("start") diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index 897b70f181..0e5de4e4fc 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -150,7 +150,7 @@ Auto Patrol: []"}, /obj/machinery/bot/ed209/Topic(href, href_list) if (..()) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) if(lasercolor && (istype(usr,/mob/living/carbon/human))) var/mob/living/carbon/human/H = usr diff --git a/code/game/machinery/bots/floorbot.dm b/code/game/machinery/bots/floorbot.dm index f7c923e8e8..cf62b15bb0 100644 --- a/code/game/machinery/bots/floorbot.dm +++ b/code/game/machinery/bots/floorbot.dm @@ -72,7 +72,7 @@ . = ..() if (.) return - usr.machine = src + usr.set_machine(src) interact(user) /obj/machinery/bot/floorbot/proc/interact(mob/user as mob) @@ -131,7 +131,7 @@ /obj/machinery/bot/floorbot/Topic(href, href_list) if(..()) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) switch(href_list["operation"]) if("start") diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index 47deb367b4..3f27b87df3 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -135,7 +135,7 @@ /obj/machinery/bot/medbot/Topic(href, href_list) if(..()) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) if ((href_list["power"]) && (src.allowed(usr))) if (src.on) diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index 18bf3f4a35..5785194a47 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -192,14 +192,14 @@ /obj/machinery/bot/mulebot/attack_ai(var/mob/user) - user.machine = src + user.set_machine(src) interact(user, 1) /obj/machinery/bot/mulebot/attack_hand(var/mob/user) . = ..() if (.) return - user.machine = src + user.set_machine(src) interact(user, 0) /obj/machinery/bot/mulebot/proc/interact(var/mob/user, var/ai=0) @@ -290,7 +290,7 @@ if (usr.stat) return if ((in_range(src, usr) && istype(src.loc, /turf)) || (istype(usr, /mob/living/silicon))) - usr.machine = src + usr.set_machine(src) switch(href_list["op"]) if("lock", "unlock") @@ -390,7 +390,7 @@ auto_pickup = !auto_pickup if("close") - usr.machine = null + usr.unset_machine() usr << browse(null,"window=mulebot") @@ -429,7 +429,7 @@ //src.updateUsrDialog() else usr << browse(null, "window=mulebot") - usr.machine = null + usr.unset_machine() return diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index aea9d681e8..c5b298ef48 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -99,7 +99,7 @@ . = ..() if(.) return - usr.machine = src + usr.set_machine(src) interact(user) /obj/machinery/bot/secbot/proc/interact(mob/user as mob) @@ -131,7 +131,7 @@ Auto Patrol: []"}, return /obj/machinery/bot/secbot/Topic(href, href_list) - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) if((href_list["power"]) && (src.allowed(usr))) if(src.on) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 2f8bad4bb1..ba54110421 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -66,7 +66,7 @@ if (istype(O.machine, /obj/machinery/computer/security)) var/obj/machinery/computer/security/S = O.machine if (S.current == src) - O.machine = null + O.unset_machine() O.reset_view(null) O << "The screen bursts into static." ..() @@ -194,7 +194,7 @@ if (istype(O.machine, /obj/machinery/computer/security)) var/obj/machinery/computer/security/S = O.machine if (S.current == src) - O.machine = null + O.unset_machine() O.reset_view(null) O << "The screen bursts into static." diff --git a/code/game/machinery/camera/wires.dm b/code/game/machinery/camera/wires.dm index 3145a5d156..4e274c6da6 100644 --- a/code/game/machinery/camera/wires.dm +++ b/code/game/machinery/camera/wires.dm @@ -102,7 +102,7 @@ if(!panel_open) return - user.machine = src + user.set_machine(src) var/t1 = text("Access Panel
\n") var/list/wires = list( "Orange" = 1, @@ -136,7 +136,7 @@ /obj/machinery/camera/Topic(href, href_list) ..() if (in_range(src, usr) && istype(src.loc, /turf)) - usr.machine = src + usr.set_machine(src) if (href_list["wires"]) var/t1 = text2num(href_list["wires"]) if (!( istype(usr.get_active_hand(), /obj/item/weapon/wirecutters) )) @@ -158,7 +158,7 @@ src.pulse(t1) else if (href_list["close2"]) usr << browse(null, "window=wires") - usr.machine = null + usr.unset_machine() return diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index 8c026ee256..e6626098e9 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -20,7 +20,7 @@ if(..()) return - user.machine = src + user.set_machine(src) var/dat @@ -63,7 +63,7 @@ if(..()) return if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) - usr.machine = src + usr.set_machine(src) if(href_list["emptycourt"]) target = locate(/area/holodeck/source_emptycourt) diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm index fad56a7e8f..04df02260a 100644 --- a/code/game/machinery/computer/Operating.dm +++ b/code/game/machinery/computer/Operating.dm @@ -33,11 +33,11 @@ /obj/machinery/computer/operating/proc/interact(mob/user) if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) if (!istype(user, /mob/living/silicon)) - user.machine = null + user.unset_machine() user << browse(null, "window=op") return - user.machine = src + user.set_machine(src) var/dat = "Operating Computer\n" dat += "
Close

" //| Update" if(src.table && (src.table.check_victim())) @@ -71,7 +71,7 @@ if(..()) return if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) - usr.machine = src + usr.set_machine(src) return diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index ef8dae63eb..783e88b57b 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -68,7 +68,7 @@ user << "\red ERROR: \black Remote access channel disabled." return - user.machine = src + user.set_machine(src) var/dat = "

AI System Integrity Restorer



" if (src.occupant) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 479edbc984..5ab536c2aa 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -61,7 +61,7 @@ /obj/machinery/computer/arcade/attack_hand(mob/user as mob) if(..()) return - user.machine = src + user.set_machine(src) var/dat = "Close" dat += "

[src.enemy_name]

" @@ -126,7 +126,7 @@ src.arcade_action() if (href_list["close"]) - usr.machine = null + usr.unset_machine() usr << browse(null, "window=arcade") else if (href_list["newgame"]) //Reset everything diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index 08afdb2677..a367e61317 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -41,7 +41,7 @@ attack_hand(mob/user) user << browse(return_text(),"window=computer") - user.machine = src + user.set_machine(src) onclose(user, "computer") process() diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 17014060e8..0a34785be2 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -34,7 +34,7 @@ if(stat & (NOPOWER|BROKEN)) return if(!isAI(user)) - user.machine = src + user.set_machine(src) var/list/L = list() for (var/obj/machinery/camera/C in cameranet.cameras) @@ -50,13 +50,13 @@ var/t = input(user, "Which camera should you change to?") as null|anything in D if(!t) - user.machine = null + user.unset_machine() return 0 var/obj/machinery/camera/C = D[t] if(t == "Cancel") - user.machine = null + user.unset_machine() return 0 if(C) diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 1415497fba..f686e405e9 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -46,7 +46,7 @@ if(..()) return - user.machine = src + user.set_machine(src) var/dat if (!( ticker )) return @@ -171,7 +171,7 @@ /obj/machinery/computer/card/Topic(href, href_list) if(..()) return - usr.machine = src + usr.set_machine(src) switch(href_list["choice"]) if ("modify") if (modify) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 3f7c20d324..e386b165ae 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -155,7 +155,7 @@ return attack_hand(user) /obj/machinery/computer/cloning/attack_hand(mob/user as mob) - user.machine = src + user.set_machine(src) add_fingerprint(user) if(stat & (BROKEN|NOPOWER)) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 1d7fccfc40..11503bece4 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -46,7 +46,7 @@ if (src.z > 6) usr << "\red Unable to establish a connection: \black You're too far away from the station!" return - usr.machine = src + usr.set_machine(src) if(!href_list["operation"]) return @@ -281,7 +281,7 @@ user << "\red Unable to establish a connection: \black You're too far away from the station!" return - user.machine = src + user.set_machine(src) var/dat = "Communications Console" if (emergency_shuttle.online && emergency_shuttle.location==0) var/timeleft = emergency_shuttle.timeleft() diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index b1df0eca0d..94e42afbc3 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -46,7 +46,7 @@ return if( href_list["close"] ) usr << browse(null, "window=crewcomp") - usr.machine = null + usr.unset_machine() return if(href_list["update"]) src.updateDialog() @@ -57,10 +57,10 @@ interact(mob/user) if( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) if(!istype(user, /mob/living/silicon)) - user.machine = null + user.unset_machine() user << browse(null, "window=powcomp") return - user.machine = src + user.set_machine(src) src.scan() var/t = "Crew Monitoring
" t += "
Refresh " diff --git a/code/game/machinery/computer/hologram.dm b/code/game/machinery/computer/hologram.dm index da6214e61f..e57aa56fe7 100644 --- a/code/game/machinery/computer/hologram.dm +++ b/code/game/machinery/computer/hologram.dm @@ -46,7 +46,7 @@ /obj/machinery/computer/hologram_comp/proc/show_console(var/mob/user as mob) var/dat - user.machine = src + user.set_machine(src) if (src.temp) dat = text("[]

Clear", src.temp, src) else diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 9a29181558..e7df419827 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -111,7 +111,7 @@ if (!( data_core.medical.Find(src.active2) )) src.active2 = null if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) - usr.machine = src + usr.set_machine(src) if (href_list["temp"]) src.temp = null if (href_list["scan"]) diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index f4b1b1c8cb..9eb6446aab 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -118,7 +118,7 @@ return var/dat = "[title]" - user.machine = src + user.set_machine(src) if(connected) var/d2 if(timing) //door controls do not need timers. @@ -162,7 +162,7 @@ if(..()) return if((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon))) - usr.machine = src + usr.set_machine(src) if(href_list["power"]) var/t = text2num(href_list["power"]) t = min(max(0.25, t), 16) diff --git a/code/game/machinery/computer/power.dm b/code/game/machinery/computer/power.dm index 39d6fe4b31..7f1d6d2514 100644 --- a/code/game/machinery/computer/power.dm +++ b/code/game/machinery/computer/power.dm @@ -72,12 +72,12 @@ if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) if (!istype(user, /mob/living/silicon)) - user.machine = null + user.unset_machine() user << browse(null, "window=powcomp") return - user.machine = src + user.set_machine(src) var/t = "Power Monitoring
" t += "

Refresh" @@ -119,7 +119,7 @@ ..() if( href_list["close"] ) usr << browse(null, "window=powcomp") - usr.machine = null + usr.unset_machine() return if( href_list["update"] ) src.updateDialog() diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm index 756f610fb8..ab71f3809e 100644 --- a/code/game/machinery/computer/prisoner.dm +++ b/code/game/machinery/computer/prisoner.dm @@ -25,7 +25,7 @@ attack_hand(var/mob/user as mob) if(..()) return - user.machine = src + user.set_machine(src) var/dat dat += "Prisoner Implant Manager System
" if(screen == 0) @@ -74,7 +74,7 @@ if(..()) return if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) - usr.machine = src + usr.set_machine(src) if(href_list["inject1"]) var/obj/item/weapon/implant/I = locate(href_list["inject1"]) diff --git a/code/game/machinery/computer/prisonshuttle.dm b/code/game/machinery/computer/prisonshuttle.dm index e6e74610e8..ae64595db7 100644 --- a/code/game/machinery/computer/prisonshuttle.dm +++ b/code/game/machinery/computer/prisonshuttle.dm @@ -72,7 +72,7 @@ var/prison_shuttle_timeleft = 0 return if(..()) return - user.machine = src + user.set_machine(src) post_signal("prison") var/dat if (src.temp) @@ -93,7 +93,7 @@ var/prison_shuttle_timeleft = 0 return if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) - usr.machine = src + usr.set_machine(src) if (href_list["sendtodock"]) if (!prison_can_move()) diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 31d77f6362..437c7f60c4 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -31,7 +31,7 @@ if (src.z > 6) user << "\red Unable to establish a connection: \black You're too far away from the station!" return - user.machine = src + user.set_machine(src) var/dat if (src.temp) dat = "[src.temp]

Clear Screen" @@ -104,7 +104,7 @@ if(..()) return if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) - usr.machine = src + usr.set_machine(src) if (href_list["eject"]) src.temp = {"Destroy Robots?
diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 810821515f..3ae07fcc31 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -187,7 +187,7 @@ What a mess.*/ if (!( data_core.security.Find(active2) )) active2 = null if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon))) - usr.machine = src + usr.set_machine(src) switch(href_list["choice"]) // SORTING! if("Sorting") diff --git a/code/game/machinery/computer/specops_shuttle.dm b/code/game/machinery/computer/specops_shuttle.dm index e5f1aa0619..f9b8809847 100644 --- a/code/game/machinery/computer/specops_shuttle.dm +++ b/code/game/machinery/computer/specops_shuttle.dm @@ -186,7 +186,7 @@ var/specops_shuttle_timeleft = 0 if(..()) return - user.machine = src + user.set_machine(src) var/dat if (temp) dat = temp @@ -205,7 +205,7 @@ var/specops_shuttle_timeleft = 0 return if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon))) - usr.machine = src + usr.set_machine(src) if (href_list["sendtodock"]) if(!specops_shuttle_at_station|| specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm index ba3eb12ec1..5cc5b7aae9 100644 --- a/code/game/machinery/computer/station_alert.dm +++ b/code/game/machinery/computer/station_alert.dm @@ -24,7 +24,7 @@ proc/interact(mob/user) - usr.machine = src + usr.set_machine(src) var/dat = "Current Station Alerts\n" dat += "Close

" for (var/cat in src.alarms) diff --git a/code/game/machinery/computer/syndicate_shuttle.dm b/code/game/machinery/computer/syndicate_shuttle.dm index 4bf3d07b98..e62418267d 100644 --- a/code/game/machinery/computer/syndicate_shuttle.dm +++ b/code/game/machinery/computer/syndicate_shuttle.dm @@ -153,7 +153,7 @@ var/bomb_set = 1 if(..()) return - user.machine = src + user.set_machine(src) var/dat if (src.temp) dat = src.temp @@ -172,7 +172,7 @@ var/bomb_set = 1 return if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) - usr.machine = src + usr.set_machine(src) if (href_list["sendtospace"]) if(!syndicate_station_at_station|| syndicate_station_moving_to_station || syndicate_station_moving_to_space) return diff --git a/code/game/machinery/computer/syndicate_specops_shuttle.dm b/code/game/machinery/computer/syndicate_specops_shuttle.dm index a057a670cc..ef2f96ab28 100644 --- a/code/game/machinery/computer/syndicate_specops_shuttle.dm +++ b/code/game/machinery/computer/syndicate_specops_shuttle.dm @@ -199,7 +199,7 @@ var/syndicate_elite_shuttle_timeleft = 0 if(..()) return - user.machine = src + user.set_machine(src) var/dat if (temp) dat = temp @@ -218,7 +218,7 @@ var/syndicate_elite_shuttle_timeleft = 0 return if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon))) - usr.machine = src + usr.set_machine(src) if (href_list["sendtodock"]) if(!syndicate_elite_shuttle_at_station|| syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership) return diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 3fbb649198..c9f64e9f58 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -63,7 +63,7 @@ return /obj/machinery/atmospherics/unary/cryo_cell/attack_hand(mob/user as mob) - user.machine = src + user.set_machine(src) var/beaker_text = "" var/health_text = "" var/temp_text = "" @@ -90,7 +90,7 @@ [beaker_text]

Current occupant: [occupant ? "
Name: [occupant]
Health: [health_text]
Oxygen deprivation: [round(occupant.getOxyLoss(),0.1)]
Brute damage: [round(occupant.getBruteLoss(),0.1)]
Fire damage: [round(occupant.getFireLoss(),0.1)]
Toxin damage: [round(occupant.getToxLoss(),0.1)]
Body temperature: [occupant.bodytemperature]" : "None"]
"} - user.machine = src + user.set_machine(src) user << browse(dat, "window=cryo") onclose(user, "cryo") diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 5d808d5485..b695f77e4f 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -680,7 +680,7 @@ About the new airlock wires panel: user << "Airlock AI control has been blocked with a firewall. Unable to hack." //Separate interface for the AI. - user.machine = src + user.set_machine(src) var/t1 = text("Airlock Control
\n") if(src.secondsMainPowerLost > 0) if((!src.isWireCut(AIRLOCK_WIRE_MAIN_POWER1)) && (!src.isWireCut(AIRLOCK_WIRE_MAIN_POWER2))) @@ -855,7 +855,7 @@ About the new airlock wires panel: return if(src.p_open) - user.machine = src + user.set_machine(src) var/t1 = text("Access Panel
\n") //t1 += text("[]: ", airlockFeatureNames[airlockWireColorToIndex[9]]) @@ -908,11 +908,11 @@ About the new airlock wires panel: if(href_list["close"]) usr << browse(null, "window=airlock") if(usr.machine==src) - usr.machine = null + usr.unset_machine() return if((in_range(src, usr) && istype(src.loc, /turf)) && src.p_open) - usr.machine = src + usr.set_machine(src) if(href_list["wires"]) var/t1 = text2num(href_list["wires"]) if(!( istype(usr.get_active_hand(), /obj/item/weapon/wirecutters) )) diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index 867244191e..ecd710ab4e 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -132,7 +132,7 @@ return var/second = round(timeleft() % 60) var/minute = round((timeleft() - second) / 60) - user.machine = src + user.set_machine(src) var/dat = "" dat += "
Timer System:" dat += "Door [src.id] controls
" @@ -169,7 +169,7 @@ if(!src.allowed(usr)) return - usr.machine = src + usr.set_machine(src) if(href_list["timing"]) src.timing = text2num(href_list["timing"]) else diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm index 5af17e377e..bb991c0e1d 100644 --- a/code/game/machinery/embedded_controller/embedded_controller_base.dm +++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm @@ -29,7 +29,7 @@ obj/machinery/embedded_controller attack_hand(mob/user) user << browse(return_text(), "window=computer") - user.machine = src + user.set_machine(src) onclose(user, "computer") update_icon() @@ -53,7 +53,7 @@ obj/machinery/embedded_controller program.receive_user_command(href_list["command"]) spawn(5) program.process() - usr.machine = src + usr.set_machine(src) spawn(5) src.updateDialog() process() diff --git a/code/game/machinery/kitchen/juicer.dm b/code/game/machinery/kitchen/juicer.dm index 3d81185698..88014be32a 100644 --- a/code/game/machinery/kitchen/juicer.dm +++ b/code/game/machinery/kitchen/juicer.dm @@ -59,7 +59,7 @@ return 0 /obj/machinery/juicer/attack_hand(mob/user as mob) - user.machine = src + user.set_machine(src) interact(user) /obj/machinery/juicer/proc/interact(mob/user as mob) // The microwave Menu @@ -105,7 +105,7 @@ /obj/machinery/juicer/Topic(href, href_list) if(..()) return - usr.machine = src + usr.set_machine(src) switch(href_list["action"]) if ("juice") juice() diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm index a6ae5d3efe..e5fc9e8be0 100644 --- a/code/game/machinery/kitchen/microwave.dm +++ b/code/game/machinery/kitchen/microwave.dm @@ -139,7 +139,7 @@ return 0 /obj/machinery/microwave/attack_hand(mob/user as mob) - user.machine = src + user.set_machine(src) interact(user) /******************* @@ -357,7 +357,7 @@ if(..()) return - usr.machine = src + usr.set_machine(src) if(src.operating) src.updateUsrDialog() return diff --git a/code/game/machinery/kitchen/smartfridge.dm b/code/game/machinery/kitchen/smartfridge.dm index 62cf17cd7a..45f18cab29 100644 --- a/code/game/machinery/kitchen/smartfridge.dm +++ b/code/game/machinery/kitchen/smartfridge.dm @@ -82,7 +82,7 @@ return 0 /obj/machinery/smartfridge/attack_hand(mob/user as mob) - user.machine = src + user.set_machine(src) interact(user) /******************* @@ -115,7 +115,7 @@ if(..()) return - usr.machine = src + usr.set_machine(src) var/N = href_list["vend"] diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm index 79d6d06924..a2dd432d99 100644 --- a/code/game/machinery/magnet.dm +++ b/code/game/machinery/magnet.dm @@ -249,7 +249,7 @@ attack_hand(mob/user as mob) if(stat & (BROKEN|NOPOWER)) return - user.machine = src + user.set_machine(src) var/dat = "Magnetic Control Console

" if(!autolink) dat += {" @@ -277,7 +277,7 @@ Topic(href, href_list) if(stat & (BROKEN|NOPOWER)) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) if(href_list["radio-op"]) diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm index bc69c11a00..c5ee41c4cf 100644 --- a/code/game/machinery/navbeacon.dm +++ b/code/game/machinery/navbeacon.dm @@ -186,7 +186,7 @@ Transponder Codes:
    "} return if ((in_range(src, usr) && istype(src.loc, /turf)) || (istype(usr, /mob/living/silicon))) if(open && !locked) - usr.machine = src + usr.set_machine(src) if (href_list["freq"]) freq = sanitize_frequency(freq + text2num(href_list["freq"])) diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 5bbb1b26d1..823207e001 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -414,7 +414,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co if(..()) return if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) - usr.machine = src + usr.set_machine(src) if(href_list["set_channel_name"]) src.channel_name = strip_html_simple(input(usr, "Provide a Feed Channel Name", "Network Channel Handler", "")) while (findtext(src.channel_name," ") == 1) @@ -810,7 +810,7 @@ obj/item/weapon/newspaper/Topic(href, href_list) var/mob/living/U = usr ..() if ((src in U.contents) || ( istype(loc, /turf) && in_range(src, U) )) - U.machine = src + U.set_machine(src) if(href_list["next_page"]) if(curr_page==src.pages+1) return //Don't need that at all, but anyway. diff --git a/code/game/machinery/overview.dm b/code/game/machinery/overview.dm index f4f7dfade5..35954c0c8b 100644 --- a/code/game/machinery/overview.dm +++ b/code/game/machinery/overview.dm @@ -4,7 +4,7 @@ set name = ".map" set category = "Object" set src in view(1) - usr.machine = src + usr.set_machine(src) if(!mapping) return log_game("[usr]([usr.key]) used station map L[z] in [src.loc.loc]") @@ -356,5 +356,5 @@ proc/getb(col) del(O) mapobjs = null - src.machine = null + src.unset_machine() diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index b0d60929ab..d5da74c569 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -50,7 +50,7 @@ if(unwrenched || !usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) usr << browse(null, "window=pipedispenser") return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) if(href_list["make"]) if(!wait) @@ -160,7 +160,7 @@ Nah /obj/machinery/pipedispenser/disposal/Topic(href, href_list) if(..()) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) if(href_list["dmake"]) if(unwrenched || !usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index f16f1ee81e..8449218845 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -234,7 +234,7 @@ Status: []
    "}, /obj/machinery/porta_turret/Topic(href, href_list) if (..()) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) if ((href_list["power"]) && (src.allowed(usr))) if(anchored) // you can't turn a turret on/off if it's not anchored/secured @@ -987,7 +987,7 @@ Status: []
    "}, /obj/machinery/porta_turret_cover/Topic(href, href_list) if (..()) return - usr.machine = src + usr.set_machine(src) Parent_Turret.add_fingerprint(usr) src.add_fingerprint(usr) if ((href_list["power"]) && (Parent_Turret.allowed(usr))) diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 84c6d917e8..b294cf026e 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -197,7 +197,7 @@ var/list/obj/machinery/requests_console/allConsoles = list() /obj/machinery/requests_console/Topic(href, href_list) if(..()) return - usr.machine = src + usr.set_machine(src) add_fingerprint(usr) if(reject_bad_text(href_list["write"])) diff --git a/code/game/machinery/robot_fabricator.dm b/code/game/machinery/robot_fabricator.dm index d2a1f9f863..3d185e47d7 100644 --- a/code/game/machinery/robot_fabricator.dm +++ b/code/game/machinery/robot_fabricator.dm @@ -75,7 +75,7 @@ Please wait until completion...

    if (..()) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) if (href_list["make"]) diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index a645744232..09b89a8385 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -69,7 +69,7 @@ update_icon() if(!open && user.machine == src) user << browse(null, "window=spaceheater") - user.machine = null + user.unset_machine() else ..() return @@ -94,7 +94,7 @@ dat += " [set_temperature]°C " dat += "+
    " - user.machine = src + user.set_machine(src) user << browse("Space Heater Control Panel[dat]", "window=spaceheater") onclose(user, "spaceheater") @@ -112,7 +112,7 @@ if (usr.stat) return if ((in_range(src, usr) && istype(src.loc, /turf)) || (istype(usr, /mob/living/silicon))) - usr.machine = src + usr.set_machine(src) switch(href_list["op"]) @@ -145,7 +145,7 @@ updateDialog() else usr << browse(null, "window=spaceheater") - usr.machine = null + usr.unset_machine() return diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index 2709968cb7..28aff8ab19 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -155,7 +155,7 @@ if(..()) return if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai))) - usr.machine = src + usr.set_machine(src) if (href_list["toggleUV"]) src.toggleUV(usr) src.updateUsrDialog() diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm index 869676cab0..7dec73e335 100644 --- a/code/game/machinery/syndicatebeacon.dm +++ b/code/game/machinery/syndicatebeacon.dm @@ -20,7 +20,7 @@ var/charges = 1 attack_hand(var/mob/user as mob) - usr.machine = src + usr.set_machine(src) var/dat = "Scanning [pick("retina pattern", "voice print", "fingerprints", "dna sequence")]...
    Identity confirmed,
    " if(istype(user, /mob/living/carbon/human) || istype(user, /mob/living/silicon/ai)) if(is_special_character(user)) diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index 54ac999e9f..77498e8a53 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -102,6 +102,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept // In case message_delay is left on 1, otherwise it won't reset the list and people can't say the same thing twice anymore. if(message_delay) message_delay = 0 + ..() /* @@ -495,7 +496,6 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept /proc/Broadcast_SimpleMessage(var/source, var/frequency, var/text, var/data, var/mob/M, var/compression, var/level) - /* ###### Prepare the radio connection ###### */ if(!M) diff --git a/code/game/machinery/telecomms/logbrowser.dm b/code/game/machinery/telecomms/logbrowser.dm index 4ebd595e86..144fd77f88 100644 --- a/code/game/machinery/telecomms/logbrowser.dm +++ b/code/game/machinery/telecomms/logbrowser.dm @@ -18,7 +18,7 @@ attack_hand(mob/user as mob) if(stat & (BROKEN|NOPOWER)) return - user.machine = src + user.set_machine(src) var/dat = "Telecommunication Server Monitor
    Telecommunications Server Monitor
    " switch(screen) @@ -139,7 +139,7 @@ add_fingerprint(usr) - usr.machine = src + usr.set_machine(src) if(href_list["viewserver"]) screen = 1 diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index 7cc4467561..7dbb06af97 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -108,7 +108,7 @@ var/obj/item/device/multitool/P = get_multitool(user) - user.machine = src + user.set_machine(src) var/dat dat = "[src.name]

    [src.name] Access

    " dat += "
    [temp]
    " @@ -395,7 +395,7 @@ src.Options_Topic(href, href_list) - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) updateUsrDialog() diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index f3d45c25bd..d69500431e 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -69,7 +69,6 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() send_count++ if(machine.is_freq_listening(signal)) machine.traffic++ - machine.receive_information(signal, src) continue // If we're sending a copy, be sure to create the copy for EACH machine and paste the data var/datum/signal/copy = new diff --git a/code/game/machinery/telecomms/telemonitor.dm b/code/game/machinery/telecomms/telemonitor.dm index 4742cc76d9..cf23e208be 100644 --- a/code/game/machinery/telecomms/telemonitor.dm +++ b/code/game/machinery/telecomms/telemonitor.dm @@ -22,7 +22,7 @@ attack_hand(mob/user as mob) if(stat & (BROKEN|NOPOWER)) return - user.machine = src + user.set_machine(src) var/dat = "Telecommunications Monitor
    Telecommunications Monitor
    " switch(screen) @@ -71,7 +71,7 @@ add_fingerprint(usr) - usr.machine = src + usr.set_machine(src) if(href_list["viewmachine"]) screen = 1 diff --git a/code/game/machinery/telecomms/traffic_control.dm b/code/game/machinery/telecomms/traffic_control.dm index c380d9a16f..5552a7b68a 100644 --- a/code/game/machinery/telecomms/traffic_control.dm +++ b/code/game/machinery/telecomms/traffic_control.dm @@ -73,7 +73,7 @@ attack_hand(mob/user as mob) if(stat & (BROKEN|NOPOWER)) return - user.machine = src + user.set_machine(src) var/dat = "Telecommunication Traffic Control
    Telecommunications Traffic Control
    " switch(screen) @@ -123,7 +123,7 @@ add_fingerprint(usr) - usr.machine = src + usr.set_machine(src) if(!src.allowed(usr) && !emagged) usr << "\red ACCESS DENIED." return diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm index 72c4edb4cf..a817c2c3a5 100644 --- a/code/game/machinery/transformer.dm +++ b/code/game/machinery/transformer.dm @@ -7,25 +7,12 @@ anchored = 1 density = 1 var/transform_dead = 0 + var/transform_standing = 0 /obj/machinery/transformer/New() + // On us ..() - var/turf/T = loc - if(T) - // Spawn Conveyour Belts - - //East - var/turf/east = locate(T.x + 1, T.y, T.z) - if(istype(east, /turf/simulated/floor)) - new /obj/machinery/conveyor(east, WEST, 1) - - // West - var/turf/west = locate(T.x - 1, T.y, T.z) - if(istype(west, /turf/simulated/floor)) - new /obj/machinery/conveyor(west, WEST, 1) - - // On us - new /obj/machinery/conveyor(T, WEST, 1) + new /obj/machinery/conveyor(loc, WEST, 1) /obj/machinery/transformer/Bumped(var/atom/movable/AM) // HasEntered didn't like people lying down. @@ -33,7 +20,7 @@ // Only humans can enter from the west side, while lying down. var/move_dir = get_dir(loc, AM.loc) var/mob/living/carbon/human/H = AM - if(H.lying && move_dir == EAST)// || move_dir == WEST) + if((transform_standing || H.lying) && move_dir == EAST)// || move_dir == WEST) AM.loc = src.loc transform(AM) @@ -50,4 +37,20 @@ spawn(50) // So he can't jump out the gate right away. playsound(src.loc, 'sound/machines/ping.ogg', 50, 0) if(robot) - robot.lying = 0 \ No newline at end of file + robot.lying = 0 + +/obj/machinery/transformer/conveyor/New() + ..() + var/turf/T = loc + if(T) + // Spawn Conveyour Belts + + //East + var/turf/east = locate(T.x + 1, T.y, T.z) + if(istype(east, /turf/simulated/floor)) + new /obj/machinery/conveyor(east, WEST, 1) + + // West + var/turf/west = locate(T.x - 1, T.y, T.z) + if(istype(west, /turf/simulated/floor)) + new /obj/machinery/conveyor(west, WEST, 1) \ No newline at end of file diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm index 2bf3020782..8dfb440c0f 100644 --- a/code/game/machinery/turrets.dm +++ b/code/game/machinery/turrets.dm @@ -356,7 +356,7 @@ user << "You [ locked ? "lock" : "unlock"] the panel." if (locked) if (user.machine==src) - user.machine = null + user.unset_machine() user << browse(null, "window=turretid") else if (user.machine==src) @@ -374,11 +374,11 @@ if ( get_dist(src, user) > 0 ) if ( !issilicon(user) ) user << "You are too far away." - user.machine = null + user.unset_machine() user << browse(null, "window=turretid") return - user.machine = src + user.set_machine(src) var/loc = src.loc if (istype(loc, /turf)) loc = loc:loc @@ -515,7 +515,7 @@ attack_hand(mob/user as mob) - user.machine = src + user.set_machine(src) var/dat = {" [src] Control diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index ed54a07731..66f72ca4ff 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -128,7 +128,7 @@ /obj/machinery/vending/attack_hand(mob/user as mob) if(stat & (BROKEN|NOPOWER)) return - user.machine = src + user.set_machine(src) if(src.seconds_electrified != 0) if(src.shock(user, 100)) @@ -223,7 +223,7 @@ if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf)))) - usr.machine = src + usr.set_machine(src) if ((href_list["vend"]) && (src.vend_ready)) if ((!src.allowed(usr)) && (!src.emagged) && (src.wires & WIRE_SCANID)) //For SECURE VENDING MACHINES YEAH diff --git a/code/game/machinery/wishgranter.dm b/code/game/machinery/wishgranter.dm index 17b15abd87..9d48fd103a 100644 --- a/code/game/machinery/wishgranter.dm +++ b/code/game/machinery/wishgranter.dm @@ -11,7 +11,7 @@ var/insisting = 0 /obj/machinery/wish_granter/attack_hand(var/mob/user as mob) - usr.machine = src + usr.set_machine(src) if(charges <= 0) user << "The Wish Granter lies silent." diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index bbd096d761..f1b15e23fd 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -532,7 +532,7 @@ return if(!operation_allowed(user)) return - user.machine = src + user.set_machine(src) var/turf/exit = get_step(src,SOUTH) if(exit.density) src.visible_message("\icon[src] [src] beeps, \"Error! Part outlet is obstructed\".") diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index f28a764812..57708a31c4 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -17,7 +17,7 @@ attack_hand(var/mob/user as mob) if(..()) return - user.machine = src + user.set_machine(src) var/dat = "[src.name]" if(screen == 0) dat += "

    Tracking beacons data

    " diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index bf66310d97..c9e1fbc015 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -233,7 +233,7 @@ var/global/list/obj/item/device/pda/PDAs = list() //NOTE: graphic resources are loaded on client login /obj/item/device/pda/attack_self(mob/user as mob) - user.machine = src + user.set_machine(src) if(active_uplink_check(user)) return @@ -438,14 +438,14 @@ var/global/list/obj/item/device/pda/PDAs = list() if ( !(U.stat || U.restrained()) ) add_fingerprint(U) - U.machine = src + U.set_machine(src) switch(href_list["choice"]) //BASIC FUNCTIONS=================================== if("Close")//Self explanatory - U.machine = null + U.unset_machine() U << browse(null, "window=pda") return if("Refresh")//Refresh, goes to the end of the proc. @@ -635,7 +635,7 @@ var/global/list/obj/item/device/pda/PDAs = list() else U << "PDA not found." else - U.machine = null + U.unset_machine() U << browse(null, "window=pda") return @@ -656,11 +656,11 @@ var/global/list/obj/item/device/pda/PDAs = list() cartridge.mode = mode cartridge.unlock() else//If can't interact. - U.machine = null + U.unset_machine() U << browse(null, "window=pda") return else//If not in range or not using the pda. - U.machine = null + U.unset_machine() U << browse(null, "window=pda") return @@ -676,7 +676,7 @@ var/global/list/obj/item/device/pda/PDAs = list() if(U.machine == src && href_list["skiprefresh"]!="1")//Final safety. attack_self(U)//It auto-closes the menu prior if the user is not in range and so on. else - U.machine = null + U.unset_machine() U << browse(null, "window=pda") return diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index eb3e723a23..f3614222a6 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -641,7 +641,7 @@ Code: ..() if (!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) - usr.machine = null + usr.unset_machine() usr << browse(null, "window=pda") return diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index 7506365242..1a75b752e7 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -33,7 +33,7 @@ attack_self(mob/user) if (!in_range(src, user)) return - user.machine = src + user.set_machine(src) var/dat = "Intelicard
    " var/laws for(var/mob/living/silicon/ai/A in src) @@ -82,16 +82,16 @@ var/mob/U = usr if (!in_range(src, U)||U.machine!=src)//If they are not in range of 1 or less or their machine is not the card (ie, clicked on something else). U << browse(null, "window=aicard") - U.machine = null + U.unset_machine() return add_fingerprint(U) - U.machine = src + U.set_machine(src) switch(href_list["choice"])//Now we switch based on choice. if ("Close") U << browse(null, "window=aicard") - U.machine = null + U.unset_machine() return if ("Wipe") @@ -99,7 +99,7 @@ if(confirm == "Yes") if(isnull(src)||!in_range(src, U)||U.machine!=src) U << browse(null, "window=aicard") - U.machine = null + U.unset_machine() return else flush = 1 diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index 47e97651be..9685993c70 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -24,7 +24,7 @@ /obj/item/device/paicard/attack_self(mob/user) if (!in_range(src, user)) return - user.machine = src + user.set_machine(src) var/dat = "Personal AI Device
    " if(pai && (!pai.master_dna || !pai.master)) dat += "Imprint Master DNA
    " diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index 1adf748901..6860721b61 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -44,7 +44,7 @@ if(usr.stat || usr.restrained()) return if(((istype(usr, /mob/living/carbon/human) && ((!( ticker ) || (ticker && ticker.mode != "monkey")) && usr.contents.Find(src))) || (usr.contents.Find(master) || (in_range(src, usr) && istype(loc, /turf))))) - usr.machine = src + usr.set_machine(src) if(href_list["freq"]) var/new_frequency = sanitize_frequency(frequency + text2num(href_list["freq"])) set_frequency(new_frequency) @@ -106,7 +106,7 @@ if(!istype(user, /mob/living/carbon/human)) return - user.machine = src + user.set_machine(src) var/dat = {" Turn [on ? "Off" : "On"]
    Frequency/Code for electropack:
    diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 46f68a0fdf..eb2e1e73c4 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -158,7 +158,7 @@ /obj/item/device/radio/headset/attackby(obj/item/weapon/W as obj, mob/user as mob) // ..() - user.machine = src + user.set_machine(src) if (!( istype(W, /obj/item/weapon/screwdriver) || (istype(W, /obj/item/device/encryptionkey/ )))) return diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index dd42244ed9..26113ad6b4 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -71,7 +71,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use /obj/item/device/radio/attack_self(mob/user as mob) - user.machine = src + user.set_machine(src) interact(user) /obj/item/device/radio/proc/interact(mob/user as mob) @@ -129,7 +129,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use if (!(issilicon(usr) || (usr.contents.Find(src) || ( in_range(src, usr) && istype(loc, /turf) )))) usr << browse(null, "window=radio") return - usr.machine = src + usr.set_machine(src) if (href_list["track"]) var/mob/target = locate(href_list["track"]) var/mob/living/silicon/ai/A = locate(href_list["track2"]) @@ -643,7 +643,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use /obj/item/device/radio/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() - user.machine = src + user.set_machine(src) if (!( istype(W, /obj/item/weapon/screwdriver) )) return b_stat = !( b_stat ) @@ -675,7 +675,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use /obj/item/device/radio/borg/attackby(obj/item/weapon/W as obj, mob/user as mob) // ..() - user.machine = src + user.set_machine(src) if (!( istype(W, /obj/item/weapon/screwdriver) || (istype(W, /obj/item/device/encryptionkey/ )))) return diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index 043e89201d..c77a388d1e 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -63,7 +63,7 @@ /obj/item/device/transfer_valve/attack_self(mob/user as mob) - user.machine = src + user.set_machine(src) var/dat = {" Valve properties:
    Attachment one: [tank_one] [tank_one ? "Remove" : ""]
    Attachment two: [tank_two] [tank_two ? "Remove" : ""] diff --git a/code/game/objects/items/devices/uplinks.dm b/code/game/objects/items/devices/uplinks.dm index 96a40901fa..f6ad858302 100644 --- a/code/game/objects/items/devices/uplinks.dm +++ b/code/game/objects/items/devices/uplinks.dm @@ -314,7 +314,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid return 0 if ((usr.contents.Find(src.loc) || (in_range(src.loc, usr) && istype(src.loc.loc, /turf)))) - usr.machine = src + usr.set_machine(src) if(href_list["lock"]) toggle() usr << browse(null, "window=hidden") diff --git a/code/game/objects/items/devices/violin.dm b/code/game/objects/items/devices/violin.dm index abc12f67ff..63f7828fc8 100644 --- a/code/game/objects/items/devices/violin.dm +++ b/code/game/objects/items/devices/violin.dm @@ -237,7 +237,7 @@ /obj/item/device/violin/attack_self(mob/user as mob) if(!isliving(user) || user.stat || user.restrained() || user.lying) return - user.machine = src + user.set_machine(src) var/dat = "Violin" diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index eecc0d18ea..e173ac29ee 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -39,7 +39,7 @@ return if (!src || amount<=0) user << browse(null, "window=stack") - user.machine = src //for correct work of onclose + user.set_machine(src) //for correct work of onclose var/t1 = text("Constructions from []Amount Left: []
    ", src, src.amount) for(var/i=1;i<=recipes.len,i++) var/datum/stack_recipe/R = recipes[i] diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 1094be44c4..e2b3684f74 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -87,7 +87,7 @@ if ((usr.stat || usr.restrained())) return if (usr.contents.Find(src)) - usr.machine = src + usr.set_machine(src) if (href_list["remove"]) var/obj/item/P = locate(href_list["remove"]) if ((P && P.loc == src)) diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index b7cf6871e1..ec284b68ba 100644 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -136,7 +136,7 @@ /obj/item/weapon/flamethrower/attack_self(mob/user as mob) if(user.stat || user.restrained() || user.lying) return - user.machine = src + user.set_machine(src) if(!ptank) user << "Attach a plasma tank first!" return @@ -148,11 +148,11 @@ /obj/item/weapon/flamethrower/Topic(href,href_list[]) if(href_list["close"]) - usr.machine = null + usr.unset_machine() usr << browse(null, "window=flamethrower") return if(usr.stat || usr.restrained() || usr.lying) return - usr.machine = src + usr.set_machine(src) if(href_list["light"]) if(!ptank) return if(ptank.air_contents.toxins < 1) return @@ -168,7 +168,7 @@ usr.put_in_hands(ptank) ptank = null lit = 0 - usr.machine = null + usr.unset_machine() usr << browse(null, "window=flamethrower") for(var/mob/M in viewers(1, loc)) if((M.client && M.machine == src)) diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm index 215d591532..1c391fe81d 100644 --- a/code/game/objects/items/weapons/implants/implantchair.dm +++ b/code/game/objects/items/weapons/implants/implantchair.dm @@ -32,7 +32,7 @@ attack_hand(mob/user as mob) - user.machine = src + user.set_machine(src) var/health_text = "" if(src.occupant) if(src.occupant.health <= -100) @@ -48,7 +48,7 @@ dat += "Implants: [src.implant_list.len ? "[implant_list.len]" : "Replenish"]
    " if(src.occupant) dat += "[src.ready ? "Implant" : "Recharging"]
    " - user.machine = src + user.set_machine(src) user << browse(dat, "window=implant") onclose(user, "implant") diff --git a/code/game/objects/items/weapons/implants/implantpad.dm b/code/game/objects/items/weapons/implants/implantpad.dm index 650a343013..f3f0032cd6 100644 --- a/code/game/objects/items/weapons/implants/implantpad.dm +++ b/code/game/objects/items/weapons/implants/implantpad.dm @@ -57,7 +57,7 @@ attack_self(mob/user as mob) - user.machine = src + user.set_machine(src) var/dat = "Implant Mini-Computer:
    " if (src.case) if(src.case.imp) @@ -83,7 +83,7 @@ if (usr.stat) return if ((usr.contents.Find(src)) || ((in_range(src, usr) && istype(src.loc, /turf)))) - usr.machine = src + usr.set_machine(src) if (href_list["tracking_id"]) var/obj/item/weapon/implant/tracking/T = src.case.imp T.id += text2num(href_list["tracking_id"]) diff --git a/code/game/objects/items/weapons/scrolls.dm b/code/game/objects/items/weapons/scrolls.dm index 16e6776932..3ad8afd5ab 100644 --- a/code/game/objects/items/weapons/scrolls.dm +++ b/code/game/objects/items/weapons/scrolls.dm @@ -12,7 +12,7 @@ origin_tech = "bluespace=4" /obj/item/weapon/teleportation_scroll/attack_self(mob/user as mob) - user.machine = src + user.set_machine(src) var/dat = "Teleportation Scroll:
    " dat += "Number of uses: [src.uses]
    " dat += "
    " @@ -31,7 +31,7 @@ if (!( istype(H, /mob/living/carbon/human))) return 1 if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf)))) - usr.machine = src + usr.set_machine(src) if (href_list["spell_teleport"]) if (src.uses >= 1) src.uses -= 1 diff --git a/code/game/objects/items/weapons/secstorage/secstorage.dm b/code/game/objects/items/weapons/secstorage/secstorage.dm index b9fb7f65f7..d261f4226c 100644 --- a/code/game/objects/items/weapons/secstorage/secstorage.dm +++ b/code/game/objects/items/weapons/secstorage/secstorage.dm @@ -201,7 +201,7 @@ return /obj/item/weapon/secstorage/attack_self(mob/user as mob) - user.machine = src + user.set_machine(src) var/dat = text("[]
    \n\nLock Status: []",src, (src.locked ? "LOCKED" : "UNLOCKED")) var/message = "Code" if ((src.l_set == 0) && (!src.emagged) && (!src.l_setshort)) diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index 6e4716c8b8..248117a534 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -118,7 +118,7 @@ /obj/item/weapon/tank/attack_self(mob/user as mob) if (!(src.air_contents)) return - user.machine = src + user.set_machine(src) var/using_internal if(istype(loc,/mob/living/carbon)) @@ -142,7 +142,7 @@ if (usr.stat|| usr.restrained()) return if (src.loc == usr) - usr.machine = src + usr.set_machine(src) if (href_list["dist_p"]) var/cp = text2num(href_list["dist_p"]) src.distribute_pressure += cp diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm index c4342b8c1e..50bd785455 100644 --- a/code/game/objects/items/weapons/teleportation.dm +++ b/code/game/objects/items/weapons/teleportation.dm @@ -8,7 +8,7 @@ * Locator */ /obj/item/weapon/locator/attack_self(mob/user as mob) - user.machine = src + user.set_machine(src) var/dat if (src.temp) dat = "[src.temp]

    Clear" @@ -35,7 +35,7 @@ Frequency: usr << "The [src] is malfunctioning." return if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf)))) - usr.machine = src + usr.set_machine(src) if (href_list["refresh"]) src.temp = "Persistent Signal Locator
    " var/turf/sr = get_turf(src) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 357cc30c2e..69b06f3502 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -10,6 +10,7 @@ animate_movement = 2 var/throwforce = 1 var/list/attack_verb = list() //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]" + var/in_use = 0 // If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING! /obj/proc/process() processing_objects.Remove(src) @@ -47,34 +48,57 @@ return /obj/proc/updateUsrDialog() - var/list/nearby = viewers(1, src) - for(var/mob/M in nearby) - if ((M.client && M.machine == src)) - src.attack_hand(M) - if (istype(usr, /mob/living/silicon/ai) || istype(usr, /mob/living/silicon/robot)) - if (!(usr in nearby)) - if (usr.client && usr.machine==src) // && M.machine == src is omitted because if we triggered this by using the dialog, it doesn't matter if our machine changed in between triggering it and this - the dialog is probably still supposed to refresh. - src.attack_ai(usr) + if(in_use) + var/is_in_use = 0 + var/list/nearby = viewers(1, src) + for(var/mob/M in nearby) + if ((M.client && M.machine == src)) + is_in_use = 1 + src.attack_hand(M) + if (istype(usr, /mob/living/silicon/ai) || istype(usr, /mob/living/silicon/robot)) + if (!(usr in nearby)) + if (usr.client && usr.machine==src) // && M.machine == src is omitted because if we triggered this by using the dialog, it doesn't matter if our machine changed in between triggering it and this - the dialog is probably still supposed to refresh. + is_in_use = 1 + src.attack_ai(usr) - // check for TK users + // check for TK users - if (istype(usr, /mob/living/carbon/human)) - if(istype(usr.l_hand, /obj/item/tk_grab) || istype(usr.r_hand, /obj/item/tk_grab/)) - if(!(usr in nearby)) - if(usr.client && usr.machine==src) - src.attack_hand(usr) + if (istype(usr, /mob/living/carbon/human)) + if(istype(usr.l_hand, /obj/item/tk_grab) || istype(usr.r_hand, /obj/item/tk_grab/)) + if(!(usr in nearby)) + if(usr.client && usr.machine==src) + is_in_use = 1 + src.attack_hand(usr) + in_use = is_in_use /obj/proc/updateDialog() - var/list/nearby = viewers(1, src) - for(var/mob/M in nearby) - if ((M.client && M.machine == src)) - src.attack_hand(M) - AutoUpdateAI(src) + // Check that people are actually using the machine. If not, don't update anymore. + if(in_use) + var/list/nearby = viewers(1, src) + var/is_in_use = 0 + for(var/mob/M in nearby) + if ((M.client && M.machine == src)) + is_in_use = 1 + src.attack_hand(M) + var/ai_in_use = AutoUpdateAI(src) + + if(!ai_in_use && !is_in_use) + in_use = 0 /obj/proc/update_icon() return +/mob/proc/unset_machine() + src.machine = null + +/mob/proc/set_machine(var/obj/O) + if(src.machine) + unset_machine() + src.machine = O + if(O) + O.in_use = 1 + /obj/item/proc/updateSelfDialog() var/mob/M = src.loc if(istype(M) && M.client && M.machine == src) diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm index 7e1ae50270..cdb9ac4734 100644 --- a/code/game/objects/structures/musician.dm +++ b/code/game/objects/structures/musician.dm @@ -425,7 +425,7 @@ if(!anchored) return - usr.machine = src + usr.set_machine(src) /* BPM TO TEMPO diff --git a/code/game/objects/structures/noticeboard.dm b/code/game/objects/structures/noticeboard.dm index b5d0952958..1f23e10411 100644 --- a/code/game/objects/structures/noticeboard.dm +++ b/code/game/objects/structures/noticeboard.dm @@ -40,7 +40,7 @@ /obj/structure/noticeboard/Topic(href, href_list) ..() - usr.machine = src + usr.set_machine(src) if(href_list["remove"]) if((usr.stat || usr.restrained())) //For when a player is handcuffed while they have the notice window open return diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index a79eddfdf7..1a2844ba81 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -73,7 +73,7 @@ FLOOR SAFES /obj/structure/safe/attack_hand(mob/user as mob) - user.machine = src + user.set_machine(src) var/dat = "
    " dat += "[open ? "Close" : "Open"] [src] | - [dial * 5] +" if(open) diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm index af584e2ac7..53bc0581aa 100644 --- a/code/game/objects/structures/tank_dispenser.dm +++ b/code/game/objects/structures/tank_dispenser.dm @@ -33,7 +33,7 @@ /obj/structure/dispenser/attack_hand(mob/user as mob) - user.machine = src + user.set_machine(src) var/dat = "[src]

    " dat += "Oxygen tanks: [oxygentanks] - [oxygentanks ? "Dispense" : "empty"]
    " dat += "Plasma tanks: [plasmatanks] - [plasmatanks ? "Dispense" : "empty"]" @@ -68,7 +68,7 @@ if(usr.stat || usr.restrained()) return if(get_dist(src, usr) <= 1) - usr.machine = src + usr.set_machine(src) if(href_list["oxygen"]) if(oxygentanks > 0) var/obj/item/weapon/tank/oxygen/O diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index b6ec76b788..75aab97c0e 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -356,7 +356,7 @@ var/list/mechtoys = list( /obj/machinery/computer/ordercomp/attack_hand(var/mob/user as mob) if(..()) return - user.machine = src + user.set_machine(src) var/dat if(temp) dat = temp @@ -378,7 +378,7 @@ var/list/mechtoys = list( return if( isturf(loc) && (in_range(src, usr) || istype(usr, /mob/living/silicon)) ) - usr.machine = src + usr.set_machine(src) if(href_list["order"]) temp = "Supply points: [supply_shuttle.points]


    Request what?

    " @@ -467,7 +467,7 @@ var/list/mechtoys = list( if(..()) return - user.machine = src + user.set_machine(src) post_signal("supply") var/dat if (temp) @@ -531,7 +531,7 @@ var/list/mechtoys = list( return if(isturf(loc) && ( in_range(src, usr) || istype(usr, /mob/living/silicon) ) ) - usr.machine = src + usr.set_machine(src) //Calling the shuttle if(href_list["send"]) diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 61773960fb..143ca567b9 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -132,7 +132,7 @@ attack_self(mob/user as mob) if(!user) return 0 - user.machine = src + user.set_machine(src) interact(user) return 1 diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 45861f3840..564d980e17 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -109,7 +109,7 @@ interact(mob/user as mob)//TODO: change this this to the wire control panel if(!secured) return - user.machine = src + user.set_machine(src) var/dat = text("Infrared Laser\nStatus: []
    \nVisibility: []
    \n
    ", (on ? text("On", src) : text("Off", src)), (src.visible ? text("Visible", src) : text("Invisible", src))) dat += "

    Refresh" dat += "

    Close" diff --git a/code/modules/awaymissions/bluespaceartillery.dm b/code/modules/awaymissions/bluespaceartillery.dm index e29828152f..06dfa6b5bc 100644 --- a/code/modules/awaymissions/bluespaceartillery.dm +++ b/code/modules/awaymissions/bluespaceartillery.dm @@ -21,7 +21,7 @@ density = 0 /obj/machinery/artillerycontrol/attack_hand(mob/user as mob) - user.machine = src + user.set_machine(src) var/dat = "Bluespace Artillery Control:
    " dat += "Locked on
    " dat += "Charge progress: [reload]/180:
    " diff --git a/code/modules/detectivework/detective_work.dm b/code/modules/detectivework/detective_work.dm index dc6cb9293a..5a1d2d6862 100644 --- a/code/modules/detectivework/detective_work.dm +++ b/code/modules/detectivework/detective_work.dm @@ -92,7 +92,7 @@ obj/machinery/computer/forensic_scanning attack_hand(mob/user) if(..()) return - user.machine = src + user.set_machine(src) var/dat = "" var/isai = 0 if(istype(usr,/mob/living/silicon)) diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 6b6901e56a..0fa4f363ce 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -33,7 +33,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f var/SQLquery /obj/machinery/librarypubliccomp/attack_hand(var/mob/user as mob) - usr.machine = src + usr.set_machine(src) var/dat = "Library Visitor\n" // switch(screenstate) if(0) @@ -135,7 +135,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f var/bibledelay = 0 // LOL NO SPAM (1 minute delay) -- Doohl /obj/machinery/librarycomp/attack_hand(var/mob/user as mob) - usr.machine = src + usr.set_machine(src) var/dat = "Book Inventory Management\n" // switch(screenstate) if(0) @@ -411,7 +411,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f O.loc = src /obj/machinery/libraryscanner/attack_hand(var/mob/user as mob) - usr.machine = src + usr.set_machine(src) var/dat = "Scanner Control Interface\n" // if(cache) dat += "Data stored in memory.
    " diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 90856ec723..0337b0e309 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -120,7 +120,7 @@ /obj/machinery/mineral/processing_unit_console/Topic(href, href_list) if(..()) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) if(href_list["sel_iron"]) if (href_list["sel_iron"] == "yes") diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm index a8d14e491e..9a4a15956a 100644 --- a/code/modules/mining/machine_stacking.dm +++ b/code/modules/mining/machine_stacking.dm @@ -64,7 +64,7 @@ /obj/machinery/mineral/stacking_unit_console/Topic(href, href_list) if(..()) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) if(href_list["release"]) switch(href_list["release"]) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index a476d1e7c9..c3f363a371 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -112,7 +112,7 @@ proc/move_mining_shuttle() /obj/machinery/computer/mining_shuttle/Topic(href, href_list) if(..()) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) if(href_list["move"]) if(ticker.mode.name == "blob") diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm index 56a6dfeb97..c7d6fbe880 100644 --- a/code/modules/mining/mint.dm +++ b/code/modules/mining/mint.dm @@ -138,7 +138,7 @@ /obj/machinery/mineral/mint/Topic(href, href_list) if(..()) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) if(processing==1) usr << "\blue The machine is processing." diff --git a/code/modules/mining/money_bag.dm b/code/modules/mining/money_bag.dm index f760691274..bb1db7a86d 100644 --- a/code/modules/mining/money_bag.dm +++ b/code/modules/mining/money_bag.dm @@ -73,7 +73,7 @@ /obj/item/weapon/moneybag/Topic(href, href_list) if(..()) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) if(href_list["remove"]) var/obj/item/weapon/coin/COIN diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index 33f15be55d..259b5fb587 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -72,7 +72,7 @@ /obj/structure/ore_box/Topic(href, href_list) if(..()) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) if(href_list["removeall"]) for (var/obj/item/weapon/ore/O in contents) diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 4cc5e858c1..84a9b0c9b8 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -509,7 +509,7 @@ In all, this is a lot like the monkey code. /N /mob/living/carbon/alien/humanoid/show_inv(mob/user as mob) - user.machine = src + user.set_machine(src) var/dat = {"
    [name]


    diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 30923ab288..1dec63e37e 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -451,7 +451,7 @@ /mob/living/carbon/alien/larva/show_inv(mob/user as mob) - user.machine = src + user.set_machine(src) var/dat = {"
    [name]



    diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 5de9e1bbd8..253389dec4 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -435,7 +435,7 @@ /mob/living/carbon/human/show_inv(mob/user as mob) - user.machine = src + user.set_machine(src) var/dat = {"
    [name]


    @@ -559,7 +559,7 @@ if (href_list["mach_close"]) var/t1 = text("window=[]", href_list["mach_close"]) - machine = null + unset_machine() src << browse(null, t1) if ((href_list["item"] && !( usr.stat ) && usr.canmove && !( usr.restrained() ) && in_range(src, usr) && ticker)) //if game hasn't started, can't make an equip_e diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm index e89e6f4215..0115c703ae 100644 --- a/code/modules/mob/living/carbon/metroid/metroid.dm +++ b/code/modules/mob/living/carbon/metroid/metroid.dm @@ -670,7 +670,7 @@ mob/living/carbon/metroid/var/temperature_resistance = T0C+75 /mob/living/carbon/metroid/show_inv(mob/user as mob) - user.machine = src + user.set_machine(src) var/dat = {"
    [name]



    @@ -826,7 +826,8 @@ mob/living/carbon/metroid/var/temperature_resistance = T0C+75 /obj/item/weapon/reagent_containers/food/snacks/egg/roro/New() ..() - reagents.add_reagent("nutriment", 5) + reagents.add_reagent("nutriment", 4) + reagents.add_reagent("rorojelly", 1) spawn(rand(1200,1500))//the egg takes a while to "ripen" Grow() diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index b9b7655788..198f5c9665 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -93,7 +93,7 @@ ..() if (href_list["mach_close"]) var/t1 = text("window=[]", href_list["mach_close"]) - machine = null + unset_machine() src << browse(null, t1) if ((href_list["item"] && !( usr.stat ) && !( usr.restrained() ) && in_range(src, usr) )) var/obj/effect/equip_e/monkey/O = new /obj/effect/equip_e/monkey( ) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 82b6b13dee..d4050e71c2 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -1,9 +1,16 @@ +var/list/ai_list = list() + //Not sure why this is necessary... /proc/AutoUpdateAI(obj/subject) + var/is_in_use = 0 if (subject!=null) - for(var/mob/living/silicon/ai/M in player_list) + for(var/A in ai_list) + var/mob/living/silicon/ai/M = A if ((M.client && M.machine == subject)) + world << "[M] - Using [subject]" + is_in_use = 1 subject.attack_ai(M) + return is_in_use /mob/living/silicon/ai @@ -105,10 +112,14 @@ src << "These laws may be changed by other players, or by you being the traitor." job = "AI" - + ai_list += src ..() return +/mob/living/silicon/ai/Del() + ai_list -= src + ..() + /mob/living/silicon/ai/verb/pick_icon() set category = "AI Commands" @@ -302,7 +313,7 @@ if (href_list["mach_close"] == "aialerts") viewalerts = 0 var/t1 = text("window=[]", href_list["mach_close"]) - machine = null + unset_machine() src << browse(null, t1) if (href_list["switchcamera"]) switchCamera(locate(href_list["switchcamera"])) in cameranet.cameras @@ -531,7 +542,7 @@ /mob/living/silicon/ai/proc/ai_network_change() set category = "AI Commands" set name = "Jump To Network" - machine = null + unset_machine() src.cameraFollow = null var/cameralist[0] diff --git a/code/modules/mob/living/silicon/ai/freelook/chunk.dm b/code/modules/mob/living/silicon/ai/freelook/chunk.dm index f4f63059b7..976698ed22 100644 --- a/code/modules/mob/living/silicon/ai/freelook/chunk.dm +++ b/code/modules/mob/living/silicon/ai/freelook/chunk.dm @@ -1,4 +1,4 @@ -#define UPDATE_BUFFER 20 // 2 seconds +#define UPDATE_BUFFER 25 // 2.5 seconds // CAMERA CHUNK // diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index 476d13f419..8f4096b621 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -116,8 +116,8 @@ user.cameraFollow = null src.eye = user.eyeobj - //user.machine = null //Uncomment this if it causes problems. - user.lightNearbyCamera() + //user.unset_machine() //Uncomment this if it causes problems. + //user.lightNearbyCamera() // Return to the Core. @@ -133,7 +133,7 @@ current = null cameraFollow = null - machine = null + unset_machine() if(src.eyeobj && src.loc) src.eyeobj.loc = src.loc diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index d1ae1c05b7..e9415afa7d 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -8,7 +8,7 @@ if (src.stat!=0) src.cameraFollow = null src.reset_view(null) - src.machine = null + src.unset_machine() src.updatehealth() diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 5eee980a06..a3f76a7923 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -216,14 +216,14 @@ /mob/living/silicon/pai/proc/switchCamera(var/obj/machinery/camera/C) usr:cameraFollow = null if (!C) - src.machine = null + src.unset_machine() src.reset_view(null) return 0 if (stat == 2 || !C.status || C.network != src.network) return 0 // ok, we're alive, camera is good and in our network... - src.machine = src + src.set_machine(src) src:current = C src.reset_view(C) return 1 @@ -233,7 +233,7 @@ set category = "pAI Commands" set name = "Cancel Camera View" src.reset_view(null) - src.machine = null + src.unset_machine() src:cameraFollow = null //Addition by Mord_Sith to define AI's network change ability @@ -242,7 +242,7 @@ set category = "pAI Commands" set name = "Change Camera Network" src.reset_view(null) - src.machine = null + src.unset_machine() src:cameraFollow = null var/cameralist[0] diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index dd47f3f2ef..475b6df89d 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -28,7 +28,7 @@ var/dat = "" var/left_part = "" var/right_part = softwareMenu() - src.machine = src + src.set_machine(src) if(temp) left_part = temp diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 6111ea9cec..e2fbe9b23e 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -839,7 +839,7 @@ ..() if (href_list["mach_close"]) var/t1 = text("window=[href_list["mach_close"]]") - machine = null + unset_machine() src << browse(null, t1) return diff --git a/code/modules/mob/living/silicon/robot/wires.dm b/code/modules/mob/living/silicon/robot/wires.dm index 1b0e2a0561..10b6832fe4 100644 --- a/code/modules/mob/living/silicon/robot/wires.dm +++ b/code/modules/mob/living/silicon/robot/wires.dm @@ -89,7 +89,7 @@ /mob/living/silicon/robot/proc/interact(mob/user) if(wiresexposed && (!istype(user, /mob/living/silicon))) - user.machine = src + user.set_machine(src) var/t1 = text("Access Panel
    \n") var/list/Borgwires = list( "Orange" = 1, @@ -116,7 +116,7 @@ /mob/living/silicon/robot/Topic(href, href_list) ..() if (((in_range(src, usr) && istype(src.loc, /turf))) && !istype(usr, /mob/living/silicon)) - usr.machine = src + usr.set_machine(src) if (href_list["borgwires"]) var/t1 = text2num(href_list["borgwires"]) if (!( istype(usr.get_active_hand(), /obj/item/weapon/wirecutters) )) @@ -138,7 +138,7 @@ src.pulse(t1) else if (href_list["close2"]) usr << browse(null, "window=borgwires") - usr.machine = null + usr.unset_machine() return #undef BORG_WIRE_LAWCHECK diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm index 242951d329..220a242346 100644 --- a/code/modules/mob/living/simple_animal/friendly/corgi.dm +++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm @@ -26,7 +26,7 @@ regenerate_icons() /mob/living/simple_animal/corgi/show_inv(mob/user as mob) - user.machine = src + user.set_machine(src) if(user.stat) return var/dat = "
    Inventory of [name]

    " diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index a31c03a330..5938d96ef3 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -110,7 +110,7 @@ * Inventory */ /mob/living/simple_animal/parrot/show_inv(mob/user as mob) - user.machine = src + user.set_machine(src) if(user.stat) return var/dat = "

    Inventory of [name]

    " diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index abfeb82cb0..3bf0f0537c 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -219,7 +219,7 @@ var/list/slot_equipment_priority = list( \ /mob/proc/show_inv(mob/user as mob) - user.machine = src + user.set_machine(src) var/dat = {"


    [name]

    @@ -509,7 +509,7 @@ var/list/slot_equipment_priority = list( \ set name = "Cancel Camera View" set category = "OOC" reset_view(null) - machine = null + unset_machine() if(istype(src, /mob/living)) if(src:cameraFollow) src:cameraFollow = null @@ -517,7 +517,7 @@ var/list/slot_equipment_priority = list( \ /mob/Topic(href, href_list) if(href_list["mach_close"]) var/t1 = text("window=[href_list["mach_close"]]") - machine = null + unset_machine() src << browse(null, t1) // ..() return diff --git a/code/modules/mob/screen.dm b/code/modules/mob/screen.dm index fe044b4a52..6633c70211 100644 --- a/code/modules/mob/screen.dm +++ b/code/modules/mob/screen.dm @@ -317,7 +317,7 @@ usr.m_intent = "run" usr.m_int = "13,14" if("Reset Machine") - usr.machine = null + usr.unset_machine() if("internal") if (( !usr.stat && !usr.stunned && !usr.paralysis && !usr.restrained() )) if (usr.internal) diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm index c521f66782..9de5194656 100644 --- a/code/modules/paperwork/filingcabinet.dm +++ b/code/modules/paperwork/filingcabinet.dm @@ -39,7 +39,7 @@ user << "\The [src] is empty." return - user.machine = src + user.set_machine(src) var/dat = "
    " var/i for(i=contents.len, i>=1, i--) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 890ae70b66..a476a64219 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -23,7 +23,7 @@ return attack_hand(user) attack_hand(mob/user as mob) - user.machine = src + user.set_machine(src) var/dat = "Photocopier

    " if(copy || photocopy) diff --git a/code/modules/power/antimatter/control.dm b/code/modules/power/antimatter/control.dm index a6d7757eaf..8152b2101d 100644 --- a/code/modules/power/antimatter/control.dm +++ b/code/modules/power/antimatter/control.dm @@ -263,10 +263,10 @@ /obj/machinery/power/am_control_unit/proc/interact(mob/user) if((get_dist(src, user) > 1) || (stat & (BROKEN|NOPOWER))) if(!istype(user, /mob/living/silicon/ai)) - user.machine = null + user.unset_machine() user << browse(null, "window=AMcontrol") return - user.machine = src + user.set_machine(src) var/dat = "" dat += "AntiMatter Control Panel
    " @@ -303,13 +303,13 @@ ..() //Ignore input if we are broken or guy is not touching us, AI can control from a ways away if(stat & (BROKEN|NOPOWER) || (get_dist(src, usr) > 1 && !istype(usr, /mob/living/silicon/ai))) - usr.machine = null + usr.unset_machine() usr << browse(null, "window=AMcontrol") return if(href_list["close"]) usr << browse(null, "window=AMcontrol") - usr.machine = null + usr.unset_machine() return if(href_list["togglestatus"]) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 267e64480f..86af9991e1 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -86,11 +86,7 @@ /obj/machinery/power/apc/updateDialog() if (stat & (BROKEN|MAINT)) return - var/list/nearby = viewers(1, src) - for(var/mob/M in nearby) - if (M.client && M.machine == src) - src.interact(M) - AutoUpdateAI(src) + ..() /obj/machinery/power/apc/New(turf/loc, var/ndir, var/building=0) ..() @@ -463,7 +459,7 @@ call(/obj/item/clothing/gloves/space_ninja/proc/drain)("APC",src,user:wear_suit) return // do APC interaction - user.machine = src + user.set_machine(src) src.interact(user) /obj/machinery/power/apc/attack_alien(mob/living/carbon/alien/humanoid/user) @@ -513,24 +509,24 @@ user << browse(t1, "window=apcwires") onclose(user, "apcwires") - user.machine = src + user.set_machine(src) var/t = "[area.name] APCArea Power Controller ([area.name])
    " //This goes after the wire stuff. They should be able to fix a physical problem when a wire is cut if ( (get_dist(src, user) > 1 )) if (!istype(user, /mob/living/silicon)) - user.machine = null + user.unset_machine() user << browse(null, "window=apc") return else if (istype(user, /mob/living/silicon) && src.aidisabled && !src.malfhack) user << "AI control for this APC interface has been disabled." - user.machine = null + user.unset_machine() user << browse(null, "window=apc") return else if (src.malfai) if ((src.malfai != user && src.malfai != user:parent) && !islinked(user, malfai)) user << "AI control for this APC interface has been disabled." - user.machine = null + user.unset_machine() user << browse(null, "window=apc") return @@ -748,7 +744,7 @@ istype(user, /mob/living/carbon/monkey) /*&& ticker && ticker.mode.name == "monkey"*/) ) user << "\red You don't have the dexterity to use this [src]!" user << browse(null, "window=apc") - user.machine = null + user.unset_machine() return 0 if(user.restrained()) user << "\red You must have free hands to use this [src]" @@ -770,12 +766,12 @@ if(!loud) user << "\red \The [src] have AI control disabled!" user << browse(null, "window=apc") - user.machine = null + user.unset_machine() return 0 else if ((!in_range(src, user) || !istype(src.loc, /turf))) user << browse(null, "window=apc") - user.machine = null + user.unset_machine() return 0 var/mob/living/carbon/human/H = user @@ -794,7 +790,7 @@ if(!can_use(usr, 1)) return src.add_fingerprint(usr) - usr.machine = src + usr.set_machine(src) if (href_list["apcwires"]) var/t1 = text2num(href_list["apcwires"]) if (!( istype(usr.get_active_hand(), /obj/item/weapon/wirecutters) )) @@ -857,11 +853,11 @@ update() else if( href_list["close"] ) usr << browse(null, "window=apc") - usr.machine = null + usr.unset_machine() return else if (href_list["close2"]) usr << browse(null, "window=apcwires") - usr.machine = null + usr.unset_machine() return else if (href_list["overload"]) diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index 13b892f20f..890f0b0283 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -123,11 +123,11 @@ /obj/machinery/power/generator/proc/interact(mob/user) if ( (get_dist(src, user) > 1 ) && (!istype(user, /mob/living/silicon/ai))) - user.machine = null + user.unset_machine() user << browse(null, "window=teg") return - user.machine = src + user.set_machine(src) var/t = "
    Thermo-Electric Generator
    " @@ -153,7 +153,7 @@ ..() if( href_list["close"] ) usr << browse(null, "window=teg") - usr.machine = null + usr.unset_machine() return 0 return 1 diff --git a/code/modules/power/generator_type2.dm b/code/modules/power/generator_type2.dm index 8fe7006027..e4c57556ac 100644 --- a/code/modules/power/generator_type2.dm +++ b/code/modules/power/generator_type2.dm @@ -100,11 +100,11 @@ /obj/machinery/power/generator_type2/proc/interact(mob/user) if ( (get_dist(src, user) > 1 ) && (!istype(user, /mob/living/silicon/ai))) - user.machine = null + user.unset_machine() user << browse(null, "window=teg") return - user.machine = src + user.set_machine(src) var/t = "
    Thermo-Electric Generator
    " @@ -131,7 +131,7 @@ if( href_list["close"] ) usr << browse(null, "window=teg") - usr.machine = null + usr.unset_machine() return 0 return 1 diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 5f3696895f..5a9ed5df6e 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -71,7 +71,7 @@ return attack_hand(user) /obj/machinery/computer/gravity_control_computer/attack_hand(mob/user as mob) - user.machine = src + user.set_machine(src) add_fingerprint(user) if(stat & (BROKEN|NOPOWER)) @@ -118,7 +118,7 @@ if ( (get_dist(src, usr) > 1 )) if (!istype(usr, /mob/living/silicon)) - usr.machine = null + usr.unset_machine() usr << browse(null, "window=air_alarm") return diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 57a71fbb5c..9ca2507390 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -239,11 +239,11 @@ display round(lastgen) and plasmatank amount /obj/machinery/power/port_gen/pacman/proc/interact(mob/user) if (get_dist(src, user) > 1 ) if (!istype(user, /mob/living/silicon/ai)) - user.machine = null + user.unset_machine() user << browse(null, "window=port_gen") return - user.machine = src + user.set_machine(src) var/dat = text("[name]
    ") if (active) @@ -284,7 +284,7 @@ display round(lastgen) and plasmatank amount src.updateUsrDialog() if (href_list["action"] == "close") usr << browse(null, "window=port_gen") - usr.machine = null + usr.unset_machine() /obj/machinery/power/port_gen/pacman/super name = "S.U.P.E.R.P.A.C.M.A.N.-type Portable Generator" diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index be76d9628b..08b13dce28 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -70,13 +70,13 @@ ..() //Ignore input if we are broken, !silicon guy cant touch us, or nonai controlling from super far away if(stat & (BROKEN|NOPOWER) || (get_dist(src, usr) > 1 && !istype(usr, /mob/living/silicon)) || (get_dist(src, usr) > 8 && !istype(usr, /mob/living/silicon/ai))) - usr.machine = null + usr.unset_machine() usr << browse(null, "window=pacontrol") return if( href_list["close"] ) usr << browse(null, "window=pacontrol") - usr.machine = null + usr.unset_machine() return if(href_list["togglep"]) src.toggle_power() @@ -205,10 +205,10 @@ /obj/machinery/particle_accelerator/control_box/proc/interact(mob/user) if((get_dist(src, user) > 1) || (stat & (BROKEN|NOPOWER))) if(!istype(user, /mob/living/silicon)) - user.machine = null + user.unset_machine() user << browse(null, "window=pacontrol") return - user.machine = src + user.set_machine(src) var/dat = "" dat += "Particle Accelerator Control Panel
    " diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 63f9f9ab3d..0f67afe41e 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -180,11 +180,11 @@ /obj/machinery/power/smes/proc/interact(mob/user) if(get_dist(src, user) > 1 && !istype(user, /mob/living/silicon/ai)) - user.machine = null + user.unset_machine() user << browse(null, "window=smes") return - user.machine = src + user.set_machine(src) var/t = "SMES Power Storage Unit [n_tag? "([n_tag])" : null]
    "
     
    @@ -228,7 +228,7 @@
     
     		if( href_list["close"] )
     			usr << browse(null, "window=smes")
    -			usr.machine = null
    +			usr.unset_machine()
     			return
     
     		else if( href_list["cmode"] )
    @@ -299,7 +299,7 @@
     
     	else
     		usr << browse(null, "window=smes")
    -		usr.machine = null
    +		usr.unset_machine()
     	return
     
     
    diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm
    index 9031c2ebc8..512d721a53 100644
    --- a/code/modules/power/solar.dm
    +++ b/code/modules/power/solar.dm
    @@ -276,12 +276,12 @@
     		if(stat & (BROKEN | NOPOWER)) return
     		if ( (get_dist(src, user) > 1 ))
     			if (!istype(user, /mob/living/silicon/ai))
    -				user.machine = null
    +				user.unset_machine()
     				user << browse(null, "window=solcon")
     				return
     
     		add_fingerprint(user)
    -		user.machine = src
    +		user.set_machine(src)
     
     		var/t = "Solar Generator Control
    "
     		t += "Generated power : [round(lastgen)] W

    " @@ -306,11 +306,11 @@ Topic(href, href_list) if(..()) usr << browse(null, "window=solcon") - usr.machine = null + usr.unset_machine() return if(href_list["close"] ) usr << browse(null, "window=solcon") - usr.machine = null + usr.unset_machine() return if(href_list["dir"]) diff --git a/code/modules/projectiles/guns/energy/temperature.dm b/code/modules/projectiles/guns/energy/temperature.dm index 61f5f503e2..1e61590f21 100644 --- a/code/modules/projectiles/guns/energy/temperature.dm +++ b/code/modules/projectiles/guns/energy/temperature.dm @@ -23,7 +23,7 @@ attack_self(mob/living/user as mob) - user.machine = src + user.set_machine(src) var/temp_text = "" if(temperature > (T0C - 50)) temp_text = "[temperature] ([round(temperature-T0C)]°C) ([round(temperature*1.8-459.67)]°F)" @@ -43,7 +43,7 @@ Topic(href, href_list) if (..()) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 7a880484b2..011cdd68a2 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -98,7 +98,7 @@ if(usr.stat || usr.restrained()) return if(!in_range(src, usr)) return - usr.machine = src + usr.set_machine(src) if (data == "amountc") var/num = input("Enter desired output amount", "Amount", "30") as num @@ -162,7 +162,7 @@ /obj/machinery/chem_dispenser/attack_hand(mob/user as mob) if(stat & BROKEN) return - user.machine = src + user.set_machine(src) initWindow(user) updateWindow(user) @@ -251,7 +251,7 @@ if(!in_range(src, usr)) return src.add_fingerprint(usr) - usr.machine = src + usr.set_machine(src) if (href_list["ejectp"]) @@ -260,7 +260,7 @@ loaded_pill_bottle = null else if(href_list["close"]) usr << browse(null, "window=chemmaster") - usr.machine = null + usr.unset_machine() return if(beaker) @@ -374,7 +374,7 @@ /obj/machinery/chem_master/attack_hand(mob/user as mob) if(stat & BROKEN) return - user.machine = src + user.set_machine(src) var/dat = "" if(!beaker) dat = "Please insert beaker.
    " @@ -488,7 +488,7 @@ if(usr.stat || usr.restrained()) return if(!in_range(src, usr)) return - usr.machine = src + usr.set_machine(src) if(!beaker) return if (href_list["create_vaccine"]) @@ -566,7 +566,7 @@ /obj/machinery/computer/pandemic/attack_hand(mob/user as mob) if(stat & (NOPOWER|BROKEN)) return - user.machine = src + user.set_machine(src) var/dat = "" if(src.temphtml) dat = "[src.temphtml]

    Main Menu" @@ -789,7 +789,7 @@ return 0 /obj/machinery/reagentgrinder/attack_hand(mob/user as mob) - user.machine = src + user.set_machine(src) interact(user) /obj/machinery/reagentgrinder/proc/interact(mob/user as mob) // The microwave Menu @@ -841,7 +841,7 @@ /obj/machinery/reagentgrinder/Topic(href, href_list) if(..()) return - usr.machine = src + usr.set_machine(src) switch(href_list["action"]) if ("grind") grind() diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index fb00b895a7..fdab79548d 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -219,7 +219,7 @@ src.add_fingerprint(user) if(stat & BROKEN) - user.machine = null + user.unset_machine() return var/dat = "Waste Disposal UnitWaste Disposal Unit
    " @@ -244,7 +244,7 @@ dat += "Pressure: [round(per, 1)]%
    " - user.machine = src + user.set_machine(src) user << browse(dat, "window=disposal;size=360x170") onclose(user, "disposal") @@ -266,10 +266,10 @@ return if (in_range(src, usr) && istype(src.loc, /turf)) - usr.machine = src + usr.set_machine(src) if(href_list["close"]) - usr.machine = null + usr.unset_machine() usr << browse(null, "window=disposal") return @@ -288,7 +288,7 @@ eject() else usr << browse(null, "window=disposal") - usr.machine = null + usr.unset_machine() return return diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 94cc953820..9cc25c8281 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -195,7 +195,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, add_fingerprint(usr) - usr.machine = src + usr.set_machine(src) if(href_list["menu"]) //Switches menu screens. Converts a sent text string into a number. Saves a LOT of code. var/temp_screen = text2num(href_list["menu"]) if(temp_screen <= 1.1 || (3 <= temp_screen && 4.9 >= temp_screen) || src.allowed(usr) || emagged) //Unless you are making something, you need access. @@ -548,7 +548,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, call(/obj/item/clothing/gloves/space_ninja/proc/drain)("RESEARCH",src,user:wear_suit) return - user.machine = src + user.set_machine(src) var/dat = "" files.RefreshResearch() switch(screen) //A quick check to make sure you get the right screen when a device is disconnected. diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 6da57d26e3..68def8bd39 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -69,7 +69,7 @@ /obj/machinery/r_n_d/Topic(href, href_list) if(..()) return - usr.machine = src + usr.set_machine(src) src.add_fingerprint(usr) if(href_list["pulse"]) var/temp_wire = href_list["wire"] diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index 1b39aed9c5..3819e7878d 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -207,7 +207,7 @@ return add_fingerprint(usr) - usr.machine = src + usr.set_machine(src) if(!src.allowed(usr) && !emagged) usr << "\red You do not have the required access level" return @@ -276,7 +276,7 @@ /obj/machinery/computer/rdservercontrol/attack_hand(mob/user as mob) if(stat & (BROKEN|NOPOWER)) return - user.machine = src + user.set_machine(src) var/dat = "" switch(screen) diff --git a/code/modules/security levels/keycard authentication.dm b/code/modules/security levels/keycard authentication.dm index 23b0f79634..17fab849e3 100644 --- a/code/modules/security levels/keycard authentication.dm +++ b/code/modules/security levels/keycard authentication.dm @@ -59,7 +59,7 @@ user << "This device is busy" return - user.machine = src + user.set_machine(src) var/dat = "

    Keycard Authentication Device

    "