Browse Source

Added mouse camera movement

Thomas Buck 11 years ago
parent
commit
964f379642
3 changed files with 25 additions and 10 deletions
  1. 2
    2
      data/OpenRaider.ini
  2. 21
    8
      src/Game.cpp
  3. 2
    0
      src/OpenRaider.cpp

+ 2
- 2
data/OpenRaider.ini View File

19
 set volume     0.5
19
 set volume     0.5
20
 
20
 
21
 # Input
21
 # Input
22
-set mouse_x    1.0
23
-set mouse_y    1.0
22
+set mouse_x    0.75
23
+set mouse_y    0.75
24
 
24
 
25
 bind menu     "escape"
25
 bind menu     "escape"
26
 bind console  "backquote"
26
 bind console  "backquote"

+ 21
- 8
src/Game.cpp View File

91
 
91
 
92
     mLoaded = false;
92
     mLoaded = false;
93
     mRender->setMode(Render::modeDisabled);
93
     mRender->setMode(Render::modeDisabled);
94
+
95
+    mRender->ClearWorld();
96
+    mWorld.destroy();
94
 }
97
 }
95
 
98
 
96
 int Game::loadLevel(const char *level) {
99
 int Game::loadLevel(const char *level) {
99
 
102
 
100
     mName = bufferString("%s", level);
103
     mName = bufferString("%s", level);
101
 
104
 
102
-    mRender->ClearWorld();
103
-    mWorld.destroy();
104
-
105
     // Load the level pak into TombRaider
105
     // Load the level pak into TombRaider
106
     gOpenRaider->mConsole->print("Loading %s", mName);
106
     gOpenRaider->mConsole->print("Loading %s", mName);
107
     int error = mTombRaider.Load(mName, percentCallbackTrampoline, this);
107
     int error = mTombRaider.Load(mName, percentCallbackTrampoline, this);
159
 
159
 
160
 void Game::handleMouseMotion(int xrel, int yrel) {
160
 void Game::handleMouseMotion(int xrel, int yrel) {
161
     if (mLoaded) {
161
     if (mLoaded) {
162
-
162
+        if (xrel > 0)
163
+            while (xrel-- > 0)
164
+                mCamera->command(CAMERA_ROTATE_RIGHT);
165
+        else if (xrel < 0)
166
+            while (xrel++ < 0)
167
+                mCamera->command(CAMERA_ROTATE_LEFT);
168
+
169
+        if (yrel > 0)
170
+            while (yrel-- > 0)
171
+                mCamera->command(CAMERA_ROTATE_UP);
172
+        else if (yrel < 0)
173
+            while (yrel++ < 0)
174
+                mCamera->command(CAMERA_ROTATE_DOWN);
175
+
176
+        if (mLara) {
177
+            mLara->angles[1] = mCamera->getRadianYaw();
178
+            mLara->angles[2] = mCamera->getRadianPitch();
179
+        }
163
     }
180
     }
164
 }
181
 }
165
 
182
 
166
 void Game::display() {
183
 void Game::display() {
167
-    if (mLoaded) {
168
-
169
-    }
170
-
171
     mRender->Display();
184
     mRender->Display();
172
 }
185
 }
173
 
186
 

+ 2
- 0
src/OpenRaider.cpp View File

667
     } else {
667
     } else {
668
         mMenu->handleKeyboard(key, pressed);
668
         mMenu->handleKeyboard(key, pressed);
669
     }
669
     }
670
+
671
+    mWindow->setMousegrab(!(mMenu->isVisible() || mConsole->isVisible()));
670
 }
672
 }
671
 
673
 
672
 void OpenRaider::handleText(char *text, bool notFinished) {
674
 void OpenRaider::handleText(char *text, bool notFinished) {

Loading…
Cancel
Save