Bladeren bron

Camera sensitivity stored in OpenRaider

Thomas Buck 10 jaren geleden
bovenliggende
commit
df44fe47d7
4 gewijzigde bestanden met toevoegingen van 14 en 30 verwijderingen
  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 Bestand weergeven

130
     void reset();
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
      * \brief Sends interactive command to camera
133
      * \brief Sends interactive command to camera
146
      * \param cmd valid camera command
134
      * \param cmd valid camera command
147
      */
135
      */
185
     vec_t mSide[4];               //!< Side vector
173
     vec_t mSide[4];               //!< Side vector
186
     vec_t mViewDistance;          //!< Distance from target
174
     vec_t mViewDistance;          //!< Distance from target
187
     vec_t mTranslateDelta;        //!< Step size to move
175
     vec_t mTranslateDelta;        //!< Step size to move
188
-    vec_t mRotateDelta;           //!< Radians to rotate Y
189
     vec_t mTheta;                 //!< View angle Y
176
     vec_t mTheta;                 //!< View angle Y
190
-    vec_t mRotateDelta2;          //!< Radians to rotate Z
191
     vec_t mTheta2;                //!< View angle Z
177
     vec_t mTheta2;                //!< View angle Z
192
 };
178
 };
193
 
179
 

+ 3
- 0
include/OpenRaider.h Bestand weergeven

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

+ 5
- 14
src/Camera.cpp Bestand weergeven

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

+ 6
- 2
src/OpenRaider.cpp Bestand weergeven

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

Laden…
Annuleren
Opslaan