#pragma once #include "RE/B/BSPointerHandle.h" #include "RE/B/BSSimpleList.h" #include "RE/B/BSSpinLock.h" #include "RE/B/BSTArray.h" #include "RE/B/BSTAtomicValue.h" #include "RE/B/BSTHashMap.h" #include "RE/N/NiPointer.h" namespace RE { class AnimatedRefObject; class BSMultiBoundNode; class BSPortalGraph; class NiNode; class QueuedFile; class LOADED_CELL_DATA { public: class AnimatedRefObject { public: // members ObjectRefHandle handle; // 0 std::int32_t numSkipFrames; // 4 }; static_assert(sizeof(AnimatedRefObject) == 0x8); // members BSTHashMap emittanceSourceRefMap; // 000 BSTHashMap emittanceLightRefMap; // 030 BSTHashMap> multiboundRefMap; // 060 BSTHashMap refMultiboundMap; // 090 BSTArray> preCombined; // 0C0 BSTArray> attachedTransitionCells; // 0D8 BSTArray animatedRefs; // 0F0 BSTArray flickeringLights; // 108 BSTArray movingRefs; // 120 BSTArray decalRefs; // 138 BSTArray skyActors; // 150 BSTArray flightAvoidAreas; // 168 BSReadWriteLock waterLock; // 180 void* combinedGeometry; // 188 - TODO NiPointer combinedGeometryTask; // 190 BSSimpleList activatingRefs; // 198 BSSimpleList waterRefs; // 1A8 NiPointer portalGraph; // 1B8 NiPointer cell3D; // 1C0 NiPointer lightMarkerNode; // 1C8 NiPointer soundMarkerNode; // 1D0 NiPointer multiBoundNode; // 1D8 NiPointer combinedObjects; // 1E0 NiPointer combinedStaticCollision; // 1E8 BGSEncounterZone* encounterZone; // 1F0 std::size_t visibleDistantFadeInTime; // 1F8 std::int32_t criticalQueuedRefCount; // 200 std::int32_t queuedRefCount; // 204 std::int32_t queuedDistantRefCount; // 208 std::uint32_t refsAttachedDelay; // 20C BSTAtomicValue combinedObjectsAttached; // 210 bool decalsQueued; // 214 bool refsFullyLoaded; // 215 bool combinedObjectsRegistered; // 216 bool grassIsShown; // 217 }; static_assert(sizeof(LOADED_CELL_DATA) == 0x218); }