22static void TranslateLibraryName( Toshi::TString8& a_rOutName,
const TCHAR* a_szLibraryName )
25 TTODO(
"Take day/night cycle and current story progress into account" );
27 a_rOutName.Format(
"Data/%s.trb", a_szLibraryName );
36 TranslateLibraryName( libFileName, a_szLibraryName );
39 auto eResult = libTrb.
Load( libFileName );
43 auto pProperties = PBProperties::LoadFromTRB( libTrb );
47 auto pModelLib = pProperties->GetProperty(
"modellib" );
67 TranslateLibraryName( libFileName, a_szLibraryName );
70 auto eResult = libTrb.
Load( libFileName );
74 auto pProperties = PBProperties::LoadFromTRB( libTrb );
77 TFIXME(
"Create other assets" );
80 auto pMatlibs = pProperties->GetProperty(
"matlib" );
84 AMaterialLibraryManager::GetSingleton()->LoadLibrariesFromProperties(
94 auto pKeyframes = pProperties->GetProperty(
"keylib" );
98 AKeyFrameLibraryManager::GetSingleton()->LoadLibrariesFromProperties(
107 auto pAnimObjTypes = pProperties->GetProperty(
"AnimObjTypes" );
111 AAnimatableObjectManager::GetSingleton()->LoadTypesFromLibrary( a_szLibraryName );
127 if ( !ms_pTRBFiles[ a_eAssetType ] )
130 ms_pTRBFiles[ a_eAssetType ] =
new TTRB;
134 ms_pTRBFiles[ a_eAssetType ]->Close();
137 if ( a_bStream && AAssetStreaming::IsSingletonCreated() )
140 trbLoaderJob.
InitJob( ms_pTRBFiles[ a_eAssetType ], a_szFileName );
142 AAssetStreaming::GetSingleton()->AddMainThreadJob( &trbLoaderJob );
144 while ( AAssetStreaming::GetSingleton()->HasActiveJobs() )
147#ifndef BARNYARD_COMMUNITY_PATCH
150 AAssetStreaming::GetSingleton()->Update();
155 auto eError = ms_pTRBFiles[ a_eAssetType ]->Load( a_szFileName );
159 delete ms_pTRBFiles[ a_eAssetType ];
160 ms_pTRBFiles[ a_eAssetType ] =
TNULL;
172 if ( ms_pTRBFiles[ a_eAssetType ] )
174 ms_pTRBFiles[ a_eAssetType ]->Close();
175 delete ms_pTRBFiles[ a_eAssetType ];
176 ms_pTRBFiles[ a_eAssetType ] =
TNULL;
183 if ( ms_pTRBFiles[ a_eAssetType ] )
186 Toshi::TStringManager::String8Format( szName,
sizeof( szName ),
"%s_%s", a_szFileName, a_szSymbolName );
187 return ms_pTRBFiles[ a_eAssetType ]->GetSymbolAddress( szName );
TRB (Toshi Relocatable Binary) resource system for the Toshi engine.
#define TOSHI_NAMESPACE_USING
#define TPROFILER_SCOPE()
Char string implementation for the Toshi engine.
ALoadScreen g_oLoadScreen
void ThreadSleep(TUINT dwMilliseconds)
ERROR Load(const TCHAR *a_szFilePath, TUINT32 a_uiUnknown=0)
static TBOOL CreateAssetsFromLibrary(const TCHAR *a_szLibraryName)
static TBOOL Load(const TCHAR *a_szFileName, AAssetType a_eAssetType, TBOOL a_bStream)
static void Close(AAssetType a_eAssetType)
static Toshi::TTRB * GetAssetTRB(AAssetType a_eAssetType)
static void * GetSymbolAddress(const TCHAR *a_szFileName, const TCHAR *a_szSymbolName, AAssetType a_eAssetType)
static TBOOL LoadAssetPackFromLibrary(const TCHAR *a_szLibraryName, TBOOL a_bStream)
void InitJob(Toshi::TTRB *a_pTRB, const TCHAR *a_szFileName)