A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
Kinoko::EGG::SceneManager Class Reference

#include <SceneManager.hh>

Description

Manages the scene stack and transitions between scenes.

Definition at line 17 of file SceneManager.hh.

Public Member Functions

 SceneManager (SceneCreator *creator=nullptr)
virtual void calc ()
virtual void calcCurrentScene ()
void createChildScene (int nextSceneId, Scene *parent)
void createScene (int nextSceneId, Scene *parent)
void destroyScene (Scene *scene)
void changeScene (int nextSceneId)
void changeSiblingScene (int nextSceneId)
void changeSiblingScene ()
void incomingCurrentScene ()
void outgoingParentScene (Scene *parent)
void reinitCurrentScene ()
bool destroyCurrentSceneNoIncoming (bool destroyRootIfNoParent)
bool destroyToSelectSceneId (int nextSceneId)
Scene * findParentScene (int id) const
void setupNextSceneId ()
Scene * currentScene () const
int currentSceneId () const
void setNextSceneId (int id)

Static Public Member Functions

static Heap * heapForCreateScene ()
static void SetRootHeap (Heap *heap)

Private Attributes

SceneCreator * m_creator
Scene * m_currentScene
int m_nextSceneId
int m_currentSceneId
int m_prevSceneId

Static Private Attributes

static Heap * s_heapForCreateScene = nullptr
static u16 s_heapOptionFlg = DEFAULT_OPT
static Heap * s_rootHeap = nullptr

Constructor & Destructor Documentation

◆ SceneManager()

Kinoko::EGG::SceneManager::SceneManager ( SceneCreator * creator = nullptr)
0x8023ADDC

Definition at line 12 of file SceneManager.cc.

Member Function Documentation

◆ calc()

void Kinoko::EGG::SceneManager::calc ( )
virtual0x8023AE60

Definition at line 24 of file SceneManager.cc.

◆ calcCurrentScene()

void Kinoko::EGG::SceneManager::calcCurrentScene ( )
virtual0x8023B588

Definition at line 29 of file SceneManager.cc.

◆ changeScene()

void Kinoko::EGG::SceneManager::changeScene ( int nextSceneId)
0x8023AF84

Definition at line 110 of file SceneManager.cc.

◆ changeSiblingScene() [1/2]

void Kinoko::EGG::SceneManager::changeSiblingScene ( )
0x8023B064

Definition at line 125 of file SceneManager.cc.

◆ changeSiblingScene() [2/2]

void Kinoko::EGG::SceneManager::changeSiblingScene ( int nextSceneId)
0x8023AFE0

Definition at line 119 of file SceneManager.cc.

◆ createChildScene()

void Kinoko::EGG::SceneManager::createChildScene ( int nextSceneId,
Scene * parent )
0x8023B248

Definition at line 42 of file SceneManager.cc.

◆ createScene()

void Kinoko::EGG::SceneManager::createScene ( int nextSceneId,
Scene * parent )
0x8023B0E4

Definition at line 50 of file SceneManager.cc.

◆ currentScene()

Scene * Kinoko::EGG::SceneManager::currentScene ( ) const
inlinenodiscard

Definition at line 59 of file SceneManager.hh.

◆ currentSceneId()

int Kinoko::EGG::SceneManager::currentSceneId ( ) const
inlinenodiscard

Definition at line 63 of file SceneManager.hh.

◆ destroyCurrentSceneNoIncoming()

bool Kinoko::EGG::SceneManager::destroyCurrentSceneNoIncoming ( bool destroyRootIfNoParent)
0x8023B2AC

Definition at line 162 of file SceneManager.cc.

◆ destroyScene()

void Kinoko::EGG::SceneManager::destroyScene ( Scene * scene)
0x8023B3F0

Definition at line 83 of file SceneManager.cc.

◆ destroyToSelectSceneId()

bool Kinoko::EGG::SceneManager::destroyToSelectSceneId ( int nextSceneId)
0x8023B344

Definition at line 184 of file SceneManager.cc.

◆ findParentScene()

Scene * Kinoko::EGG::SceneManager::findParentScene ( int id) const
nodiscard0x8023B940

Definition at line 198 of file SceneManager.cc.

◆ heapForCreateScene()

Heap * Kinoko::EGG::SceneManager::heapForCreateScene ( )
inlinestaticnodiscard

Definition at line 67 of file SceneManager.hh.

◆ incomingCurrentScene()

void Kinoko::EGG::SceneManager::incomingCurrentScene ( )
0x8023B568

Definition at line 139 of file SceneManager.cc.

◆ outgoingParentScene()

void Kinoko::EGG::SceneManager::outgoingParentScene ( Scene * parent)
0x8023B92C

Definition at line 148 of file SceneManager.cc.

◆ reinitCurrentScene()

void Kinoko::EGG::SceneManager::reinitCurrentScene ( )
0x8023AEF8

Definition at line 153 of file SceneManager.cc.

◆ setNextSceneId()

void Kinoko::EGG::SceneManager::setNextSceneId ( int id)
inline

Definition at line 75 of file SceneManager.hh.

◆ SetRootHeap()

void Kinoko::EGG::SceneManager::SetRootHeap ( Heap * heap)
inlinestatic

Definition at line 79 of file SceneManager.hh.

◆ setupNextSceneId()

void Kinoko::EGG::SceneManager::setupNextSceneId ( )
0x8023B910

Definition at line 210 of file SceneManager.cc.

Member Data Documentation

◆ m_creator

SceneCreator* Kinoko::EGG::SceneManager::m_creator
private

Definition at line 88 of file SceneManager.hh.

◆ m_currentScene

Scene* Kinoko::EGG::SceneManager::m_currentScene
private

Definition at line 89 of file SceneManager.hh.

◆ m_currentSceneId

int Kinoko::EGG::SceneManager::m_currentSceneId
private

Definition at line 91 of file SceneManager.hh.

◆ m_nextSceneId

int Kinoko::EGG::SceneManager::m_nextSceneId
private

Definition at line 90 of file SceneManager.hh.

◆ m_prevSceneId

int Kinoko::EGG::SceneManager::m_prevSceneId
private

Definition at line 92 of file SceneManager.hh.

◆ s_heapForCreateScene

Heap * Kinoko::EGG::SceneManager::s_heapForCreateScene = nullptr
staticprivate

Definition at line 94 of file SceneManager.hh.

◆ s_heapOptionFlg

u16 Kinoko::EGG::SceneManager::s_heapOptionFlg = DEFAULT_OPT
staticprivate

Definition at line 95 of file SceneManager.hh.

◆ s_rootHeap

Heap * Kinoko::EGG::SceneManager::s_rootHeap = nullptr
staticprivate

Definition at line 97 of file SceneManager.hh.