annotate LightClone/Source/GameScreen.cpp @ 74:40c0b5305de8

Work on removing ScreenManager
author koryspansel
date Tue, 18 Oct 2011 11:56:49 -0700
parents 0574e2cf8bac
children
rev   line source
70
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
1 /*
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
2 * GameScreen
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
3 */
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
4
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
5 #include "GameScreen.h"
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
6
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
7 /*
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
8 * Initialize
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
9 */
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
10 ErrorCode GameScreen::Initialize(ServiceProvider* pServiceProvider)
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
11 {
71
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
12 ErrorCode eCode = kEnvironment.Initialize(pServiceProvider);
70
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
13 if(eCode != Error_Success)
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
14 {
71
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
15 TRACE("Error: Failed to initialize environment\n");
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
16
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
17 Terminate();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
18 return eCode;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
19 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
20
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
21 eCode = kBot.Initialize(pServiceProvider);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
22 if(eCode != Error_Success)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
23 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
24 TRACE("Error: Failed to initialize bot\n");
70
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
25
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
26 Terminate();
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
27 return eCode;
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
28 }
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
29
71
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
30 eCode = kProgram.Initialize();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
31 if(eCode != Error_Success)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
32 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
33 TRACE("Error: Failed to initialize program\n");
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 Terminate();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
36 return eCode;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
37 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
38
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
39 eCode = pServiceProvider->GetService("InputManager", &pInputManager);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
40 if(eCode != Error_Success)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
41 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
42 TRACE("Error: Failed to acquire input manager\n");
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
43
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
44 Terminate();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
45 return eCode;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
46 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
47
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
48 eCode = InitializeInterface(pServiceProvider);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
49 if(eCode != Error_Success)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
50 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
51 TRACE("Error: Failed to initialize interface\n");
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
52
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
53 Terminate();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
54 return eCode;
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
74
40c0b5305de8 Work on removing ScreenManager
koryspansel
parents: 73
diff changeset
57 nGameState = GameState_Load;
71
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
58 nSimulationState = SimulationState_Idle;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
59 nCurrentLevel = 0;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
60
70
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
61 return eCode;
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
62 }
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
63
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
64 /*
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
65 * Terminate
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
66 */
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
67 void GameScreen::Terminate()
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
68 {
71
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
69 kInterface.Terminate();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
70 kProgram.Terminate();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
71 kBot.Terminate();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
72 kEnvironment.Terminate();
70
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
73 }
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
74
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
75 /*
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
76 * Update
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
77 */
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
78 void GameScreen::Update(float fElapsed)
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
79 {
71
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
80 pInputManager->Update(fElapsed);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
81
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
82 UpdateInput(fElapsed);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
83 UpdateLogic(fElapsed);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
84
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
85 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
86 const D3DXVECTOR3& kCameraPosition = kCameraController.GetLocation();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
87
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
88 char kBuffer[256];
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
89 sprintf_s(kBuffer, "Camera: <%.2f, %.2f, %.2f> (%.2f, %.2f, %.2f)", kCameraPosition.x, kCameraPosition.y, kCameraPosition.z, kCameraController.fCameraDistance, kCameraController.fCameraYaw, kCameraController.fCameraPitch);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
90 pDebugText->SetText(kBuffer);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
91 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
92
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
93 kInterface.Update(fElapsed);
70
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
94 }
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
95
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
96 /*
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
97 * Render
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
98 */
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
99 void GameScreen::Render(RenderContext& kContext)
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
100 {
74
40c0b5305de8 Work on removing ScreenManager
koryspansel
parents: 73
diff changeset
101 if(nGameState != GameState_Load)
71
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 D3DVIEWPORT9 kOriginal;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
104 kContext.GetViewport(&kOriginal);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
105
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
106 D3DVIEWPORT9 kViewport;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
107 kViewport.X = 0;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
108 kViewport.Y = 0;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
109 kViewport.Width = ScreenSizeX - 280; // minus size of interface
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
110 kViewport.Height = ScreenSizeY;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
111 kViewport.MinZ = kOriginal.MinZ;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
112 kViewport.MaxZ = kOriginal.MaxZ;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
113
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
114 kContext.SetViewport(kViewport);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
115
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
116 kCameraController.SetMode(CameraMode_3D);
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 kEnvironment.Render(kContext, kCameraController);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
119 kBot.Render(kContext, kCameraController);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
120
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
121 kContext.SetViewport(kOriginal);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
122 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
123
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
124 kCameraController.SetMode(CameraMode_2D);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
125 kInterface.Render(kContext, kCameraController);
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 /*
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
129 * Load
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 ErrorCode GameScreen::Load(const char* pName)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
132 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
133 ErrorCode eCode = kLoader.Load(pName);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
134 if(eCode == Error_Success)
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 const Size& kSize = kLoader.GetSize();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
137
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
138 eCode = kEnvironment.Setup(kSize.X, kSize.Y);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
139 if(eCode == Error_Success)
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 for(uint32 nY = 0; nY < kSize.Y; ++nY)
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 for(uint32 nX = 0; nX < kSize.X; ++nX)
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 kEnvironment.SetType(nX, nY, kLoader.GetTowerType(nX, nY));
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
146 kEnvironment.SetAltitude(nX, nY, kLoader.GetTowerHeight(nX, nY));
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 }
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 kBot.Setup(&kEnvironment);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
151 kBot.SetPosition(kLoader.GetInitialPosition());
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
152 kBot.SetDirection(kLoader.GetInitialDirection());
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
153
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
154 //kCameraController.SetDistance(
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 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
157
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
158 return eCode;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
159 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
160
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
161 /*
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
162 * InitializeInterface
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 ErrorCode GameScreen::InitializeInterface(ServiceProvider* pServiceProvider)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
165 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
166 ErrorCode eCode = kInterface.Initialize(pServiceProvider);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
167 if(eCode == Error_Success)
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 pBackground = new GuiImage();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
170 pBackground->Initialize(pServiceProvider);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
171 pBackground->SetTexture("Data\\Textures\\Background04.tga", true);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
172 pBackground->SetPosition(ScreenSizeX - pBackground->GetWidth(), 0.0f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
173 pBackground->SetDepth(512.0f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
174
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
175 pToolbar = new ActionPanel(4, 2);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
176 pToolbar->Initialize(pServiceProvider);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
177 pToolbar->SetTexture("Data\\Textures\\PanelA.png");
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
178 pToolbar->SetPosition(16, 16.0f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
179 pToolbar->SetAction(0, Action_Forward);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
180 pToolbar->SetAction(1, Action_RotateCW);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
181 pToolbar->SetAction(2, Action_RotateCCW);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
182 pToolbar->SetAction(3, Action_Jump);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
183 pToolbar->SetAction(4, Action_Light);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
184 pToolbar->SetAction(5, Action_FunctionA);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
185 pToolbar->SetAction(6, Action_FunctionB);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
186 pToolbar->SetPermanent(true);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
187 pToolbar->SetDepth(256.0f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
188
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
189 GuiLabel* pMainLabel = new GuiLabel();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
190 pMainLabel->Initialize(pServiceProvider);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
191 pMainLabel->SetFont("Courier New", 16);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
192 pMainLabel->SetText("Main:");
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
193 pMainLabel->SetColor(D3DCOLOR_XRGB(0, 0, 0));
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
194 pMainLabel->SetPosition(26.0f, 149.0f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
195 pMainLabel->SetDepth(256.0f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
196
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
197 pCode[0] = new ActionPanel(4, 3);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
198 pCode[0]->Initialize(pServiceProvider);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
199 pCode[0]->SetTexture("Data\\Textures\\PanelB.png");
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
200 pCode[0]->SetPosition(16.0f, 160.0f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
201 pCode[0]->Subscribe(ActionPanel::EventAction, &GameScreen::OnAction, this);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
202 pCode[0]->SetDepth(256.0f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
203
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
204 GuiLabel* pFunctionALabel = new GuiLabel();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
205 pFunctionALabel->Initialize(pServiceProvider);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
206 pFunctionALabel->SetFont("Courier New", 16);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
207 pFunctionALabel->SetText("Function 1:");
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
208 pFunctionALabel->SetColor(D3DCOLOR_XRGB(0, 0, 0));
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
209 pFunctionALabel->SetPosition(26.0f, 349.0f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
210
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
211 pCode[1] = new ActionPanel(4, 2);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
212 pCode[1]->Initialize(pServiceProvider);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
213 pCode[1]->SetTexture("Data\\Textures\\PanelA.png");
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
214 pCode[1]->SetPosition(16.0f, 360.0f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
215 pCode[1]->Subscribe(ActionPanel::EventAction, &GameScreen::OnAction, this);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
216
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
217 GuiLabel* pFunctionBLabel = new GuiLabel();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
218 pFunctionBLabel->Initialize(pServiceProvider);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
219 pFunctionBLabel->SetFont("Courier New", 16);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
220 pFunctionBLabel->SetText("Function 2:");
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
221 pFunctionBLabel->SetColor(D3DCOLOR_XRGB(0, 0, 0));
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
222 pFunctionBLabel->SetPosition(26.0f, 493.0f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
223
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
224 pCode[2] = new ActionPanel(4, 2);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
225 pCode[2]->Initialize(pServiceProvider);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
226 pCode[2]->SetTexture("Data\\Textures\\PanelA.png");
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
227 pCode[2]->SetPosition(16.0f, 504.0f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
228 pCode[2]->Subscribe(ActionPanel::EventAction, &GameScreen::OnAction, this);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
229
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
230 const float fButtonPadding = 32.0f;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
231 const float fButtonSpacing = 8.0f;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
232 const float fButtonSize = 48.0f;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
233
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
234 pButtonPlay = new GuiButton();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
235 pButtonPlay->Initialize(pServiceProvider);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
236 pButtonPlay->SetTexture(GuiButtonState_Normal, "Data\\Textures\\Button2N.png", true);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
237 pButtonPlay->SetTexture(GuiButtonState_Hover, "Data\\Textures\\Button2H.png", true);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
238 pButtonPlay->SetTexture(GuiButtonState_Down, "Data\\Textures\\Button2D.png", true);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
239 pButtonPlay->SetFont("Courier New", 16, FW_BOLD);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
240 pButtonPlay->SetText("Play");
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
241 pButtonPlay->SetColor(D3DCOLOR_XRGB(0, 0, 0));
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
242 pButtonPlay->SetPosition(fButtonPadding + 0.0f * (fButtonSize + fButtonSpacing), 652.0f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
243 pButtonPlay->Subscribe(GuiButton::EventClick, &GameScreen::OnPlay, this);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
244
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
245 pButtonStop = new GuiButton();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
246 pButtonStop->Initialize(pServiceProvider);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
247 pButtonStop->SetTexture(GuiButtonState_Normal, "Data\\Textures\\Button2N.png", true);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
248 pButtonStop->SetTexture(GuiButtonState_Hover, "Data\\Textures\\Button2H.png", true);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
249 pButtonStop->SetTexture(GuiButtonState_Down, "Data\\Textures\\Button2D.png", true);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
250 pButtonStop->SetFont("Courier New", 16, FW_BOLD);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
251 pButtonStop->SetText("Stop");
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
252 pButtonStop->SetColor(D3DCOLOR_XRGB(0, 0, 0));
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
253 pButtonStop->SetPosition(fButtonPadding + 1.0f * (fButtonSize + fButtonSpacing), 652.0f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
254 pButtonStop->Subscribe(GuiButton::EventClick, &GameScreen::OnStop, this);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
255
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
256 pButtonReset = new GuiButton();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
257 pButtonReset->Initialize(pServiceProvider);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
258 pButtonReset->SetTexture(GuiButtonState_Normal, "Data\\Textures\\Button2N.png", true);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
259 pButtonReset->SetTexture(GuiButtonState_Hover, "Data\\Textures\\Button2H.png", true);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
260 pButtonReset->SetTexture(GuiButtonState_Down, "Data\\Textures\\Button2D.png", true);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
261 pButtonReset->SetFont("Courier New", 16, FW_BOLD);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
262 pButtonReset->SetText("Reset");
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
263 pButtonReset->SetColor(D3DCOLOR_XRGB(0, 0, 0));
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
264 pButtonReset->SetPosition(fButtonPadding + 2.0f * (fButtonSize + fButtonSpacing), 652.0f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
265 pButtonReset->Subscribe(GuiButton::EventClick, &GameScreen::OnReset, this);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
266
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
267 pButtonExit = new GuiButton();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
268 pButtonExit->Initialize(pServiceProvider);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
269 pButtonExit->SetTexture(GuiButtonState_Normal, "Data\\Textures\\Button2N.png", true);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
270 pButtonExit->SetTexture(GuiButtonState_Hover, "Data\\Textures\\Button2H.png", true);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
271 pButtonExit->SetTexture(GuiButtonState_Down, "Data\\Textures\\Button2D.png", true);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
272 pButtonExit->SetFont("Courier New", 16, FW_BOLD);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
273 pButtonExit->SetText("Exit");
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
274 pButtonExit->SetColor(D3DCOLOR_XRGB(0, 0, 0));
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
275 pButtonExit->SetPosition(fButtonPadding + 3.0f * (fButtonSize + fButtonSpacing), 652.0f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
276 pButtonExit->Subscribe(GuiButton::EventClick, &GameScreen::OnExit, this);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
277
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
278 pBackground->Add(pToolbar);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
279 pBackground->Add(pMainLabel);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
280 pBackground->Add(pCode[0]);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
281 pBackground->Add(pFunctionALabel);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
282 pBackground->Add(pCode[1]);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
283 pBackground->Add(pFunctionBLabel);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
284 pBackground->Add(pCode[2]);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
285 pBackground->Add(pButtonPlay);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
286 pBackground->Add(pButtonStop);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
287 pBackground->Add(pButtonReset);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
288 pBackground->Add(pButtonExit);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
289
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
290 pDebugText = new GuiLabel();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
291 pDebugText->Initialize(pServiceProvider);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
292 pDebugText->SetFont("Courier New", 16);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
293 pDebugText->SetPosition(10.0f, 10.0f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
294 pDebugText->SetText("Debug");
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
295 pDebugText->SetColor(D3DCOLOR_XRGB(255, 255, 255));
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
296
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
297 kInterface.Add(pBackground);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
298 kInterface.Add(pDebugText);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
299 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
300
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
301 return eCode;
70
ffaeccdc105e Work on screen manager
koryspansel
parents:
diff changeset
302 }
71
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
303
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
304 /*
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
305 * UpdateInput
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
306 */
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
307 void GameScreen::UpdateInput(float fElapsed)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
308 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
309 #if defined(_DEBUG)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
310 if(pInputManager->IsKeyDown(DIK_LEFT))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
311 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
312 kCameraController.Yaw(0.01f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
313 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
314 else
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
315
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
316 if(pInputManager->IsKeyDown(DIK_RIGHT))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
317 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
318 kCameraController.Yaw(-0.01f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
319 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
320
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
321 if(pInputManager->IsKeyDown(DIK_UP))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
322 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
323 kCameraController.Pitch(0.01f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
324 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
325 else
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
326
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
327 if(pInputManager->IsKeyDown(DIK_DOWN))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
328 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
329 kCameraController.Pitch(-0.01f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
330 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
331
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
332 if(pInputManager->IsKeyDown(DIK_NEXT))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
333 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
334 kCameraController.Move(0.1f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
335 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
336 else
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
337
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
338 if(pInputManager->IsKeyDown(DIK_PRIOR))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
339 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
340 kCameraController.Move(-0.1f);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
341 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
342
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
343 static bool bControl = false;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
344 static uint32 nBuffer[4] = {0};
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
345 static uint32 nCount = 0;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
346
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
347 if(bControl)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
348 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
349 if(pInputManager->IsKeyDown(DIK_0) && !pInputManager->WasKeyDown(DIK_0))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
350 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
351 nBuffer[nCount++] = 0;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
352 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
353 else
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
354
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
355 if(pInputManager->IsKeyDown(DIK_1) && !pInputManager->WasKeyDown(DIK_1))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
356 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
357 nBuffer[nCount++] = 1;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
358 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
359 else
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
360
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
361 if(pInputManager->IsKeyDown(DIK_2) && !pInputManager->WasKeyDown(DIK_2))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
362 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
363 nBuffer[nCount++] = 2;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
364 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
365 else
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
366
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
367 if(pInputManager->IsKeyDown(DIK_3) && !pInputManager->WasKeyDown(DIK_3))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
368 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
369 nBuffer[nCount++] = 3;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
370 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
371 else
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
372
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
373 if(pInputManager->IsKeyDown(DIK_4) && !pInputManager->WasKeyDown(DIK_4))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
374 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
375 nBuffer[nCount++] = 4;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
376 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
377 else
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
378
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
379 if(pInputManager->IsKeyDown(DIK_5) && !pInputManager->WasKeyDown(DIK_5))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
380 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
381 nBuffer[nCount++] = 5;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
382 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
383 else
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
384
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
385 if(pInputManager->IsKeyDown(DIK_6) && !pInputManager->WasKeyDown(DIK_6))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
386 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
387 nBuffer[nCount++] = 6;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
388 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
389 else
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
390
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
391 if(pInputManager->IsKeyDown(DIK_7) && !pInputManager->WasKeyDown(DIK_7))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
392 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
393 nBuffer[nCount++] = 7;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
394 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
395 else
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
396
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
397 if(pInputManager->IsKeyDown(DIK_8) && !pInputManager->WasKeyDown(DIK_8))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
398 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
399 nBuffer[nCount++] = 8;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
400 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
401 else
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
402
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
403 if(pInputManager->IsKeyDown(DIK_9) && !pInputManager->WasKeyDown(DIK_9))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
404 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
405 nBuffer[nCount++] = 9;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
406 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
407
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
408 if(!pInputManager->IsKeyDown(DIK_LCONTROL))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
409 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
410 if(nCount > 0)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
411 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
412 nCurrentLevel = 0;
74
40c0b5305de8 Work on removing ScreenManager
koryspansel
parents: 73
diff changeset
413 nGameState = GameState_Load;
71
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
414
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
415 for(uint32 i = 0; i < nCount; ++i)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
416 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
417 nCurrentLevel += (uint32)(nBuffer[i] * powf(10.0f, (float)i));
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
418 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
419 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
420
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
421 bControl = false;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
422 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
423 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
424 else
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
425 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
426 if(pInputManager->IsKeyDown(DIK_LCONTROL))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
427 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
428 bControl = true;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
429 nCount = 0;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
430 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
431 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
432 #endif
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
433 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
434
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
435 /*
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
436 * UpdateLogic
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
437 */
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
438 void GameScreen::UpdateLogic(float fElapsed)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
439 {
74
40c0b5305de8 Work on removing ScreenManager
koryspansel
parents: 73
diff changeset
440 if(nGameState == GameState_Load)
71
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
441 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
442 char kBuffer[256];
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
443 sprintf(kBuffer, "Data\\Maps\\Map%02d.map", nCurrentLevel++);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
444
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
445 ErrorCode eCode = Load(kBuffer);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
446 if(eCode == Error_Success)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
447 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
448 kProgram.Clear();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
449
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
450 for(uint32 i = 0; i < MaximumFunctionCount; ++i)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
451 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
452 pCode[i]->Clear();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
453 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
454
74
40c0b5305de8 Work on removing ScreenManager
koryspansel
parents: 73
diff changeset
455 nGameState = GameState_Active;
71
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
456 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
457 else
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
458 {
74
40c0b5305de8 Work on removing ScreenManager
koryspansel
parents: 73
diff changeset
459 //pScreenManager->Push("GameOver");
71
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
460 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
461
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
462 nSimulationState = SimulationState_Idle;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
463 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
464 else
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
465
74
40c0b5305de8 Work on removing ScreenManager
koryspansel
parents: 73
diff changeset
466 if(nGameState == GameState_Active)
71
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
467 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
468 if(nSimulationState == SimulationState_Active)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
469 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
470 if(kBot.Update(fElapsed))
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
471 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
472 if(kEnvironment.RequirementsMet())
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
473 {
74
40c0b5305de8 Work on removing ScreenManager
koryspansel
parents: 73
diff changeset
474 nGameState = GameState_Load;
40c0b5305de8 Work on removing ScreenManager
koryspansel
parents: 73
diff changeset
475 //pScreenManager->Push("LevelOver");
71
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
476 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
477 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
478 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
479 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
480 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
481
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
482 /*
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
483 * OnAction
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
484 */
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
485 void GameScreen::OnAction(GuiEventArguments& kArguments)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
486 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
487 ActionArguments& kActionArguments = (ActionArguments&)kArguments;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
488
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
489 for(uint32 i = 0; i < MaximumFunctionCount; ++i)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
490 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
491 if(kArguments.pSource == pCode[i])
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
492 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
493 kProgram.SetAction(i, kActionArguments.nSlot, pCode[i]->GetAction(kActionArguments.nSlot));
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
494 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
495 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
496 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
497
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
498 /*
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
499 * OnPlay
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
500 */
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
501 void GameScreen::OnPlay(GuiEventArguments& kArguments)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
502 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
503 if(nSimulationState == SimulationState_Idle)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
504 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
505 kEnvironment.Reset();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
506
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
507 kBot.Reset();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
508 kBot.SetPosition(kLoader.GetInitialPosition());
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
509 kBot.SetDirection(kLoader.GetInitialDirection());
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
510 kBot.Upload(kProgram);
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
511
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
512 nSimulationState = SimulationState_Active;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
513 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
514 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
515
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
516 /*
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
517 * OnStop
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
518 */
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
519 void GameScreen::OnStop(GuiEventArguments& kArguments)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
520 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
521 if(nSimulationState == SimulationState_Active)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
522 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
523 kEnvironment.Reset();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
524
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
525 kBot.Reset();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
526 kBot.SetPosition(kLoader.GetInitialPosition());
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
527 kBot.SetDirection(kLoader.GetInitialDirection());
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
528
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
529 nSimulationState = SimulationState_Idle;
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
530 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
531 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
532
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
533 /*
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
534 * OnReset
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
535 */
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
536 void GameScreen::OnReset(GuiEventArguments& kArguments)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
537 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
538 kProgram.Clear();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
539
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
540 for(uint32 i = 0; i < MaximumFunctionCount; ++i)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
541 {
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
542 pCode[i]->Clear();
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
543 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
544 }
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
545
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
546 /*
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
547 * OnExit
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
548 */
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
549 void GameScreen::OnExit(GuiEventArguments& kArguments)
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
550 {
74
40c0b5305de8 Work on removing ScreenManager
koryspansel
parents: 73
diff changeset
551 //pScreenManager->Push("Confirm");
71
bc8afcf7e1ec Refactor world into game screen
koryspansel <koryspansel@bendbroadband.com>
parents: 70
diff changeset
552 }