51 m_bStopRenderingScene =
TFALSE;
52 m_bGameSystemCreated =
TFALSE;
53 m_pOptions = AOptions::CreateSingleton();
58 m_pGUISystem = pScheduler->CreateTask<
AGUISystem>( this );
59 m_pGUI2 = pScheduler->CreateTask<
AGUI2>( this );
60 m_pRenderer = pScheduler->CreateTask<
ARenderer>( this );
61 m_pInputHandler = pScheduler->CreateTask<
AInputHandler>( this );
63 m_pSoundManager = pScheduler->CreateTask<
ASoundManager>( this );
65 m_bGameSystemCreated =
TFALSE;
80 [](
TClass* a_pClass,
void* ) {
95 if ( !m_pRenderer->Create() )
106 m_pInputHandler->Create();
107 m_pSoundManager->Create();
109 ARandom::CreateSingleton();
111 if ( m_pMoviePlayer )
113 m_pMoviePlayer->Create();
117 AInputMapManager::GetSingleton()->ReadControlsData();
120 m_pGameStateController->Create();
123 ARenderer::GetSingleton()->ForceUpdate30FPS();
124 ARenderer::GetSingleton()->ForceUpdate30FPS();
139 if ( !m_bStartedGame )
154 TTODO(
"FUN_00427e70" );
162 if ( a_pDeletedTask == m_pGUISystem ) m_pGUISystem =
TNULL;
163 else if ( a_pDeletedTask == m_pGUI2 )
165 else if ( a_pDeletedTask == m_pInputHandler )
166 m_pInputHandler =
TNULL;
167 else if ( a_pDeletedTask == m_pRenderer )
169 else if ( a_pDeletedTask == m_pGameStateController )
170 m_pGameStateController =
TNULL;
171 else if ( a_pDeletedTask == m_pMoviePlayer )
172 m_pMoviePlayer =
TNULL;
177 if ( m_pGUISystem ) m_pGUISystem->Activate(
TTRUE );
178 if ( m_pGUI2 ) m_pGUI2->Activate(
TTRUE );
179 if ( m_pRenderer ) m_pRenderer->Activate(
TTRUE );
180 if ( m_pInputHandler ) m_pInputHandler->Activate(
TTRUE );
181 if ( m_pGameStateController ) m_pGameStateController->Activate(
TTRUE );
182 if ( m_pMoviePlayer ) m_pMoviePlayer->Activate(
TTRUE );
184 if ( m_bGameSystemCreated )
186 TTODO(
"Activate three more tasks" );
192 if ( m_pGUISystem ) m_pGUISystem->Activate(
TFALSE );
193 if ( m_pGUI2 ) m_pGUI2->Activate(
TFALSE );
194 if ( m_pRenderer ) m_pRenderer->Activate(
TFALSE );
195 if ( m_pInputHandler ) m_pInputHandler->Activate(
TFALSE );
196 if ( m_pGameStateController ) m_pGameStateController->Activate(
TFALSE );
197 if ( m_pMoviePlayer ) m_pMoviePlayer->Activate(
TFALSE );
199 TTODO(
"Deactivate two more tasks" );
218 .bSlideSkippable =
TTRUE,
220 .bInstaSkippable =
TFALSE,
222 .bHasFadeOut =
TTRUE,
227 .fFadeOutTime = 0.5f,
232 fmodSlide->AddSlide(
TPS8( bkg_fmod ) );
235 binkSlide->AddSlide(
TPS8( bkg_Bink_Big ) );
239 legalSlide->AddSlide(
TPS8( bkg_by_legal1 ) );
241 AGameStateController::GetSingleton()->PushState( legalSlide );
243 m_bStartedGame =
TTRUE;
249 startupLibPath.
Format(
"Data/%s.trb",
"lib_startup" );
252 trb.
Load( startupLibPath );
254 auto properties = PBProperties::LoadFromTRB( trb );
255 auto matlibProperty = properties->GetProperty(
"matlib" );
257 if ( matlibProperty )
259 AMaterialLibraryManager::GetSingleton()->LoadLibrariesFromProperties(
268 if ( m_pGUI2 && !m_pGUI2->Create() )
273 if ( m_pGUISystem && !m_pGUISystem->Create() )
275 m_pGUISystem =
TNULL;
290void ARootTask::CreateGameSystem()
294 AFadeManager::GetSingleton()->StopAllFades();
297 ASoundManager::GetSingleton()->LoadWaveBanksInfo(
"soundmetadata" );
301 m_pGameSystemManager->Create();
308 if ( m_pInputHandler )
310 m_pInputHandler->SetParent( m_pInputHandler->Parent() );
313 if ( m_pMoviePlayer )
315 m_pMoviePlayer->SetParent( m_pMoviePlayer->Parent() );
320 m_pGUISystem->SetParent( m_pGUISystem->Parent() );
323 if ( m_pGameStateController )
325 m_pGameStateController->SetParent( m_pGameStateController->Parent() );
332 m_pRenderer->SetParent( m_pRenderer->Parent() );
335 m_bGameSystemCreated =
TTRUE;
342void ARootTask::LoadFrontEnd()
345 ASoundManager* pSoundManager = ASoundManager::GetSingleton();
366 AFrontEndMainMenuState2* pFrontEndState =
new AFrontEndMainMenuState2();
372 GetSingleton()->SetRenderWorld(
TTRUE );
375 AGameStateController::GetSingleton()->PushState( pFrontEndState );
382 AFadeManager::GetSingleton()->StartFade(
383 AFade::Color( 255, 0, 0, 0 ),
384 AFade::Color( 0, 0, 0, 0 ),
#define TOSHI_NAMESPACE_USING
#define TDEFINE_CLASS(...)
#define TPSTRING8_DECLARE(STR)
ALoadScreen g_oLoadScreen
TSystemManager g_oSystemManager
ERROR Load(const TCHAR *a_szFilePath, TUINT32 a_uiUnknown=0)
void FlushDyingResources()
TBOOL IsInitialized() const
static TFORCEINLINE TRenderInterface * GetSingleton()
TString8 & Format(const TCHAR *a_pcFormat,...)
void SetLoadingState(TBOOL a_bIsLoading, TBOOL a_bUpdateUI)
static TBOOL CreateAssetsFromLibrary(const TCHAR *a_szLibraryName)
static TBOOL Load(const TCHAR *a_szFileName, AAssetType a_eAssetType, TBOOL a_bStream)
static Toshi::TTRB * GetAssetTRB(AAssetType a_eAssetType)
static TBOOL LoadAssetPackFromLibrary(const TCHAR *a_szLibraryName, TBOOL a_bStream)
static void SetupCamera()
static void UpdateMaterials()
static void AllowBackgroundClear(TBOOL a_bAllow)
static void CreatePool(POOL a_ePool)
TBOOL LoadWaveBankSamples(const Toshi::TPString8 &a_rcName, AWaveBank::LOADFLAGS a_eLoadFlags, TINT a_iBufferSize)
void LoadSoundBankSamples(const Toshi::TPString8 &a_rcName)
static TBOOL ms_bShouldUpdateLoadingScreen
TBOOL LoadSoundBank(const Toshi::TPString8 &a_rcName, TBOOL a_bSimpleSound, TBOOL a_bLoadImmediately)
virtual TBOOL OnCreate() override
virtual void OnChildDied(Toshi::TClass *a_pClass, Toshi::TTask *a_pDeletedTask) override
virtual TBOOL OnUpdate(TFLOAT a_fDeltaTime) override
virtual void OnDeactivate() override
TBOOL IsGameSystemCreated() const
void CreateStartupGameStates()
virtual void OnActivate() override
static void SetTerrain(TINT a_eTerrain, TBOOL a_bLoadLater, TBOOL a_bStreamModels, TINT a_iUnused1, TINT a_iUnused2, TINT a_iPreloadTerrainBlockSize, TINT a_iStartVISGroup)
static void StartLoading()