diff options
-rw-r--r-- | src/animation/AnimBlendNode.cpp | 2 | ||||
-rw-r--r-- | src/core/Camera.cpp | 10 | ||||
-rw-r--r-- | src/core/FileLoader.cpp | 2 | ||||
-rw-r--r-- | src/core/Pad.cpp | 2 | ||||
-rw-r--r-- | src/core/Pad.h | 1 | ||||
-rw-r--r-- | src/core/common.h | 2 | ||||
-rw-r--r-- | src/peds/Ped.cpp | 6 | ||||
-rw-r--r-- | src/render/2dEffect.h | 6 | ||||
-rw-r--r-- | src/render/Draw.cpp | 6 | ||||
-rw-r--r-- | src/render/Draw.h | 12 |
10 files changed, 28 insertions, 21 deletions
diff --git a/src/animation/AnimBlendNode.cpp b/src/animation/AnimBlendNode.cpp index 4ef7d1c0..c54b5718 100644 --- a/src/animation/AnimBlendNode.cpp +++ b/src/animation/AnimBlendNode.cpp @@ -109,7 +109,7 @@ CAnimBlendNode::FindKeyFrame(float t) } frameA = 0; } - frameB = frameA; + frameB = frameA++; } remainingTime = sequence->GetKeyFrame(frameA)->deltaTime - t; diff --git a/src/core/Camera.cpp b/src/core/Camera.cpp index b1592d93..e67c68d2 100644 --- a/src/core/Camera.cpp +++ b/src/core/Camera.cpp @@ -2292,6 +2292,10 @@ CCamera::StartTransition(int16 newMode) Cams[ActiveCam].BetaSpeed = 0.0f; break; + case CCam::MODE_BEHINDBOAT: + Cams[ActiveCam].BetaSpeed = 0.0f; + break; + case CCam::MODE_FOLLOWPED: // Getting out of vehicle normally betaOffset = DEGTORAD(55.0f); @@ -2386,10 +2390,6 @@ CCamera::StartTransition(int16 newMode) Cams[ActiveCam].m_fTransitionBeta = CGeneral::GetATanOfXY(Cams[ActiveCam].Front.x, Cams[ActiveCam].Front.y); break; - case CCam::MODE_BEHINDBOAT: - Cams[ActiveCam].BetaSpeed = 0.0f; - break; - case CCam::MODE_PED_DEAD_BABY: Cams[ActiveCam].Alpha = DEGTORAD(15.0f); break; @@ -3994,7 +3994,7 @@ CCamera::CalculateDerivedValues(void) { m_cameraMatrix = Invert(m_matrix); - float hfov = DEGTORAD(CDraw::GetFOV()/2.0f); + float hfov = DEGTORAD(CDraw::GetScaledFOV()/2.0f); float c = cos(hfov); float s = sin(hfov); diff --git a/src/core/FileLoader.cpp b/src/core/FileLoader.cpp index 1463b4a5..6d810cf0 100644 --- a/src/core/FileLoader.cpp +++ b/src/core/FileLoader.cpp @@ -1032,7 +1032,7 @@ CFileLoader::Load2dEffect(const char *line) &effect->attractor.dir.y, &effect->attractor.dir.z, &probability); - effect->attractor.flags = flags; + effect->attractor.type = flags; effect->attractor.probability = probability; break; case EFFECT_PED_ATTRACTOR: diff --git a/src/core/Pad.cpp b/src/core/Pad.cpp index 67ae0c2f..56c05c71 100644 --- a/src/core/Pad.cpp +++ b/src/core/Pad.cpp @@ -1610,7 +1610,7 @@ int16 CPad::GetSteeringUpDown(void) case 2: { int16 axis = NewState.LeftStickY; - int16 dpad = (NewState.DPadUp - NewState.DPadDown) / 2; + int16 dpad = (NewState.DPadDown - NewState.DPadUp) / 2; if ( Abs(axis) > Abs(dpad) ) return axis; diff --git a/src/core/Pad.h b/src/core/Pad.h index d0623a1e..2f50a164 100644 --- a/src/core/Pad.h +++ b/src/core/Pad.h @@ -445,6 +445,7 @@ public: bool GetLeftShoulder2(void) { return !!NewState.LeftShoulder2; } bool GetRightShoulder1(void) { return !!NewState.RightShoulder1; } bool GetRightShoulder2(void) { return !!NewState.RightShoulder2; } + bool GetStart() { return !!NewState.Start; } int16 GetLeftStickX(void) { return NewState.LeftStickX; } int16 GetLeftStickY(void) { return NewState.LeftStickY; } int16 GetRightStickX(void) { return NewState.RightStickX; } diff --git a/src/core/common.h b/src/core/common.h index eb43d8d5..d7c9a1f7 100644 --- a/src/core/common.h +++ b/src/core/common.h @@ -111,7 +111,7 @@ inline uint32 ldb(uint32 p, uint32 s, uint32 w) #define SCREEN_WIDTH ((float)RsGlobal.width) #define SCREEN_HEIGHT ((float)RsGlobal.height) #define SCREEN_ASPECT_RATIO (CDraw::GetAspectRatio()) -#define SCREEN_VIEWWINDOW (Tan(DEGTORAD(CDraw::GetFOV() * 0.5f))) +#define SCREEN_VIEWWINDOW (Tan(DEGTORAD(CDraw::GetScaledFOV() * 0.5f))) // This scales from PS2 pixel coordinates to the real resolution #define SCREEN_STRETCH_X(a) ((a) * (float) SCREEN_WIDTH / DEFAULT_SCREEN_WIDTH) diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index c559de1b..2fe2ce02 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -9844,11 +9844,11 @@ CPed::LookForInterestingNodes(void) return false; } - switch (effect->attractor.flags) { - case ATTRACTORFLAG_ICECREAM: + switch (effect->attractor.type) { + case ATTRACTORTYPE_ICECREAM: SetInvestigateEvent(EVENT_ICECREAM, CVector2D(effectPos), 0.1f, 15000, angleToFace); break; - case ATTRACTORFLAG_STARE: + case ATTRACTORTYPE_STARE: SetInvestigateEvent(EVENT_SHOPSTALL, CVector2D(effectPos), 1.0f, CGeneral::GetRandomNumberInRange(8000, 10 * effect->attractor.probability + 8500), angleToFace); diff --git a/src/render/2dEffect.h b/src/render/2dEffect.h index 504824c5..022cabcc 100644 --- a/src/render/2dEffect.h +++ b/src/render/2dEffect.h @@ -27,8 +27,8 @@ enum { }; enum { - ATTRACTORFLAG_ICECREAM, - ATTRACTORFLAG_STARE + ATTRACTORTYPE_ICECREAM, + ATTRACTORTYPE_STARE }; enum { @@ -64,7 +64,7 @@ public: }; struct Attractor { CVector dir; - uint8 flags; + int8 type; uint8 probability; }; struct PedAttractor { diff --git a/src/render/Draw.cpp b/src/render/Draw.cpp index e2dfc8d9..3f7d89c7 100644 --- a/src/render/Draw.cpp +++ b/src/render/Draw.cpp @@ -6,6 +6,7 @@ #ifdef ASPECT_RATIO_SCALE float CDraw::ms_fAspectRatio = DEFAULT_ASPECT_RATIO; +float CDraw::ms_fScaledFOV = 45.0f; #endif float CDraw::ms_fNearClipZ; @@ -60,8 +61,7 @@ void CDraw::SetFOV(float fov) { #ifdef ASPECT_RATIO_SCALE - ms_fFOV = ConvertFOV(fov); -#else - ms_fFOV = fov; + ms_fScaledFOV = ConvertFOV(fov); #endif + ms_fFOV = fov; } diff --git a/src/render/Draw.h b/src/render/Draw.h index 46e85e49..2976dc34 100644 --- a/src/render/Draw.h +++ b/src/render/Draw.h @@ -16,14 +16,15 @@ private: static float ms_fNearClipZ; static float ms_fFarClipZ; static float ms_fFOV; -public: - static float ms_fLODDistance; // set but unused? - #ifdef ASPECT_RATIO_SCALE // we use this variable to scale a lot of 2D elements // so better cache it static float ms_fAspectRatio; + // similar thing for 3D rendering + static float ms_fScaledFOV; #endif +public: + static float ms_fLODDistance; // set but unused? static uint8 FadeValue; static uint8 FadeRed; @@ -37,6 +38,11 @@ public: static void SetFOV(float fov); static float GetFOV(void) { return ms_fFOV; } +#ifdef ASPECT_RATIO_SCALE + static float GetScaledFOV(void) { return ms_fScaledFOV; } +#else + static float GetScaledFOV(void) { return ms_fFOV; } +#endif static float CalculateAspectRatio(void); #ifdef ASPECT_RATIO_SCALE |