diff options
author | aap <aap@papnet.eu> | 2019-07-07 13:09:11 +0200 |
---|---|---|
committer | aap <aap@papnet.eu> | 2019-07-07 13:09:11 +0200 |
commit | 53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb (patch) | |
tree | fc65a6c40fa719f9d43be9e0e15be79c490135e0 /src/Camera.h | |
parent | finished CPhysical (diff) | |
download | re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar.gz re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar.bz2 re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar.lz re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar.xz re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar.zst re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.zip |
Diffstat (limited to 'src/Camera.h')
-rw-r--r-- | src/Camera.h | 476 |
1 files changed, 0 insertions, 476 deletions
diff --git a/src/Camera.h b/src/Camera.h deleted file mode 100644 index 84c3060b..00000000 --- a/src/Camera.h +++ /dev/null @@ -1,476 +0,0 @@ -#pragma once -#include "Placeable.h" - -class CEntity; -class CPed; -class CAutomobile; - -#define NUMBER_OF_VECTORS_FOR_AVERAGE 2 - -struct CCam -{ - enum - { - MODE_TOPDOWN1 = 1, - MODE_TOPDOWN2, - MODE_BEHINDCAR, - MODE_FOLLOWPED, - MODE_AIMING, - MODE_DEBUG, - MODE_SNIPER, - MODE_ROCKET, - MODE_MODELVIEW, - MODE_BILL, - MODE_SYPHON, - MODE_CIRCLE, - MODE_CHEESYZOOM, - MODE_WHEELCAM, - MODE_FIXED, - MODE_FIRSTPERSON, - MODE_FLYBY, - MODE_CAMONASTRING, - MODE_REACTIONCAM, - MODE_FOLLOWPEDWITHBINDING, - MODE_CHRISWITHBINDINGPLUSROTATION, - MODE_BEHINDBOAT, - MODE_PLAYERFALLENWATER, - MODE_CAMONTRAINROOF, - MODE_CAMRUNNINGSIDETRAIN, - MODE_BLOODONTHETRACKS, - MODE_IMTHEPASSENGERWOOWOO, - MODE_SYPHONCRIMINFRONT, - MODE_PEDSDEADBABY, - MODE_CUSHYPILLOWSARSE, - MODE_LOOKATCARS, - MODE_ARRESTCAMONE, - MODE_ARRESTCAMTWO, - MODE_M16FIRSTPERSON_34, - MODE_SPECIALFIXEDFORSYPHON, - MODE_FIGHT, - MODE_TOPDOWNPED, - MODE_SNIPER_RUN_AROUND, - MODE_ROCKET_RUN_AROUND, - MODE_FIRSTPERSONPEDONPC_40, - MODE_FIRSTPERSONPEDONPC_41, - MODE_FIRSTPERSONPEDONPC_42, - MODE_EDITOR, - MODE_M16FIRSTPERSON_44 - }; - - bool bBelowMinDist; //used for follow ped mode - bool bBehindPlayerDesired; //used for follow ped mode - bool m_bCamLookingAtVector; - bool m_bCollisionChecksOn; - bool m_bFixingBeta; //used for camera on a string - bool m_bTheHeightFixerVehicleIsATrain; - bool LookBehindCamWasInFront; - bool LookingBehind; - bool LookingLeft; // 32 - bool LookingRight; - bool ResetStatics; //for interpolation type stuff to work - bool Rotating; - - int16 Mode; // CameraMode - uint32 m_uiFinishTime; // 52 - - int m_iDoCollisionChecksOnFrameNum; - int m_iDoCollisionCheckEveryNumOfFrames; - int m_iFrameNumWereAt; // 64 - int m_iRunningVectorArrayPos; - int m_iRunningVectorCounter; - int DirectionWasLooking; - - float f_max_role_angle; //=DEGTORAD(5.0f); - float f_Roll; //used for adding a slight roll to the camera in the - float f_rollSpeed; - float m_fSyphonModeTargetZOffSet; - float m_fUnknownZOffSet; - float m_fAmountFractionObscured; - float m_fAlphaSpeedOverOneFrame; // 100 - float m_fBetaSpeedOverOneFrame; - float m_fBufferedTargetBeta; - float m_fBufferedTargetOrientation; - float m_fBufferedTargetOrientationSpeed; - float m_fCamBufferedHeight; - float m_fCamBufferedHeightSpeed; - float m_fCloseInPedHeightOffset; - float m_fCloseInPedHeightOffsetSpeed; // 132 - float m_fCloseInCarHeightOffset; - float m_fCloseInCarHeightOffsetSpeed; - float m_fDimensionOfHighestNearCar; - float m_fDistanceBeforeChanges; - float m_fFovSpeedOverOneFrame; - float m_fMinDistAwayFromCamWhenInterPolating; - float m_fPedBetweenCameraHeightOffset; - float m_fPlayerInFrontSyphonAngleOffSet; // 164 - float m_fRadiusForDead; - float m_fRealGroundDist; //used for follow ped mode - float m_fTargetBeta; - float m_fTimeElapsedFloat; - - float m_fTransitionBeta; - float m_fTrueBeta; - float m_fTrueAlpha; // 200 - float m_fInitialPlayerOrientation; //used for first person - - float Alpha; - float AlphaSpeed; - float FOV; - float FOVSpeed; - float Beta; - float BetaSpeed; - float Distance; // 232 - float DistanceSpeed; - float CA_MIN_DISTANCE; - float CA_MAX_DISTANCE; - float SpeedVar; - - // ped onfoot zoom distance - float m_fTargetZoomGroundOne; - float m_fTargetZoomGroundTwo; // 256 - float m_fTargetZoomGroundThree; - // ped onfoot alpha angle offset - float m_fTargetZoomOneZExtra; - float m_fTargetZoomTwoZExtra; - float m_fTargetZoomThreeZExtra; - - float m_fTargetZoomZCloseIn; - float m_fMinRealGroundDist; - float m_fTargetCloseInDist; - - CVector m_cvecTargetCoorsForFudgeInter; // 360 - CVector m_cvecCamFixedModeVector; // 372 - CVector m_cvecCamFixedModeSource; // 384 - CVector m_cvecCamFixedModeUpOffSet; // 396 - CVector m_vecLastAboveWaterCamPosition; //408 //helper for when the player has gone under the water - CVector m_vecBufferedPlayerBodyOffset; // 420 - - // The three vectors that determine this camera for this frame - CVector Front; // 432 // Direction of looking in - CVector Source; // Coors in world space - CVector SourceBeforeLookBehind; - CVector Up; // Just that - CVector m_arrPreviousVectors[NUMBER_OF_VECTORS_FOR_AVERAGE]; // used to average stuff - CEntity *CamTargetEntity; - - float m_fCameraDistance; - float m_fIdealAlpha; - float m_fPlayerVelocity; - CAutomobile *m_pLastCarEntered; // So interpolation works - CPed *m_pLastPedLookedAt;// So interpolation works - bool m_bFirstPersonRunAboutActive; - - - void GetVectorsReadyForRW(void); - CVector DoAverageOnVector(const CVector &vec); - float GetPedBetaAngleForClearView(const CVector &Target, float Dist, float BetaOffset, bool checkBuildings, bool checkVehicles, bool checkPeds, bool checkObjects, bool checkDummies); - void WorkOutCamHeightWeeCar(CVector &TargetCoors, float TargetOrientation); - void WorkOutCamHeight(const CVector &TargetCoors, float TargetOrientation, float TargetHeight); - bool RotCamIfInFrontCar(CVector &TargetCoors, float TargetOrientation); - bool FixCamIfObscured(CVector &TargetCoors, float TargetHeight, float TargetOrientation); - void Cam_On_A_String_Unobscured(const CVector &TargetCoors, float BaseDist); - void FixCamWhenObscuredByVehicle(const CVector &TargetCoors); - bool Using3rdPersonMouseCam(); - bool GetWeaponFirstPersonOn(); - - void Process_Debug(float *vec, float a, float b, float c); - void Process_FollowPed(const CVector &CameraTarget, float TargetOrientation, float, float); - void Process_BehindCar(const CVector &CameraTarget, float TargetOrientation, float, float); - void Process_Cam_On_A_String(const CVector &CameraTarget, float TargetOrientation, float, float); -}; -static_assert(sizeof(CCam) == 0x1A4, "CCam: wrong size"); -static_assert(offsetof(CCam, Alpha) == 0xA8, "CCam: error"); -static_assert(offsetof(CCam, Front) == 0x140, "CCam: error"); - -struct CCamPathSplines -{ - float m_arr_PathData[800]; -}; - -struct CTrainCamNode -{ - CVector m_cvecCamPosition; - CVector m_cvecPointToLookAt; - CVector m_cvecMinPointInRange; - CVector m_cvecMaxPointInRange; - float m_fDesiredFOV; - float m_fNearClip; -}; - -struct CQueuedMode -{ - int16 Mode; - float Duration; - int16 MinZoom; - int16 MaxZoom; -}; - -enum -{ - LOOKING_BEHIND, - LOOKING_LEFT, - LOOKING_RIGHT, - LOOKING_FORWARD, -}; - -enum -{ - // TODO: figure out - FADE_0, - FADE_1, // mid fade - FADE_2, - - FADE_OUT = 0, - FADE_IN, -}; - -enum -{ - MBLUR_NONE, - MBLUR_SNIPER, - MBLUR_NORMAL, - MBLUR_INTRO1, // green camera - MBLUR_INTRO2, // unused - MBLUR_INTRO3, // bank scene - MBLUR_INTRO4, // jail break scene - MBLUR_INTRO5, // explosion - MBLUR_INTRO6, // player shot - MBLUR_UNUSED, // pinkish -}; - -struct CCamera : public CPlaceable -{ - bool m_bAboveGroundTrainNodesLoaded; - bool m_bBelowGroundTrainNodesLoaded; - bool m_bCamDirectlyBehind; - bool m_bCamDirectlyInFront; - bool m_bCameraJustRestored; - bool m_bcutsceneFinished; - bool m_bCullZoneChecksOn; - bool m_bFirstPersonBeingUsed; - bool m_bJustJumpedOutOf1stPersonBecauseOfTarget; - bool m_bIdleOn; - bool m_bInATunnelAndABigVehicle; - bool m_bInitialNodeFound; - bool m_bInitialNoNodeStaticsSet; - bool m_bIgnoreFadingStuffForMusic; - bool m_bPlayerIsInGarage; - bool m_bJustCameOutOfGarage; - bool m_bJustInitalised; - bool m_bJust_Switched; - bool m_bLookingAtPlayer; - bool m_bLookingAtVector; - bool m_bMoveCamToAvoidGeom; - bool m_bObbeCinematicPedCamOn; - bool m_bObbeCinematicCarCamOn; - bool m_bRestoreByJumpCut; - bool m_bUseNearClipScript; - bool m_bStartInterScript; - bool m_bStartingSpline; - bool m_bTargetJustBeenOnTrain; - bool m_bTargetJustCameOffTrain; - bool m_bUseSpecialFovTrain; - bool m_bUseTransitionBeta; - bool m_bUseScriptZoomValuePed; - bool m_bUseScriptZoomValueCar; - bool m_bWaitForInterpolToFinish; - bool m_bItsOkToLookJustAtThePlayer; - bool m_bWantsToSwitchWidescreenOff; - bool m_WideScreenOn; - bool m_1rstPersonRunCloseToAWall; - bool m_bHeadBob; - bool m_bFailedCullZoneTestPreviously; - -bool m_FadeTargetIsSplashScreen; - - bool WorldViewerBeingUsed; - uint8 ActiveCam; - uint32 m_uiCamShakeStart; - uint32 m_uiFirstPersonCamLastInputTime; -// where are those? -//bool m_bVehicleSuspenHigh; -//bool m_bEnable1rstPersonCamCntrlsScript; -//bool m_bAllow1rstPersonWeaponsCamera; - - uint32 m_uiLongestTimeInMill; - uint32 m_uiNumberOfTrainCamNodes; - uint8 m_uiTransitionJUSTStarted; - uint8 m_uiTransitionState; // 0:one mode 1:transition - - uint32 m_uiTimeLastChange; - uint32 m_uiTimeWeEnteredIdle; - uint32 m_uiTimeTransitionStart; - uint32 m_uiTransitionDuration; - int m_BlurBlue; - int m_BlurGreen; - int m_BlurRed; - int m_BlurType; - -uint32 unknown; - int m_iWorkOutSpeedThisNumFrames; - int m_iNumFramesSoFar; - - - int m_iCurrentTrainCamNode; - int m_motionBlur; - int m_imotionBlurAddAlpha; - int m_iCheckCullZoneThisNumFrames; - int m_iZoneCullFrameNumWereAt; - int WhoIsInControlOfTheCamera; - - float CamFrontXNorm; - float CamFrontYNorm; - float CarZoomIndicator; - float CarZoomValue; - float CarZoomValueSmooth; - - float DistanceToWater; - float FOVDuringInter; - float LODDistMultiplier; - float GenerationDistMultiplier; - float m_fAlphaSpeedAtStartInter; - float m_fAlphaWhenInterPol; - float m_fAlphaDuringInterPol; - float m_fBetaDuringInterPol; - float m_fBetaSpeedAtStartInter; - float m_fBetaWhenInterPol; - float m_fFOVWhenInterPol; - float m_fFOVSpeedAtStartInter; - float m_fStartingBetaForInterPol; - float m_fStartingAlphaForInterPol; - float m_PedOrientForBehindOrInFront; - float m_CameraAverageSpeed; - float m_CameraSpeedSoFar; - float m_fCamShakeForce; - float m_fCarZoomValueScript; - float m_fFovForTrain; - float m_fFOV_Wide_Screen; - float m_fNearClipScript; - float m_fOldBetaDiff; - float m_fPedZoomValue; - - float m_fPedZoomValueScript; - float m_fPedZoomValueSmooth; - float m_fPositionAlongSpline; - float m_ScreenReductionPercentage; - float m_ScreenReductionSpeed; - float m_AlphaForPlayerAnim1rstPerson; - float Orientation; - float PedZoomIndicator; - float PlayerExhaustion; - float SoundDistUp, SoundDistLeft, SoundDistRight; - float SoundDistUpAsRead, SoundDistLeftAsRead, SoundDistRightAsRead; - float SoundDistUpAsReadOld, SoundDistLeftAsReadOld, SoundDistRightAsReadOld; - float m_fWideScreenReductionAmount; - float m_fStartingFOVForInterPol; - - // not static yet - float m_fMouseAccelHorzntl;// acceleration multiplier for 1st person controls - float m_fMouseAccelVertical;// acceleration multiplier for 1st person controls - float m_f3rdPersonCHairMultX; - float m_f3rdPersonCHairMultY; - - - CCam Cams[3]; - void *pToGarageWeAreIn; - void *pToGarageWeAreInForHackAvoidFirstPerson; - CQueuedMode m_PlayerMode; - CQueuedMode PlayerWeaponMode; - CVector m_PreviousCameraPosition; - CVector m_RealPreviousCameraPosition; - CVector m_cvecAimingTargetCoors; - CVector m_vecFixedModeVector; - - // one of those has to go - CVector m_vecFixedModeSource; - CVector m_vecFixedModeUpOffSet; -// CVector m_vecCutSceneOffset; - CVector m_cvecStartingSourceForInterPol; - CVector m_cvecStartingTargetForInterPol; - CVector m_cvecStartingUpForInterPol; - CVector m_cvecSourceSpeedAtStartInter; - CVector m_cvecTargetSpeedAtStartInter; - CVector m_cvecUpSpeedAtStartInter; - CVector m_vecSourceWhenInterPol; - CVector m_vecTargetWhenInterPol; - CVector m_vecUpWhenInterPol; - CVector m_vecClearGeometryVec; - - CVector m_vecGameCamPos; - CVector SourceDuringInter; - CVector TargetDuringInter; - CVector UpDuringInter; - RwCamera *m_pRwCamera; - CEntity *pTargetEntity; - CCamPathSplines m_arrPathArray[4]; - CTrainCamNode m_arrTrainCamNode[800]; - CMatrix m_cameraMatrix; - bool m_bGarageFixedCamPositionSet; - bool m_vecDoingSpecialInterPolation; - bool m_bScriptParametersSetForInterPol; - bool m_bFading; - bool m_bMusicFading; - CMatrix m_viewMatrix; - CVector m_vecFrustumNormals[4]; - CVector m_vecOldSourceForInter; - CVector m_vecOldFrontForInter; - CVector m_vecOldUpForInter; - - float m_vecOldFOVForInter; - float m_fFLOATingFade; - float m_fFLOATingFadeMusic; - float m_fTimeToFadeOut; - float m_fTimeToFadeMusic; - float m_fFractionInterToStopMovingTarget; - float m_fFractionInterToStopCatchUpTarget; - float m_fGaitSwayBuffer; - float m_fScriptPercentageInterToStopMoving; - float m_fScriptPercentageInterToCatchUp; - -uint32 m_fScriptTimeForInterPolation; - - -int16 m_iFadingDirection; -int m_iModeObbeCamIsInForCar; - int16 m_iModeToGoTo; - int16 m_iMusicFadingDirection; - int16 m_iTypeOfSwitch; - - uint32 m_uiFadeTimeStarted; - uint32 m_uiFadeTimeStartedMusic; - - static bool &m_bUseMouse3rdPerson; - - CMatrix &GetCameraMatrix(void) { return m_cameraMatrix; } - CVector &GetGameCamPosition(void) { return m_vecGameCamPos; } - bool IsPointVisible(const CVector ¢er, const CMatrix *mat); - bool IsSphereVisible(const CVector ¢er, float radius, const CMatrix *mat); - bool IsBoxVisible(RwV3d *box, const CMatrix *mat); - int GetLookDirection(void); - - void Fade(float timeout, int16 direction); - int GetScreenFadeStatus(void); - void ProcessFade(void); - void ProcessMusicFade(void); - void SetFadeColour(uint8 r, uint8 g, uint8 b); - - void SetMotionBlur(int r, int g, int b, int a, int type); - void SetMotionBlurAlpha(int a); - void RenderMotionBlur(void); - void CalculateDerivedValues(void); - - void DrawBordersForWideScreen(void); - void Restore(void); - void SetWidescreenOff(void); - - void dtor(void) { this->CCamera::~CCamera(); } -}; -static_assert(offsetof(CCamera, m_WideScreenOn) == 0x70, "CCamera: error"); -static_assert(offsetof(CCamera, WorldViewerBeingUsed) == 0x75, "CCamera: error"); -static_assert(offsetof(CCamera, m_uiNumberOfTrainCamNodes) == 0x84, "CCamera: error"); -static_assert(offsetof(CCamera, m_uiTransitionState) == 0x89, "CCamera: error"); -static_assert(offsetof(CCamera, m_uiTimeTransitionStart) == 0x94, "CCamera: error"); -static_assert(offsetof(CCamera, m_BlurBlue) == 0x9C, "CCamera: error"); -static_assert(offsetof(CCamera, Cams) == 0x1A4, "CCamera: error"); -static_assert(sizeof(CCamera) == 0xE9D8, "CCamera: wrong size"); -extern CCamera &TheCamera; |