diff --git a/code/modules/vore/eating/belly_obj.dm b/code/modules/vore/eating/belly_obj.dm
index e2b2b33ba7..062ea98773 100644
--- a/code/modules/vore/eating/belly_obj.dm
+++ b/code/modules/vore/eating/belly_obj.dm
@@ -165,7 +165,12 @@
. = ..()
// Called whenever an atom enters this belly
-/obj/belly/Entered(var/atom/movable/thing,var/atom/OldLoc)
+/obj/belly/Entered(atom/movable/thing, atom/OldLoc)
+ . = ..()
+ var/mob/living/L //for chat messages and blindness
+ if(isliving(thing))
+ L = thing
+ L.become_blind("belly_[REF(src)]")
if(OldLoc in contents)
return //Someone dropping something (or being stripdigested)
@@ -190,11 +195,14 @@
SEND_SOUND(H,eating)
recent_sound = TRUE
- //Messages if it's a mob
- if(isliving(thing))
- var/mob/living/M = thing
- if(desc)
- to_chat(M, "[desc]")
+ if(L && desc)
+ to_chat(L, "[desc]")
+
+/obj/belly/Entered(atom/movable/AM, atom/newloc)
+ . = ..()
+ if(isliving(AM))
+ var/mob/living/L = AM
+ L.cure_blind("belly_[REF(src)]")
// Release all contents of this belly into the owning mob's location.
// If that location is another mob, contents are transferred into whichever of its bellies the owning mob is in.
@@ -215,7 +223,6 @@
continue
L.absorbed = FALSE
L.stop_sound_channel(CHANNEL_PREYLOOP)
- L.cure_blind("belly_[REF(src)]")
SEND_SIGNAL(OW, COMSIG_CLEAR_MOOD_EVENT, "fedpred", /datum/mood_event/fedpred)
SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "fedprey", /datum/mood_event/fedprey)
SEND_SIGNAL(OW, COMSIG_ADD_MOOD_EVENT, "emptypred", /datum/mood_event/emptypred)
@@ -263,7 +270,6 @@
var/mob/living/OW = owner
if(ML.client)
ML.stop_sound_channel(CHANNEL_PREYLOOP) //Stop the internal loop, it'll restart if the isbelly check on next tick anyway
- ML.cure_blind("belly_[REF(src)]")
SEND_SIGNAL(OW, COMSIG_CLEAR_MOOD_EVENT, "fedpred", /datum/mood_event/fedpred)
SEND_SIGNAL(ML, COMSIG_CLEAR_MOOD_EVENT, "fedprey", /datum/mood_event/fedprey)
SEND_SIGNAL(OW, COMSIG_ADD_MOOD_EVENT, "emptypred", /datum/mood_event/emptypred)
@@ -326,7 +332,6 @@
for(var/mob/living/M in contents)
M.updateVRPanel()
- M.become_blind("belly_[REF(src)]")
// Setup the autotransfer checks if needed
if(transferlocation != null && autotransferchance > 0)
@@ -345,9 +350,6 @@
/obj/belly/proc/transfer_contents(var/atom/movable/content, var/obj/belly/target, silent = FALSE)
if(!(content in src) || !istype(target))
return
- if(isliving(content))
- var/mob/living/M = content
- M.cure_blind("belly_[REF(src)]")
content.forceMove(target)
if(vore_sound && !recent_sound && !silent)
@@ -370,7 +372,6 @@
owner.updateVRPanel()
for(var/mob/living/M in contents)
M.updateVRPanel()
- M.become_blind("belly_[REF(src)]")
// Get the line that should show up in Examine message if the owner of this belly
// is examined. By making this a proc, we not only take advantage of polymorphism,