Game cam and eye banking, control schemes

- ShapeBaseData has two new properties.  cameraCanBank indicates that
the game object may bank its eye/camera, if supported by the object.
mountedImagesBank indicates that mounted images should bank with the
eye/camera in first person view.  Both default to false.
- Player supports 1st person eye and 3rd person camera banking when
making use of the new ExtendedMove class.
- Camera class supports banking when making use of the new ExtendedMove
class.
- GameConnection now has an idea of a control scheme.  This determines
how game objects should respond to input events.  A control scheme may
be set by either the server or client.  Current control schemes are:
-- Absolute rotation (likely though the ExtendedMove class)
-- Add relative yaw (from mouse or gamepad) to absolute rotation.
-- Add relative pitch (from mouse or gamepad) to absolute rotation.
- Player class supports the new control schemes when using the
ExtendedMove class.
- Camera class supports the new control scheme when using the
ExtendedMove class.
This commit is contained in:
DavidWyand-GG 2013-04-09 16:14:19 -04:00
parent 2805ec81c8
commit 660250cccf
10 changed files with 570 additions and 127 deletions

View file

@ -578,6 +578,12 @@ public:
F32 cameraMaxFov; ///< Max vertical FOV allowed in degrees.
/// @}
/// @name Camera Misc
/// @{
bool cameraCanBank; ///< If the derrived class supports it, allow the camera to bank
bool mountedImagesBank; ///< Do mounted images bank along with the camera?
/// @}
/// @name Data initialized on preload
/// @{
@ -1618,7 +1624,7 @@ public:
/// Returns the eye transform of this shape without including mounted images, IE the eyes of a player
/// @param mat Eye transform (out)
virtual void getEyeBaseTransform(MatrixF* mat);
virtual void getEyeBaseTransform(MatrixF* mat, bool includeBank);
/// The retraction transform is the muzzle transform in world space.
///
@ -1671,7 +1677,7 @@ public:
virtual void getRenderMuzzleVector(U32 imageSlot,VectorF* vec);
virtual void getRenderMuzzlePoint(U32 imageSlot,Point3F* pos);
virtual void getRenderEyeTransform(MatrixF* mat);
virtual void getRenderEyeBaseTransform(MatrixF* mat);
virtual void getRenderEyeBaseTransform(MatrixF* mat, bool includeBank);
/// @}