diff --git a/_maps/map_files/MetaStation/z2.dmm b/_maps/map_files/MetaStation/z2.dmm index 0d5b4fdb20e..a6c9869ef7c 100644 --- a/_maps/map_files/MetaStation/z2.dmm +++ b/_maps/map_files/MetaStation/z2.dmm @@ -6264,10 +6264,6 @@ icon_state = "dark" }, /area/centcom/ferry) -"Dq" = ( -/obj/effect/landmark/ai_multicam_room, -/turf/unsimulated/ai_visible, -/area/ai_multicam_room) "EE" = ( /obj/machinery/light/small, /obj/structure/chair/comfy/shuttle{ @@ -6315,12 +6311,6 @@ icon_state = "floor4" }, /area/shuttle/escape) -"HX" = ( -/turf/unsimulated/ai_visible, -/area/ai_multicam_room) -"It" = ( -/turf/unsimulated/wall, -/area/ai_multicam_room) "Iz" = ( /obj/structure/chair/comfy/brown{ dir = 1 @@ -54344,27 +54334,27 @@ ab ab ab ab -It -It -It -It -It -It -It -It -It -It -It -It -It -It -It -It -It -It -It -It -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -54601,27 +54591,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -54858,27 +54848,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -55115,27 +55105,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -55372,27 +55362,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -55629,27 +55619,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -55886,27 +55876,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -56143,27 +56133,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -56400,27 +56390,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -56657,27 +56647,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -56914,27 +56904,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -Dq -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -57171,27 +57161,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -57428,27 +57418,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -57685,27 +57675,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -57942,27 +57932,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -58199,27 +58189,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -58456,27 +58446,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -58713,27 +58703,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -58970,27 +58960,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -59227,27 +59217,27 @@ ab ab ab ab -It -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -HX -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -59484,27 +59474,27 @@ ab ab ab ab -It -It -It -It -It -It -It -It -It -It -It -It -It -It -It -It -It -It -It -It -It +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm index 6d3c4b74c64..d5681c2e8d4 100644 --- a/_maps/map_files/cyberiad/z2.dmm +++ b/_maps/map_files/cyberiad/z2.dmm @@ -12398,10 +12398,6 @@ dir = 6 }, /area/syndicate_mothership/jail) -"Qr" = ( -/obj/effect/landmark/ai_multicam_room, -/turf/unsimulated/ai_visible, -/area/ai_multicam_room) "Qt" = ( /obj/machinery/poolcontroller/invisible, /turf/unsimulated/beach/water, @@ -12671,9 +12667,6 @@ dir = 8 }, /area/syndicate_mothership/jail) -"Vc" = ( -/turf/unsimulated/ai_visible, -/area/ai_multicam_room) "Vm" = ( /obj/structure/table/wood, /obj/item/storage/box/donkpockets, @@ -12681,9 +12674,6 @@ icon_state = "dark" }, /area/syndicate_mothership/jail) -"Vz" = ( -/turf/unsimulated/wall, -/area/ai_multicam_room) "VA" = ( /obj/effect/decal/warning_stripes/northwest, /turf/unsimulated/floor{ @@ -64190,27 +64180,27 @@ aN aN aN aN -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -64447,27 +64437,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -64704,27 +64694,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -64961,27 +64951,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -65218,27 +65208,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -65475,27 +65465,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -65732,27 +65722,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -65989,27 +65979,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -66246,27 +66236,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -66503,27 +66493,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -66760,27 +66750,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Qr -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -67017,27 +67007,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -67274,27 +67264,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -67531,27 +67521,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -67788,27 +67778,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -68045,27 +68035,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -68302,27 +68292,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -68559,27 +68549,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -68816,27 +68806,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -69073,27 +69063,27 @@ aN aN aN aN -Vz -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vc -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN @@ -69330,27 +69320,27 @@ aN aN aN aN -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz -Vz +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN aN aN aN diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index 4652ee2f20b..a907a5dfc45 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -32,14 +32,6 @@ return changeNext_click(1) - if(multicam_on) - var/turf/T = get_turf(A) - if(T) - for(var/obj/screen/movable/pic_in_pic/ai/P in T.vis_locs) - if(P.ai == src) - P.Click(params) - break - if(control_disabled || stat) return diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index b069ff31eb7..58fd73656cb 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -153,8 +153,6 @@ #define ui_ai_take_picture "SOUTH:6,WEST+12" #define ui_ai_view_images "SOUTH:6,WEST+13" #define ui_ai_sensor "SOUTH:6,WEST+14" -#define ui_ai_multicam "SOUTH+1:6,WEST+13" -#define ui_ai_add_multicam "SOUTH+1:6,WEST+14" // Bots #define ui_bot_radio "EAST-1:28,SOUTH:7" diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm index 856f724f925..63783a04467 100644 --- a/code/_onclick/hud/ai.dm +++ b/code/_onclick/hud/ai.dm @@ -140,26 +140,6 @@ var/mob/living/silicon/robot/borg = usr borg.sensor_mode() -/obj/screen/ai/multicam - name = "Multicamera Mode" - icon_state = "multicam" - -/obj/screen/ai/multicam/Click() - if(..()) - return - var/mob/living/silicon/ai/AI = usr - AI.toggle_multicam() - -/obj/screen/ai/add_multicam - name = "New Camera" - icon_state = "new_cam" - -/obj/screen/ai/add_multicam/Click() - if(..()) - return - var/mob/living/silicon/ai/AI = usr - AI.drop_new_multicam() - /mob/living/silicon/ai/create_mob_hud() if(client && !hud_used) hud_used = new /datum/hud/ai(src) @@ -248,16 +228,6 @@ using.screen_loc = ui_ai_sensor static_inventory += using -//Multicamera mode - using = new /obj/screen/ai/multicam() - using.screen_loc = ui_ai_multicam - static_inventory += using - -//Add multicamera camera - using = new /obj/screen/ai/add_multicam() - using.screen_loc = ui_ai_add_multicam - static_inventory += using - //Intent using = new /obj/screen/act_intent/robot/AI() using.icon_state = mymob.a_intent diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 58bb69355ea..a01ea315e58 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -95,7 +95,7 @@ screen_loc = ui_borg_intents /obj/screen/act_intent/robot/AI - screen_loc = "EAST-1:32,SOUTH:70" + screen_loc = "SOUTH+1:6,EAST-1:32" /obj/screen/mov_intent name = "run/walk toggle" diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 53db4916510..2bd990f1f85 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -108,12 +108,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( var/announce_arrivals = TRUE var/arrivalmsg = "$name, $rank, has arrived on the station." - var/multicam_allowed = FALSE - var/multicam_on = FALSE - var/obj/screen/movable/pic_in_pic/ai/master_multicam - var/list/multicam_screens = list() var/list/all_eyes = list() - var/max_multicams = 6 /mob/living/silicon/ai/proc/add_ai_verbs() verbs |= GLOB.ai_verbs_default @@ -766,13 +761,10 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( light_cameras() if(istype(A, /obj/machinery/camera)) current = A - if(A != GLOB.ai_camera_room_landmark) - end_multicam() . = ..() if(.) if(!A && isturf(loc) && eyeobj) - end_multicam() client.eye = eyeobj client.perspective = MOB_PERSPECTIVE eyeobj.get_remote_view_fullscreens(src) @@ -1360,11 +1352,6 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( /mob/living/silicon/ai/proc/camera_visibility(mob/camera/aiEye/moved_eye) GLOB.cameranet.visibility(moved_eye, client, all_eyes) -/mob/living/silicon/ai/forceMove(atom/destination) - . = ..() - if(.) - end_multicam() - /mob/living/silicon/ai/handle_fire() return diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index faacf9ba359..3b6f98be205 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -29,12 +29,10 @@ loc = T if(use_static) ai.camera_visibility(src) - if(ai.client && !ai.multicam_on) + if(ai.client) ai.client.eye = src update_parallax_contents() //Holopad - if(ai.master_multicam) - ai.master_multicam.refresh_view() if(istype(ai.current, /obj/machinery/hologram/holopad)) var/obj/machinery/hologram/holopad/H = ai.current H.move_hologram(ai, T) @@ -66,7 +64,7 @@ /atom/proc/move_camera_by_click() if(istype(usr, /mob/living/silicon/ai)) var/mob/living/silicon/ai/AI = usr - if(AI.eyeobj && (AI.multicam_on || (AI.client.eye == AI.eyeobj)) && (AI.eyeobj.z == z)) + if(AI.eyeobj && (AI.client.eye == AI.eyeobj) && (AI.eyeobj.z == z)) AI.cameraFollow = null if(isturf(loc) || isturf(src)) AI.eyeobj.setLoc(src) diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index 106eaf86d37..9f1213df282 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -60,7 +60,6 @@ spawn(20) to_chat(src, "Backup battery online. Scanners, camera, and radio interface offline. Beginning fault-detection.") - end_multicam() sleep(50) my_area = get_area(src) T = get_turf(src) diff --git a/code/modules/mob/living/silicon/ai/login.dm b/code/modules/mob/living/silicon/ai/login.dm index 7d4244d9aec..545e1569fc1 100644 --- a/code/modules/mob/living/silicon/ai/login.dm +++ b/code/modules/mob/living/silicon/ai/login.dm @@ -10,6 +10,4 @@ for(var/obj/machinery/ai_status_display/O in GLOB.machines) //change status O.mode = 1 O.emotion = "Neutral" - if(multicam_on) - end_multicam() view_core() diff --git a/code/modules/mob/living/silicon/ai/multicam.dm b/code/modules/mob/living/silicon/ai/multicam.dm deleted file mode 100644 index d33e57ea971..00000000000 --- a/code/modules/mob/living/silicon/ai/multicam.dm +++ /dev/null @@ -1,260 +0,0 @@ -//Picture in picture - -/obj/screen/movable/pic_in_pic/ai - var/mob/living/silicon/ai/ai - var/mutable_appearance/highlighted_background - var/highlighted = FALSE - var/mob/camera/aiEye/pic_in_pic/aiEye - -/obj/screen/movable/pic_in_pic/ai/Initialize() - . = ..() - aiEye = new /mob/camera/aiEye/pic_in_pic() - aiEye.screen = src - -/obj/screen/movable/pic_in_pic/ai/Destroy() - set_ai(null) - QDEL_NULL(aiEye) - return ..() - -/obj/screen/movable/pic_in_pic/ai/Click() - ..() - if(ai) - ai.select_main_multicam_window(src) - -/obj/screen/movable/pic_in_pic/ai/make_backgrounds() - ..() - highlighted_background = new /mutable_appearance() - highlighted_background.icon = 'icons/misc/pic_in_pic.dmi' - highlighted_background.icon_state = "background_highlight" - highlighted_background.layer = SPACE_LAYER - -/obj/screen/movable/pic_in_pic/ai/add_background() - if((width > 0) && (height > 0)) - var/matrix/M = matrix() - M.Scale(width + 0.5, height + 0.5) - M.Translate((width-1)/2 * world.icon_size, (height-1)/2 * world.icon_size) - highlighted_background.transform = M - standard_background.transform = M - overlays += highlighted ? highlighted_background : standard_background - -/obj/screen/movable/pic_in_pic/ai/set_view_size(width, height, do_refresh = TRUE) - aiEye.static_visibility_range = (round(max(width, height) / 2) + 1) - if(ai) - ai.camera_visibility(aiEye) - ..() - -/obj/screen/movable/pic_in_pic/ai/set_view_center(atom/target, do_refresh = TRUE) - ..() - aiEye.setLoc(get_turf(target)) - -/obj/screen/movable/pic_in_pic/ai/refresh_view() - ..() - aiEye.setLoc(get_turf(center)) - -/obj/screen/movable/pic_in_pic/ai/proc/highlight() - if(highlighted) - return - highlighted = TRUE - overlays -= standard_background - overlays += highlighted_background - -/obj/screen/movable/pic_in_pic/ai/proc/unhighlight() - if(!highlighted) - return - highlighted = FALSE - overlays -= highlighted_background - overlays += standard_background - -/obj/screen/movable/pic_in_pic/ai/proc/set_ai(mob/living/silicon/ai/new_ai) - if(ai) - ai.multicam_screens -= src - ai.all_eyes -= aiEye - if(ai.master_multicam == src) - ai.master_multicam = null - if(ai.multicam_on) - unshow_to(ai.client) - ai = new_ai - if(new_ai) - new_ai.multicam_screens += src - ai.all_eyes += aiEye - if(new_ai.multicam_on) - show_to(new_ai.client) - -//Turf, area, and landmark for the viewing room - -/turf/unsimulated/ai_visible - name = "" - icon = 'icons/misc/pic_in_pic.dmi' - icon_state = "room_background" - flags = NOJAUNT - -/turf/unsimulated/ai_visible/Initialize() - . = ..() - obscured = image(null, src, null) - -/area/ai_multicam_room - name = "ai_multicam_room" - icon_state = "ai_camera_room" - dynamic_lighting = FALSE - valid_territory = FALSE - ambientsounds = list() - -GLOBAL_DATUM(ai_camera_room_landmark, /obj/effect/landmark/ai_multicam_room) - -/obj/effect/landmark/ai_multicam_room - name = "ai camera room" - icon = 'icons/mob/screen_gen.dmi' - icon_state = "x" - -/obj/effect/landmark/ai_multicam_room/Initialize() - . = ..() - qdel(GLOB.ai_camera_room_landmark) - GLOB.ai_camera_room_landmark = src - -/obj/effect/landmark/ai_multicam_room/Destroy() - if(GLOB.ai_camera_room_landmark == src) - GLOB.ai_camera_room_landmark = null - return ..() - -//Dummy camera eyes - -/mob/camera/aiEye/pic_in_pic - name = "Secondary AI Eye" - var/obj/screen/movable/pic_in_pic/ai/screen - var/list/cameras_telegraphed = list() - var/telegraph_cameras = TRUE - var/telegraph_range = 7 - -/mob/camera/aiEye/pic_in_pic/GetViewerClient() - if(screen && screen.ai) - return screen.ai.client - -/mob/camera/aiEye/pic_in_pic/setLoc(turf/T) - T = get_turf(T) - forceMove(T) - if(screen && screen.ai) - screen.ai.camera_visibility(src) - else - GLOB.cameranet.visibility(src) - update_camera_telegraphing() - -/mob/camera/aiEye/pic_in_pic/proc/update_camera_telegraphing() - if(!telegraph_cameras) - return - var/list/obj/machinery/camera/add = list() - var/list/obj/machinery/camera/remove = list() - var/list/obj/machinery/camera/visible = list() - for(var/VV in visibleCameraChunks) - var/datum/camerachunk/CC = VV - for(var/V in CC.cameras) - var/obj/machinery/camera/C = V - if (!C.can_use() || (get_dist(C, src) > telegraph_range)) - continue - visible |= C - - add = visible - cameras_telegraphed - remove = cameras_telegraphed - visible - - for(var/V in remove) - var/obj/machinery/camera/C = V - if(QDELETED(C)) - continue - cameras_telegraphed -= C - C.in_use_lights-- - C.update_icon() - for(var/V in add) - var/obj/machinery/camera/C = V - if(QDELETED(C)) - continue - cameras_telegraphed |= C - C.in_use_lights++ - C.update_icon() - -/mob/camera/aiEye/pic_in_pic/proc/disable_camera_telegraphing() - telegraph_cameras = FALSE - for(var/V in cameras_telegraphed) - var/obj/machinery/camera/C = V - if(QDELETED(C)) - continue - C.in_use_lights-- - C.update_icon() - cameras_telegraphed.Cut() - -/mob/camera/aiEye/pic_in_pic/Destroy() - disable_camera_telegraphing() - return ..() - -//AI procs - -/mob/living/silicon/ai/proc/drop_new_multicam(silent = FALSE) - if(!multicam_allowed) - if(!silent) - to_chat(src, "This action is currently disabled. Contact an administrator to enable this feature.") - return - if(!eyeobj) - return - if(multicam_screens.len >= max_multicams) - if(!silent) - to_chat(src, "Cannot place more than [max_multicams] multicamera windows.") - return - var/obj/screen/movable/pic_in_pic/ai/C = new /obj/screen/movable/pic_in_pic/ai() - C.set_view_size(3, 3, FALSE) - C.set_view_center(get_turf(eyeobj)) - C.set_ai(src) - if(!silent) - to_chat(src, "Added new multicamera window.") - return C - -/mob/living/silicon/ai/proc/toggle_multicam() - if(!multicam_allowed) - to_chat(src, "This action is currently disabled. Contact an administrator to enable this feature.") - return - if(multicam_on) - end_multicam() - else - start_multicam() - -/mob/living/silicon/ai/proc/start_multicam() - if(multicam_on || aiRestorePowerRoutine || !isturf(loc)) - return - if(!GLOB.ai_camera_room_landmark) - to_chat(src, "This function is not available at this time.") - return - multicam_on = TRUE - refresh_multicam() - to_chat(src, "Multiple-camera viewing mode activated.") - -/mob/living/silicon/ai/proc/refresh_multicam() - reset_perspective(GLOB.ai_camera_room_landmark) - if(client) - for(var/V in multicam_screens) - var/obj/screen/movable/pic_in_pic/P = V - P.show_to(client) - -/mob/living/silicon/ai/proc/end_multicam() - if(!multicam_on) - return - multicam_on = FALSE - select_main_multicam_window(null) - if(client) - for(var/V in multicam_screens) - var/obj/screen/movable/pic_in_pic/P = V - P.unshow_to(client) - reset_perspective() - to_chat(src, "Multiple-camera viewing mode deactivated.") - - -/mob/living/silicon/ai/proc/select_main_multicam_window(obj/screen/movable/pic_in_pic/ai/P) - if(master_multicam == P) - return - - if(master_multicam) - master_multicam.set_view_center(get_turf(eyeobj), FALSE) - master_multicam.unhighlight() - master_multicam = null - - if(P) - P.highlight() - eyeobj.setLoc(get_turf(P.center)) - P.set_view_center(eyeobj) - master_multicam = P diff --git a/paradise.dme b/paradise.dme index d1a011e86b2..5c9729e83ec 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1904,7 +1904,6 @@ #include "code\modules\mob\living\silicon\ai\life.dm" #include "code\modules\mob\living\silicon\ai\login.dm" #include "code\modules\mob\living\silicon\ai\logout.dm" -#include "code\modules\mob\living\silicon\ai\multicam.dm" #include "code\modules\mob\living\silicon\ai\say.dm" #include "code\modules\mob\living\silicon\ai\update_status.dm" #include "code\modules\mob\living\silicon\ai\freelook\cameranet.dm"