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

#include <SceneManager.hh>

Description

Manages the scene stack and transitions between scenes.

Definition at line 9 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)
 
ScenefindParentScene (int id) const
 
void setupNextSceneId ()
 
ScenecurrentScene () const
 
int currentSceneId () const
 
void setNextSceneId (int id)
 

Static Public Member Functions

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

Private Attributes

SceneCreatorm_creator
 
Scenem_currentScene
 
int m_nextSceneId
 
int m_currentSceneId
 
int m_prevSceneId
 

Static Private Attributes

static Heaps_heapForCreateScene = nullptr
 
static u16 s_heapOptionFlg = 2
 
static Heaps_rootHeap = nullptr
 

Constructor & Destructor Documentation

◆ SceneManager()

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

Definition at line 12 of file SceneManager.cc.

Member Function Documentation

◆ calc()

void EGG::SceneManager::calc ( )
virtual0x8023AE60

Definition at line 24 of file SceneManager.cc.

◆ calcCurrentScene()

void EGG::SceneManager::calcCurrentScene ( )
virtual0x8023B588

Definition at line 29 of file SceneManager.cc.

◆ changeScene()

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

Definition at line 104 of file SceneManager.cc.

◆ changeSiblingScene() [1/2]

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

Definition at line 119 of file SceneManager.cc.

◆ changeSiblingScene() [2/2]

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

Definition at line 113 of file SceneManager.cc.

◆ createChildScene()

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

Definition at line 42 of file SceneManager.cc.

◆ createScene()

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

Definition at line 50 of file SceneManager.cc.

◆ currentScene()

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

Definition at line 49 of file SceneManager.hh.

◆ currentSceneId()

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

Definition at line 53 of file SceneManager.hh.

◆ destroyCurrentSceneNoIncoming()

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

Definition at line 156 of file SceneManager.cc.

◆ destroyScene()

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

Definition at line 83 of file SceneManager.cc.

◆ destroyToSelectSceneId()

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

Definition at line 178 of file SceneManager.cc.

◆ findParentScene()

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

Definition at line 192 of file SceneManager.cc.

◆ heapForCreateScene()

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

Definition at line 57 of file SceneManager.hh.

◆ incomingCurrentScene()

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

Definition at line 133 of file SceneManager.cc.

◆ outgoingParentScene()

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

Definition at line 142 of file SceneManager.cc.

◆ reinitCurrentScene()

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

Definition at line 147 of file SceneManager.cc.

◆ setNextSceneId()

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

Definition at line 65 of file SceneManager.hh.

◆ SetRootHeap()

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

Definition at line 69 of file SceneManager.hh.

◆ setupNextSceneId()

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

Definition at line 204 of file SceneManager.cc.

Member Data Documentation

◆ m_creator

SceneCreator* EGG::SceneManager::m_creator
private

Definition at line 78 of file SceneManager.hh.

◆ m_currentScene

Scene* EGG::SceneManager::m_currentScene
private

Definition at line 79 of file SceneManager.hh.

◆ m_currentSceneId

int EGG::SceneManager::m_currentSceneId
private

Definition at line 81 of file SceneManager.hh.

◆ m_nextSceneId

int EGG::SceneManager::m_nextSceneId
private

Definition at line 80 of file SceneManager.hh.

◆ m_prevSceneId

int EGG::SceneManager::m_prevSceneId
private

Definition at line 82 of file SceneManager.hh.

◆ s_heapForCreateScene

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

Definition at line 84 of file SceneManager.hh.

◆ s_heapOptionFlg

u16 EGG::SceneManager::s_heapOptionFlg = 2
staticprivate

Definition at line 85 of file SceneManager.hh.

◆ s_rootHeap

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

Definition at line 87 of file SceneManager.hh.