Scene: Add SceneObjFactory

Co-authored-by: tetraxile <tetraxile@proton.me>
This commit is contained in:
MonsterDruide1 2024-04-07 21:27:24 +02:00
parent dd328ecc68
commit 254eeb8923
3 changed files with 106 additions and 1 deletions

View File

@ -30784,7 +30784,7 @@ Address,Quality,Size,Name
0x00000071004c4238,U,000120,_ZN2rs23listenSnapShotModeOnOffEPKN2al18IUseSceneObjHolderERKNS0_11FunctorBaseES6_
0x00000071004c42b0,U,000012,_ZN24SceneEventNotifyFunction20notifySnapShotModeOnEPKN2al18IUseSceneObjHolderE
0x00000071004c42bc,U,000012,_ZN24SceneEventNotifyFunction21notifySnapShotModeOffEPKN2al18IUseSceneObjHolderE
0x00000071004c42c8,U,000056,_ZN15SceneObjFactory20createSceneObjHolderEv
0x00000071004c42c8,O,000056,_ZN15SceneObjFactory20createSceneObjHolderEv
0x00000071004c4300,U,000832,
0x00000071004c4640,U,000004,_ZN31ReactionObjectActionIndexHolderD0Ev
0x00000071004c4644,U,000512,_ZN20SceneStateSelectModeC2EPKcPN2al5SceneERKNS2_14LayoutInitInfoEP11FooterPartsPNS2_13WindowConfirmEPNS2_19WaveVibrationHolderE

Can't render this file because it is too large.

View File

@ -0,0 +1,13 @@
#include "Scene/SceneObjFactory.h"
#include "Library/Scene/ISceneObj.h"
#include "Library/Scene/SceneObjHolder.h"
static al::ISceneObj* sceneObjCreator(s32 id) {
// TODO
return nullptr;
}
al::SceneObjHolder* SceneObjFactory::createSceneObjHolder() {
return new al::SceneObjHolder(&sceneObjCreator, SceneObjID_Max);
}

View File

@ -0,0 +1,92 @@
#pragma once
#include <basis/seadTypes.h>
namespace al {
class SceneObjHolder;
}
enum SceneObjID : s32 {
SceneObjID_AmiiboNpcDirector,
SceneObjID_BgmAnimeSyncDirector,
SceneObjID_BirdPlayerGlideCtrl,
SceneObjID_CapManHeroDemoDirector,
SceneObjID_CapMessageDirector,
SceneObjID_CapMessageMoonNotifier,
SceneObjID_CheckpointFlagWatcher,
SceneObjID_CoinCollectHolder,
SceneObjID_CoinCollectWatcher,
SceneObjID_CollectBgmPlayer,
SceneObjID_alDataStoreDirector,
SceneObjID_EchoEmitterHolder,
SceneObjID_ElectricWireCameraTicketHolder,
SceneObjID_EventDemoCtrl,
SceneObjID__e,
SceneObjID_alFootPrintServer,
SceneObjID_alFriendsProfileDownloader,
SceneObjID_FukankunZoomObjHolder,
SceneObjID_GameDataHolder,
SceneObjID__13,
SceneObjID_GiantWanderBoss,
SceneObjID_GrowPlantDirector,
SceneObjID_GuidePosInfoHolder,
SceneObjID_HintPhotoLayoutHolder,
SceneObjID_HosuiTrailKeeper,
SceneObjID_HosuiWaterBallHolder,
SceneObjID_HtmlViewerRequester,
SceneObjID_InformationWindowDirector,
SceneObjID__1c,
SceneObjID_KidsModeLayoutAccessor,
SceneObjID_KoopaStopHackCtrl,
SceneObjID_KoopaShipDemoRequester,
SceneObjID_alLayoutTextureRenderer,
SceneObjID_LifeUpItemGenerateWatcher,
SceneObjID_LoginLotteryDirector,
SceneObjID_MapLayout,
SceneObjID_MoviePlayer,
SceneObjID__25,
SceneObjID_NpcEventCtrlInfo,
SceneObjID_PaintObjHolder,
SceneObjID__28,
SceneObjID_PeachOnKoopaAnimRequester,
SceneObjID_PlayerStartInfoHolder,
SceneObjID_PlayerHackStartTexKeeper,
SceneObjID_QuestInfoHolder,
SceneObjID_ProjectRaceCheckPointHolder,
SceneObjID_RaceManRace,
SceneObjID_RaceWatcher,
SceneObjID_RadiConRaceWatcher,
SceneObjID_RandomItemSelector,
SceneObjID_alRankingDirector,
SceneObjID_RankingNameHolder,
SceneObjID_ReactionObjectActionIndexHolder,
SceneObjID_RhyhtmInfoWatcher,
SceneObjID_RocketFlowerEquipWatcher,
SceneObjID_RouteGuideDirector,
SceneObjID_SceneEventNotifier,
SceneObjID_SessionMusicianManager,
SceneObjID_ShineChipWatcherHolder,
SceneObjID_SphinxQuizRouteKillExecutor,
SceneObjID_alStageSyncCounter,
SceneObjID__3d, // seems like it was meant to be al::registSupportFreezeSyncGroup (based on
// ClockMapParts::init + 0x6c),
SceneObjID_TalkNpcParamHolder,
SceneObjID_TalkNpcSceneEventSwitcher,
SceneObjID_TestStageTimeDirector,
SceneObjID_TimeBalloonDirector,
SceneObjID__42,
SceneObjID_alTrafficAreaDirector,
SceneObjID_TrafficRailWatcher,
SceneObjID_TRexScrollBreakMapPartsBreakJudge,
SceneObjID_TsukkunTraceHolder,
SceneObjID_WipeHolderRequester,
SceneObjID_YoshiFruitWatcher,
SceneObjID_HelpAmiiboDirector,
SceneObjID_Max,
};
class SceneObjFactory {
public:
static al::SceneObjHolder* createSceneObjHolder();
};