Mercurial > LightClone
annotate LightClone/Source/ScreenManager.cpp @ 73:0574e2cf8bac
Additional screen types
author | koryspansel |
---|---|
date | Tue, 11 Oct 2011 17:44:10 -0700 |
parents | bc8afcf7e1ec |
children |
rev | line source |
---|---|
68
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
1 /* |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
2 * ScreenManager |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
3 */ |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
4 |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
5 #include "ScreenManager.h" |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
6 |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
7 /* |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
8 * ScreenManager |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
9 */ |
71
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
10 ScreenManager::ScreenManager() : bDirty(false) |
68
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
11 { |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
12 } |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
13 |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
14 /* |
70 | 15 * Register |
16 */ | |
17 ErrorCode ScreenManager::Register(const char* pName, Screen* pInstance) | |
18 { | |
19 ErrorCode eCode = Error_Fail; | |
20 | |
21 if(pInstance) | |
22 { | |
71
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
23 Screen** pScreen = kScreens.Find(pName); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
24 |
70 | 25 if(!pScreen) |
71
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
26 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
27 pScreen = kScreens.Add(pName); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
28 } |
70 | 29 |
30 if(pScreen) | |
31 { | |
32 (*pScreen) = pInstance; | |
71
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
33 (*pScreen)->pScreenManager = this; |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
34 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
35 eCode = Error_Success; |
70 | 36 } |
37 } | |
38 | |
39 return eCode; | |
40 } | |
41 | |
42 /* | |
68
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
43 * Initialize |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
44 */ |
70 | 45 ErrorCode ScreenManager::Initialize(ServiceProvider* pServiceProvider) |
68
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
46 { |
71
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
47 ErrorCode eCode = Error_Success; |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
48 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
49 ScreenMap::Iterator kScreen = kScreens.Begin(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
50 ScreenMap::Iterator kScreenEnd = kScreens.End(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
51 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
52 for(; kScreen != kScreenEnd && eCode == Error_Success; ++kScreen) |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
53 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
54 eCode = (*kScreen)->Initialize(pServiceProvider); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
55 } |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
56 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
57 return eCode; |
68
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
58 } |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
59 |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
60 /* |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
61 * Terminate |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
62 */ |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
63 void ScreenManager::Terminate() |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
64 { |
71
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
65 ScreenMap::Iterator kScreen = kScreens.Begin(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
66 ScreenMap::Iterator kScreenEnd = kScreens.End(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
67 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
68 for(; kScreen != kScreenEnd; ++kScreen) |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
69 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
70 (*kScreen)->Terminate(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
71 } |
68
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
72 } |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
73 |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
74 /* |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
75 * Update |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
76 */ |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
77 void ScreenManager::Update(float fElapsed) |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
78 { |
71
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
79 bDirty = false; |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
80 |
73 | 81 //for(int32 i = kStack.Size() - 1; i >= 0 && !bDirty; --i) |
82 //{ | |
83 // kStack[i]->Update(fElapsed); | |
84 //} | |
85 if(kStack.Size() > 0) | |
71
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
86 { |
73 | 87 Screen* pTop = kStack.Peek(); |
88 ASSERT(pTop != NULL); | |
89 | |
90 pTop->Update(fElapsed); | |
71
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
91 } |
68
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
92 } |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
93 |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
94 /* |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
95 * Render |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
96 */ |
70 | 97 void ScreenManager::Render(RenderContext& kContext) |
68
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
98 { |
71
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
99 const int32 nSize = kStack.Size(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
100 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
101 for(int32 i = 0; i < nSize; ++i) |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
102 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
103 kStack[i]->Render(kContext); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
104 } |
68
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
105 } |
71
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
106 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
107 /* |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
108 * Set |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
109 */ |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
110 void ScreenManager::Set(const char* pName) |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
111 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
112 while(kStack.Size() > 1) |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
113 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
114 Screen* pScreen = kStack.Pop(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
115 ASSERT(pScreen != NULL); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
116 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
117 pScreen->OnExit(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
118 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
119 Screen* pTop = kStack.Peek(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
120 ASSERT(pTop != NULL); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
121 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
122 pTop->OnResume(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
123 } |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
124 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
125 if(kStack.Size() > 0) |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
126 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
127 ASSERT(kStack.Size() == 1); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
128 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
129 Screen* pScreen = kStack.Pop(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
130 ASSERT(pScreen != NULL); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
131 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
132 pScreen->OnExit(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
133 } |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
134 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
135 Screen** pInstance = kScreens.Find(pName); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
136 if(pInstance) |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
137 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
138 ASSERT(*pInstance != NULL); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
139 (*pInstance)->OnEnter(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
140 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
141 kStack.Push(*pInstance); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
142 } |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
143 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
144 bDirty = true; |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
145 } |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
146 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
147 /* |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
148 * Push |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
149 */ |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
150 void ScreenManager::Push(const char* pName) |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
151 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
152 Screen** pInstance = kScreens.Find(pName); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
153 ASSERT(pInstance != NULL); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
154 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
155 if(kStack.Size() > 0) |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
156 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
157 Screen* pTop = kStack.Peek(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
158 ASSERT(pTop != NULL); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
159 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
160 pTop->OnPause(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
161 } |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
162 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
163 ASSERT(*pInstance != NULL); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
164 (*pInstance)->OnEnter(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
165 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
166 kStack.Push(*pInstance); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
167 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
168 bDirty = true; |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
169 } |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
170 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
171 /* |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
172 * Pop |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
173 */ |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
174 void ScreenManager::Pop() |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
175 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
176 ASSERT(kStack.Size() > 0); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
177 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
178 Screen* pScreen = kStack.Pop(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
179 ASSERT(pScreen != NULL); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
180 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
181 pScreen->OnExit(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
182 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
183 if(kStack.Size() > 0) |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
184 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
185 Screen* pTop = kStack.Peek(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
186 ASSERT(pTop != NULL); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
187 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
188 pTop->OnResume(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
189 } |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
190 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
191 bDirty = true; |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
192 } |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
193 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
194 /* |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
195 * IsActive |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
196 */ |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
197 bool ScreenManager::IsActive() const |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
198 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
199 return kStack.Size() > 0; |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
200 } |