| 1 | #pragma once |
| 2 | |
| 3 | #include <basis/seadTypes.h> |
| 4 | #include <common/aglRenderBuffer.h> |
| 5 | #include <gfx/seadCamera.h> |
| 6 | #include <heap/seadHeap.h> |
| 7 | |
| 8 | namespace al { |
| 9 | class ActorFactory; |
| 10 | struct ActorInitInfo; |
| 11 | class AudioDirector; |
| 12 | class LayoutInitInfo; |
| 13 | class GameDataHolderBase; |
| 14 | class SceneMsgCtrl; |
| 15 | class PlacementInfo; |
| 16 | class Scene; |
| 17 | struct SceneInitInfo; |
| 18 | class StageInfo; |
| 19 | class PauseCameraCtrl; |
| 20 | struct AudioDirectorInitInfo; |
| 21 | class Projection; |
| 22 | class LiveActor; |
| 23 | class LiveActorGroup; |
| 24 | class AreaObjFactory; |
| 25 | class DemoDirector; |
| 26 | class ItemDirectorBase; |
| 27 | class SwitchOnAreaGroup; |
| 28 | class SwitchKeepOnAreaGroup; |
| 29 | class CameraPoserFactory; |
| 30 | class IUseAudioKeeper; |
| 31 | class AreaObjDirector; |
| 32 | class ExecuteDirector; |
| 33 | class PlayerHolder; |
| 34 | class ItemDirectorBase; |
| 35 | class Resource; |
| 36 | |
| 37 | s32 getStageInfoMapNum(const Scene* scene); |
| 38 | s32 getStageInfoDesignNum(const Scene* scene); |
| 39 | s32 getStageInfoSoundNum(const Scene* scene); |
| 40 | StageInfo* getStageInfoMap(const Scene* scene, s32 index); |
| 41 | StageInfo* getStageInfoDesign(const Scene* scene, s32 index); |
| 42 | StageInfo* getStageInfoSound(const Scene* scene, s32 index); |
| 43 | Resource* getStageResourceMap(const Scene* scene, s32 index); |
| 44 | Resource* tryGetStageResourceDesign(const Scene* scene, s32 index); |
| 45 | Resource* tryGetStageResourceSound(const Scene* scene, s32 index); |
| 46 | agl::RenderBuffer* getSceneFrameBufferMain(const Scene* scene); |
| 47 | agl::DrawContext* getSceneDrawContext(const Scene* scene); |
| 48 | agl::RenderBuffer* getSceneFrameBufferConsole(const Scene* scene); |
| 49 | agl::RenderBuffer* getSceneFrameBufferHandheld(const Scene* scene); |
| 50 | f32 getSceneFrameBufferMainAspect(const Scene* scene); |
| 51 | bool isChangedGraphicsQualityMode(const Scene* scene); |
| 52 | AreaObjDirector* getSceneAreaObjDirector(const Scene* scene); |
| 53 | ExecuteDirector* getSceneExecuteDirector(const Scene* scene); |
| 54 | PlayerHolder* getScenePlayerHolder(const Scene* scene); |
| 55 | ItemDirectorBase* getSceneItemDirector(const Scene* scene); |
| 56 | void initActorInitInfo(ActorInitInfo* actorInitInfo, const Scene* scene, |
| 57 | const PlacementInfo* placementInfo, const LayoutInitInfo* layoutInfo, |
| 58 | const ActorFactory* actorFactory, SceneMsgCtrl* sceneMsgCtrl, |
| 59 | GameDataHolderBase* gameDataHolderBase); |
| 60 | void initLayoutInitInfo(LayoutInitInfo* layoutInfo, const Scene* scene, |
| 61 | const SceneInitInfo& sceneInfo); |
| 62 | void initPlacementAreaObj(Scene* scene, const ActorInitInfo& actorInfo); |
| 63 | void initPlacementGravityObj(Scene* scene); |
| 64 | bool tryGetPlacementInfoAndCount(PlacementInfo* outPlacementInfo, s32* outCount, |
| 65 | const StageInfo* stageInfo, const char* key); |
| 66 | void initPlacementObjectMap(Scene* scene, const ActorInitInfo& actorInfo, const char* name); |
| 67 | void initPlacementByStageInfo(const StageInfo* stageInfo, const char* key, |
| 68 | const ActorInitInfo& actorInfo); |
| 69 | void initPlacementObjectDesign(Scene* scene, const ActorInitInfo& actorInfo, const char* name); |
| 70 | void initPlacementObjectSound(Scene* scene, const ActorInitInfo& actorInfo, const char* name); |
| 71 | LiveActor* tryInitPlacementSingleObject(Scene* scene, const ActorInitInfo& actorInfo, |
| 72 | s32 resourceType, const char* key); |
| 73 | LiveActor* tryInitPlacementSingleObject(Scene* scene, const ActorInitInfo& actorInfo, |
| 74 | s32 resourceType, const char* key, const char* name); |
| 75 | bool tryInitPlacementActorGroup(LiveActorGroup* liveActorGroup, Scene* scene, |
| 76 | const ActorInitInfo& actorInfo, s32 resourceType, const char* key, |
| 77 | const char* name); |
| 78 | void initPlacementByStageInfoSingle(const StageInfo* stageInfo, const char* key, |
| 79 | const ActorInitInfo& actorInfo); |
| 80 | bool tryGetPlacementInfo(PlacementInfo* outPlacementInfo, const StageInfo* stageInfo, |
| 81 | const char* key); |
| 82 | void getPlacementInfo(PlacementInfo* outPlacementInfo, const StageInfo* stageInfo, const char* key); |
| 83 | void getPlacementInfoAndCount(PlacementInfo* outPlacementInfo, s32* outCount, |
| 84 | const StageInfo* stageInfo, const char* key); |
| 85 | void initAreaObjDirector(Scene* scene, const AreaObjFactory* factory); |
| 86 | void initDemoDirector(Scene* scene, DemoDirector* demoDirector); |
| 87 | void initHitSensorDirector(Scene* scene); |
| 88 | void initGravityHolder(Scene* scene); |
| 89 | void initItemDirector(Scene* scene, ItemDirectorBase* itemDirector); |
| 90 | void initNatureDirector(Scene* scene); |
| 91 | void initSwitchAreaDirector(Scene* scene, s32 maxSwitchOnArea, s32 maxSwitchKeepOnArea); |
| 92 | void registerSwitchOnAreaGroup(Scene* scene, SwitchOnAreaGroup* switchOnAreaGroup); |
| 93 | void registerSwitchKeepOnAreaGroup(Scene* scene, SwitchKeepOnAreaGroup* switchKeepOnAreaGroup); |
| 94 | void initGraphicsSystemInfo(Scene* scene, const char* name, s32 index); |
| 95 | void initCameraDirector(Scene* scene, const CameraPoserFactory* cameraPoserFactory); |
| 96 | void initCameraDirectorWithoutStageResource(Scene* scene, |
| 97 | const CameraPoserFactory* cameraPoserFactory); |
| 98 | void initCameraDirectorFix(Scene* scene, const sead::Vector3f& pos, const sead::Vector3f& lookAtPos, |
| 99 | const CameraPoserFactory* cameraPoserFactory); |
| 100 | void initSceneCameraFovyDegree(Scene* scene, f32 fovy); |
| 101 | void initSnapShotCameraAudioKeeper(Scene* scene, IUseAudioKeeper* audioKeeper); |
| 102 | void setCameraAspect(Scene* scene, f32 aspectA, f32 aspectB); |
| 103 | void resetSceneInitEntranceCamera(Scene* scene); |
| 104 | void stopCameraByDeathPlayer(Scene* scene); |
| 105 | void restartCameraByDeathPlayer(Scene* scene); |
| 106 | void startInvalidCameraStopJudgeByDemo(Scene* scene); |
| 107 | void endInvalidCameraStopJudgeByDemo(Scene* scene); |
| 108 | void startCameraSnapShotMode(Scene* scene, bool useInterpole); |
| 109 | void endCameraSnapShotMode(Scene* scene); |
| 110 | bool isCameraReverseInputH(const Scene* scene); |
| 111 | void onCameraReverseInputH(Scene* scene); |
| 112 | void offCameraReverseInputH(Scene* scene); |
| 113 | bool isCameraReverseInputV(const Scene* scene); |
| 114 | void onCameraReverseInputV(Scene* scene); |
| 115 | void offCameraReverseInputV(Scene* scene); |
| 116 | s32 getCameraStickSensitivityLevel(const Scene* scene); |
| 117 | void setCameraStickSensitivityLevel(Scene* scene, s32 sensitivityLevel); |
| 118 | bool isValidCameraGyro(const Scene* scene); |
| 119 | void validateCameraGyro(Scene* scene); |
| 120 | void invalidateCameraGyro(Scene* scene); |
| 121 | s32 getCameraGyroSensitivityLevel(const Scene* scene); |
| 122 | void setCameraGyroSensitivityLevel(Scene* scene, s32 sensitivityLevel); |
| 123 | // TODO: rename parameter |
| 124 | PauseCameraCtrl* initAndCreatePauseCameraCtrl(Scene* scene, f32 value); |
| 125 | void startCameraPause(PauseCameraCtrl* pauseCameraCtrl); |
| 126 | void endCameraPause(PauseCameraCtrl* pauseCameraCtrl); |
| 127 | void initAudioDirector2D(Scene* scene, const SceneInitInfo& sceneInfo, |
| 128 | AudioDirectorInitInfo& audioDirectorInfo); |
| 129 | void initAudioDirector3D(Scene* scene, const SceneInitInfo& sceneInfo, |
| 130 | AudioDirectorInitInfo& audioDirectorInfo); |
| 131 | void initAudioDirector3D(Scene* scene, const SceneInitInfo& sceneInfo, |
| 132 | AudioDirectorInitInfo& audioDirectorInfo, |
| 133 | const sead::LookAtCamera* lookAtCamera, const Projection* projection, |
| 134 | AreaObjDirector* areaObjDirector); |
| 135 | void initSceneAudioKeeper(Scene* scene, const SceneInitInfo& sceneInfo, const char* name); |
| 136 | void setIsSafeFinalizingInParallelThread(Scene* scene, bool isSafe); |
| 137 | void updateKit(Scene* scene); |
| 138 | void updateKitTable(Scene* scene, const char* name); |
| 139 | void updateKitList(Scene* scene, const char* listName, const char* name); |
| 140 | void updateKitList(Scene* scene, const char* name); |
| 141 | void updateLayoutKit(Scene* scene); |
| 142 | void updateEffect(Scene* scene); |
| 143 | void updateEffectSystem(Scene* scene); |
| 144 | void updateEffectPlayer(Scene* scene); |
| 145 | void updateEffectDemo(Scene* scene); |
| 146 | void updateEffectDemoWithPause(Scene* scene); |
| 147 | void updateEffectLayout(Scene* scene); |
| 148 | void updateGraphicsPrev(Scene* scene); |
| 149 | void updateKitListPrev(Scene* scene); |
| 150 | void updateKitListPost(Scene* scene); |
| 151 | void updateKitListPostDemoWithPauseNormalEffect(Scene* scene); |
| 152 | void updateKitListPostOnNerveEnd(Scene* scene); |
| 153 | void drawKit(const Scene* scene, const char* name); |
| 154 | void drawKitList(const Scene* scene, const char* listName, const char* name); |
| 155 | void drawLayoutKit(const Scene* scene, const char* name); |
| 156 | void drawEffectDeferred(const Scene* scene, s32 index); |
| 157 | // TODO: rename parameter |
| 158 | void startForwardPlayerScreenFader(const Scene* scene, s32 a, s32 b, f32 c); |
| 159 | // TODO: rename parameter |
| 160 | void endForwardPlayerScreenFader(const Scene* scene, s32 a); |
| 161 | bool isStopScene(const Scene* scene); |
| 162 | void startCheckViewCtrlByCameraPos(Scene* scene); |
| 163 | void startCheckViewCtrlByLookAtPos(Scene* scene); |
| 164 | void startCheckViewCtrlByPlayerPos(Scene* scene); |
| 165 | bool isExistScreenCoverCtrl(const Scene* scene); |
| 166 | bool isRequestCaptureScreenCover(const Scene* scene); |
| 167 | void resetRequestCaptureScreenCover(const Scene* scene); |
| 168 | bool isOffDrawScreenCover(const Scene* scene); |
| 169 | void resetCaptureScreenCover(const Scene* scene); |
| 170 | void validatePostProcessingFilter(const Scene* scene); |
| 171 | void invalidatePostProcessingFilter(const Scene* scene); |
| 172 | void incrementPostProcessingFilterPreset(const Scene* scene); |
| 173 | void decrementPostProcessingFilterPreset(const Scene* scene); |
| 174 | s32 getPostProcessingFilterPresetId(const Scene* scene); |
| 175 | bool isActiveDemo(const Scene* scene); |
| 176 | const char* getActiveDemoName(const Scene* scene); |
| 177 | LiveActor** getDemoActorList(const Scene* scene); |
| 178 | s32 getDemoActorNum(const Scene* scene); |
| 179 | void updateDemoActor(const Scene* scene); |
| 180 | void updateDemoActorForPauseEffect(const Scene* scene); |
| 181 | void stopAllSe(const Scene* scene, u32 index); |
| 182 | void initPadRumble(const Scene* scene, const SceneInitInfo& sceneInfo); |
| 183 | void stopPadRumble(const Scene* scene); |
| 184 | void pausePadRumble(const Scene* scene); |
| 185 | void endPausePadRumble(const Scene* scene); |
| 186 | void validatePadRumble(Scene* scene); |
| 187 | void invalidatePadRumble(Scene* scene); |
| 188 | void setPadRumblePowerLevel(Scene* scene, s32 powerLevel); |
| 189 | const Resource* getPreLoadFileListArc(); |
| 190 | bool tryRequestPreLoadFile(const Scene* scene, const SceneInitInfo& sceneInfo, s32 index, |
| 191 | sead::Heap* heap); |
| 192 | } // namespace al |
| 193 | |
| 194 | namespace alSceneFunction { |
| 195 | void initAreaCameraSwitcherMultiForPrototype(const al::Scene* scene); |
| 196 | } |
| 197 | |