Horizon Bugfixes 01 (#13449)

This commit is contained in:
mikomyazaki
2022-04-11 14:40:18 +01:00
committed by GitHub
parent ee15c190b8
commit 94523a42cb
6 changed files with 112 additions and 43 deletions

View File

@@ -75,7 +75,7 @@
return TOPIC_NOACTION
if (href_list["viewing"])
if(usr && !isAI(usr))
if(usr)
viewing_overmap(usr) ? unlook(usr) : look(usr)
return TOPIC_REFRESH
@@ -86,7 +86,7 @@
if(sensors)
if (href_list["range"])
var/nrange = input("Set new sensors range", "Sensor range", sensors.range) as num|null
if(!CanInteract(usr, physical_state))
if(!CanInteract(usr, default_state))
return TOPIC_NOACTION
if (nrange)
sensors.set_range(Clamp(nrange, 1, world.view))

View File

@@ -45,15 +45,30 @@ somewhere on that shuttle. Subtypes of these can be then used to perform ship ov
if(user.client)
user.client.view = world.view + extra_view
moved_event.register(user, src, /obj/machinery/computer/ship/proc/unlook)
if(user.eyeobj)
moved_event.register(user.eyeobj, src, /obj/machinery/computer/ship/proc/unlook)
LAZYDISTINCTADD(viewers, WEAKREF(user))
/obj/machinery/computer/ship/proc/unlook(var/mob/user)
user.reset_view()
if(user.client)
user.client.view = world.view
user.client.pixel_x = 0
user.client.pixel_y = 0
var/client/c = user.client
if(isEye(user))
var/mob/abstract/eye/E = user
E.reset_view()
c = E.owner.client
if(c)
c.view = world.view
c.pixel_x = 0
c.pixel_y = 0
moved_event.unregister(user, src, /obj/machinery/computer/ship/proc/unlook)
if(isEye(user)) // If we're an AI eye, the computer has our AI mob in its viewers list not the eye mob
var/mob/abstract/eye/E = user
moved_event.unregister(E.owner, src, /obj/machinery/computer/ship/proc/unlook)
LAZYREMOVE(viewers, WEAKREF(E.owner))
LAZYREMOVE(viewers, WEAKREF(user))
/obj/machinery/computer/ship/proc/viewing_overmap(mob/user)
@@ -72,7 +87,8 @@ somewhere on that shuttle. Subtypes of these can be then used to perform ship ov
if(!viewing_overmap(user))
return FALSE
if (use_check_and_message(user) || user.blinded || inoperable() || !linked)
var/flags = issilicon(user) ? USE_ALLOW_NON_ADJACENT : 0
if (use_check_and_message(user, flags) || user.blinded || inoperable() || !linked)
return -1
else
return 0