summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraap <aap@papnet.eu>2020-12-28 21:58:21 +0100
committeraap <aap@papnet.eu>2020-12-28 21:58:21 +0100
commitc93fb5e443f9afe082abf708918fcd3db807596d (patch)
tree5c53034b5581a63aee7d9e2e48f461590e2a8051
parentmultiple instances sema fix (diff)
downloadre3-c93fb5e443f9afe082abf708918fcd3db807596d.tar
re3-c93fb5e443f9afe082abf708918fcd3db807596d.tar.gz
re3-c93fb5e443f9afe082abf708918fcd3db807596d.tar.bz2
re3-c93fb5e443f9afe082abf708918fcd3db807596d.tar.lz
re3-c93fb5e443f9afe082abf708918fcd3db807596d.tar.xz
re3-c93fb5e443f9afe082abf708918fcd3db807596d.tar.zst
re3-c93fb5e443f9afe082abf708918fcd3db807596d.zip
-rw-r--r--src/extras/screendroplets.cpp4
-rw-r--r--src/vehicles/Vehicle.cpp12
2 files changed, 15 insertions, 1 deletions
diff --git a/src/extras/screendroplets.cpp b/src/extras/screendroplets.cpp
index 9ac60d4f..6ea72f09 100644
--- a/src/extras/screendroplets.cpp
+++ b/src/extras/screendroplets.cpp
@@ -12,6 +12,7 @@
#include "RwHelper.h"
#include "Timer.h"
#include "Camera.h"
+#include "World.h"
#include "ZoneCull.h"
#include "Weather.h"
#include "ParticleObject.h"
@@ -416,7 +417,8 @@ ScreenDroplets::ProcessCameraMovement(void)
uint16 mode = TheCamera.Cams[TheCamera.ActiveCam].Mode;
bool isTopDown = mode == CCam::MODE_TOPDOWN || mode == CCam::MODE_GTACLASSIC || mode == CCam::MODE_TOP_DOWN_PED;
- bool isLookingInDirection = CPad::GetPad(0)->GetLookBehindForCar() || CPad::GetPad(0)->GetLookLeft() || CPad::GetPad(0)->GetLookRight();
+ bool isLookingInDirection = FindPlayerVehicle() && mode == CCam::MODE_1STPERSON &&
+ (CPad::GetPad(0)->GetLookBehindForCar() || CPad::GetPad(0)->GetLookLeft() || CPad::GetPad(0)->GetLookRight());
ms_enabled = !isTopDown && !isLookingInDirection;
ms_movingEnabled = !isTopDown && !isLookingInDirection;
diff --git a/src/vehicles/Vehicle.cpp b/src/vehicles/Vehicle.cpp
index 56de3562..3beacad5 100644
--- a/src/vehicles/Vehicle.cpp
+++ b/src/vehicles/Vehicle.cpp
@@ -877,6 +877,7 @@ CVehicle::ProcessWheel(CVector &wheelFwd, CVector &wheelRight, CVector &wheelCon
}
if(fwd != 0.0f || right != 0.0f){
+#if 1
CVector totalSpeed = fwd*wheelFwd + right*wheelRight;
CVector turnDirection = totalSpeed;
@@ -910,6 +911,17 @@ CVehicle::ProcessWheel(CVector &wheelFwd, CVector &wheelRight, CVector &wheelCon
ApplyMoveForce(impulse * direction);
ApplyTurnForce(turnImpulse * direction, wheelContactPoint);
+#else
+ CVector direction = fwd*wheelFwd + right*wheelRight;
+ float speed = direction.Magnitude();
+ direction.Normalise();
+
+ float impulse = speed*m_fMass;
+ float turnImpulse = speed*GetMass(wheelContactPoint, direction);
+
+ ApplyMoveForce(impulse * direction);
+ ApplyTurnForce(turnImpulse * direction, wheelContactPoint);
+#endif
}
}