diff --git a/code/modules/mob/living/simple_mob/simple_mob_vr.dm b/code/modules/mob/living/simple_mob/simple_mob_vr.dm index c7ce2c4912..bedcceb5c7 100644 --- a/code/modules/mob/living/simple_mob/simple_mob_vr.dm +++ b/code/modules/mob/living/simple_mob/simple_mob_vr.dm @@ -86,8 +86,6 @@ icon_state = "[icon_rest]-[vore_fullness]" /mob/living/simple_mob/proc/will_eat(var/mob/living/M) - M.init_vore() - init_vore() if(client) //You do this yourself, dick! //ai_log("vr/wont eat [M] because we're player-controlled", 3) //VORESTATION AI TEMPORARY REMOVAL return 0 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/leopardmander_ch.dm b/code/modules/mob/living/simple_mob/subtypes/vore/leopardmander_ch.dm index 2add7ca9e2..df72169a8b 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/leopardmander_ch.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/leopardmander_ch.dm @@ -78,7 +78,6 @@ var/target_zone = pick(BP_TORSO,BP_TORSO,BP_TORSO,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_HEAD) if(L.can_inject(src, null, target_zone)) last_inject = world.time - L.init_vore() if(!L.allowmobvore) //If we can't eat them, stop mauling them. ai_holder.lose_target() //Call this first so the attacks stop if the reagent proc runtimes. L.reagents.add_reagent("bicaridine", venom_dose) //If we can't eat them, give them some bicar to compensate for no heal belly. diff --git a/code/modules/multiz/movement_vr.dm b/code/modules/multiz/movement_vr.dm index 9c1a8f2994..bbca4eef0d 100644 --- a/code/modules/multiz/movement_vr.dm +++ b/code/modules/multiz/movement_vr.dm @@ -77,8 +77,6 @@ pred.Weaken(8) var/mob/living/prey = src var/fallloc = prey.loc - pred.init_vore() - prey.init_vore() if(pred.can_be_drop_pred && prey.can_be_drop_prey) pred.feed_grabbed_to_self_falling_nom(pred,prey) pred.loc = fallloc diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 1d1d54a211..8ed9e231b4 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -49,6 +49,11 @@ M.verbs += /mob/living/proc/vore_transfer_reagents //CHOMP If mob doesnt have bellies it cant use this verb for anything M.verbs += /mob/living/proc/vore_check_reagents //CHOMP If mob doesnt have bellies it cant use this verb for anything + //Tries to load prefs if a client is present otherwise gives freebie stomach + spawn(2 SECONDS) + if(M) + M.init_vore() + //return TRUE to hook-caller return TRUE @@ -97,7 +102,6 @@ //Has to be aggressive grab, has to be living click-er and non-silicon grabbed if(G.state >= GRAB_AGGRESSIVE && (isliving(user) && !issilicon(G.affecting))) var/mob/living/attacker = user // Typecast to living - G.affecting.init_vore() // src is the mob clicked on and attempted predator @@ -148,10 +152,6 @@ var/mob/living/attacker = user // Typecast to living if(is_vore_predator(src)) for(var/mob/living/M in H.contents) - M.init_vore() - if(!M.devourable) - to_chat(user, "[M] isn't able to be devoured.") - return FALSE if(attacker.eat_held_mob(attacker, M, src)) if(H.held_mob == M) H.held_mob = null @@ -290,6 +290,7 @@ vore_organs.Cut() for(var/entry in P.belly_prefs) list_to_object(entry,src) + break //CHOMPedit: Belly load optimization. Only load first belly, save the rest for vorepanel. return TRUE diff --git a/code/modules/vore/eating/simple_animal_vr.dm b/code/modules/vore/eating/simple_animal_vr.dm index 02a3a77868..eda82b1c9a 100644 --- a/code/modules/vore/eating/simple_animal_vr.dm +++ b/code/modules/vore/eating/simple_animal_vr.dm @@ -13,8 +13,6 @@ if(stat != CONSCIOUS) return - init_vore() - T.init_vore() // Verbs are horrifying. They don't call overrides. So we're stuck with this. if(istype(src, /mob/living/simple_mob/animal/passive/mouse) && !T.ckey) // Mice can't eat logged out players! diff --git a/code/modules/vore/eating/vore_vr.dm b/code/modules/vore/eating/vore_vr.dm index e889f9e08f..5a69bc9dc9 100644 --- a/code/modules/vore/eating/vore_vr.dm +++ b/code/modules/vore/eating/vore_vr.dm @@ -82,7 +82,6 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE // Check if an object is capable of eating things, based on vore_organs // /proc/is_vore_predator(mob/living/O) - O.init_vore() if(istype(O,/mob/living)) if(O.vore_organs.len > 0) return TRUE diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index fdaafbb7d4..6a892c65d1 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -18,7 +18,16 @@ if(!vorePanel) log_debug("[src] ([type], \ref[src]) didn't have a vorePanel and tried to use the verb.") vorePanel = new(src) - init_vore() //CHOMPedit Returns if the organs already exist anyway. + + if(!vorePanel.bellies_loaded) //CHOMPedit Start: On-demand belly loading + var/datum/vore_preferences/P = client.prefs_vr + var/firstbelly = FALSE // First belly loaded on init_vore + for(var/entry in P.belly_prefs) + if(!firstbelly) + firstbelly = TRUE + continue + list_to_object(entry,src) + vorePanel.bellies_loaded = TRUE //CHOMPedit End vorePanel.tgui_interact(src) @@ -32,6 +41,7 @@ var/mob/living/host // Note, we do this in case we ever want to allow people to view others vore panels var/unsaved_changes = FALSE var/show_pictures = TRUE + var/bellies_loaded = FALSE //CHOMPedit: On-demand belly loading /datum/vore_look/New(mob/living/new_host) if(istype(new_host)) diff --git a/vorestation.dme b/vorestation.dme index 5e564eba0b..32fb3c2214 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -3185,9 +3185,9 @@ #include "code\modules\mob\new_player\sprite_accessories_taur.dm" #include "code\modules\mob\new_player\sprite_accessories_taur_vr.dm" #include "code\modules\mob\new_player\sprite_accessories_vr.dm" -#include "code\modules\mob\new_player\sprite_accessories_yw.dm" #include "code\modules\mob\new_player\sprite_accessories_wing.dm" #include "code\modules\mob\new_player\sprite_accessories_wing_vr.dm" +#include "code\modules\mob\new_player\sprite_accessories_yw.dm" #include "code\modules\modular_computers\laptop_vendor.dm" #include "code\modules\modular_computers\computers\modular_computer\core.dm" #include "code\modules\modular_computers\computers\modular_computer\damage.dm" @@ -4003,7 +4003,6 @@ #include "code\modules\vore\eating\bellymodes_vr.dm" #include "code\modules\vore\eating\contaminate_vr.dm" #include "code\modules\vore\eating\digest_act_vr.dm" -#include "code\modules\vore\eating\human_ch.dm" #include "code\modules\vore\eating\leave_remains_vr.dm" #include "code\modules\vore\eating\living_ch.dm" #include "code\modules\vore\eating\living_vr.dm"