#include "scenes.h" #include #include Scene **sceneStack = NULL; uint sceneStackDepth = 0; Scene *getCurrentScene() { if (sceneStackDepth == 0) return false; return sceneStack[sceneStackDepth - 1]; } bool InitSceneStack() { sceneStack = malloc(sizeof(Scene) * SCENE_STACK_SIZE); return sceneStack != NULL; } bool AddScene(Scene *newScene) { if (newScene == NULL || sceneStackDepth == SCENE_STACK_SIZE) return false; sceneStack[sceneStackDepth] = newScene; sceneStackDepth += 1; return true; } void DeleteSceneFromStack() { Scene *currentScene = getCurrentScene(); if (currentScene == NULL) return; currentScene->Deint(currentScene); sceneStack[--sceneStackDepth] = NULL; } bool DrawScene() { Scene *currentScene = getCurrentScene(); if (currentScene == NULL) return false; return currentScene->Draw(currentScene); } bool UpdateScene() { Scene *currentScene = getCurrentScene(); if (currentScene == NULL) return false; return currentScene->Update(currentScene); }