A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
GameScene.hh
1#pragma once
2
3#include "game/system/MultiDvdArchive.hh"
4
5#include <egg/core/ExpHeap.hh>
6#include <egg/core/Scene.hh>
7
8#include <list>
9
11namespace Kinoko::Scene {
12
14class GameScene : public EGG::Scene {
15public:
16 GameScene();
17 ~GameScene() override;
18
19 void calc() final;
20 void enter() final;
21 void exit() final;
22 void reinit() final;
23
24 virtual void createEngines() = 0;
25 virtual void initEngines() = 0;
26 virtual void calcEngines() = 0;
27 virtual void destroyEngines() = 0;
28 virtual void configure() = 0;
29 virtual void onReinit() {}
30
31 static void initCamera();
32 static void calcCamera();
33
34protected:
35 void appendResource(System::MultiDvdArchive *archive, s32 id);
36
37private:
38 struct Resource {
39 Resource(System::MultiDvdArchive *archive, s32 id);
40
42 s32 id;
43 };
44
45 void initScene();
46 void deinitScene();
47 void unmountResources();
48
49#ifdef BUILD_DEBUG
50 void checkMemory();
51 void getMemoryLeakTags();
52 size_t getMemoryLeakTagCount();
53
54 static void ViewTags(void *block, Abstract::Memory::MEMiHeapHead *heap, uintptr_t param);
55 static void IncreaseTagCount(void *block, Abstract::Memory::MEMiHeapHead *heap,
56 uintptr_t param);
57#endif // BUILD_DEBUG
58
59 EGG::ExpHeap::GroupSizeRecord m_groupSizeRecord;
60 std::list<Resource *> m_resources;
61 int m_nextSceneId;
62
63 [[maybe_unused]] size_t m_totalMemoryUsed;
64};
65
66} // namespace Kinoko::Scene
A low-level representation of a memory heap for managing dynamic memory allocation....
Definition HeapCommon.hh:21
Memory blocks have group IDs assigned to them (default 0). This class is a record of the total sum of...
Definition ExpHeap.hh:21
Base class for all scenes.
Definition Scene.hh:16
Interface for menu and race scenes.
Definition GameScene.hh:14
std::list< Resource * > m_resources
List of all active resources in the scene.
Definition GameScene.hh:60
Pertains to scene handling.
Definition GameScene.cc:10