summaryrefslogtreecommitdiff
path: root/src/KingSystem/System/OverlayArenaSystem.h
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2026-09-28 03:39:31 +0200
committerLéo Lam <leo@leolam.fr>2026-10-06 03:19:39 +0200
commit44c75aa78a9d67fffcb67bccacb56b7f7878e21f (patch)
treea1677acd613dccf9510fad34ef7e0a03317f8282 /src/KingSystem/System/OverlayArenaSystem.h
parentc4c7c00e85df3137d57cc899302a160ff94fa71b (diff)
SystemPauseMgr and NXArgs are game code
Both link in the game archive, and NXArgs uses game classes such as GameScene. The engine only calls SystemPauseMgr's virtuals, so it now goes through ksys::ISystemPauseMgr and no longer includes Game/. (AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
Diffstat (limited to 'src/KingSystem/System/OverlayArenaSystem.h')
-rw-r--r--src/KingSystem/System/OverlayArenaSystem.h24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/KingSystem/System/OverlayArenaSystem.h b/src/KingSystem/System/OverlayArenaSystem.h
index 73d55373..a0a3cd71 100644
--- a/src/KingSystem/System/OverlayArenaSystem.h
+++ b/src/KingSystem/System/OverlayArenaSystem.h
@@ -23,7 +23,25 @@ class TaskThread;
} // namespace util
class OverlayArena;
-class SystemPauseMgr;
+
+class ISystemPauseMgr {
+public:
+ virtual ~ISystemPauseMgr() = default;
+
+ virtual void m2() = 0;
+ virtual void waitForOnUiActorMgrAndBlockSaveMaybe() = 0;
+ virtual void stopNfpAndWaitForSaveMgr() = 0;
+ virtual void waitForOnUiActorMgr() = 0;
+ virtual void pauseGameSceneAndWait() = 0;
+ virtual bool releaseScreensAndShowMainLayer() = 0;
+ virtual void onSystemPauseResume() = 0;
+ virtual void waitForStageGenFinalStep() = 0;
+ virtual void restoreMainLayerAndResumeGameScene() = 0;
+ virtual bool hideMainLayer() = 0;
+ virtual void openFadeScreen() = 0;
+ virtual void showMainLayerAndResumeProcJobs() = 0;
+ virtual void clearHideMainLayerAndResumeEvents() = 0;
+};
// FIXME: incomplete
class OverlayArenaSystem {
@@ -34,7 +52,7 @@ class OverlayArenaSystem {
public:
struct InitArg {
- SystemPauseMgr* system_pause_mgr;
+ ISystemPauseMgr* system_pause_mgr;
};
bool init(const InitArg& arg, sead::Heap* heap);
@@ -95,7 +113,7 @@ private:
OverlayArena* mAudioArena = nullptr;
OverlayArena* mUnknownArena = nullptr;
sead::Heap* mJpegHeap = nullptr;
- SystemPauseMgr* mSystemPauseMgr = nullptr;
+ ISystemPauseMgr* mSystemPauseMgr = nullptr;
OverlayArenaSystemS1 mS1;
u32 _b8 = 0;
util::TaskThread* mPrepareThread = nullptr;