Memacile

Newbie
Sep 22, 2022
61
102
Alright, sounds good. I rebuilt Tits V2a for you as a ready-to-install package (Mega Link) with edited SpineData already included. Now it comes with "cumflation:cumflation_{FetusCount}" lines patched in.
Install it as usual, it should work just fine.

Now, few words about how to test it:
It affect only two poses, idle Stand and Rest pose (not Exhaustion).

View attachment 2716445

Now, I realize you can't really test it from gallery, because it doesn't have a control over Fetus count outside of Birth scenes which seems to use different logic. So it's better to test it in game. You can use normal version of Tits V2a as a visual reference for belly size, but I believe size difference should be obvious enough.
Okay, I tried it and had no luck. I attached the .zip file containing the BepInEx plugin alone or use the that also has all the BepInEx stuff too.

As a side note I was also using ComplexBreeding when testing this so I had slaves with 5 fetuses. Not sure if this is relevant but maybe that caused issues. I just did not have a advanced save without CB. Just in case I will try without ComplexBreeding later.

Also there was no convenient SetFetusList method to activate the "DirtyFlag" from. Instead I used the CumShotInsideCount setter method... which I would expect is good enough to call DirtyFlag(..., "FetusCount") from.... at least if I wait for a second cumshot after the one that made the slave pregnant.

I think what I want to do next is remove the RegisterFlag(...) and DirtyFlag(...) from some property (maybe CumshotInsideCount) and then see if the corresponding value is updated on the UI. The expected result would be that the value stops updating on the UI. If that happens then we are on the right track and there might be just another missing piece to make it work.
If the UI still updates even after RegisterFlag(...) and DirtyFlag(...) are removed, then we need to rethink.

Edit: The experiment with the RegisterFlag and DirtyFlag behaves as expected. So this is the right track.
Additionally, I found there is a ReferenceCustomize class which I think might be the missing piece... or one of the missing pieces. This class seems to be responsible to store a bunch of unit data like SemenInsideType, Depravity, Chain, Clothes, IsSelectedState, isAdult, etc.... so maybe I can extend it with a FetusCount.
 
Last edited:

Memacile

Newbie
Sep 22, 2022
61
102
Krongorka : I found something that is maybe interesting.
The fetus icons for 1,2 or 3 fetuses seem to be controlled in ReferenceCharacterStatePlate. Not sure if you can do anything with these bools or if you absolutely need an int?

MappingOfFetusIcon2.png

Aside from that, I am currently struggling with a private enum. I think I might need to extend it to properly add FetusCount. I am not sure if that is really doable. I can smuggle an integer in the enum variable, but when I do that the game crashes randomly. I wonder if the problem is that the smuggled enum has an appropriate value but not appropriate name/Tostring().


Lastly I was thinking: Do you need integers 1,2,3 for the image/spine mapping or can you map the bigger bellies to any integers?
I am wondering if we can just re-use an existing variable. Say SemenInsideType and simply map the values as such:

SemenInsideType ValueMapping to Semen on model pictureMapping to belly size
0No Semen image/spineNot pregnant image/spine
1Small amount Semen image/spineNot pregnant image/spine
2More Semen image/spineNot pregnant image/spine
3Max Semen image/spineNot pregnant image/spine
4No Semen image/spineNormal Pregnancy belly image/spine
5Small amount Semen image/spineNormal Pregnancy belly image/spine
6More Semen image/spineNormal Pregnancy belly image/spine
7Max Semen image/spineNormal Pregnancy belly image/spine
8No Semen image/spineBigger Twin Pregnancy belly image/spine
... etc. ...... etc. ...... etc. ...
 

Krongorka

Active Member
Sep 22, 2017
679
2,330
Krongorka : I found something that is maybe interesting.
The fetus icons for 1,2 or 3 fetuses seem to be controlled in ReferenceCharacterStatePlate. Not sure if you can do anything with these bools or if you absolutely need an int?

View attachment 2718799

Aside from that, I am currently struggling with a private enum. I think I might need to extend it to properly add FetusCount. I am not sure if that is really doable. I can smuggle an integer in the enum variable, but when I do that the game crashes randomly. I wonder if the problem is that the smuggled enum has an appropriate value but not appropriate name/Tostring().


Lastly I was thinking: Do you need integers 1,2,3 for the image/spine mapping or can you map the bigger bellies to any integers?
I am wondering if we can just re-use an existing variable. Say SemenInsideType and simply map the values as such:

