Преглед изворни кода

Camera sensitivity stored in OpenRaider

Thomas Buck пре 10 година
родитељ
комит
df44fe47d7
4 измењених фајлова са 14 додато и 30 уклоњено
  1. 0
    14
      include/Camera.h
  2. 3
    0
      include/OpenRaider.h
  3. 5
    14
      src/Camera.cpp
  4. 6
    2
      src/OpenRaider.cpp

+ 0
- 14
include/Camera.h Прегледај датотеку

@@ -130,18 +130,6 @@ public:
130 130
     void reset();
131 131
 
132 132
     /*!
133
-     * \brief Sets the X rotation delta
134
-     * \param angle thetas rotation delta in degrees
135
-     */
136
-    void setSensitivityX(float angle);
137
-
138
-    /*!
139
-     * \brief Sets the Y rotation delta
140
-     * \param angle thetas rotation delta in degrees
141
-     */
142
-    void setSensitivityY(float angle);
143
-
144
-    /*!
145 133
      * \brief Sends interactive command to camera
146 134
      * \param cmd valid camera command
147 135
      */
@@ -185,9 +173,7 @@ private:
185 173
     vec_t mSide[4];               //!< Side vector
186 174
     vec_t mViewDistance;          //!< Distance from target
187 175
     vec_t mTranslateDelta;        //!< Step size to move
188
-    vec_t mRotateDelta;           //!< Radians to rotate Y
189 176
     vec_t mTheta;                 //!< View angle Y
190
-    vec_t mRotateDelta2;          //!< Radians to rotate Z
191 177
     vec_t mTheta2;                //!< View angle Z
192 178
 };
193 179
 

+ 3
- 0
include/OpenRaider.h Прегледај датотеку

@@ -64,6 +64,9 @@ public:
64 64
     bool mMapListFilled;
65 65
     std::vector<char *> mMapList;
66 66
 
67
+    float mCameraRotationDeltaX;
68
+    float mCameraRotationDeltaY;
69
+
67 70
 private:
68 71
 
69 72
     int command(const char *command, std::vector<char *> *args);

+ 5
- 14
src/Camera.cpp Прегледај датотеку

@@ -8,14 +8,13 @@
8 8
 #include <stdio.h>
9 9
 #include <math.h>
10 10
 
11
+#include "main.h"
11 12
 #include "Camera.h"
12 13
 
13 14
 Camera::Camera() {
14 15
     mFlags = 0;
15 16
     mViewDistance = 14.0f;
16 17
     mTranslateDelta = 256.0f;
17
-    mRotateDelta = OR_DEG_TO_RAD(15.0f);
18
-    mRotateDelta2 = OR_DEG_TO_RAD(5.0f);
19 18
     mFlags &= Camera_FlyMode;
20 19
     reset();
21 20
 }
@@ -146,14 +145,6 @@ void Camera::reset() {
146 145
     translate(0.0f, 0.0f, 0.0f);
147 146
 }
148 147
 
149
-void Camera::setSensitivityY(float angle) {
150
-    mRotateDelta2 = OR_DEG_TO_RAD(angle);
151
-}
152
-
153
-void Camera::setSensitivityX(float angle) {
154
-    mRotateDelta = OR_DEG_TO_RAD(angle);
155
-}
156
-
157 148
 void Camera::command(enum camera_command cmd) {
158 149
     switch (cmd) {
159 150
         case CAMERA_MOVE_FORWARD:
@@ -180,22 +171,22 @@ void Camera::command(enum camera_command cmd) {
180 171
             break;
181 172
         case CAMERA_ROTATE_UP:
182 173
             if (mTheta2 < (M_PI / 2)) {
183
-                mTheta2 += mRotateDelta2;
174
+                mTheta2 += gOpenRaider->mCameraRotationDeltaY;
184 175
                 rotate(mTheta2, 1.0f, 0.0f, 0.0f);
185 176
             }
186 177
             break;
187 178
         case CAMERA_ROTATE_DOWN:
188 179
             if (mTheta2 > -(M_PI / 2)) {
189
-                mTheta2 -= mRotateDelta2;
180
+                mTheta2 -= gOpenRaider->mCameraRotationDeltaY;
190 181
                 rotate(mTheta2, 1.0f, 0.0f, 0.0f);
191 182
             }
192 183
             break;
193 184
         case CAMERA_ROTATE_RIGHT:
194
-            mTheta += mRotateDelta;
185
+            mTheta += gOpenRaider->mCameraRotationDeltaX;
195 186
             rotate(mTheta, 0.0f, 1.0f, 0.0f);
196 187
             break;
197 188
         case CAMERA_ROTATE_LEFT:
198
-            mTheta -= mRotateDelta;
189
+            mTheta -= gOpenRaider->mCameraRotationDeltaX;
199 190
             rotate(mTheta, 0.0f, 1.0f, 0.0f);
200 191
             break;
201 192
         case CAMERA_MOVE_UP:

+ 6
- 2
src/OpenRaider.cpp Прегледај датотеку

@@ -15,6 +15,7 @@
15 15
 #include "config.h"
16 16
 #include "Console.h"
17 17
 #include "Game.h"
18
+#include "math/math.h"
18 19
 #include "Menu.h"
19 20
 #include "Sound.h"
20 21
 #include "TombRaider.h"
@@ -42,6 +43,9 @@ OpenRaider::OpenRaider() {
42 43
 
43 44
     for (int i = 0; i < ActionEventCount; i++)
44 45
         keyBindings[i] = unknown;
46
+
47
+    mCameraRotationDeltaX = OR_DEG_TO_RAD(1.0f);
48
+    mCameraRotationDeltaY = OR_DEG_TO_RAD(1.0f);
45 49
 }
46 50
 
47 51
 OpenRaider::~OpenRaider() {
@@ -324,14 +328,14 @@ int OpenRaider::set(const char *var, const char *value) {
324 328
             mConsole->print("set-mouse_x-Error: Invalid value (%s)", value);
325 329
             return -6;
326 330
         }
327
-        //! \todo mouse support
331
+        mCameraRotationDeltaX = OR_DEG_TO_RAD(sense);
328 332
     } else if (strcmp(var, "mouse_y") == 0) {
329 333
         float sense = 1.0f;
330 334
         if (sscanf(value, "%f", &sense) != 1) {
331 335
             mConsole->print("set-mouse_y-Error: Invalid value (%s)", value);
332 336
             return -7;
333 337
         }
334
-        //! \todo mouse support
338
+        mCameraRotationDeltaY = OR_DEG_TO_RAD(sense);
335 339
     } else if (strcmp(var, "basedir") == 0) {
336 340
         CHANGE_DIR_WITH_EXPANSION(mBaseDir);
337 341
     } else if (strcmp(var, "pakdir") == 0) {

Loading…
Откажи
Сачувај