1#pragma once
2
3#include <heap/seadDisposer.h>
4
5namespace al {
6class SystemKit;
7class GameFrameworkNx;
8class AccountHolder;
9struct DrawSystemInfo;
10} // namespace al
11
12class RootTask;
13
14class Application {
15 SEAD_SINGLETON_DISPOSER(Application);
16
17public:
18 Application();
19 void init(s32 argc, char** argv);
20 void run();
21 RootTask* getRootTask() const;
22
23 al::SystemKit* getSystemKit() const { return mSystemKit; }
24
25 al::GameFrameworkNx* getGameFramework() const { return mGameFramework; }
26
27 al::DrawSystemInfo* getDrawSystemInfo() const { return mDrawSystemInfo; }
28
29 al::AccountHolder* getAccountHolder() const { return mAccountHolder; }
30
31protected:
32 friend class ApplicationFunction;
33
34private:
35 al::SystemKit* mSystemKit;
36 al::GameFrameworkNx* mGameFramework;
37 al::DrawSystemInfo* mDrawSystemInfo;
38 al::AccountHolder* mAccountHolder;
39};
40