SemenInsideType ValueMapping to Semen on model pictureMapping to belly size
0No Semen image/spineNot pregnant image/spine
1Small amount Semen image/spineNot pregnant image/spine
2More Semen image/spineNot pregnant image/spine
3Max Semen image/spineNot pregnant image/spine
4No Semen image/spineNormal Pregnancy belly image/spine
5Small amount Semen image/spineNormal Pregnancy belly image/spine
6More Semen image/spineNormal Pregnancy belly image/spine
7Max Semen image/spineNormal Pregnancy belly image/spine
8No Semen image/spineBigger Twin Pregnancy belly image/spine
... etc. ...... etc. ...... etc. ...
Hmm, I know for a fact there's a code for "state plate" under the slave character which controls fetus count. But it behaves somewhat strange:
- unitydata3d have a spine file "sexicon" with state plate animation like "cum inside" with pregnancy success and failure state. And the moment it's successful another animation happens which when sets fetus count:

SexIcon.png

I thought: "Great, that's what we want". But, it only use this spine for animation change. After that, it changes to standalone sprites from another sprite sheet file. You know, in a similar way how game handles slave background images and items.

As far as I know, these are controlled from StatePlate.cs and StatePlate2.cs. Although I think StatePlate2.cs is a current one, because it does have lines about Tentacle eggs and other one doesn't.

StatePlate2cs.png

Edit: "Lastly I was thinking: Do you need integers 1,2,3 for the image/spine mapping or can you map the bigger bellies to any integers?"

I guess I can? As long as game logic makes sense of it, like I'm currently handling Bra type depending on eye ball type:

New Bra is set to use eyeball type "8", while others are just placeholders with pre-existing "rag".

BraTest2.png
 
Last edited:

Memacile

Newbie
Sep 22, 2022
61
102
Hmm, I know for a fact there's a code for "state plate" under the slave character which controls fetus count. But it behaves somewhat strange:
- unitydata3d have a spine file "sexicon" with state plate animation like "cum inside" with pregnancy success and failure state. And the moment it's successful another animation happens which when sets fetus count:

View attachment 2718835

I thought: "Great, that's what we want". But, it only use this spine for animation change. After that, it changes to standalone sprites from another sprite sheet file. You know, in a similar way how game handles slave background images and items.

As far as I know, these are controlled from StatePlate.cs and StatePlate2.cs. Although I think StatePlate2.cs is a current one, because it does have lines about Tentacle eggs and other one doesn't.

View attachment 2718844
I guess my statement was too bold. To clarify: what I found was that ComplexBreeding mod is specifically setting "Fetus3" to make sure 4 and 5 fetus pregnancies show the correct image. But a lot more goes into displaying the fetus image.



Edit: "Lastly I was thinking: Do you need integers 1,2,3 for the image/spine mapping or can you map the bigger bellies to any integers?"

I guess I can? As long as game logic makes sense of it, like I'm currently handling Bra type depending on eye ball type:

New Bra is set to use eyeball type "8", while others are just placeholders with pre-existing "rag".

View attachment 2718864
Let's keep this in mind in case there is no better way. For now I still have hope that the direct "FetusCount" path can work. I am still messing around with some classes, but nothing concrete enough to report.
 
  • Like
Reactions: Krongorka

Memacile

Newbie
Sep 22, 2022
61
102
Looks like it is working! :)

Single Fetus:
withoutPlugin.PNG

Three Fetus:
withPlugin.PNG

And it seems fine and stable. I didn't need to do the questionable enum manipulation I tried before. It was as Surgy said in the Unit.cs class. In the method "NewShowPartList" a UI string (e.g. "cumflation:cumflation_{FetusCount}" just requires the replacing of the string "{FetusCount}" with the appropriate variable value.

I attached the dll for you Krongorka. If you need the BepInEx stuff again. Take the one from the Mega upload from before. Only change is in the dll file which has to be replaced in the plugin folder.
Let me know if it also works on your side or if there are any problems.
 
Last edited:

DLSKG

Member
Jun 4, 2019
164
14
I did disassemble 3 bunny non got me womb
it depend on your luck, i suggest u save and disassemble them again. it maybe the cat, honest i don't remember so try on 2 kind bunny and cat until u have it. please concentrate what kind girl have that.
 

Krongorka

Active Member
Sep 22, 2017
679
2,330
Looks like it is working! :)

Single Fetus:
View attachment 2720766

