diff --git a/src/scripting/types.cpp b/src/scripting/types.cpp index d683e62d6..7aed2850c 100644 --- a/src/scripting/types.cpp +++ b/src/scripting/types.cpp @@ -1748,6 +1748,23 @@ void PArray::SetPointer(void *base, unsigned offset, TArray *special) } } +//========================================================================== +// +// PArray :: SetPointerArray +// +//========================================================================== + +void PArray::SetPointerArray(void *base, unsigned offset, TArray *special) +{ + if (ElementType->isStruct()) + { + for (unsigned int i = 0; i < ElementCount; ++i) + { + ElementType->SetPointerArray(base, offset + ElementSize * i, special); + } + } +} + //========================================================================== // // NewArray diff --git a/src/scripting/types.h b/src/scripting/types.h index 5c55db6c1..0817aa99d 100644 --- a/src/scripting/types.h +++ b/src/scripting/types.h @@ -485,6 +485,7 @@ public: void SetDefaultValue(void *base, unsigned offset, TArray *special) override; void SetPointer(void *base, unsigned offset, TArray *special) override; + void SetPointerArray(void *base, unsigned offset, TArray *ptrofs = NULL) override; }; class PStaticArray : public PArray