/*---------------------------------------------------------------------------* Project: Horizon File: Scene.h Copyright (C)2009-2012 Nintendo Co., Ltd. All rights reserved. These coded instructions, statements, and computer programs contain proprietary information of Nintendo of America Inc. and/or Nintendo Company Ltd., and are protected by Federal copyright law. They may not be disclosed to third parties or copied or duplicated in any form, in whole or in part, without the prior written consent of Nintendo. $Rev: 46365 $ *---------------------------------------------------------------------------*/ #ifndef NN_COMMON_SCENE_SCENE_H_ #define NN_COMMON_SCENE_SCENE_H_ #include // Pop from the scene stack #define SCENE_ID_POP (-3) // Undefined scene #define SCENE_ID_UNDEFINED (-2) // Empty scene #define SCENE_ID_NULL (-1) namespace scene { /* Please see man pages for details */ class Scene { public: /* Please see man pages for details */ Scene() : m_nextSceneId(SCENE_ID_UNDEFINED), m_rejectHome(false) {} /* Please see man pages for details */ virtual ~Scene() {}; /* Please see man pages for details */ virtual bool Initialize() = 0; /* Please see man pages for details */ virtual void Finalize() = 0; /* Please see man pages for details */ virtual void Update() = 0; /* Please see man pages for details */ virtual void Draw() = 0; /* Please see man pages for details */ void SetNextSceneId(s32 nextSceneId, bool willSave=false) {m_nextSceneId = nextSceneId; m_willSave=willSave;} /* Please see man pages for details */ s32 GetNextSceneId() const {return m_nextSceneId;} bool WillSaveSceneIdToStack() const { return m_willSave; } bool IsRejectHome() const {return m_rejectHome; } protected: // Next scene ID s32 m_nextSceneId; bool m_willSave; bool m_rejectHome; NN_PADDING2; }; } // namespace scene #endif // NN_COMMON_SCENE_SCENE_H_