1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     SceneManager.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_SCENEMANAGER_H_
17 #define NN_COMMON_SCENE_SCENEMANAGER_H_
18 
19 #include "SceneFactory.h"
20 #include "Scene.h"
21 #include "Stack.h"
22 
23 namespace scene
24 {
25 
26 /* Please see man pages for details
27 
28 
29 
30 */
31 class SceneManager
32 {
33 public:
34     /* Please see man pages for details
35 
36     */
37     SceneManager();
38 
39     /* Please see man pages for details
40 
41     */
42     virtual ~SceneManager();
43 
44     /* Please see man pages for details
45 
46 
47 
48 
49 
50 
51     */
52     bool Initialize(SceneFactory* pSceneFactory, s32 initialSceneId);
53 
54     /* Please see man pages for details
55 
56     */
57     void Finalize();
58 
59     /* Please see man pages for details
60 
61     */
62     void Update();
63 
64     /* Please see man pages for details
65 
66     */
67     void Draw();
68 
69     /* Please see man pages for details
70 
71 
72 
73     */
74     bool IsExpectedToFinish();
75 
76     /* Please see man pages for details
77 
78 
79 
80     */
81     bool IsRejectHome();
82 
83 protected:
84     // Scene factory
85     SceneFactory* m_pSceneFactory;
86     // Scene
87     Scene* m_pScene;
88     // Scene ID
89     s32 m_sceneId;
90     // Scene state
91     s32 m_sceneState;
92 
93     // Scene stack
94     Stack<s32, 16> m_sceneStack;
95 };
96 
97 } // namespace scene
98 
99 #endif // NN_COMMON_SCENE_SCENEMANAGER_H_
100