123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- //---------------------------------------------------------------------------
- //
- // GameCam.h -- File contains the Game camera class definitions
- //
- // MechCommander 2
- //
- //---------------------------------------------------------------------------//
- // Copyright (C) Microsoft Corporation. All rights reserved. //
- //===========================================================================//
- #ifndef GAMECAM_H
- #define GAMECAM_H
- //---------------------------------------------------------------------------
- // Include Files
- #ifndef MCLIB_H
- #include "mclib.h"
- #endif
- #ifndef GAMEOBJ_H
- #include "gameobj.h"
- #endif
- #ifndef OBJMGR_H
- #include "objmgr.h"
- #endif
- //---------------------------------------------------------------------------
- class GameCamera : public Camera
- {
- //Data Members
- //-------------
- protected:
- GameObjectPtr targetObject;
- AppearancePtr compass;
- bool drawCompass;
-
- float lastShadowLightPitch;
-
- public:
-
- virtual void init (void)
- {
- Camera::init();
- targetObject = NULL;
- compass = NULL;
- lastShadowLightPitch = 0.0f;
- DWORD szData = sizeof(drawCompass);
- gos_LoadDataFromRegistry("CompassStatus", &drawCompass, &szData);
- //Check if data not in registry yet. Goober!
- if (!szData)
- drawCompass = true;
- }
-
- ~GameCamera (void)
- {
- destroy();
- }
- void destroy (void);
- virtual void render (void);
- virtual long activate (void);
-
- virtual long update (void);
- virtual void moveLeft(float amount)
- {
- targetObject = NULL;
- Camera::moveLeft(amount);
- }
-
- virtual void moveRight(float amount)
- {
- targetObject = NULL;
- Camera::moveRight(amount);
- }
-
- virtual void moveUp(float amount)
- {
- targetObject = NULL;
- Camera::moveUp(amount);
- }
-
- virtual void moveDown(float amount)
- {
- targetObject = NULL;
- Camera::moveDown(amount);
- }
-
- virtual void setTarget (GameObjectPtr target)
- {
- targetObject = target;
- if( target )
- {
- //float newRotation = targetObject->getRotation();
- //setCameraRotation(newRotation,newRotation);
- }
- }
- GameObject* getTarget()
- {
- return targetObject;
- }
-
- virtual void allTight (void)
- {
- long i=0;
- GameObjectPtr mvt = NULL;
- while (i<ObjectManager->getNumGoodMovers())
- {
- mvt = ObjectManager->getGoodMover(i);
- if (!mvt->isDestroyed() && !mvt->isDisabled())
- break;
- i++;
- }
- tiltNormal();
- setTarget(mvt);
- ZoomTight();
- }
- void toggleCompass()
- {
- drawCompass ^= true;
- //Save current Compass state to registry.
- // Saves us having to put it into the prefs files.
- DWORD szData = sizeof(drawCompass);
- gos_SaveDataToRegistry( "CompassStatus", &drawCompass, szData );
- }
- };
- //---------------------------------------------------------------------------
- extern CameraPtr eye; //Global Instance of the current camera
- //---------------------------------------------------------------------------
- #endif
- //---------------------------------------------------------------------------
- //
- // Edit log
- //
- //---------------------------------------------------------------------------
|