diff options
Diffstat (limited to 'ClientHamr')
-rw-r--r-- | ClientHamr/extantz/CDemo.cpp | 68 |
1 files changed, 35 insertions, 33 deletions
diff --git a/ClientHamr/extantz/CDemo.cpp b/ClientHamr/extantz/CDemo.cpp index 9632675..5ecce45 100644 --- a/ClientHamr/extantz/CDemo.cpp +++ b/ClientHamr/extantz/CDemo.cpp | |||
@@ -95,20 +95,15 @@ void CDemo::switchToNextScene() | |||
95 | scene::ICameraSceneNode* camera = 0; | 95 | scene::ICameraSceneNode* camera = 0; |
96 | 96 | ||
97 | camera = sm->getActiveCamera(); | 97 | camera = sm->getActiveCamera(); |
98 | if (camera) | ||
99 | { | ||
100 | sm->setActiveCamera(0); | ||
101 | camera->remove(); | ||
102 | camera = 0; | ||
103 | } | ||
104 | 98 | ||
105 | switch(currentScene) | 99 | switch(currentScene) |
106 | { | 100 | { |
107 | case 1: // panorama camera | 101 | case 1: // panorama camera |
108 | { | 102 | { |
109 | core::array<core::vector3df> points; | 103 | core::array<core::vector3df> points, points2; |
110 | 104 | ||
111 | points.push_back(core::vector3df(-931.473755f, 900.0f, 2000.0f)); // -49873 | 105 | points.push_back(core::vector3df(-931.473755f, 900.0f, 2000.0f)); // -49873 |
106 | points.push_back(core::vector3df(-931.473755f, 900.0f, 2000.0f)); // -49873 | ||
112 | points.push_back(core::vector3df(-931.473755f, 700.0f, 1750.0f)); // -49873 | 107 | points.push_back(core::vector3df(-931.473755f, 700.0f, 1750.0f)); // -49873 |
113 | points.push_back(core::vector3df(-931.473755f, 500.0f, 1500.0f)); // -49873 | 108 | points.push_back(core::vector3df(-931.473755f, 500.0f, 1500.0f)); // -49873 |
114 | points.push_back(core::vector3df(-931.473755f, 300.0f, 1250.0f)); // -49873 | 109 | points.push_back(core::vector3df(-931.473755f, 300.0f, 1250.0f)); // -49873 |
@@ -150,16 +145,16 @@ void CDemo::switchToNextScene() | |||
150 | points.push_back(core::vector3df(96.783348f, 181.639481f, 648.188110f)); | 145 | points.push_back(core::vector3df(96.783348f, 181.639481f, 648.188110f)); |
151 | points.push_back(core::vector3df(97.865623f, 138.905975f, 484.812561f)); | 146 | points.push_back(core::vector3df(97.865623f, 138.905975f, 484.812561f)); |
152 | points.push_back(core::vector3df(99.612457f, 102.463669f, 347.603210f)); | 147 | points.push_back(core::vector3df(99.612457f, 102.463669f, 347.603210f)); |
148 | points.push_back(core::vector3df(99.0f, 95.0f, 347.0f)); | ||
153 | points.push_back(core::vector3df(99.0f, 90.0f, 347.0f)); | 149 | points.push_back(core::vector3df(99.0f, 90.0f, 347.0f)); |
154 | points.push_back(core::vector3df(99.0f, 90.0f, 347.0f)); | 150 | points.push_back(core::vector3df(99.0f, 85.0f, 347.0f)); |
155 | points.push_back(core::vector3df(99.0f, 90.0f, 347.0f)); | 151 | points.push_back(core::vector3df(99.0f, 80.0f, 347.0f)); |
156 | 152 | points.push_back(core::vector3df(99.0f, 75.0f, 347.0f)); | |
157 | timeForThisScene = (points.size() - 1) * 1000; | 153 | points.push_back(core::vector3df(99.0f, 75.0f, 347.0f)); |
158 | 154 | points.push_back(core::vector3df(99.0f, 75.0f, 347.0f)); | |
155 | timeForThisScene = (points.size() - 2) * 1000; | ||
159 | camera = sm->addCameraSceneNode(0, points[0], core::vector3df(0, 400, 0)); | 156 | camera = sm->addCameraSceneNode(0, points[0], core::vector3df(0, 400, 0)); |
160 | 157 | sa = sm->createFollowSplineAnimator(device->getTimer()->getTime(), points, 1.0f, 0.6f, false, false); | |
161 | sa = sm->createFollowSplineAnimator(device->getTimer()->getTime(), | ||
162 | points); | ||
163 | camera->addAnimator(sa); | 158 | camera->addAnimator(sa); |
164 | sa->drop(); | 159 | sa->drop(); |
165 | } | 160 | } |
@@ -169,22 +164,23 @@ void CDemo::switchToNextScene() | |||
169 | { | 164 | { |
170 | core::array<core::vector3df> points; | 165 | core::array<core::vector3df> points; |
171 | 166 | ||
172 | points.push_back(core::vector3df(99.0f, 90.0f, 347.0f)); | 167 | camera->setTarget(core::vector3df(100, 145, -80)); |
173 | points.push_back(core::vector3df(99.0f, 90.0f, 347.0f)); | 168 | |
174 | points.push_back(core::vector3df(99.0f, 90.0f, 347.0f)); | 169 | points.push_back(core::vector3df(99.0f, 75.0f, 347.0f)); |
175 | points.push_back(core::vector3df(99.0f, 90.0f, 347.0f)); | 170 | points.push_back(core::vector3df(100.0f, 75.0f, 347.0f)); |
176 | points.push_back(core::vector3df(108.0f, 90.0f, -140.0f)); | 171 | points.push_back(core::vector3df(105.0f, 75.0f, 347.0f)); |
177 | points.push_back(core::vector3df(108.0f, 90.0f, -140.0f)); | 172 | points.push_back(core::vector3df(110.0f, 70.0f, 347.0f)); |
178 | points.push_back(core::vector3df(108.0f, 90.0f, -140.0f)); | 173 | points.push_back(core::vector3df(115.0f, 70.0f, -160.0f)); |
179 | points.push_back(core::vector3df(108.0f, 90.0f, -140.0f)); | 174 | points.push_back(core::vector3df(120.0f, 70.0f, -160.0f)); |
180 | points.push_back(core::vector3df(108.0f, 90.0f, -140.0f)); | 175 | points.push_back(core::vector3df(125.0f, 65.0f, -160.0f)); |
181 | 176 | points.push_back(core::vector3df(130.0f, 65.0f, -160.0f)); | |
182 | timeForThisScene = (points.size() - 1) * 500; | 177 | points.push_back(core::vector3df(135.0f, 65.0f, -160.0f)); |
183 | 178 | points.push_back(core::vector3df(150.0f, 170.0f, -160.0f)); | |
184 | camera = sm->addCameraSceneNode(0, points[0], core::vector3df(108, 90, -140)); | 179 | points.push_back(core::vector3df(150.0f, 170.0f, -160.0f)); |
185 | 180 | points.push_back(core::vector3df(150.0f, 170.0f, -160.0f)); | |
186 | sa = sm->createFollowSplineAnimator(device->getTimer()->getTime(), | 181 | timeForThisScene = (points.size() - 2) * 1000; |
187 | points); | 182 | // camera = sm->addCameraSceneNode(0, points[0], core::vector3df(108, 90, -140)); |
183 | sa = sm->createFollowSplineAnimator(device->getTimer()->getTime(), points, 1.0f, 0.6f, false, false); | ||
188 | camera->addAnimator(sa); | 184 | camera->addAnimator(sa); |
189 | sa->drop(); | 185 | sa->drop(); |
190 | } | 186 | } |
@@ -192,6 +188,12 @@ void CDemo::switchToNextScene() | |||
192 | 188 | ||
193 | case 3: // interactive, go around | 189 | case 3: // interactive, go around |
194 | { | 190 | { |
191 | if (camera) | ||
192 | { | ||
193 | sm->setActiveCamera(0); | ||
194 | camera->remove(); | ||
195 | camera = 0; | ||
196 | } | ||
195 | timeForThisScene = -1; | 197 | timeForThisScene = -1; |
196 | 198 | ||
197 | SKeyMap keyMap[9]; | 199 | SKeyMap keyMap[9]; |
@@ -219,11 +221,11 @@ void CDemo::switchToNextScene() | |||
219 | keyMap[8].KeyCode = KEY_KEY_J; | 221 | keyMap[8].KeyCode = KEY_KEY_J; |
220 | 222 | ||
221 | camera = sm->addCameraSceneNodeFPS(0, 100.0f, .4f, -1, keyMap, 9, false, 3.f); | 223 | camera = sm->addCameraSceneNodeFPS(0, 100.0f, .4f, -1, keyMap, 9, false, 3.f); |
222 | camera->setPosition(core::vector3df(108, 90, -140)); | 224 | camera->setPosition(core::vector3df(150, 170, -160)); |
223 | camera->setFarValue(5000.0f); | 225 | camera->setFarValue(5000.0f); |
224 | 226 | ||
225 | scene::ISceneNodeAnimatorCollisionResponse* collider = | 227 | scene::ISceneNodeAnimatorCollisionResponse* collider = |
226 | sm->createCollisionResponseAnimator(metaSelector, camera, core::vector3df(50, 100, 25), core::vector3df(0, quakeLevelMesh ? -10.f : 0.0f, 0), core::vector3df(0, 45, 0), 0.005f); | 228 | sm->createCollisionResponseAnimator(metaSelector, camera, core::vector3df(25, 100, 25), core::vector3df(0, quakeLevelMesh ? -10.f : 0.0f, 0), core::vector3df(0, 45, 0), 0.005f); |
227 | camera->addAnimator(collider); | 229 | camera->addAnimator(collider); |
228 | collider->drop(); | 230 | collider->drop(); |
229 | } | 231 | } |