mirror of
https://github.com/GTAmodding/re3.git
synced 2024-11-15 03:39:01 +00:00
Fix IsSphereVisible calls
This commit is contained in:
parent
50058371ef
commit
2ad3a75be5
5 changed files with 11 additions and 17 deletions
|
@ -3650,7 +3650,7 @@ CCamera::IsPointVisible(const CVector ¢er, const CMatrix *mat)
|
|||
}
|
||||
|
||||
bool
|
||||
CCamera::IsSphereVisible(const CVector ¢er, float radius, const CMatrix *mat)
|
||||
CCamera::IsSphereVisible(const CVector ¢er, float radius, Const CMatrix *mat)
|
||||
{
|
||||
#ifdef GTA_PS2
|
||||
CVuVector c;
|
||||
|
@ -3680,7 +3680,7 @@ CCamera::IsSphereVisible(const CVector ¢er, float radius)
|
|||
return IsSphereVisible(center, radius, &m_cameraMatrix);
|
||||
#else
|
||||
// ...and on PC they decided to call the other one with a default matrix.
|
||||
CMatrix mat(m_cameraMatrix); // this matrix construction is stupid and gone in VC
|
||||
CMatrix mat(GetCameraMatrix()); // this matrix construction is stupid and gone in VC
|
||||
return IsSphereVisible(center, radius, &mat);
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -639,7 +639,7 @@ public:
|
|||
CVector &GetGameCamPosition(void) { return m_vecGameCamPos; }
|
||||
void CalculateDerivedValues(void);
|
||||
bool IsPointVisible(const CVector ¢er, const CMatrix *mat);
|
||||
bool IsSphereVisible(const CVector ¢er, float radius, const CMatrix *mat);
|
||||
bool IsSphereVisible(const CVector ¢er, float radius, Const CMatrix *mat);
|
||||
bool IsSphereVisible(const CVector ¢er, float radius);
|
||||
bool IsBoxVisible(CVUVECTOR *box, const CMatrix *mat);
|
||||
};
|
||||
|
|
|
@ -5362,7 +5362,7 @@ CPed::WarpPedToNearLeaderOffScreen(void)
|
|||
continue;
|
||||
|
||||
appropriatePos.z = zCorrectedPos.z;
|
||||
if (!TheCamera.IsSphereVisible(appropriatePos, 0.6f, &TheCamera.GetCameraMatrix())
|
||||
if (!TheCamera.IsSphereVisible(appropriatePos, 0.6f)
|
||||
&& CWorld::GetIsLineOfSightClear(appropriatePos, warpToPos, true, true, false, true, false, false, false)
|
||||
&& !CWorld::TestSphereAgainstWorld(appropriatePos, 0.6f, this, true, true, false, true, false, false)) {
|
||||
teleported = true;
|
||||
|
@ -5396,7 +5396,7 @@ CPed::WarpPedToNearEntityOffScreen(CEntity *warpTo)
|
|||
continue;
|
||||
|
||||
appropriatePos.z = zCorrectedPos.z;
|
||||
if (!TheCamera.IsSphereVisible(appropriatePos, 0.6f, &TheCamera.GetCameraMatrix())
|
||||
if (!TheCamera.IsSphereVisible(appropriatePos, 0.6f)
|
||||
&& CWorld::GetIsLineOfSightClear(appropriatePos, warpToPos, true, true, false, true, false, false, false)
|
||||
&& !CWorld::TestSphereAgainstWorld(appropriatePos, 0.6f, this, true, true, false, true, false, false)) {
|
||||
teleported = true;
|
||||
|
|
|
@ -706,8 +706,7 @@ CPopulation::AddToPopulation(float minDist, float maxDist, float minDistOffScree
|
|||
generatedCoors.z = Max(generatedCoors.z, groundZ);
|
||||
}
|
||||
bool farEnoughToAdd = true;
|
||||
CMatrix mat(TheCamera.GetCameraMatrix());
|
||||
if (TheCamera.IsSphereVisible(generatedCoors, 2.0f, &mat)) {
|
||||
if (TheCamera.IsSphereVisible(generatedCoors, 2.0f)) {
|
||||
if (PedCreationDistMultiplier() * MIN_CREATION_DIST > (generatedCoors - playerCentreOfWorld).Magnitude2D())
|
||||
farEnoughToAdd = false;
|
||||
}
|
||||
|
|
|
@ -740,8 +740,7 @@ CWaterLevel::RenderWater()
|
|||
|
||||
if ( fHugeSectorMaxRenderDistSqr > fHugeSectorDistToCamSqr )
|
||||
{
|
||||
if ( TheCamera.IsSphereVisible(CVector(vecHugeSectorCentre.x, vecHugeSectorCentre.y, 0.0f), SectorRadius(HUGE_SECTOR_SIZE),
|
||||
&TheCamera.GetCameraMatrix()) )
|
||||
if ( TheCamera.IsSphereVisible(CVector(vecHugeSectorCentre.x, vecHugeSectorCentre.y, 0.0f), SectorRadius(HUGE_SECTOR_SIZE)) )
|
||||
{
|
||||
if ( fHugeSectorDistToCamSqr >= SQR(500.0f) /*fHugeSectorNearDist*/ )
|
||||
{
|
||||
|
@ -782,8 +781,7 @@ CWaterLevel::RenderWater()
|
|||
|
||||
if ( fLargeSectorDistToCamSqr < fHugeSectorMaxRenderDistSqr )
|
||||
{
|
||||
if ( TheCamera.IsSphereVisible(CVector(vecLargeSectorCentre.x, vecLargeSectorCentre.y, 0.0f), SectorRadius(LARGE_SECTOR_SIZE), //90.879997f,
|
||||
&TheCamera.GetCameraMatrix()) )
|
||||
if ( TheCamera.IsSphereVisible(CVector(vecLargeSectorCentre.x, vecLargeSectorCentre.y, 0.0f), SectorRadius(LARGE_SECTOR_SIZE)) ) //90.879997f,
|
||||
{
|
||||
// Render four small(32x32) sectors, or one large(64x64).
|
||||
|
||||
|
@ -945,8 +943,7 @@ CWaterLevel::RenderWater()
|
|||
|
||||
if ( fCamDistToSector < fHugeSectorMaxRenderDistSqr )
|
||||
{
|
||||
if ( TheCamera.IsSphereVisible(CVector(vecExtraHugeSectorCentre.x, vecExtraHugeSectorCentre.y, 0.0f), SectorRadius(EXTRAHUGE_SECTOR_SIZE),
|
||||
&TheCamera.GetCameraMatrix()) )
|
||||
if ( TheCamera.IsSphereVisible(CVector(vecExtraHugeSectorCentre.x, vecExtraHugeSectorCentre.y, 0.0f), SectorRadius(EXTRAHUGE_SECTOR_SIZE)) )
|
||||
{
|
||||
RenderOneFlatExtraHugeWaterPoly(
|
||||
vecExtraHugeSectorCentre.x - EXTRAHUGE_SECTOR_SIZE/2,
|
||||
|
@ -979,8 +976,7 @@ CWaterLevel::RenderWater()
|
|||
|
||||
if ( fCamDistToSector < fHugeSectorMaxRenderDistSqr )
|
||||
{
|
||||
if ( TheCamera.IsSphereVisible(CVector(vecExtraHugeSectorCentre.x, vecExtraHugeSectorCentre.y, 0.0f), SectorRadius(EXTRAHUGE_SECTOR_SIZE),
|
||||
&TheCamera.GetCameraMatrix()) )
|
||||
if ( TheCamera.IsSphereVisible(CVector(vecExtraHugeSectorCentre.x, vecExtraHugeSectorCentre.y, 0.0f), SectorRadius(EXTRAHUGE_SECTOR_SIZE)) )
|
||||
{
|
||||
RenderOneFlatExtraHugeWaterPoly(
|
||||
vecExtraHugeSectorCentre.x - EXTRAHUGE_SECTOR_SIZE/2,
|
||||
|
@ -1003,8 +999,7 @@ CWaterLevel::RenderWater()
|
|||
|
||||
if ( fCamDistToSector < fHugeSectorMaxRenderDistSqr )
|
||||
{
|
||||
if ( TheCamera.IsSphereVisible(CVector(vecExtraHugeSectorCentre.x, vecExtraHugeSectorCentre.y, 0.0f), SectorRadius(EXTRAHUGE_SECTOR_SIZE),
|
||||
&TheCamera.GetCameraMatrix()) )
|
||||
if ( TheCamera.IsSphereVisible(CVector(vecExtraHugeSectorCentre.x, vecExtraHugeSectorCentre.y, 0.0f), SectorRadius(EXTRAHUGE_SECTOR_SIZE)) )
|
||||
{
|
||||
RenderOneFlatExtraHugeWaterPoly(
|
||||
vecExtraHugeSectorCentre.x - EXTRAHUGE_SECTOR_SIZE/2,
|
||||
|
|
Loading…
Reference in a new issue