scn EBxOnCrosshair ref rSource ref rDrink int iCount array_var aDrinksToUpgrade string_var sOrigPrompt string_var sPrompt string_var sBottles begin function { rSource } if rSource == 0 ; IsFormValid returns 0 on form 35 return endif if rSource.GetType != 21 ; activator if GetCrosshairWater == 0 return endif elseif rSource.GetActivatorWaterType == 0 return endif let aDrinksToUpgrade := call EBxGetDrinksToUpgrade rSource if eval 0 >= ar_size aDrinksToUpgrade let aDrinksToUpgrade := ar_null return endif let rDrink := aDrinksToUpgrade[0] let iCount := GetMinOf (playerRef.GetItemCount caps001) (playerRef.GetItemCount (aDrinksToUpgrade[1])) let aDrinksToUpgrade := ar_null if iCount > 0 let sBottles := sv_construct "%g bottle%{s%}" iCount (iCount > 1) elseif eval EBxCanteenSipsMax > 0 && call EBxReplenishCanteen rDrink 1 let sBottles := "canteen" else return endif if GetCrosshairWater let sPrompt := sv_construct "%{Drink or hold to fill%}%{Fill%} %z with %n" (EBxFillBottleDelay > 0) (EBxFillBottleDelay <= 0) sBottles rDrink SetStringSetting "sTargetTypeDrink" $sPrompt CallAfterSeconds 0 ({} => SetStringSetting "sTargetTypeDrink" (playerRef.AuxiliaryVariableGetString "*sDrinkPrompt")) elseif eval rSource.GetActivatorPrompt != "" let sOrigPrompt := rSource.GetActivatorPrompt if EBxFillBottleDelay > 0 let sPrompt := $(rSource.GetActivatorPrompt) + " or hold to fill" else let sPrompt := "Fill" endif let sPrompt := sv_construct "%z %z with %n" sPrompt sBottles rDrink rSource.SetActivatorPrompt $sPrompt CallAfterSeconds 0 ({} => rSource.SetActivatorPrompt $sOrigPrompt) else let sPrompt := sv_construct "%{Activate or hold to fill%}%{Fill%} %z with %n" (EBxFillBottleDelay > 0) (EBxFillBottleDelay <= 0) sBottles rDrink SetStringSetting "sTargetTypeActivate" $sPrompt CallAfterSeconds 0 ({} => SetStringSetting "sTargetTypeActivate" (playerRef.AuxiliaryVariableGetString "*sActivatePrompt")) endif DisableControl 5 SetOnControlDownEventHandler EBxOnControlDown 1 5 SetOnControlUpEventHandler EBxOnControlUp 1 5 SetGameMainLoopCallback EBxOnCrosshairTracker 1 1 11 end