29 using JobSlot = Toshi::T2SListNodeWrapper<AMainThreadJob>;
119 void GetLocatorPosAndRot(
const TCHAR* a_pszLocatorName, Toshi::TVector4& a_rOutPosition, Toshi::TQuaternion& a_rOutRotation );
136 return m_pTerrainVIS->GetLocatorList();
147 void UpdateNightMaterials();
148 void MoveAllFinishedJobs( Toshi::T2SList<JobSlot>& a_rFreeJobs, Toshi::T2SList<JobSlot>& a_rUsedJobs );
154 static TINT GetCurrentSectionID();
155 static TINT GetPersistantSectionID();
157 inline static TINT ms_iPersistantVISGroupIndex = -1;
161 Toshi::TVector4 m_LitShadowColor;
162 Toshi::TVector4 m_LitAmbientColor;
163 Toshi::TVector4 m_DefaultShadowColor;
164 Toshi::TVector4 m_DefaultAmbientColor;
167 Toshi::T2SList<ATerrainSection::ModelNode> m_llModelNodes;
179 Toshi::T2SList<JobSlot> m_UsedModelLoaderJobs;
180 Toshi::T2SList<JobSlot> m_FreeModelLoaderJobs;
181 Toshi::T2SList<JobSlot> m_UsedUnknownLoaderJobs;
182 Toshi::T2SList<JobSlot> m_FreeUnknownLoaderJobs;
183 Toshi::T2SList<JobSlot> m_UsedSectionLoaderJobs;
184 Toshi::T2SList<JobSlot> m_FreeSectionLoaderJobs;
185 Toshi::T2SList<JobSlot> m_UsedKeylibLoaderJobs;
186 Toshi::T2SList<JobSlot> m_FreeKeylibLoaderJobs;
187 Toshi::T2SList<JobSlot> m_UsedMatlibLoaderJobs;
188 Toshi::T2SList<JobSlot> m_FreeMatlibLoaderJobs;
189 Toshi::T2SList<JobSlot> m_UsedTRBLoaderJobs;
190 Toshi::T2SList<JobSlot> m_FreeTRBLoaderJobs;
191 Toshi::T2SList<JobSlot> m_UsedSkeletonLoaderJobs;
192 Toshi::T2SList<JobSlot> m_FreeSkeletonLoaderJobs;
193 Toshi::T2SList<JobSlot> m_UsedCollisionLoaderJobs;
194 Toshi::T2SList<JobSlot> m_FreeCollisionLoaderJobs;
195 TBOOL m_bStreamCollision;
197 Toshi::TTRB m_VISTRB;
202 TINT m_iCurrentSection;
203 TINT m_iPreviousSection;
204 TINT m_iPreloadTerrainBlockSize;
ASectionDoneJob * GetFreeSectionLoaderJob()
static constexpr TUINT MAX_NUM_SECTION_LOADER_JOBS
AMatLibLoaderJob * GetFreeMatlibLoaderJob()
friend class ABYardTerrainManager
ATerrainLocator * FindLocator(const TCHAR *a_pszLocatorName)
Finds a locator (bone) by the specified name and returns it if found.
void UpdateUsedBlocks(ATerrainLODType a_eLODType)
Sets visible blocks of specified LOD type to be used.
ATerrainVIS * GetVIS() const
const Toshi::TVector4 & GetDefaultAmbientColor() const
virtual ~ATerrainInterface()
void QueueStreamingAssets()
void UnqueueStreamingAssets()
void LoadFromFile(const TCHAR *a_szFilePath, TBOOL a_bLoadLater, TBOOL a_bStreamCollision)
Loads information about terrain.
TINT(*)() t_GetCurrentVISGroup
Toshi::TVector4 GetLocatorPos(const TCHAR *a_pszLocatorName)
Finds a locator (bone) by the specified name and obtains it current position if found.
static constexpr TUINT MAX_NUM_TRB_LOADER_JOBS
const Toshi::TVector4 & GetLitShadowColor() const
ASkeletonDoneJob * GetFreeSkeletonLoaderJob()
void DestroyModelData(ATerrainSection::ModelNode *a_pModelData)
void GetLocatorTransform(const TCHAR *a_pszLocatorName, Toshi::TMatrix44 &a_rOutTransform)
Finds a locator (bone) by the specified name and obtains it current transform if found.
static constexpr TUINT MAX_NUM_MATLIB_LOADER_JOBS
const Toshi::TVector4 & GetLitAmbientColor() const
void(*)(ATerrainSection *a_pCurrent, ATerrainSection *a_pPrevious) t_OnVISGroupChanged
TBOOL IsCollisionStreamed() const
ACollisionDoneJob * GetFreeCollisionLoaderJob()
ATerrainSection::ModelNode * CreateModelInstance(ATerrainSection::ModelNode *a_pModelNode, const char *a_szModelName, const char *a_szType)
static constexpr TUINT MAX_NUM_MODEL_LOADER_JOBS
ATerrainLocatorList * GetLocatorList() const
ATerrainLODBlock * AllocateLODBlock(ATerrainLODType a_eLODType, ATerrainSection *a_pVISGroup)
Allocates free LODBlock of specified type and assigns it to the section.
static constexpr TUINT MAX_NUM_SKELETON_LOADER_JOBS
static constexpr TUINT NUM_TOTAL_JOBS
ATerrainInterface(TINT a_iUnused1, TINT a_iUnused2, TINT a_iPreloadTerrainBlockSize, TINT a_iStartVISGroup)
const Toshi::TVector4 & GetDefaultShadowColor() const
static constexpr TUINT MAX_NUM_COLLISION_LOADER_JOBS
void GetLocatorPosAndRot(const TCHAR *a_pszLocatorName, Toshi::TVector4 &a_rOutPosition, Toshi::TQuaternion &a_rOutRotation)
Finds a locator (bone) by the specified name and obtains it current position and rotation if found.
AModelLoaderJob * GetFreeModelLoaderJob()
static constexpr TUINT MAX_NUM_KEYLIB_LOADER_JOBS
void(*)(ATerrainSection::ModelNode *a_pModelNode) t_OnModelNodeReady
t_OnModelNodeReady GetOnModelNodeReadyCallback() const
void CancelUnrequiredJobs()
Toshi::T2SListNodeWrapper< AMainThreadJob > JobSlot
ATRBLoaderJob * GetFreeTRBLoaderJob()