annotate LightClone/Source/World.cpp @ 53:8cefb65577cc

Clean up world states
author koryspansel
date Fri, 30 Sep 2011 15:23:16 -0700
parents efd2b1ca5b77
children dc1f4a668d50
rev   line source
7
31373c5bd1b9 Start on World refactor
koryspansel <koryspansel@bendbroadband.com>
parents:
diff changeset
1 /*
31373c5bd1b9 Start on World refactor
koryspansel <koryspansel@bendbroadband.com>
parents:
diff changeset
2 * World
31373c5bd1b9 Start on World refactor
koryspansel <koryspansel@bendbroadband.com>
parents:
diff changeset
3 */
31373c5bd1b9 Start on World refactor
koryspansel <koryspansel@bendbroadband.com>
parents:
diff changeset
4
31373c5bd1b9 Start on World refactor
koryspansel <koryspansel@bendbroadband.com>
parents:
diff changeset
5 #include "World.h"
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
6 #include "VertexTypes.h"
17
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
7 #include "GuiLabel.h"
20
4e9b5299ffdc Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents: 19
diff changeset
8 #include "GuiImage.h"
21
b4dc5d674e22 Added GUI event system and some support data structures
koryspansel
parents: 20
diff changeset
9 #include "GuiButton.h"
7
31373c5bd1b9 Start on World refactor
koryspansel <koryspansel@bendbroadband.com>
parents:
diff changeset
10
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
11 /*
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
12 * World
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
13 */
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
14 World::World()
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
15 {
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
16 nWorldState = WorldState_Main;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
17 nLogicState = LogicState_LevelLoad;
37
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
18 nSimulationState = SimulationState_Idle;
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
19 nCurrentLevel = 0;
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
20 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
21
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
22 /*
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
23 * Initialize
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
24 */
43
d27c06bd8ce1 Simplify input manager and remove event system
koryspansel
parents: 40
diff changeset
25 ErrorCode World::Initialize(ResourceManager* pResourceManager, InputManager* pInput)
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
26 {
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
27 //ASSERT(pResourceManager != NULL);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
28 //ASSERT(pInput != NULL);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
29
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
30 ErrorCode eCode = kEnvironment.Initialize(pResourceManager);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
31 if(eCode != Error_Success)
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
32 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
33 TRACE("Error: Failed to initialize environment\n");
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
34
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
35 Terminate();
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
36 return eCode;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
37 }
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
38
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
39 eCode = kBot.Initialize(pResourceManager);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
40 if(eCode != Error_Success)
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
41 {
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
42 TRACE("Error: Failed to initialize bot\n");
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
43
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
44 Terminate();
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
45 return eCode;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
46 }
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
47
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
48 eCode = kProgram.Initialize();
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
49 if(eCode == Error_Success)
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
50 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
51 TRACE("Error: Failed to initialize program\n");
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
52
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
53 Terminate();
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
54 return eCode;
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
55 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
56
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
57 eCode = InitializeInterface(pResourceManager);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
58 if(eCode != Error_Success)
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
59 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
60 TRACE("Error: Failed to initialize interface\n");
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
61
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
62 Terminate();
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
63 return eCode;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
64 }
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
65
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
66 pInputManager = pInput;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
67 nLogicState = LogicState_LevelLoad;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
68 nCurrentLevel = 0;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
69
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
70 return eCode;
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
71 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
72
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
73 /*
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
74 * Terminate
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
75 */
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
76 void World::Terminate()
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
77 {
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
78 kInterface.Terminate();
37
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
79 kProgram.Terminate();
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
80 kBot.Terminate();
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
81 kEnvironment.Terminate();
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
82 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
83
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
84 /*
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
85 * Activate
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
86 */
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
87 void World::Activate()
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
88 {
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
89 nWorldState = WorldState_Game;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
90 nLogicState = LogicState_LevelLoad;
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
91 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
92
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
93 /*
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
94 * Deactivate
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
95 */
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
96 void World::Deactivate()
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
97 {
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
98 nWorldState = WorldState_Exit;
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
99 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
100
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
101 /*
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
102 * IsActive
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
103 */
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
104 bool World::IsActive()
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
105 {
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
106 return nWorldState != WorldState_Exit;
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
107 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
108
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
109 /*
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
110 * Load
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
111 */
39
d0ce73ced12e Added base GuiDialog for event handling; Hookup level complete dialog
koryspansel <koryspansel@bendbroadband.com>
parents: 38
diff changeset
112 ErrorCode World::Load(const char* pName)
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
113 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
114 ErrorCode eCode = kLoader.Load(pName);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
115 if(eCode == Error_Success)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
116 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
117 const Size& kSize = kLoader.GetSize();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
118
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
119 eCode = kEnvironment.Setup(kSize.X, kSize.Y);
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
120 if(eCode == Error_Success)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
121 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
122 for(uint32 nY = 0; nY < kSize.Y; ++nY)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
123 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
124 for(uint32 nX = 0; nX < kSize.X; ++nX)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
125 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
126 kEnvironment.SetType(nX, nY, kLoader.GetTowerType(nX, nY));
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
127 kEnvironment.SetAltitude(nX, nY, kLoader.GetTowerHeight(nX, nY));
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
128 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
129 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
130
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
131 kBot.Setup(&kEnvironment);
37
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
132 kBot.SetPosition(kLoader.GetInitialPosition());
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
133 kBot.SetDirection(kLoader.GetInitialDirection());
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
134 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
135 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
136
39
d0ce73ced12e Added base GuiDialog for event handling; Hookup level complete dialog
koryspansel <koryspansel@bendbroadband.com>
parents: 38
diff changeset
137 return eCode;
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
138 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
139
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
140 /*
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
141 * Update
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
142 */
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
143 void World::Update(float fElapsed)
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
144 {
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
145 kInterface.Update(fElapsed);
39
d0ce73ced12e Added base GuiDialog for event handling; Hookup level complete dialog
koryspansel <koryspansel@bendbroadband.com>
parents: 38
diff changeset
146
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
147 if(nWorldState == WorldState_Main)
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
148 {
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
149 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
150 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
151
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
152 if(nWorldState == WorldState_Game)
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
153 {
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
154 UpdateInput(fElapsed);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
155 UpdateLogic(fElapsed);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
156 }
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
157 else
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
158
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
159 if(nWorldState == WorldState_Pause)
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
160 {
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
161 }
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
162 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
163
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
164 /*
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
165 * Render
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
166 */
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
167 void World::Render(RenderContext& kContext)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
168 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
169 const uint32 nColor = D3DCOLOR_XRGB(32, 32, 32);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
170
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
171 kContext.Begin(nColor);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
172
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
173 D3DVIEWPORT9 kOriginal;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
174 kContext.GetViewport(&kOriginal);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
175
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
176 D3DVIEWPORT9 kViewport;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
177 kViewport.X = 0;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
178 kViewport.Y = 0;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
179 kViewport.Width = ScreenSizeX - 280;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
180 kViewport.Height = ScreenSizeY;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
181 kViewport.MinZ = kOriginal.MinZ;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
182 kViewport.MaxZ = kOriginal.MaxZ;
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
183
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
184 kContext.SetViewport(kViewport);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
185
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
186 kCameraController.SetMode(CameraMode_3D);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
187 kEnvironment.Render(kContext, kCameraController);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
188 kBot.Render(kContext, kCameraController);
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
189
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
190 kContext.SetViewport(kOriginal);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
191
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
192 kCameraController.SetMode(CameraMode_2D);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
193 kInterface.Render(kContext, kCameraController);
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
194
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
195 kContext.End();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
196 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
197
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
198 /*
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
199 * InitializeInterface
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
200 */
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
201 ErrorCode World::InitializeInterface(ResourceManager* pResourceManager)
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
202 {
20
4e9b5299ffdc Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents: 19
diff changeset
203 ErrorCode eCode = kInterface.Initialize(pResourceManager, pInputManager);
4e9b5299ffdc Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents: 19
diff changeset
204 if(eCode == Error_Success)
4e9b5299ffdc Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents: 19
diff changeset
205 {
28
13e53b74aed7 More drag and drop work
koryspansel
parents: 27
diff changeset
206 pBackground = new GuiImage();
22
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
207 pBackground->Initialize(pResourceManager);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
208 pBackground->SetTexture("Data\\Textures\\Background03.tga", true);
23
a785b0aaf004 More work on the Gui system
koryspansel
parents: 22
diff changeset
209 pBackground->SetPosition(ScreenSizeX - pBackground->GetWidth(), 0.0f);
51
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
210 pBackground->SetDepth(512.0f);
22
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
211
32
c227be6a15fe Fixed drag and drop handling; Just needs to be hooked up now
koryspansel
parents: 31
diff changeset
212 pToolbar = new CodePanel(4, 2);
28
13e53b74aed7 More drag and drop work
koryspansel
parents: 27
diff changeset
213 pToolbar->Initialize(pResourceManager);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
214 pToolbar->SetTexture("Data\\Textures\\PanelA.png");
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
215 pToolbar->SetPosition(16, 16.0f);
38
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
216 pToolbar->SetAction(0, Action_Forward);
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
217 pToolbar->SetAction(1, Action_RotateCW);
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
218 pToolbar->SetAction(2, Action_RotateCCW);
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
219 pToolbar->SetAction(3, Action_Jump);
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
220 pToolbar->SetAction(4, Action_Light);
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
221 pToolbar->SetAction(5, Action_FunctionA);
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
222 pToolbar->SetAction(6, Action_FunctionB);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
223 pToolbar->SetPermanent(true);
51
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
224 pToolbar->SetDepth(256.0f);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
225
34
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
226 GuiLabel* pMainLabel = new GuiLabel();
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
227 pMainLabel->Initialize(pResourceManager);
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
228 pMainLabel->SetFont("Courier New", 16);
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
229 pMainLabel->SetText("Main:");
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
230 pMainLabel->SetColor(D3DCOLOR_XRGB(0, 0, 0));
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
231 pMainLabel->SetPosition(26.0f, 149.0f);
51
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
232 pMainLabel->SetDepth(256.0f);
34
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
233
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
234 pCode[0] = new CodePanel(4, 3);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
235 pCode[0]->Initialize(pResourceManager);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
236 pCode[0]->SetTexture("Data\\Textures\\PanelB.png");
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
237 pCode[0]->SetPosition(16.0f, 160.0f);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
238 pCode[0]->Subscribe(CodePanel::EventAction, &World::OnAction, this);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
239 pCode[0]->SetDepth(256.0f);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
240
34
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
241 GuiLabel* pFunctionALabel = new GuiLabel();
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
242 pFunctionALabel->Initialize(pResourceManager);
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
243 pFunctionALabel->SetFont("Courier New", 16);
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
244 pFunctionALabel->SetText("Function 1:");
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
245 pFunctionALabel->SetColor(D3DCOLOR_XRGB(0, 0, 0));
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
246 pFunctionALabel->SetPosition(26.0f, 349.0f);
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
247
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
248 pCode[1] = new CodePanel(4, 2);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
249 pCode[1]->Initialize(pResourceManager);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
250 pCode[1]->SetTexture("Data\\Textures\\PanelA.png");
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
251 pCode[1]->SetPosition(16.0f, 360.0f);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
252 pCode[1]->Subscribe(CodePanel::EventAction, &World::OnAction, this);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
253
34
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
254 GuiLabel* pFunctionBLabel = new GuiLabel();
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
255 pFunctionBLabel->Initialize(pResourceManager);
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
256 pFunctionBLabel->SetFont("Courier New", 16);
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
257 pFunctionBLabel->SetText("Function 2:");
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
258 pFunctionBLabel->SetColor(D3DCOLOR_XRGB(0, 0, 0));
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
259 pFunctionBLabel->SetPosition(26.0f, 493.0f);
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
260
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
261 pCode[2] = new CodePanel(4, 2);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
262 pCode[2]->Initialize(pResourceManager);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
263 pCode[2]->SetTexture("Data\\Textures\\PanelA.png");
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
264 pCode[2]->SetPosition(16.0f, 504.0f);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
265 pCode[2]->Subscribe(CodePanel::EventAction, &World::OnAction, this);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
266
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
267 const float fButtonPadding = 32.0f;
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
268 const float fButtonSpacing = 8.0f;
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
269 const float fButtonSize = 48.0f;
28
13e53b74aed7 More drag and drop work
koryspansel
parents: 27
diff changeset
270
13e53b74aed7 More drag and drop work
koryspansel
parents: 27
diff changeset
271 pButtonPlay = new GuiButton();
22
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
272 pButtonPlay->Initialize(pResourceManager);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
273 pButtonPlay->SetTexture(GuiButtonState_Normal, "Data\\Textures\\Button1N.png", true);
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
274 pButtonPlay->SetTexture(GuiButtonState_Hover, "Data\\Textures\\Button1H.png", true);
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
275 pButtonPlay->SetTexture(GuiButtonState_Down, "Data\\Textures\\Button1D.png", true);
34
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
276 pButtonPlay->SetFont("Courier New", 16, FW_BOLD);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
277 pButtonPlay->SetText("Play");
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
278 pButtonPlay->SetColor(D3DCOLOR_XRGB(0, 0, 0));
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
279 pButtonPlay->SetPosition(fButtonPadding + 0.0f * (fButtonSize + fButtonSpacing), 652.0f);
22
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
280 pButtonPlay->Subscribe(GuiButton::EventClick, &World::OnPlay, this);
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
281
28
13e53b74aed7 More drag and drop work
koryspansel
parents: 27
diff changeset
282 pButtonStop = new GuiButton();
22
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
283 pButtonStop->Initialize(pResourceManager);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
284 pButtonStop->SetTexture(GuiButtonState_Normal, "Data\\Textures\\Button1N.png", true);
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
285 pButtonStop->SetTexture(GuiButtonState_Hover, "Data\\Textures\\Button1H.png", true);
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
286 pButtonStop->SetTexture(GuiButtonState_Down, "Data\\Textures\\Button1D.png", true);
34
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
287 pButtonStop->SetFont("Courier New", 16, FW_BOLD);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
288 pButtonStop->SetText("Stop");
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
289 pButtonStop->SetColor(D3DCOLOR_XRGB(0, 0, 0));
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
290 pButtonStop->SetPosition(fButtonPadding + 1.0f * (fButtonSize + fButtonSpacing), 652.0f);
22
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
291 pButtonStop->Subscribe(GuiButton::EventClick, &World::OnStop, this);
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
292
28
13e53b74aed7 More drag and drop work
koryspansel
parents: 27
diff changeset
293 pButtonReset = new GuiButton();
22
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
294 pButtonReset->Initialize(pResourceManager);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
295 pButtonReset->SetTexture(GuiButtonState_Normal, "Data\\Textures\\Button1N.png", true);
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
296 pButtonReset->SetTexture(GuiButtonState_Hover, "Data\\Textures\\Button1H.png", true);
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
297 pButtonReset->SetTexture(GuiButtonState_Down, "Data\\Textures\\Button1D.png", true);
34
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
298 pButtonReset->SetFont("Courier New", 16, FW_BOLD);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
299 pButtonReset->SetText("Reset");
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
300 pButtonReset->SetColor(D3DCOLOR_XRGB(0, 0, 0));
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
301 pButtonReset->SetPosition(fButtonPadding + 2.0f * (fButtonSize + fButtonSpacing), 652.0f);
22
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
302 pButtonReset->Subscribe(GuiButton::EventClick, &World::OnReset, this);
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
303
28
13e53b74aed7 More drag and drop work
koryspansel
parents: 27
diff changeset
304 pButtonExit = new GuiButton();
22
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
305 pButtonExit->Initialize(pResourceManager);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
306 pButtonExit->SetTexture(GuiButtonState_Normal, "Data\\Textures\\Button1N.png", true);
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
307 pButtonExit->SetTexture(GuiButtonState_Hover, "Data\\Textures\\Button1H.png", true);
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
308 pButtonExit->SetTexture(GuiButtonState_Down, "Data\\Textures\\Button1D.png", true);
34
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
309 pButtonExit->SetFont("Courier New", 16, FW_BOLD);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
310 pButtonExit->SetText("Exit");
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
311 pButtonExit->SetColor(D3DCOLOR_XRGB(0, 0, 0));
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
312 pButtonExit->SetPosition(fButtonPadding + 3.0f * (fButtonSize + fButtonSpacing), 652.0f);
22
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
313 pButtonExit->Subscribe(GuiButton::EventClick, &World::OnExit, this);
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
314
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
315 pBackground->Add(pToolbar);
34
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
316 pBackground->Add(pMainLabel);
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
317 pBackground->Add(pCode[0]);
34
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
318 pBackground->Add(pFunctionALabel);
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
319 pBackground->Add(pCode[1]);
34
7f5feeb3f604 Implemented reset functionality
koryspansel <koryspansel@bendbroadband.com>
parents: 33
diff changeset
320 pBackground->Add(pFunctionBLabel);
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
321 pBackground->Add(pCode[2]);
33
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
322 pBackground->Add(pButtonPlay);
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
323 pBackground->Add(pButtonStop);
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
324 pBackground->Add(pButtonReset);
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
325 pBackground->Add(pButtonExit);
06b151afc8d0 Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents: 32
diff changeset
326
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
327 pMessageDialog = new MessageDialog();
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
328 pMessageDialog->Initialize(pResourceManager);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
329 pMessageDialog->Subscribe(GuiDialog::EventResult, &World::OnResult, this);
40
00d17d8f407d Hookup game over dialog; Remove Code class
koryspansel
parents: 39
diff changeset
330
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
331 const D3DXVECTOR2& kMessageSize = pMessageDialog->GetDimensions();
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
332 pMessageDialog->SetPosition(0.5f * ((ScreenSizeX - pBackground->GetWidth()) - kMessageSize.x), 0.5f * (ScreenSizeY - kMessageSize.y));
23
a785b0aaf004 More work on the Gui system
koryspansel
parents: 22
diff changeset
333
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
334 pConfirmDialog = new ChoiceDialog();
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
335 pConfirmDialog->Initialize(pResourceManager);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
336 pConfirmDialog->Subscribe(GuiDialog::EventResult, &World::OnConfirm, this);
27
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 26
diff changeset
337
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
338 const D3DXVECTOR2& kConfigSize = pConfirmDialog->GetDimensions();
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
339 pConfirmDialog->SetPosition(0.5f * ((ScreenSizeX - pBackground->GetWidth()) - kConfigSize.x), 0.5f * (ScreenSizeY - kConfigSize.y));
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
340
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
341 //pHud = new GuiElement();
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
342 //pHud->Add(pBackground);
23
a785b0aaf004 More work on the Gui system
koryspansel
parents: 22
diff changeset
343
22
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
344 kInterface.Add(pBackground);
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
345 kInterface.Add(pMessageDialog);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
346 kInterface.Add(pConfirmDialog);
20
4e9b5299ffdc Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents: 19
diff changeset
347 }
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
348
20
4e9b5299ffdc Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents: 19
diff changeset
349 return eCode;
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
350 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
351
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
352 /*
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
353 * UpdateInput
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
354 */
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
355 void World::UpdateInput(float fElapsed)
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
356 {
43
d27c06bd8ce1 Simplify input manager and remove event system
koryspansel
parents: 40
diff changeset
357 pInputManager->Update(fElapsed);
d27c06bd8ce1 Simplify input manager and remove event system
koryspansel
parents: 40
diff changeset
358
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
359 #if defined(_DEBUG)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
360 if(pInputManager->IsKeyDown(DIK_LEFT))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
361 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
362 kCameraController.Yaw(0.01f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
363 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
364 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
365
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
366 if(pInputManager->IsKeyDown(DIK_RIGHT))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
367 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
368 kCameraController.Yaw(-0.01f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
369 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
370
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
371 if(pInputManager->IsKeyDown(DIK_UP))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
372 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
373 kCameraController.Pitch(0.01f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
374 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
375 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
376
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
377 if(pInputManager->IsKeyDown(DIK_DOWN))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
378 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
379 kCameraController.Pitch(-0.01f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
380 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
381
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
382 if(pInputManager->IsKeyDown(DIK_NEXT))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
383 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
384 kCameraController.Move(0.1f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
385 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
386 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
387
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
388 if(pInputManager->IsKeyDown(DIK_PRIOR))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
389 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
390 kCameraController.Move(-0.1f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
391 }
51
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
392
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
393 static bool bControl = false;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
394 static uint32 nBuffer[4] = {0};
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
395 static uint32 nCount = 0;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
396
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
397 if(bControl)
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
398 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
399 if(pInputManager->IsKeyDown(DIK_0) && !pInputManager->WasKeyDown(DIK_0))
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
400 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
401 nBuffer[nCount++] = 0;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
402 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
403 else
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
404
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
405 if(pInputManager->IsKeyDown(DIK_1) && !pInputManager->WasKeyDown(DIK_1))
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
406 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
407 nBuffer[nCount++] = 1;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
408 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
409 else
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
410
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
411 if(pInputManager->IsKeyDown(DIK_2) && !pInputManager->WasKeyDown(DIK_2))
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
412 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
413 nBuffer[nCount++] = 2;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
414 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
415 else
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
416
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
417 if(pInputManager->IsKeyDown(DIK_3) && !pInputManager->WasKeyDown(DIK_3))
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
418 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
419 nBuffer[nCount++] = 3;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
420 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
421 else
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
422
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
423 if(pInputManager->IsKeyDown(DIK_4) && !pInputManager->WasKeyDown(DIK_4))
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
424 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
425 nBuffer[nCount++] = 4;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
426 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
427 else
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
428
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
429 if(pInputManager->IsKeyDown(DIK_5) && !pInputManager->WasKeyDown(DIK_5))
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
430 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
431 nBuffer[nCount++] = 5;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
432 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
433 else
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
434
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
435 if(pInputManager->IsKeyDown(DIK_6) && !pInputManager->WasKeyDown(DIK_6))
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
436 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
437 nBuffer[nCount++] = 6;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
438 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
439 else
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
440
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
441 if(pInputManager->IsKeyDown(DIK_7) && !pInputManager->WasKeyDown(DIK_7))
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
442 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
443 nBuffer[nCount++] = 7;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
444 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
445 else
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
446
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
447 if(pInputManager->IsKeyDown(DIK_8) && !pInputManager->WasKeyDown(DIK_8))
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
448 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
449 nBuffer[nCount++] = 8;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
450 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
451 else
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
452
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
453 if(pInputManager->IsKeyDown(DIK_9) && !pInputManager->WasKeyDown(DIK_9))
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
454 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
455 nBuffer[nCount++] = 9;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
456 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
457
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
458 if(!pInputManager->IsKeyDown(DIK_LCONTROL))
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
459 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
460 if(nCount > 0)
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
461 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
462 nCurrentLevel = 0;
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
463 nLogicState = LogicState_LevelLoad;
51
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
464
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
465 for(uint32 i = 0; i < nCount; ++i)
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
466 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
467 nCurrentLevel += (uint32)(nBuffer[i] * powf(10.0f, (float)i));
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
468 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
469 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
470
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
471 bControl = false;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
472 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
473 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
474 else
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
475 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
476 if(pInputManager->IsKeyDown(DIK_LCONTROL))
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
477 {
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
478 bControl = true;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
479 nCount = 0;
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
480 }
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
481 }
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
482 #endif
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
483 }
51
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 49
diff changeset
484
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
485 /*
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
486 * UpdateLogic
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
487 */
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
488 void World::UpdateLogic(float fElapsed)
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
489 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
490 if(nLogicState == LogicState_LevelLoad)
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
491 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
492 char kBuffer[256];
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
493 sprintf(kBuffer, "Data\\Maps\\Map%02d.map", nCurrentLevel++);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
494
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
495 ErrorCode eCode = Load(kBuffer);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
496 if(eCode == Error_Success)
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
497 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
498 kProgram.Clear();
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
499
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
500 for(uint32 i = 0; i < MaximumCodePanels; ++i)
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
501 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
502 pCode[i]->Clear();
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
503 }
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
504
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
505 nLogicState = LogicState_GameActive;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
506 }
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
507 else
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
508 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
509 pMessageDialog->SetButton(0, "Ok", 0);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
510 pMessageDialog->SetMessage("Congratulations!\nYou have completed the game");
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
511 pMessageDialog->Show();
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
512
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
513 nLogicState = LogicState_GameOver;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
514 }
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
515
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
516 nSimulationState = SimulationState_Idle;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
517 }
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
518 else
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
519
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
520 if(nLogicState == LogicState_GameActive)
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
521 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
522 if(nSimulationState == SimulationState_Active)
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
523 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
524 if(kBot.Update(fElapsed))
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
525 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
526 if(kEnvironment.RequirementsMet())
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
527 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
528 pMessageDialog->SetButton(0, "Ok", 0);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
529 pMessageDialog->SetMessage("Congratulations!\nYou have completed level %d", nCurrentLevel);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
530 pMessageDialog->Show();
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
531
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
532 nLogicState = LogicState_LevelComplete;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
533 }
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
534 }
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
535 }
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
536 }
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
537 }
21
b4dc5d674e22 Added GUI event system and some support data structures
koryspansel
parents: 20
diff changeset
538
b4dc5d674e22 Added GUI event system and some support data structures
koryspansel
parents: 20
diff changeset
539 /*
38
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
540 * OnAction
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
541 */
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
542 void World::OnAction(GuiEventArguments& kArguments)
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
543 {
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
544 ActionArguments& kActionArguments = (ActionArguments&)kArguments;
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
545
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
546 for(uint32 i = 0; i < MaximumCodePanels; ++i)
38
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
547 {
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
548 if(kArguments.pSource == pCode[i])
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
549 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
550 kProgram.SetAction(i, kActionArguments.nSlot, pCode[i]->GetAction(kActionArguments.nSlot));
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
551 }
38
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
552 }
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
553 }
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
554
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
555 /*
22
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
556 * OnPlay
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
557 */
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
558 void World::OnPlay(GuiEventArguments& kArguments)
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
559 {
23
a785b0aaf004 More work on the Gui system
koryspansel
parents: 22
diff changeset
560 if(nSimulationState == SimulationState_Idle)
a785b0aaf004 More work on the Gui system
koryspansel
parents: 22
diff changeset
561 {
37
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
562 kEnvironment.Reset();
35
koryspansel <koryspansel@bendbroadband.com>
parents: 34
diff changeset
563
37
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
564 kBot.Reset();
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
565 kBot.SetPosition(kLoader.GetInitialPosition());
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
566 kBot.SetDirection(kLoader.GetInitialDirection());
38
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
567 kBot.Upload(kProgram);
23
a785b0aaf004 More work on the Gui system
koryspansel
parents: 22
diff changeset
568
a785b0aaf004 More work on the Gui system
koryspansel
parents: 22
diff changeset
569 nSimulationState = SimulationState_Active;
a785b0aaf004 More work on the Gui system
koryspansel
parents: 22
diff changeset
570 }
22
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
571 }
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
572
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
573 /*
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
574 * OnStop
21
b4dc5d674e22 Added GUI event system and some support data structures
koryspansel
parents: 20
diff changeset
575 */
22
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
576 void World::OnStop(GuiEventArguments& kArguments)
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
577 {
23
a785b0aaf004 More work on the Gui system
koryspansel
parents: 22
diff changeset
578 if(nSimulationState == SimulationState_Active)
a785b0aaf004 More work on the Gui system
koryspansel
parents: 22
diff changeset
579 {
37
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
580 kEnvironment.Reset();
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
581
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
582 kBot.Reset();
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
583 kBot.SetPosition(kLoader.GetInitialPosition());
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
584 kBot.SetDirection(kLoader.GetInitialDirection());
23
a785b0aaf004 More work on the Gui system
koryspansel
parents: 22
diff changeset
585
a785b0aaf004 More work on the Gui system
koryspansel
parents: 22
diff changeset
586 nSimulationState = SimulationState_Idle;
a785b0aaf004 More work on the Gui system
koryspansel
parents: 22
diff changeset
587 }
22
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
588 }
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
589
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
590 /*
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
591 * OnReset
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
592 */
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
593 void World::OnReset(GuiEventArguments& kArguments)
21
b4dc5d674e22 Added GUI event system and some support data structures
koryspansel
parents: 20
diff changeset
594 {
37
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
595 kProgram.Clear();
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
596
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
597 for(uint32 i = 0; i < MaximumCodePanels; ++i)
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
598 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
599 pCode[i]->Clear();
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
600 }
21
b4dc5d674e22 Added GUI event system and some support data structures
koryspansel
parents: 20
diff changeset
601 }
22
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
602
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
603 /*
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
604 * OnExit
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
605 */
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
606 void World::OnExit(GuiEventArguments& kArguments)
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
607 {
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
608 pConfirmDialog->SetMessage("Are you sure you want to exit?");
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
609 pConfirmDialog->SetButton(0, "Yes", DialogResult_Yes);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
610 pConfirmDialog->SetButton(1, "No", DialogResult_No);
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
611 pConfirmDialog->Show();
44
6790cf9e8bd8 Game works from start to finish
koryspansel <koryspansel@bendbroadband.com>
parents: 43
diff changeset
612
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
613 nWorldState = WorldState_Confirm;
22
502ed0a0059a Hooking up Gui elements
koryspansel <koryspansel@bendbroadband.com>
parents: 21
diff changeset
614 }
39
d0ce73ced12e Added base GuiDialog for event handling; Hookup level complete dialog
koryspansel <koryspansel@bendbroadband.com>
parents: 38
diff changeset
615
d0ce73ced12e Added base GuiDialog for event handling; Hookup level complete dialog
koryspansel <koryspansel@bendbroadband.com>
parents: 38
diff changeset
616 /*
d0ce73ced12e Added base GuiDialog for event handling; Hookup level complete dialog
koryspansel <koryspansel@bendbroadband.com>
parents: 38
diff changeset
617 * OnResult
d0ce73ced12e Added base GuiDialog for event handling; Hookup level complete dialog
koryspansel <koryspansel@bendbroadband.com>
parents: 38
diff changeset
618 */
d0ce73ced12e Added base GuiDialog for event handling; Hookup level complete dialog
koryspansel <koryspansel@bendbroadband.com>
parents: 38
diff changeset
619 void World::OnResult(GuiEventArguments& kArguments)
d0ce73ced12e Added base GuiDialog for event handling; Hookup level complete dialog
koryspansel <koryspansel@bendbroadband.com>
parents: 38
diff changeset
620 {
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
621 if(nWorldState == WorldState_Game)
39
d0ce73ced12e Added base GuiDialog for event handling; Hookup level complete dialog
koryspansel <koryspansel@bendbroadband.com>
parents: 38
diff changeset
622 {
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
623 if(nLogicState == LogicState_LevelComplete)
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
624 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
625 nLogicState = LogicState_LevelLoad;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
626 }
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
627 else
39
d0ce73ced12e Added base GuiDialog for event handling; Hookup level complete dialog
koryspansel <koryspansel@bendbroadband.com>
parents: 38
diff changeset
628
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
629 if(nLogicState == LogicState_GameOver)
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
630 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
631 nCurrentLevel = 0;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
632 nLogicState = LogicState_LevelLoad;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
633
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
634 //TODO: Return to main menu
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
635 nWorldState = WorldState_Main;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
636 }
40
00d17d8f407d Hookup game over dialog; Remove Code class
koryspansel
parents: 39
diff changeset
637 }
00d17d8f407d Hookup game over dialog; Remove Code class
koryspansel
parents: 39
diff changeset
638 }
00d17d8f407d Hookup game over dialog; Remove Code class
koryspansel
parents: 39
diff changeset
639
00d17d8f407d Hookup game over dialog; Remove Code class
koryspansel
parents: 39
diff changeset
640 /*
00d17d8f407d Hookup game over dialog; Remove Code class
koryspansel
parents: 39
diff changeset
641 * OnConfirm
00d17d8f407d Hookup game over dialog; Remove Code class
koryspansel
parents: 39
diff changeset
642 */
00d17d8f407d Hookup game over dialog; Remove Code class
koryspansel
parents: 39
diff changeset
643 void World::OnConfirm(GuiEventArguments& kArguments)
00d17d8f407d Hookup game over dialog; Remove Code class
koryspansel
parents: 39
diff changeset
644 {
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
645 if(nWorldState == WorldState_Confirm)
40
00d17d8f407d Hookup game over dialog; Remove Code class
koryspansel
parents: 39
diff changeset
646 {
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
647 GuiResultArguments& kResultArguments = (GuiResultArguments&)kArguments;
39
d0ce73ced12e Added base GuiDialog for event handling; Hookup level complete dialog
koryspansel <koryspansel@bendbroadband.com>
parents: 38
diff changeset
648
53
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
649 if(kResultArguments.nResult == DialogResult_Yes)
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
650 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
651 Deactivate();
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
652 }
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
653 else
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
654
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
655 if(kResultArguments.nResult == DialogResult_No)
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
656 {
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
657 nWorldState = WorldState_Game;
8cefb65577cc Clean up world states
koryspansel
parents: 51
diff changeset
658 }
39
d0ce73ced12e Added base GuiDialog for event handling; Hookup level complete dialog
koryspansel <koryspansel@bendbroadband.com>
parents: 38
diff changeset
659 }
d0ce73ced12e Added base GuiDialog for event handling; Hookup level complete dialog
koryspansel <koryspansel@bendbroadband.com>
parents: 38
diff changeset
660 }