From f4fcea01bfc9c8fa8f9a94c987ceb11bbe89cdad Mon Sep 17 00:00:00 2001 From: Eddoursul Date: Mon, 25 Jul 2022 22:26:10 +0200 Subject: [PATCH] Re-add vanilla Vault 13 Canteen, when it's empty; allow to disable canteen replenishing in INI --- Bottle Rinse Repeat.esp | Bin 51622 -> 54870 bytes config/Bottle Rinse Repeat.ini | 4 ++- src/EBxBootstrap.gek | 51 ++++++++++++++++++++++----------- src/EBxFillFromObject.gek | 4 +-- src/EBxOnCrosshair.gek | 2 +- src/EBxOnGameLoad.gek | 15 ++++++++++ src/EBxReplenishCanteen.gek | 16 +++++++++++ 7 files changed, 71 insertions(+), 21 deletions(-) diff --git a/Bottle Rinse Repeat.esp b/Bottle Rinse Repeat.esp index d868622765e0e8bd075e1cbc310834761820787c..9142abea2c746425a38eb9c44048701fa8930fd1 100644 GIT binary patch delta 6973 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 G&c6Ypg=DY* delta 4131 zcmcIneQZcSOlQ@YBNRb+n9$F?AaIqZ;elP1-bV>y(}QUYr=4 zPSd76<=Mx-d(OS*{?5m}xp_`?230S3H6Z{9m7ehTvcQQ%+W2Dz5FTFNODH%`-2IV; z3&DPL-EiS`<`4kzE_=&7I`(jkb+9EDzQoE{w;W4#|Iq?{{~>B-`BI1xk)xbF&JU3Bx$^?%}zfU=)e=! zgD2qW>bI2vQ^TkM1RZP;0rVh3FO-v=nchg~(T!2*FIuO7zj9Tg=Jj$@x-T7{N_YZB zgFZU7D;~pUg9if|?TbSqUPcqf4Q4G_ikEkr@UWpSJ9OUAkQMJ3wyT2uf)p&;s}%;V zc+L`-aFNNUw0tRjXWjo)Typ<5jWKeRf!AIF0vtH`3V$v=lvV@ZlSbZ?M&47A}1p=+akdD$oq^R4l z!r{Y&-PXdVFoFuw@^n+=WEPO;%mw6$->`>#i_8977aWc*g>!71TP6YSZQ7pt)Qw^R#5bEf`p~zKH*}qw5t3~LF%uv z8%j9&48%xi!>9mpe9qv|F(QMf3?B1WYeCrvzV2_+a+hck{GGp6OBq0aB9=A!G_*T% z2)h~^cx|oO+*OIm#s@51;PdJs9!l+-%0$!XUY3x~FZ-Jyqzrg=`Ko@(MR=TA3{T!{ zVLdJ=g;h#@VUWg{U;wd5PJg9xC>e4qK#f0WuC-~1-ZGfhK?&`@M@dCB{=K!jGE78D%P4#MWml3*4KMt24$d=2Dqrlw_2(i zNupL&MYcQ$L7NL$xm;En2vdbKXfbJdybU z_*6D(cQGw5jLpUHOKUNeg8;rMTAENhxahZ?ibjhc23%!E#V*IjfJLpVZL&SllI@qP zHPbt%&}^_`vb7B_wQiO+t?-I?$8C|;uHMhI@hPLBL$Akc!3J@7rc#H03^uooOz&Qo z>P;!ZOozrPmeDDQ3`hE$)Z6ZTSjrQNCzH+iwe~tKuUmTXV!NCgp}>kB{B8Rh?Ce;n zdjI`76~PYNdBOPyaS(s8Bvc^!35tm=A?>7-A({OlgMru&Uc>y0Z zloGvZLk@JK!Af(cixwchwJGj(mf3eCQ_qk}jP4&#;)gD~$TJ3w29I>0FQOKACMf-{ z4@Sg)^bx84p$5%)5{R0yp%yKP0h$Sq4~;ES_R&ySq;p6m`MyJQWQy2g%K7kGTwH2sQ{+&j_4 zT=?2Vh(3QaQSO)g&r`_e=bwRrr%7cgbtX7XjG7!xYz8%EcKfI*myX^F2v-8|GQ4G$ z`=+pP-sV8=?6PvWm7ZQj^JP2kn@Ufw#^QK_RpU(DZLfxDLCKYz3U}byxQ7(pjk}o# z@5XECvt-ic`zw{v!ZDERS`D9r$h7dx)8oiwC-dU*$!6iA7QZ{Wh1H@X;W2rrRd|8= zf}5fo^Ez-i;lyYnAY9UsRwv#_1X&%HB)gdp*C+R}dc2mbEv{e8T%k<*bMlPPIvve; z`g>;vsC;`B*!#;b>-X-QYknHJ`=3MM ziI|?oBRkXaJsDi{K$XLj9?V3)O!qP6LYBRlNv#KtFf{MC;U`aYh+GA`X8icbX$L0T zYVpjBRRQN_f>`a>qVqt7Bt11EvT0<8tU@M*2e)~oFC5x0WG`;rmJT8z6GvY&try{)511+v8YSu5R)(9FRp5$e&C)Y!K#B_xQvp)+oxHVXEsu4p@|NFGfFui$rwWi`1<1t$ zBsP=3R%bfK{~ybhS3~Oa1Pa z5(-P(Vq&*h?uXzDb6z|(XQ8(aFVHu=zSHOOP49!CG*^pP$%0;=doJJNJ_ueTi<@L| zb1opMu8!+xn=CIs!jq?I(aR>w$pYjX1<2ZRp2@jZg9XS?0rKj~JS*Jyu5VUhC3mjt zC;4V_k#EU_ 0 - call EBxReplenishCanteen rDrink 0 - endif + call EBxReplenishCanteen rDrink 0 end diff --git a/src/EBxOnCrosshair.gek b/src/EBxOnCrosshair.gek index 187c817..92a218d 100644 --- a/src/EBxOnCrosshair.gek +++ b/src/EBxOnCrosshair.gek @@ -35,7 +35,7 @@ begin function { rSource } if iCount > 0 let sBottles := sv_construct "%g bottle%{s%}" iCount (iCount > 1) - elseif eval EBxCanteenSipsMax > 0 && call EBxReplenishCanteen rDrink 1 + elseif call EBxReplenishCanteen rDrink 1 let sBottles := "canteen" else return diff --git a/src/EBxOnGameLoad.gek b/src/EBxOnGameLoad.gek index f94a027..8d71c81 100644 --- a/src/EBxOnGameLoad.gek +++ b/src/EBxOnGameLoad.gek @@ -26,6 +26,21 @@ begin function { i } endif endif + if EBxVersion < 31 + let EBxVersion := 31 + if IsModLoaded "ClassicPack.esm" + let ref rPreordQuest := GetFormFromMod "FalloutNV.esm" "17912D" ; VDLCPackQuest + if eval IsFormValid rPreordQuest && GetVariable "bClassicItemsGiven" rPreordQuest + if playerRef.GetItemCount EBxVault13Canteen == 0 + let ref rPreordVaultCanteen := GetFormFromMod "FalloutNV.esm" "1735D2" ; PreordVaultCanteen + if eval IsFormValid rPreordVaultCanteen && playerRef.GetItemCount rPreordVaultCanteen == 0 + playerRef.AddItem rPreordVaultCanteen 1 1 + endif + endif + endif + endif + endif + if GetGameRestarted == 0 return endif diff --git a/src/EBxReplenishCanteen.gek b/src/EBxReplenishCanteen.gek index 97dd2f7..5c5954d 100644 --- a/src/EBxReplenishCanteen.gek +++ b/src/EBxReplenishCanteen.gek @@ -3,12 +3,24 @@ scn EBxReplenishCanteen ref rNewDrink ref rCurrentDrink ref rCanteen +ref rPreordVaultCanteen int iCount int iNewDrink int bCheckOnly begin function { rNewDrink, bCheckOnly } + if EBxReplenishableCanteen == 0 + return + endif + + if playerRef.GetItemCount EBxVault13Canteen == 0 + let ref rPreordVaultCanteen := GetFormFromMod "FalloutNV.esm" "1735D2" ; PreordVaultCanteen + if eval ! IsFormValid rPreordVaultCanteen || playerRef.GetItemCount rPreordVaultCanteen == 0 + return + endif + endif + let iNewDrink := ListGetFormIndex EBxCanteenEffects rNewDrink if iNewDrink == -1 ; unknown type, fallback to Purified Water @@ -38,6 +50,10 @@ begin function { rNewDrink, bCheckOnly } endif if iCount > 0 + let rPreordVaultCanteen := GetFormFromMod "FalloutNV.esm" "1735D2" ; PreordVaultCanteen + if IsFormValid rPreordVaultCanteen + playerRef.RemoveItem rPreordVaultCanteen 1 1 + endif playerRef.AddItem EBxVault13Canteen iCount 1 endif