diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm
index 1672434248..236b86b774 100644
--- a/code/__HELPERS/text.dm
+++ b/code/__HELPERS/text.dm
@@ -469,3 +469,18 @@ var/list/rot13_lookup = list()
t_out += char
return t_out
+
+//Used in preferences' SetFlavorText and human's set_flavor verb
+//Previews a string of len or less length
+
+/proc/copytext_preserve_html(var/text, var/first, var/last)
+ return html_encode(copytext(html_decode(text), first, last))
+
+proc/TextPreview(var/string,var/len=40)
+ if(lentext(string) <= len)
+ if(!lentext(string))
+ return "\[...\]"
+ else
+ return string
+ else
+ return "[copytext(string, 1, 37)]..."
\ No newline at end of file
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 4e616769c6..17a9406981 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -963,7 +963,7 @@ var/list/preferences_datums = list()
eye_color = sanitize_hexcolor(new_eyes)
if("species")
- var/result = input(user, "Select a species", "Species Selection") as null|anything in kpcode_race_getlist(ckey)
+ var/result = input(user, "Select a species", "Species Selection") as null|anything in kpcode_race_getlist(user.ckey)
if(result)
var/newtype = species_list[result]
pref_species = new newtype()
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 11c6e17720..4dbadb9cc9 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -367,13 +367,13 @@
skipcatch = 1 //can't catch the now embedded item
return ..()
-
+/* Disabling this for now so it doesn't get in the way. -Cactus
/mob/living/carbon/human/grabbedby(mob/living/carbon/user, supress_message = 0)
if(user == src && pulling && !pulling.anchored && grab_state >= GRAB_AGGRESSIVE && (disabilities & FAT) && ismonkey(pulling))
devour_mob(pulling)
else
..()
-
+*/
/mob/living/carbon/human/grippedby(mob/living/user)
if(w_uniform)
w_uniform.add_fingerprint(user)
diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm
index dcb48318f6..7425b5b3ae 100644
--- a/code/modules/mob/living/carbon/life.dm
+++ b/code/modules/mob/living/carbon/life.dm
@@ -282,6 +282,7 @@
/mob/living/carbon/handle_stomach()
+/*
set waitfor = 0
for(var/mob/living/M in stomach_contents)
if(M.loc != src)
@@ -297,7 +298,7 @@
if(!(M.status_flags & GODMODE))
M.adjustBruteLoss(5)
nutrition += 10
-
+*/
//this updates all special effects: stunned, sleeping, weakened, druggy, stuttering, etc..
/mob/living/carbon/handle_status_effects()
..()
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index bdd61b1f91..89e5d6af88 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -212,7 +212,12 @@
take_organ_damage(min(10*toxpwr, acid_volume * toxpwr))
/mob/living/proc/grabbedby(mob/living/carbon/user, supress_message = 0)
- if(user == src || anchored)
+ if(user == src)
+ var/mob/living/target
+ if(pulling && !pulling.anchored && grab_state >= GRAB_AGGRESSIVE && isliving(pulling))
+ target = pulling
+ user.vore_initiate(target,user)
+ if(anchored)
return 0
if(!user.pulling || user.pulling != src)
user.start_pulling(src, supress_message)
diff --git a/code/narky/chemistry.dm b/code/narky/chemistry.dm
index ed887d30ac..885f2fa44e 100644
--- a/code/narky/chemistry.dm
+++ b/code/narky/chemistry.dm
@@ -41,7 +41,7 @@ datum
..()
return
- reaction_turf(var/turf/simulated/T, var/volume)
+ reaction_turf(var/turf/open/T, var/volume)
if(!istype(T)) return
//var/datum/reagent/semen/self = src
src = null
@@ -73,7 +73,7 @@ datum
..()
return
- reaction_turf(var/turf/simulated/T, var/volume)
+ reaction_turf(var/turf/open/T, var/volume)
if(!istype(T)) return
//var/datum/reagent/femjuice/self = src
src = null
@@ -90,7 +90,7 @@ datum
milk
data = list("adjective"=null, "type"=null, "digested"=null, "digested_DNA"=null, "digested_type"=null, "donor_DNA"=null)
- reaction_turf(var/turf/simulated/T, var/volume)
+ reaction_turf(var/turf/open/T, var/volume)
if(!istype(T)) return
//var/datum/reagent/milk/self = src
src = null
@@ -633,7 +633,7 @@ datum
"[M] throws up!")
playsound(M.loc, 'sound/effects/splat.ogg', 50, 1)
var/turf/location = M.loc
- if(istype(location, /turf/simulated))
+ if(istype(location, /turf/open))
location.add_vomit_floor(M)
M.nutrition -= 50
M.adjustToxLoss(-1)
diff --git a/code/narky/transformation.dm b/code/narky/transformation.dm
index 3c4a6f750e..5acc88415a 100644
--- a/code/narky/transformation.dm
+++ b/code/narky/transformation.dm
@@ -4,6 +4,7 @@
var/tf_gender=NEUTER
var/tf_egg=0
proc/apply_transform(var/mob/living/targ)
+ return //THIS SHIT IS FUBAR -CACTUS
var/old_name=targ.real_name
var/new_gender=tf_gender==NEUTER ? targ.gender : tf_gender
var/transformation_happened=new_gender==targ.gender ? 0 : 1
@@ -20,7 +21,8 @@
if(istype(new_mob))
new_mob.a_intent = "harm"
//new_mob.universal_speak = 1
- new_mob.languages |= HUMAN
+ new_mob.languages_spoken = 1
+ new_mob.languages_understood = 1
new_mob.vore_banned_methods=targ.vore_banned_methods
new_mob.vore_ability=targ.vore_ability
if(targ.mind)
@@ -186,8 +188,8 @@
status_flags = CANPUSH
- //universal_speak = 1
- languages = HUMAN
+ languages_spoken = 1
+ languages_understood = 1
canmove = 0
@@ -234,15 +236,7 @@
return
if (!(status_flags & CANPUSH))
return
-
- var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src )
-
- M.put_in_active_hand(G)
-
- G.synch()
-
LAssailant = M
-
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.eye_blind )))
O.show_message(text("\red [] has grabbed [] passively!", M, src), 1)
diff --git a/code/narky/unassigned.dm b/code/narky/unassigned.dm
index 5b8009c4ca..73dbae64e8 100644
--- a/code/narky/unassigned.dm
+++ b/code/narky/unassigned.dm
@@ -1035,9 +1035,6 @@ var/const/VORE_SIZEDIFF_ANY=5
else
src.visible_message("[helper] has fed [prey] to [src]!")
- for(var/obj/item/weapon/grab/G in prey.grabbed_by)
- qdel(G)
-
if(helper==src)
vore_admins("[src] has eaten [prey]. via [method].",src,prey)
else if(helper==prey)