Three Fetus:
View attachment 2720803

And it seems fine and stable. I didn't need to do the questionable enum manipulation I tried before. It was as Surgy said in the Unit.cs class. In the method "NewShowPartList" a UI string (e.g. "cumflation:cumflation_{FetusCount}" just requires the replacing of the string "{FetusCount}" with the appropriate variable value.

I attached the dll for you Krongorka. If you need the BepInEx stuff again. Take the one from the Mega upload from before. Only change is in the dll file which has to be replaced in the plugin folder.
Let me know if it also works on your side or if there are any problems.
Oh man, that's good news.

original.gif

I'll check it on my end and will update this post.

Edit: Yep, seems like it works with my save states.
Now I wonder, though. Can I patch Assembly-Csharp via dnspy, so mod stays independent of BepInEx plugins. Anyway, it works and that's good enough for me, thanks again.

Also, what do you think of differentiating Minotaur/Salamander/Tentacle size pregnancies? Do you think we need to increase belly size for 4/5 fetuses which I heard are available in Complex Breeding (is that correct at all?).
 
Last edited:
  • Like
Reactions: Memacile

Memacile

Newbie
Sep 22, 2022
61
102
Oh man, that's good news.

View attachment 2720838

I'll check it on my end and will update this post.

Edit: Yep, seems like it works with my save states.
Now I wonder, though. Can I patch Assembly-Csharp via dnspy, so mod stays independent of BepInEx plugins. Anyway, it works and that's good enough for me, thanks again.
Very good that it also works for you.
No problem. :)

For dnspy or ILspy patching: All I did is add an extra case to the switch case block here: ILspy.PNG
(This is a screenshot form ILspy. It definetly does a better job than dnspy in this case)



Also, what do you think of differentiating Minotaur/Salamander/Tentacle size pregnancies? Do you think we need to increase belly size for 4/5 fetuses which I heard are available in Complex Breeding (is that correct at all?).
Yes, yes and yes. I like that idea. The way it is currently implemented it would already return the values 4 and 5 for ComplexBreeding quad- and quin-tuple pregnancies.
Then the question is: should minatour, salamander and tentacle have their own special belly inflation?
For Minatour and Salamander one idea might be to just double their belly size based on FetusCount. So 1 big monster fetus would be belly size 2 (same as 2 normal fetuses) and twin monster fetuses would be belly size 4.

But it should also be possible to use unique numbers. Minatour having belly sizes 6,7 or something. At least I am pretty sure, it is possible to figure out the fetus race without much hassle.

Also on a side note I could also add a config switch that maps "{FetusCount}" string back to "female.SemenInsideType" so that people who like cumflation could switch back.
 
  • Like
Reactions: Krongorka

Krongorka

Active Member
Sep 22, 2017
679
2,330
Very good that it also works for you.
No problem. :)

For dnspy or ILspy patching: All I did is add an extra case to the switch case block here: View attachment 2720877
(This is a screenshot form ILspy. It definetly does a better job than dnspy in this case)




Yes, yes and yes. I like that idea. The way it is currently implemented it would already return the values 4 and 5 for ComplexBreeding quad- and quin-tuple pregnancies.
Then the question is: should minatour, salamander and tentacle have their own special belly inflation?
For Minatour and Salamander one idea might be to just double their belly size based on FetusCount. So 1 big monster fetus would be belly size 2 (same as 2 normal fetuses) and twin monster fetuses would be belly size 4.

But it should also be possible to use unique numbers. Minatour having belly sizes 6,7 or something. At least I am pretty sure, it is possible to figure out the fetus race without much hassle.

Also on a side note I could also add a config switch that maps "{FetusCount}" string back to "female.SemenInsideType" so that people who like cumflation could switch back.
Huh, no idea if ILspy can actually patch the code, but output code it presents is much better indeed.

- For Minatour and Salamander one idea might be to just double their belly size based on FetusCount. So 1 big monster fetus would be belly size 2 (same as 2 normal fetuses) and twin monster fetuses would be belly size 4. -

I think that's actually a good idea. Just to keep belly size reasonable (it's the same mesh after all, just using different scale values). Just tell me which numerical value do you think is needed to be mapped in Spine. Should I set max slot number as "5" (1 to 5).

As example:
CumflationTest.png

- Also on a side note I could also add a config switch that maps "{FetusCount}" string back to "female.SemenInsideType" so that people who like cumflation could switch back. -

