Mercurial > LightClone
annotate LightClone/Source/ScreenManager.cpp @ 71:bc8afcf7e1ec
Refactor world into game screen
author | koryspansel <koryspansel@bendbroadband.com> |
---|---|
date | Tue, 11 Oct 2011 13:20:43 -0700 |
parents | ffaeccdc105e |
children | 0574e2cf8bac |
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 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
81 for(int32 i = kStack.Size() - 1; i >= 0 && !bDirty; --i) |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
82 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
83 kStack[i]->Update(fElapsed); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
84 } |
68
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
85 } |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
86 |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
87 /* |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
88 * Render |
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
89 */ |
70 | 90 void ScreenManager::Render(RenderContext& kContext) |
68
c4ece16cf995
Finish cleaning up memory leaks; Starting on screen manager
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
91 { |
71
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
92 const int32 nSize = kStack.Size(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
93 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
94 for(int32 i = 0; i < nSize; ++i) |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
95 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
96 kStack[i]->Render(kContext); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
97 } |
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 |
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 * Set |
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 void ScreenManager::Set(const char* pName) |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
104 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
105 while(kStack.Size() > 1) |
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 Screen* pScreen = kStack.Pop(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
108 ASSERT(pScreen != NULL); |
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 pScreen->OnExit(); |
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 Screen* pTop = kStack.Peek(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
113 ASSERT(pTop != NULL); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
114 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
115 pTop->OnResume(); |
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 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
118 if(kStack.Size() > 0) |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
119 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
120 ASSERT(kStack.Size() == 1); |
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 Screen* pScreen = kStack.Pop(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
123 ASSERT(pScreen != NULL); |
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 pScreen->OnExit(); |
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 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
128 Screen** pInstance = kScreens.Find(pName); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
129 if(pInstance) |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
130 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
131 ASSERT(*pInstance != NULL); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
132 (*pInstance)->OnEnter(); |
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 kStack.Push(*pInstance); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
135 } |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
136 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
137 bDirty = true; |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
138 } |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
139 |
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 * Push |
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 void ScreenManager::Push(const char* pName) |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
144 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
145 Screen** pInstance = kScreens.Find(pName); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
146 ASSERT(pInstance != NULL); |
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 if(kStack.Size() > 0) |
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 Screen* pTop = kStack.Peek(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
151 ASSERT(pTop != NULL); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
152 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
153 pTop->OnPause(); |
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 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
156 ASSERT(*pInstance != NULL); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
157 (*pInstance)->OnEnter(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
158 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
159 kStack.Push(*pInstance); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
160 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
161 bDirty = true; |
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 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
164 /* |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
165 * Pop |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
166 */ |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
167 void ScreenManager::Pop() |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
168 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
169 ASSERT(kStack.Size() > 0); |
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 Screen* pScreen = kStack.Pop(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
172 ASSERT(pScreen != NULL); |
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 pScreen->OnExit(); |
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 if(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* pTop = kStack.Peek(); |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
179 ASSERT(pTop != 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 pTop->OnResume(); |
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 |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
184 bDirty = true; |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
185 } |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
186 |
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 * IsActive |
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 bool ScreenManager::IsActive() const |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
191 { |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
192 return kStack.Size() > 0; |
bc8afcf7e1ec
Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents:
70
diff
changeset
|
193 } |