4
Fork 0

Handle null pointers in IsInRegion

development
Eddoursul 4 months ago
parent a43aa14bef
commit 2a51d12219
  1. BIN
      SKSE/Plugins/EnderalSE.dll
  2. BIN
      scripts/_00E_ContainerController.pex
  3. 12
      source/Enderal DLL/src/PapyrusFunctions.h
  4. 5
      source/scripts/_00E_ContainerController.psc

BIN
SKSE/Plugins/EnderalSE.dll (Stored with Git LFS)

Binary file not shown.

@ -105,6 +105,10 @@ namespace Papyrus::PapyrusFunctions
bool IsInRegion(RE::StaticFunctionTag*, RE::TESForm* playerRegion)
{
if (!playerRegion) {
return false;
}
auto* parentCell = RE::PlayerCharacter::GetSingleton()->parentCell;
if (!parentCell) {
@ -113,9 +117,11 @@ namespace Papyrus::PapyrusFunctions
auto regions = parentCell->GetRegionList(false);
for (auto it = regions->begin(); it != regions->end(); it++) {
if ((*it)->formID == playerRegion->formID) {
return true;
if (regions) {
for (auto it = regions->begin(); it != regions->end(); it++) {
if ((*it) && (*it)->formID == playerRegion->formID) {
return true;
}
}
}

@ -142,15 +142,14 @@ Function IncrementGold(ObjectReference targetContainer)
int iGoldMultiplicator = _00E_GoldMult.GetValue() as int
if iGoldMultiplicator == 0
; Prevent division by zero
if iGoldMultiplicator <= 0
iGoldMultiplicator = 5
endif
float fIncrementPercentage = ( PlayerREF.GetActorValue("Lockpicking") / iGoldMultiplicator ) / 100
int iGoldBuffAmount = ( targetContainer.GetItemCount(Gold001) * fIncrementPercentage ) as Int
if iGoldBuffAmount == 0
if iGoldBuffAmount <= 0
return
endif

Loading…
Cancel
Save