People already mentioned it time and time again - it looks cool, but they want it to "fade away" after some time or be able to get rid of bellies at all. But most of them wanted to see different belly size based on Fetus Count and that's practically solved.
 
Last edited:

Memacile

Newbie
Sep 22, 2022
61
102
Huh, no idea if ILspy can actually patch the code, but output code it presents is much better indeed.

- For Minatour and Salamander one idea might be to just double their belly size based on FetusCount. So 1 big monster fetus would be belly size 2 (same as 2 normal fetuses) and twin monster fetuses would be belly size 4. -

I think that's actually a good idea. Just to keep belly size reasonable (it's the same mesh after all, just using different scale values). Just tell me which numerical value do you think is needed to be mapped in Spine. Should I set max slot number as "5" (1 to 5).

- Also on a side note I could also add a config switch that maps "{FetusCount}" string back to "female.SemenInsideType" so that people who like cumflation could switch back. -

People already mentioned it time and time again - it looks cool, but they want it to "fade away" after some time or be able to get rid of bellies at all. But most of them wanted to see different belly size based on Fetus Count and that's practically solved.
Yeah having pregnant belly maps from 1 to 5 should cover ComplexBreeding and I can increase the FetusCount number for big monsters.
Then I guess for tentacles ... I know in CB you always get as many tentacle eggs as the max womb size. So setting {FetusCount} to max womb size for tentacles would make sense. Not sure if it also works like this in the base game but that could be a nice idea.
Though, I am not going to implement it right now. I've had enough looking at code for the moment. ;)


Edit: That was fast. Size 5 belly looking good!
 
Last edited:
  • Like
Reactions: Krongorka

Krongorka

Active Member
Sep 22, 2017
679
2,330
Yeah having pregnant belly maps from 1 to 5 should cover ComplexBreeding and I can increase the FetusCount number for big monsters.
Then I guess for tentacles ... I know in CB you always get as many tentacle eggs as the max womb size. So setting {FetusCount} to max womb size for tentacles would make sense. Not sure if it also works like this in the base game but that could be a nice idea.
Though, I am not going to implement it right now. I've had enough looking at code for the moment. ;)


Edit: That was fast. Size 5 belly looking good!
Eh, Size 5 belly is not that different from size 3, actually :p It's more about "granular control" over belly size difference. Like, you know, tits size 5 is size 4 scaled 1.2, when the original intention was to increase it visually... x1.4 times :) Just to keep visuals more or less consistent. But hey, I might just return to this idea and make size 6 for lulz and maybe tie it to special "cow" type with sylvia's clothes/horns.

PossibleTits6.png

Now, here's a question. Current situation with mod development can go in following route:
- I'll make more poses with Inflation belly and Fetus Count or leave stand-idle like current implementation does, but remove "dynamic clothes deforming" during pregnancy completely, because it's a pain to control in spine for all conditions.

Now, can I distribute Tits mod (let's assume, V3 will be the first) with BepInEx V5 (BepInEx_x64_5.4.21.0 works for me) pre-installed with PregnantExpansion.dll in this case? Simply because I'd still like it to be as much "plug-and-play" mod as possible.

Will users be able to simply add CBwithTits, CBM, ModTools dll's in this preinstalled BepInEx plugins folder? Again, I wanted to make that optional, but seems like we don't have much choice if we want to bring Fetus Count instead of Cumflation as a "universal" mod feature.

TL DR of this post will be: I'm ready to ship Tits V3 with pre-installed BepInEx x64 5.4.21.0 and PregnantExpansion.dll just to introduce new visuals. But I want to be sure if it will work for everyone.

So far no luck with dnspy patching Assembly-Csharp Unit.cs with new lines and ILspy seems to be a tool for code studying, if I understand it correctly.
 
Last edited:

NathAlq

Newbie
Apr 15, 2019
21
10
I did disassemble 3 bunny non got me womb
Capture d'écran 2023-06-25 101131.png

It's indeed Bunny :)
Usagis are the bunny girls :)

it depend on your luck, i suggest u save and disassemble them again. it maybe the cat, honest i don't remember so try on 2 kind bunny and cat until u have it. please concentrate what kind girl have that.
Capture d'écran 2023-06-25 101203.png

Be sure to upgrade (in the upgrade menu down below) the By-Product acquisition rate :)
With the achievement points.

Don't dispear!
 
  • Yay, new update!
Reactions: JoeAngel
4.50 star(s) 108 Votes