From 8ed4ebb5c275ffa6ed3baba1d0e4f768895c3907 Mon Sep 17 00:00:00 2001 From: Platinum Date: Fri, 29 May 2020 13:12:35 -0700 Subject: [PATCH] extra null ref checks and tweaks --- 1.1/Assemblies/Rimworld-Animations.dll | Bin 50176 -> 50176 bytes Defs/AnimationDefs/Animations_Beast.xml | 4 ++-- Defs/AnimationDefs/Animations_vanilla.xml | 12 ++++++------ Source/Comps/CompBodyAnimator.cs | 5 ++++- .../rjwPatches/HarmonyPatch_SexTick.cs | 6 ++++++ 5 files changed, 18 insertions(+), 9 deletions(-) diff --git a/1.1/Assemblies/Rimworld-Animations.dll b/1.1/Assemblies/Rimworld-Animations.dll index 70b5a6ca48584c2dea1c3cba43d54858a7a94f32..bedd746f2ffa90f7c5d83e7a46372f83f9365eae 100644 GIT binary patch delta 3265 zcmZ{l3s6+o8OQ(U?!pR}mx4Tm<*`PV@Gw?E5m52PLkSvJq6jXM?JA5QxWTlUn(i_f zWU3vd$Er!EleV-mnPxQR)>;#5Noq+P8((QB);1|lA0`uHCPVX>PSk$qoC|yDv^%r2 z-|zoD&v$n3h6Ze*0o%a=`^>BMvBCWr?ES$PH?aMjF?U4w4IqQ(Xob9yx!K=&FAJs( zlO|p@^wto8x(?uh9RTCKXBQZ2wVpKgg7LfbMJ%`yum@}!x?LhZIWGn%fVP_w?Expr z$;o-KN~#jlN|L6rd(&r8Ek|-*yv5b@KV79FYp119e&QSrt3@+-NyhdW?_`!U zc9O?u_pp=3p6uU7vOn`0x0BuCTix#k$0)z+Qy?0%0{1QUK8tyY1n|9*f<}?GIjKWBlC*J#5S<$iK+gclj3u%h*0% zR@lal8AF9OjXlAS&EB5+K_t2z-#S32of=W(2xty;7eoZ?4kQ1etxQXG7~h*Sti{eJ z*|s(>ks&(J&0FTZN~LBLA7^jy3&q`{Y{`n?4T>4Rzu@}+zKGx^p-h=#iD?kZY^$dK{A5gGVOC>yQH>?l&iG!rp9 zgd#eb%D08BI|`F1|2X;R%NqJkQkR=5=908Ln!?2aCkk{5g^uG4OI%3eJQG0|dF+Bl zEk);T3(l~W{A$@O*3O?R&t{#xy)>V0=uoN0s`HfcseH-89afE<;-4)nVQ=z+vS#)+ zA1JG_dimChM4n$>Z`HJj82);>car3cG1@A!rc7TFgYL&aqpQF20R6!72FVIk^U)R4 zwOuj%a#c!lU?L*$I>qL#5%)hPBcfs{B1bEaX36NZlcXoPtm?L%V93? zpHv@UH~HL}dF&%zQ|B`-)O^8;!qd9r$ESUoEOXkVq$}wY^M0RyyegahoX4&1WkdYn z>OLx$R7d5Enz}tKyuyHR~5 z@k#pI(U~|g$u|;|*o$i9P~xabcO`vnl3NqLm_?#}FV1VC#affr+hjvYBlvN~yVT;G zB-Jnrmn5kJX5k-Z-cIU}h5L(ws^~N(FmJJ<3TlysL6iPO?Xz&sq;_hUh1({blGMLM z<$WmWph?s1BJ!N1@%C>?8cbzre~He*lu86C^DvTKql6WeqRe4T&A1hvjWzTyG=4F; z*eFRQ=AxroMTT6T(^KKLNek>zdI2iMKOt4AvM1`Z5i%*{O4q-JJ0@i$&)4a0Ya#j{ zM#xo7*V#s>Xq~>`Mxsb$ zXog$TO*UVT#AXzl^!uC~qA$H7@n+Pz?3eV-K#L^ybf$=OD2n=9_B^5l(|0fB6^itj z#8Yd@*CeSwH7FWx#uKJfH1y(|CW(e#eBK&v=*2xnvY{6dk13yM=tY7eCK`I-F-bJ^ zqDhk4lNZ}0(Q$+H*zuxUVjpHgP^nK8?ZX}Xn#!z_q*mGjkLmjv&g(7cG-)ThsBgi5 zB-Nr7Z%v{2<`L@*MqNbrXnw!$SzUBzQqBuQO`50xf~&G<04O`ZNw_BGvy zGDUJTJ}fnTVlzI}nZ9MI*D3OVNwk?DIgdzGbNetPNlog*OOn)Pd?;!U59-4bNovrq zW0NE`s2|NHi9!9S+#Vj(j~YdC&<%d9F`Z&kKQ@|9F{vLvFiG5@A48JVpnjZ?qz3il zSCZ7Aek?Thw(g3zCpz;wU)dS&o}X4t={wMl9$I$?mXf`VK53h7AG(No5TMTv`X8{w z8MdRl;-&#nm+K>L-954Vhb8Tmwd;<2WDGoiJkBw1_S^*vi;H>JnOwtn%FC<*zw^tY zNnCTf*viI>r>iF?IM1xM1Ux=rUw+MPB)poS#s1=k*r9q|;zeiE*|1T2wvice=l*Te PM$3$;Z+yZA=Q#cYgb(9; delta 3125 zcmaKt3v5%@8OQ(U+DVEpc^DGMS>nVo5C@!6AkUIO(lpJBEDJax1X4pV9%QiDm{e;; zwd*J?fo&>er;F&OZLqCWOo)};vC@>RQJbdP=mtY;n<7xD`WQ@X6;iiuOwgUjwS6N^ zvlQj~eXsv_zjJ*YJ7|d=v>Z8TJ%8x0?~Q%8fJDbm_7XQG#G7Kh0u<07>HIZIeZnxixm z@IiS}g!1T@U0=$4fF(E_rRhAd4A6&M2MB4?|5I2?NSIc;he%jI<$gVtJVzs57kQpO zLGrE7-1wz)*qOwNPMz@#kA|d@knMENL^y2c}&J(GKr0qY< zp4Ogne_C{kp)V!+TB^R`fv*zfom72d#gvl%8FO2@N*5B?qRZ)M`2=g#SaF)f=Gj6~_%w-}GJ2^hzkSaZN zQ4*;>?%{(cJnOlK51#NGqLtNs%G)-2r21uIp~q{N5HF3?xQUOB)huI2alXbs$KT8R z*>v}VUz_9IM_sEc$K)zJIV|zOD~5R z;-|%(ZZb%#)(x{3=hls|;<^r2tVcSYBBl|4ml-e2&7$|(9Y$p}ZS3sK+mi(>>hYtS zy>raOqL!YvCiZ`aezNnG`C3OUvvI)ri8B>0{7ld=4&Y6j3sa_8A+F4!59iP=K{NPy zN-7GmtuEQK5Z@FujZgFcU@OGvoY;>wfx~D)F)KW0&|N`q801xW>?4Dw6)sV_hD!{i z+ad%7&ER;!yG&wSkQ6M!2|@A!i!f=_?PUr@cz2B^+bkd)u~t$YlPJQVLGLm7B8(d} z$OMZpZO~akfqGeYQ_wDha;!XaTu@y8n4mEy$-8PR!u5J+ta2O<&vk~`4ZO`b>;-?Z zx#4BM8u5cE!3sgLumnvlGBf7+C%YD=4XU=zQ+;sqpDNa+*}70&j!g!|Jo)NM%otSQ zs8VY&%ZTZZBj#yQ>(I~^Z@NKUi=%?1U;}227%yzV4O8qPWVOq>QBS}65c(6eQ+*hb z4jDUA5LTP;R%bkOr`m?2U5qp#|D@WErVTO}^Ngw;$nwYO2kLt45X8=xt<;Znb^*pW zBFB5dYjQ^T$Q9DLy4tq z!AFTgf_{7<=mS!vrs7dp`?=r;vB=U42&wSsAedsP{bi;_< z%l#G0^lg=0sI!g5$^{*8YM(d>!%ic}1q0|Zhzkbr$AP3^0Pjc=f&pAJVq7qQ8%B%^ z2H@MC6bztTkla%M^@7-*G$O}jCcTBQ29zk-YTj4We&tqEMibo9E zOD?F}uuYJZ7{IYPbV`uyGJtbN-6CkI7{HAkNx=c!5yVpowj(DbpMq~D2&X}OGeOvP ziP*en-IvuM7Dy7C2_nyk@y!IW*oZYcXIbV>gV<4MEEpCj=MG}OAUSCePYIHn2_j`M zIcN~Mg5;n(uu718XF{kjhz}Zqb9Zvk5Zsc)puHh@jUb;igcU}RPa48LgZN7m!hS(= z&=5ui$w5OnB1jGzf?faRz+;(KyX$nVUb;8at3PpcFe7W~`!CqL*4}COY4hh-f4C}t zrT*E8(-~ - Quadruped_Doggystyle - + Dog_Doggystyle + true
  • Anal
  • diff --git a/Defs/AnimationDefs/Animations_vanilla.xml b/Defs/AnimationDefs/Animations_vanilla.xml index 08b4870..f8e5e1c 100644 --- a/Defs/AnimationDefs/Animations_vanilla.xml +++ b/Defs/AnimationDefs/Animations_vanilla.xml @@ -632,7 +632,7 @@ 2 2 0 - 90 + 180
  • 59 @@ -652,7 +652,7 @@ 2 2 0 - 90 + 180
  • @@ -710,7 +710,7 @@ 2 2 0 - 90 + 180
  • 14 @@ -730,7 +730,7 @@ 2 2 0 - 90 + 180
  • @@ -815,7 +815,7 @@ 2 2 0 - 90 + 180
  • 7 @@ -864,7 +864,7 @@ 2 2 0 - 90 + 180
  • diff --git a/Source/Comps/CompBodyAnimator.cs b/Source/Comps/CompBodyAnimator.cs index 730b2ab..77195eb 100644 --- a/Source/Comps/CompBodyAnimator.cs +++ b/Source/Comps/CompBodyAnimator.cs @@ -154,7 +154,7 @@ namespace Rimworld_Animations { base.CompTick(); if(isAnimating) { - if (pawn?.jobs?.curDriver == null || (pawn?.jobs?.curDriver != null && !(pawn?.jobs?.curDriver is rjw.JobDriver_Sex))) { + if (pawn.Dead || pawn?.jobs?.curDriver == null || (pawn?.jobs?.curDriver != null && !(pawn?.jobs?.curDriver is rjw.JobDriver_Sex))) { isAnimating = false; } else { @@ -310,6 +310,9 @@ namespace Rimworld_Animations { Scribe_Values.Look(ref bodyAngle, "bodyAngle"); Scribe_Values.Look(ref headAngle, "headAngle"); + Scribe_Values.Look(ref genitalAngle, "GenitalAngle"); + Scribe_Values.Look(ref controlGenitalAngle, "controlGenitalAngle"); + Scribe_Values.Look(ref headFacing, "headFacing"); Scribe_Values.Look(ref headFacing, "bodyFacing"); diff --git a/Source/Patches/rjwPatches/HarmonyPatch_SexTick.cs b/Source/Patches/rjwPatches/HarmonyPatch_SexTick.cs index 5812861..bf29458 100644 --- a/Source/Patches/rjwPatches/HarmonyPatch_SexTick.cs +++ b/Source/Patches/rjwPatches/HarmonyPatch_SexTick.cs @@ -17,6 +17,12 @@ namespace Rimworld_Animations { public static bool Prefix(ref JobDriver_Sex __instance, ref Pawn pawn, ref Thing target, ref bool pawnnude, ref bool partnernude) { Pawn pawn2 = target as Pawn; + + if (pawn == null || pawn2 == null) { + return true; + } + + if (pawn.IsHashIntervalTick(__instance.ticks_between_thrusts)) { __instance.Animate(pawn, pawn2);