annotate LightClone/Source/World.cpp @ 18:33cb6979ac51

More work on GUI system
author koryspansel
date Wed, 14 Sep 2011 17:24:49 -0700
parents 4951acfe92fc
children 51718795f019
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"
7
31373c5bd1b9 Start on World refactor
koryspansel <koryspansel@bendbroadband.com>
parents:
diff changeset
8
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
9 /*
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
10 * World
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
11 */
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
12 World::World() : kToolbar(8), kMain(16), kFunction(8), kControls(4)
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
13 {
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
14 nGameState = GameState_Active;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
15 nSimulationState = SimulationState_Idle;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
16 pFunction = 0;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
17 nCurrentFunction = 0;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
18 nCurrentLevel = 0;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
19
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
20 kArrowBounds[0] = Rectangle2(1206.0f + 0 * 16.0f, 473.0f + 0 * 54.0f, 16.0f, 16.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
21 kArrowBounds[1] = Rectangle2(1206.0f + 2 * 16.0f, 473.0f + 0 * 54.0f, 16.0f, 16.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
22
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
23 kDialog1Bounds[0] = Rectangle2(567.0f, 412.0f, 150.0f, 60.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
24
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
25 kDialog2Bounds[0] = Rectangle2(1023.0f + 2.5f * 54.0f, 638.0f + 0 * 00.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
26 kDialog2Bounds[1] = Rectangle2(1023.0f + 2.5f * 54.0f, 638.0f + 0 * 00.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
27
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
28 kToolbar.Add(1023.0f + 0 * 54.0f, 85.0f + 0 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
29 kToolbar.Add(1023.0f + 1 * 54.0f, 85.0f + 0 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
30 kToolbar.Add(1023.0f + 2 * 54.0f, 85.0f + 0 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
31 kToolbar.Add(1023.0f + 3 * 54.0f, 85.0f + 0 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
32 kToolbar.Add(1023.0f + 0 * 54.0f, 85.0f + 1 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
33 kToolbar.Add(1023.0f + 1 * 54.0f, 85.0f + 1 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
34 kToolbar.Add(1023.0f + 2 * 54.0f, 85.0f + 1 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
35 kToolbar.Add(1023.0f + 3 * 54.0f, 85.0f + 1 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
36
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
37 kMain.Add(1023.0f + 0 * 54.0f, 238.0f + 0 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
38 kMain.Add(1023.0f + 1 * 54.0f, 238.0f + 0 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
39 kMain.Add(1023.0f + 2 * 54.0f, 238.0f + 0 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
40 kMain.Add(1023.0f + 3 * 54.0f, 238.0f + 0 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
41 kMain.Add(1023.0f + 0 * 54.0f, 238.0f + 1 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
42 kMain.Add(1023.0f + 1 * 54.0f, 238.0f + 1 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
43 kMain.Add(1023.0f + 2 * 54.0f, 238.0f + 1 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
44 kMain.Add(1023.0f + 3 * 54.0f, 238.0f + 1 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
45 kMain.Add(1023.0f + 0 * 54.0f, 238.0f + 2 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
46 kMain.Add(1023.0f + 1 * 54.0f, 238.0f + 2 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
47 kMain.Add(1023.0f + 2 * 54.0f, 238.0f + 2 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
48 kMain.Add(1023.0f + 3 * 54.0f, 238.0f + 2 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
49 kMain.Add(1023.0f + 0 * 54.0f, 238.0f + 3 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
50 kMain.Add(1023.0f + 1 * 54.0f, 238.0f + 3 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
51 kMain.Add(1023.0f + 2 * 54.0f, 238.0f + 3 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
52 kMain.Add(1023.0f + 3 * 54.0f, 238.0f + 3 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
53
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
54 kFunction.Add(1023.0f + 0 * 54.0f, 501.0f + 0 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
55 kFunction.Add(1023.0f + 1 * 54.0f, 501.0f + 0 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
56 kFunction.Add(1023.0f + 2 * 54.0f, 501.0f + 0 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
57 kFunction.Add(1023.0f + 3 * 54.0f, 501.0f + 0 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
58 kFunction.Add(1023.0f + 0 * 54.0f, 501.0f + 1 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
59 kFunction.Add(1023.0f + 1 * 54.0f, 501.0f + 1 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
60 kFunction.Add(1023.0f + 2 * 54.0f, 501.0f + 1 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
61 kFunction.Add(1023.0f + 3 * 54.0f, 501.0f + 1 * 54.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
62
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
63 kControls.Add(1023.0f + 0.5f * 54.0f, 638.0f + 0 * 00.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
64 kControls.Add(1023.0f + 1.5f * 54.0f, 638.0f + 0 * 00.0f, 48.0f, 48.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
65 kControls.Add(1023.0f + 2.5f * 54.0f, 638.0f + 0 * 00.0f, 48.0f, 48.0f);
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
66 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
67
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
68 /*
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
69 * Initialize
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
70 */
14
7081e8e6008c Working on integrating the EventSystem
koryspansel
parents: 11
diff changeset
71 ErrorCode World::Initialize(EventSystem* pSystem, ResourceManager* pResourceManager, InputManager* pInput)
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
72 {
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
73 ErrorCode eCode = Error_Fail;
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
74
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
75 if(pResourceManager && pInput)
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
76 {
14
7081e8e6008c Working on integrating the EventSystem
koryspansel
parents: 11
diff changeset
77 pEventSystem = pSystem;
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
78 pInputManager = pInput;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
79
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
80 eCode = kEnvironment.Initialize(pResourceManager);
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
81 if(eCode == Error_Success)
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
82 {
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
83 eCode = kBot.Initialize(pResourceManager);
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
84 if(eCode == Error_Success)
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
85 {
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
86 //eCode = kProgram.Initialize(pResourceManager);
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
87 if(eCode == Error_Success)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
88 {
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
89 eCode = InitializeInterface(pResourceManager);
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
90 if(eCode == Error_Success)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
91 {
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
92 nCurrentLevel = 0;
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
93 nGameState = GameState_LoadMap;
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
94 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
95 }
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
96 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
97 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
98 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
99
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
100 return eCode;
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
101 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
102
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
103 /*
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
104 * Terminate
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
105 */
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
106 void World::Terminate()
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
107 {
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
108 kInterface.Terminate();
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
109 //kProgram.Terminate();
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
110 kBot.Terminate();
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
111 kEnvironment.Terminate();
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
112 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
113
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
114 /*
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
115 * Activate
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
116 */
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
117 void World::Activate()
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
118 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
119 nGameState = GameState_LoadMap;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
120 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
121
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
122 /*
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
123 * Deactivate
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
124 */
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
125 void World::Deactivate()
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
126 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
127 nGameState = GameState_Exit;
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 * IsActive
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
132 */
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
133 bool World::IsActive()
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
134 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
135 return nGameState != GameState_Exit;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
136 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
137
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
138 /*
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
139 * Load
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
140 */
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
141 bool World::Load(const char* pName)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
142 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
143 ErrorCode eCode = kLoader.Load(pName);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
144 if(eCode == Error_Success)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
145 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
146 if(pFunction)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
147 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
148 delete[] pFunction;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
149 pFunction = NULL;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
150 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
151
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
152 const Size& kSize = kLoader.GetSize();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
153
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
154 eCode = kEnvironment.Setup(kSize.X, kSize.Y);
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
155 if(eCode == Error_Success)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
156 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
157 for(uint32 nY = 0; nY < kSize.Y; ++nY)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
158 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
159 for(uint32 nX = 0; nX < kSize.X; ++nX)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
160 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
161 kEnvironment.SetType(nX, nY, kLoader.GetTowerType(nX, nY));
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
162 kEnvironment.SetAltitude(nX, nY, kLoader.GetTowerHeight(nX, nY));
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
163 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
164 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
165
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
166 kBot.Setup(&kEnvironment);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
167 kBot.kPosition = kLoader.GetInitialPosition();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
168 kBot.kDirection = kLoader.GetInitialDirection();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
169
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
170 const uint32 nCount = kLoader.GetFunctionCount();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
171
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
172 pFunction = new Code[nCount + 1];
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
173 pFunction[0].Initialize(MainFunctionLength);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
174 pFunction[0].Clear();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
175
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
176 for(uint32 i = 0; i < nCount; ++i)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
177 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
178 const uint32 nLength = kLoader.GetFunctionLength(i);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
179
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
180 pFunction[i + 1].Initialize(nLength);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
181 pFunction[i + 1].Clear();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
182 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
183 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
184 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
185
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
186 return eCode == Error_Success;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
187 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
188
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
189 /*
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
190 * ResetEnvironment
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
191 */
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
192 void World::ResetEnvironment()
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
193 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
194 kEnvironment.Reset();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
195 }
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 * ResetBot
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
199 */
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
200 void World::ResetBot()
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
201 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
202 kBot.Reset();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
203 kBot.kPosition = kLoader.GetInitialPosition();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
204 kBot.kDirection = kLoader.GetInitialDirection();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
205 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
206
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
207 /*
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
208 * ResetCode
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
209 */
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
210 void World::ClearCode()
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
211 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
212 for(uint32 i = 0; i < kLoader.GetFunctionCount(); ++i)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
213 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
214 pFunction[i].Clear();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
215 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
216 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
217
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
218 /*
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
219 * Update
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
220 */
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
221 void World::Update(float fElapsed)
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
222 {
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
223 ProcessInput(fElapsed);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
224
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
225 if(nGameState == GameState_LoadMap)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
226 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
227 char kBuffer[256];
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
228 sprintf_s(kBuffer, "Data\\Maps\\Map%02d.map", nCurrentLevel++);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
229
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
230 nGameState = Load(kBuffer) ? GameState_Active : GameState_Over;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
231 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
232 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
233
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
234 if(nGameState == GameState_Active)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
235 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
236 if(nSimulationState == SimulationState_Active)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
237 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
238 if(kBot.Update(fElapsed))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
239 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
240 if(kEnvironment.RequirementsMet())
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
241 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
242 kDialog.Reset("Some message");
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
243 kDialog.AddButton(DialogButton_Ok, "Ok", 0.0f, 0.0f, 0.0f, 0.0f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
244
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
245 nGameState = GameState_Complete;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
246 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
247 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
248 }
17
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
249
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
250 kInterface.Update(fElapsed);
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
251 }
8
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
252 }
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
253
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
254 /*
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
255 * Render
968341ab1fb2 First pass world re-structuring
koryspansel
parents: 7
diff changeset
256 */
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
257 void World::Render(RenderContext& kContext)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
258 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
259 const uint32 nColor = D3DCOLOR_XRGB(32, 32, 32);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
260
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
261 kContext.Begin(nColor);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
262
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
263 if(nGameState >= GameState_Active)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
264 {
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
265 kCameraController.SetMode(CameraMode_3D);
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
266 Render3D(kContext);
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
267
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
268 kCameraController.SetMode(CameraMode_2D);
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
269 Render2D(kContext);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
270 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
271
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
272 kContext.End();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
273 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
274
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
275 /*
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
276 * InitializeInterface
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
277 */
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
278 ErrorCode World::InitializeInterface(ResourceManager* pResourceManager)
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
279 {
17
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
280 GuiContainer* pRoot = kInterface.GetRoot();
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
281 //ASSERT(pRoot != NULL);
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
282
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
283 GuiLabel*
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
284 pLabel = new GuiLabel();
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
285 pLabel->Initialize(pResourceManager);
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
286 pLabel->SetFont("Courier New", 16);
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
287 pLabel->SetText("This is a test!");
18
33cb6979ac51 More work on GUI system
koryspansel
parents: 17
diff changeset
288 pLabel->SetFlags(GuiLabelFlag_CenterX | GuiLabelFlag_CenterY);
17
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
289 pLabel->SetPosition(0.5f * ScreenSizeX, 0.5f * ScreenSizeY);
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
290
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
291 pRoot->Add(pLabel);
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
292
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
293 //return kInterface.Initialize(pResourceManager);
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
294
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
295 /*
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
296 GuiElement* pRoot = kInterface.GetRoot();
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
297
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
298 //CodePanel*
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
299 pToolbar = new CodePanel(8);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
300 pToolbar->SetBackgroundTexture("Data\\Textures\\CodePanel.tga");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
301 pToolbar->SetSlotTexture("Data\\Textures\\Slot.tga");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
302
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
303 //CodePanel*
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
304 pMain = new CodePanel(16);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
305 pMain->SetBackgroundTexture("Data\\Textures\\CodePanel.tga");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
306 pMain->SetSlotTexture("Data\\Textures\\Slot.tga");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
307
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
308 //CodePanel*
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
309 pFunctionA = new CodePanel(16);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
310 pFunctionA->SetBackgroundTexture("Data\\Textures\\CodePanel.tga");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
311 pFunctionA->SetSlotTexture("Data\\Textures\\Slot.tga");
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
312
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
313 //CodePanel*
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
314 pFunctionB = new CodePanel(16);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
315 pFunctionB->SetBackgroundTexture("Data\\Textures\\CodePanel.tga");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
316 pFunctionB->SetSlotTexture("Data\\Textures\\Slot.tga");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
317
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
318 //SelectorPanel*
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
319 pSelectorPanel = new SelectorPanel();
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
320 pSelectorPanel->SetLeftTexture("Data\\Textures\\Left.tga");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
321 pSelectorPanel->SetRightTexture("Data\\Textures\\Right.tga");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
322 pSelectorPanel->Add(pFunctionA);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
323 pSelectorPanel->Add(pFunctionB);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
324
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
325 //GuiButton*
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
326 pButtonStart = new GuiButton();
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
327 pButtonStart->SetTexture("Data\\Textures\\Play.tga");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
328 pButtonStart->SetDimensions(...);
11
d80d06d5ff53 Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 10
diff changeset
329 pButtonStart->SetCallback(&World::OnClick, this);
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
330
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
331 //GuiButton*
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
332 pButtonStop = new GuiButton();
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
333 pButtonStop->SetTexture("Data\\Textures\\Stop.tga");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
334 pButtonStop->SetDimensions(...);
11
d80d06d5ff53 Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 10
diff changeset
335 pButtonStop->SetCallback(&World::OnClick, this);
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
336
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
337 //GuiButton*
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
338 pButtonReset = new GuiButton();
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
339 pButtonReset->SetTexture("Data\\Textures\\Reset.tga");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
340 pButtonReset->SetDimensions(...);
11
d80d06d5ff53 Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 10
diff changeset
341 pButtonReset->SetCallback(&World::OnClick, this);
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
342
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
343 //GuiButton*
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
344 pButtonExit = new GuiButton();
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
345 pButtonExit->SetTexture("Data\\Textures\\Exit.tga");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
346 pButtonExit->SetDimensions(...);
11
d80d06d5ff53 Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 10
diff changeset
347 pButtonExit->SetCallback(&World::OnClick, this);
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
348
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
349 //GuiPanel*
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
350 pControlPanel = new GuiPanel();
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
351 pControlPanel->SetTexture("Data\\Textures\\ControlPanel.tga")
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
352 pControlPanel->SetDimensions(...);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
353 pControlPanel->Add(pButtonStart);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
354 pControlPanel->Add(pButtonStop);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
355 pControlPanel->Add(pButtonReset);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
356 pControlPanel->Add(pButtonExit);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
357
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
358 //GuiDialog*
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
359 pLevelDialog = new GuiDialog();
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
360 pLevelDialog->AddButton(DialogButton_Ok, "Ok");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
361 pLevelDialog->SetVisible(false);
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
362
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
363 //GuiDialog*
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
364 pGameDialog = new GuiDialog();
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
365 pGameDialog->AddButton(DialogButton_Ok, "Ok");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
366 pGameDialog->SetVisible(false);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
367
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
368 //GuiDialog*
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
369 pConfirmDialog = new GuiDialog();
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
370 pConfirmDialog->AddButton(DialogButton_Yes, "Yes");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
371 pConfirmDialog->AddButton(DialogButton_No, "No");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
372 pConfirmDialog->SetVisible(false);
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
373
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
374 //GuiPanel*
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
375 pContainerPanel = new GuiPanel();
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
376 pContainerPanel->SetBackgroundTexture("Data\\Texturse\\ContainerPanel.tga");
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
377 pContainerPanel->Add(pToolbar);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
378 pContainerPanel->Add(pMain);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
379 pContainerPanel->Add(pSelectorPanel);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
380 pContainerPanel->Add(pControlPanel);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
381
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
382 pRoot->Add(pControlPanel);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
383 pRoot->Add(pLevelDialog);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
384 pRoot->Add(pGameDialog);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
385 pRoot->Add(pConfirmDialog);
17
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
386 */
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
387
17
4951acfe92fc Reworking GUI system
koryspansel <koryspansel@bendbroadband.com>
parents: 16
diff changeset
388 return Error_Success;
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
389 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
390
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
391 /*
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
392 * Render3D
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
393 */
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
394 void World::Render3D(RenderContext& kContext)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
395 {
10
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
396 kEnvironment.Render(kContext, kCameraController);
292e534f00c2 Moved rendering into Bot/Environment; Started work on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents: 9
diff changeset
397 kBot.Render(kContext, kCameraController);
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
398 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
399
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
400 /*
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
401 * Render2D
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
402 */
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
403 void World::Render2D(RenderContext& kContext)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
404 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
405 kInterface.Render(kContext, kCameraController);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
406 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
407
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
408 /*
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
409 * ProcessInput
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
410 */
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
411 void World::ProcessInput(float fElapsed)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
412 {
14
7081e8e6008c Working on integrating the EventSystem
koryspansel
parents: 11
diff changeset
413 //pInputManager->Update(fElapsed);
9
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
414
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
415 #if defined(_DEBUG)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
416 if(pInputManager->IsKeyDown(DIK_LEFT))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
417 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
418 kCameraController.Yaw(0.01f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
419 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
420 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
421
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
422 if(pInputManager->IsKeyDown(DIK_RIGHT))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
423 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
424 kCameraController.Yaw(-0.01f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
425 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
426
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
427 if(pInputManager->IsKeyDown(DIK_UP))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
428 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
429 kCameraController.Pitch(0.01f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
430 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
431 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
432
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
433 if(pInputManager->IsKeyDown(DIK_DOWN))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
434 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
435 kCameraController.Pitch(-0.01f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
436 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
437
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
438 if(pInputManager->IsKeyDown(DIK_NEXT))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
439 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
440 kCameraController.Move(0.1f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
441 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
442 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
443
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
444 if(pInputManager->IsKeyDown(DIK_PRIOR))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
445 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
446 kCameraController.Move(-0.1f);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
447 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
448 #endif
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
449
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
450 const float fMouseX = pInputManager->GetMouseX();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
451 const float fMouseY = pInputManager->GetMouseY();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
452
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
453 if(nGameState == GameState_Active)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
454 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
455 if(pInputManager->IsButtonDown(0) && !pInputManager->WasButtonDown(0))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
456 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
457 int32 nSelection = kControls.Pick(fMouseX, fMouseY);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
458 if(nSelection >= 0)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
459 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
460 if(nSelection == ControlButton_Play)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
461 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
462 if(nSimulationState == SimulationState_Idle)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
463 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
464 ResetBot();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
465 kBot.Upload(pFunction, kLoader.GetFunctionCount() + 1);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
466
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
467 nSimulationState = SimulationState_Active;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
468 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
469 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
470 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
471
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
472 if(nSelection == ControlButton_Stop)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
473 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
474 if(nSimulationState == SimulationState_Active)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
475 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
476 ResetEnvironment();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
477 ResetBot();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
478
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
479 nSimulationState = SimulationState_Idle;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
480 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
481 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
482 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
483
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
484 if(nSelection == ControlButton_Exit)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
485 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
486 nGameState = GameState_Exit;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
487 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
488 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
489 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
490 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
491 // pick against the toolbar
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
492 nSelection = kToolbar.Pick(fMouseX, fMouseY);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
493 if(nSelection >= 0)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
494 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
495 kDragController.Begin(Action_Forward + nSelection);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
496 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
497 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
498 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
499 // pick against the main pane
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
500 nSelection = kMain.Pick(fMouseX, fMouseY);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
501 if(nSelection >= 0)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
502 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
503 Code* pCode = pFunction;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
504 if(!pCode->IsEmptySlot(nSelection))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
505 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
506 kDragController.Begin(pCode->GetSlot(nSelection));
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
507 pCode->ClearSlot(nSelection);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
508 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
509 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
510 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
511 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
512 // pick against the function pane
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
513 nSelection = kFunction.Pick(fMouseX, fMouseY);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
514 if(nSelection >= 0)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
515 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
516 Code* pCode = pFunction + nCurrentFunction + 1;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
517 if(!pCode->IsEmptySlot(nSelection))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
518 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
519 kDragController.Begin(pCode->GetSlot(nSelection));
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
520 pCode->ClearSlot(nSelection);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
521 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
522 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
523 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
524 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
525 // pick against the function pane arrows
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
526 for(uint32 i = 0; i < sizeof(kArrowBounds) / sizeof(kArrowBounds[0]); ++i)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
527 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
528 if(kArrowBounds[i].Contains(fMouseX, fMouseY))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
529 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
530 const uint32 nCount = kLoader.GetFunctionCount();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
531 nCurrentFunction = (nCurrentFunction + 2 * (int32)i - 1 + nCount) % nCount;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
532 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
533 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
534 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
535 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
536 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
537 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
538 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
539 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
540
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
541 if(!pInputManager->IsButtonDown(0) && pInputManager->WasButtonDown(0))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
542 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
543 if(kDragController.IsActive())
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
544 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
545 const uint32 nAction = kDragController.End();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
546
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
547 int32 nSelection = kMain.Pick(fMouseX, fMouseY);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
548 if(nSelection >= 0)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
549 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
550 pFunction[0].SetSlot(nSelection, nAction);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
551 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
552 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
553 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
554 nSelection = kFunction.Pick(fMouseX, fMouseY);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
555 if(nSelection >= 0)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
556 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
557 pFunction[nCurrentFunction + 1].SetSlot(nSelection, nAction);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
558 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
559 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
560 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
561 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
562 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
563 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
564
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
565 if(nGameState == GameState_Complete)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
566 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
567 if(pInputManager->IsButtonDown(0) && !pInputManager->WasButtonDown(0))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
568 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
569 for(uint32 i = 0; i < sizeof(kDialog1Bounds) / sizeof(kDialog1Bounds[0]); ++i)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
570 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
571 if(kDialog1Bounds[i].Contains(fMouseX, fMouseY))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
572 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
573 if(i == 0)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
574 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
575 if(nSimulationState == SimulationState_Active)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
576 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
577 ResetEnvironment();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
578 ResetBot();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
579
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
580 nSimulationState = SimulationState_Idle;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
581 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
582
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
583 nGameState = GameState_LoadMap;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
584 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
585 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
586 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
587
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
588 /*
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
589 int32 nSelection = kDialog.Pick(fMouseX, fMouseY);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
590
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
591 if(nSelection == DialogButton_A)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
592 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
593 if(nSimulationState == SimulationState_Active)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
594 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
595 ResetEnvironment();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
596 ResetBot();
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
597
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
598 nSimulationState = SimulationState_Idle;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
599 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
600
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
601 nGameState = GameState_LoadMap;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
602 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
603 */
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
604 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
605 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
606 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
607
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
608 if(nGameState == GameState_Over)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
609 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
610 // check to see if button was clicked
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
611 if(pInputManager->IsButtonDown(0) && !pInputManager->WasButtonDown(0))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
612 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
613 for(uint32 i = 0; i < sizeof(kDialog1Bounds) / sizeof(kDialog1Bounds[0]); ++i)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
614 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
615 if(kDialog1Bounds[i].Contains(fMouseX, fMouseY))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
616 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
617 if(i == 0)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
618 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
619 nCurrentLevel = 0;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
620 nGameState = GameState_LoadMap;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
621 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
622 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
623 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
624
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
625 /*
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
626 int32 nSelection = kDialog.Pick(fMouseX, fMouseY);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
627
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
628 if(nSelection == DialogButton_A)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
629 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
630 nCurrentLevel = 0;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
631 nGameState = GameState_LoadMap;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
632 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
633 */
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
634 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
635 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
636 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
637
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
638 if(nGameState == GameState_Confirm)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
639 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
640 // check to see if button was clicked
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
641 if(pInputManager->IsButtonDown(0) && !pInputManager->WasButtonDown(0))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
642 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
643 for(uint32 i = 0; i < sizeof(kDialog2Bounds) / sizeof(kDialog2Bounds[0]); ++i)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
644 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
645 if(kDialog2Bounds[i].Contains(fMouseX, fMouseY))
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
646 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
647 if(i == 0)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
648 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
649 nGameState = GameState_Exit;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
650 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
651 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
652
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
653 if(i == 1)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
654 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
655 nGameState = GameState_Active;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
656 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
657 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
658 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
659
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
660 /*
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
661 int32 nSelection = kDialog.Pick(fMouseX, fMouseY);
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
662
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
663 if(nSelection == DialogButton_A)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
664 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
665 nGameState = GameState_Exit;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
666 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
667 else
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
668
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
669 if(nSelection == DialogButton_B)
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
670 {
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
671 nGameState = GameState_Active;
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
672 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
673 */
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
674 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
675 }
e494c4295dba Conversion to World architecture
koryspansel
parents: 8
diff changeset
676 }