1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     Scene.h
4 
5   Copyright (C)2009-2012 Nintendo Co., Ltd.  All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law.  They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Rev: 46365 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_COMMON_SCENE_SCENE_H_
17 #define NN_COMMON_SCENE_SCENE_H_
18 
19 #include <nn.h>
20 
21 // Pop from the scene stack
22 #define SCENE_ID_POP (-3)
23 // Undefined scene
24 #define SCENE_ID_UNDEFINED (-2)
25 // Empty scene
26 #define SCENE_ID_NULL (-1)
27 
28 namespace scene
29 {
30 
31 /* Please see man pages for details
32 
33 
34 
35 
36 */
37 class Scene
38 {
39 public:
40     /* Please see man pages for details
41 
42     */
Scene()43     Scene() :
44         m_nextSceneId(SCENE_ID_UNDEFINED),
45         m_rejectHome(false)
46     {}
47 
48     /* Please see man pages for details
49 
50     */
~Scene()51     virtual ~Scene() {};
52 
53     /* Please see man pages for details
54 
55 
56 
57     */
58     virtual bool Initialize() = 0;
59 
60     /* Please see man pages for details
61 
62     */
63     virtual void Finalize() = 0;
64 
65     /* Please see man pages for details
66 
67     */
68     virtual void Update() = 0;
69 
70     /* Please see man pages for details
71 
72     */
73     virtual void Draw() = 0;
74 
75     /* Please see man pages for details
76 
77 
78 
79 
80 
81 
82     */
83     void SetNextSceneId(s32 nextSceneId, bool willSave=false) {m_nextSceneId = nextSceneId; m_willSave=willSave;}
84 
85     /* Please see man pages for details
86 
87 
88 
89     */
GetNextSceneId()90     s32 GetNextSceneId() const {return m_nextSceneId;}
91 
WillSaveSceneIdToStack()92     bool WillSaveSceneIdToStack() const { return m_willSave; }
IsRejectHome()93     bool IsRejectHome() const {return m_rejectHome; }
94 
95 protected:
96     // Next scene ID
97     s32 m_nextSceneId;
98 
99     bool m_willSave;
100     bool m_rejectHome;
101     NN_PADDING2;
102 };
103 
104 } // namespace scene
105 
106 #endif // NN_COMMON_SCENE_SCENE_H_
107