Merge pull request #13073 from Very-Soft/resetcamera

Calls reset_view when entering and exiting holders and bellies
This commit is contained in:
Casey
2022-06-12 16:07:32 +00:00
committed by CHOMPStation2
parent 30d721f502
commit 2be69cc835
2 changed files with 23 additions and 0 deletions
+6
View File
@@ -29,11 +29,13 @@ var/list/holder_mob_icon_cache = list()
ASSERT(ismob(held))
. = ..()
held.forceMove(src)
held.reset_view(src)
START_PROCESSING(SSobj, src)
/obj/item/weapon/holder/Entered(mob/held, atom/OldLoc)
if(held_mob)
held.forceMove(get_turf(src))
held.reset_view(null)
return
ASSERT(ismob(held))
. = ..()
@@ -71,6 +73,7 @@ var/list/holder_mob_icon_cache = list()
held_mob.transform = original_transform
held_mob.vis_flags = original_vis_flags
held_mob.forceMove(get_turf(src))
held_mob.reset_view(null)
held_mob = null
/obj/item/weapon/holder/throw_at(atom/target, range, speed, thrower)
@@ -103,9 +106,12 @@ var/list/holder_mob_icon_cache = list()
holster.clear_holster()
to_chat(held, "<span class='warning'>You extricate yourself from [holster].</span>")
forceMove(get_turf(src))
held.reset_view(null)
else if(isitem(loc))
to_chat(held, "<span class='warning'>You struggle free of [loc].</span>")
forceMove(get_turf(src))
held.reset_view(null)
//Mob specific holders.
/obj/item/weapon/holder/diona
+17
View File
@@ -436,6 +436,9 @@
slip.slip_protect = world.time + 25 // This is to prevent slipping back into your pred if they stand on soap or something.
//Place them into our drop_location
M.forceMove(drop_location())
if(ismob(M))
var/mob/ourmob = M
ourmob.reset_view(null)
items_preserved -= M
//Special treatment for absorbed prey
@@ -476,6 +479,10 @@
soundfile = fancy_release_sounds[release_sound]
if(soundfile)
playsound(src, soundfile, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE)
//Should fix your view not following you out of mobs sometimes!
if(ismob(M))
var/mob/ourmob = M
ourmob.reset_view(null)
return 1
@@ -489,6 +496,9 @@
prey.buckled.unbuckle_mob()
prey.forceMove(src)
if(ismob(prey))
var/mob/ourmob = prey
ourmob.reset_view(owner)
owner.updateVRPanel()
if(isanimal(owner))
owner.update_icon()
@@ -785,6 +795,10 @@
if(M.loc != src)
M.forceMove(src)
if(ismob(M))
var/mob/ourmob = M
ourmob.reset_view(owner)
//Seek out absorbed prey of the prey, absorb them too.
//This in particular will recurse oddly because if there is absorbed prey of prey of prey...
//it will just move them up one belly. This should never happen though since... when they were
@@ -1096,6 +1110,9 @@
if(!(content in src) || !istype(target))
return
content.forceMove(target)
if(ismob(content))
var/mob/ourmob = content
ourmob.reset_view(owner)
if(isitem(content))
var/obj/item/I = content
if(istype(I,/obj/item/weapon/card/id))