Merge branch 'develop' into develop_mirrors

This commit is contained in:
MontyTRC89 2024-12-15 06:56:26 +01:00
commit f09b81fc87
7 changed files with 11 additions and 8 deletions

View file

@ -16,6 +16,7 @@ TombEngine releases are located in this repository (alongside with Tomb Editor):
* Fixed incorrect slide directions for sub-click geometry. * Fixed incorrect slide directions for sub-click geometry.
* Fixed stutter during jumps between cameras in a flyby sequence. * Fixed stutter during jumps between cameras in a flyby sequence.
* Fixed uzi targeting issues after using flycheat. * Fixed uzi targeting issues after using flycheat.
* Fixed hair object vertices not always linking properly.
* Fixed snow particles not always melting on the ground. * Fixed snow particles not always melting on the ground.
* Fixed enemies not damaging Lara if she is staying on the sector where enemies were triggered. * Fixed enemies not damaging Lara if she is staying on the sector where enemies were triggered.
* Fixed enemy pickups dropping on death sectors. * Fixed enemy pickups dropping on death sectors.

View file

@ -489,6 +489,7 @@ static void SetPlayerOptics(ItemInfo* item)
player.Control.Look.IsUsingLasersight = true; player.Control.Look.IsUsingLasersight = true;
player.Inventory.IsBusy = true; player.Inventory.IsBusy = true;
Camera.DisableInterpolation = true;
BinocularOldCamera = Camera.oldType; BinocularOldCamera = Camera.oldType;
return; return;
} }
@ -506,6 +507,7 @@ static void SetPlayerOptics(ItemInfo* item)
player.Control.Look.IsUsingLasersight = false; player.Control.Look.IsUsingLasersight = false;
player.Inventory.IsBusy = false; player.Inventory.IsBusy = false;
Camera.DisableInterpolation = true;
Camera.type = BinocularOldCamera; Camera.type = BinocularOldCamera;
Camera.bounce = 0; Camera.bounce = 0;
AlterFOV(LastFOV); AlterFOV(LastFOV);

View file

@ -958,6 +958,7 @@ void BinocularCamera(ItemInfo* item)
player.Inventory.IsBusy = false; player.Inventory.IsBusy = false;
Camera.type = BinocularOldCamera; Camera.type = BinocularOldCamera;
Camera.DisableInterpolation = true;
Camera.target = LastTarget; Camera.target = LastTarget;
AlterFOV(LastFOV); AlterFOV(LastFOV);
return; return;

View file

@ -2175,6 +2175,7 @@ namespace TEN::Gui
(player.Control.IsLow && !IsHeld(In::Crouch))) && (player.Control.IsLow && !IsHeld(In::Crouch))) &&
!UseSpotCam && !TrackCameraInit) !UseSpotCam && !TrackCameraInit)
{ {
Camera.DisableInterpolation = true;
player.Control.Look.OpticRange = ANGLE(0.7f); player.Control.Look.OpticRange = ANGLE(0.7f);
player.Control.Look.IsUsingBinoculars = true; player.Control.Look.IsUsingBinoculars = true;
player.Inventory.OldBusy = true; player.Inventory.OldBusy = true;

View file

@ -436,7 +436,7 @@ namespace TEN::Renderer
void CollectRooms(RenderView& renderView, bool onlyRooms); void CollectRooms(RenderView& renderView, bool onlyRooms);
void CollectItems(short roomNumber, RenderView& renderView); void CollectItems(short roomNumber, RenderView& renderView);
void CollectStatics(short roomNumber, RenderView& renderView); void CollectStatics(short roomNumber, RenderView& renderView);
void CollectLights(Vector3 position, float radius, int roomNumber, int prevRoomNumber, bool prioritizeShadowLight, bool useCachedRoomLights, std::vector<RendererLightNode>* roomsLights, std::vector<RendererLight*>* outputLights); void CollectLights(const Vector3& pos, float radius, int roomNumber, int prevRoomNumber, bool prioritizeShadowLight, bool useCachedRoomLights, std::vector<RendererLightNode>* roomsLights, std::vector<RendererLight*>* outputLights);
void CollectLightsForItem(RendererItem* item); void CollectLightsForItem(RendererItem* item);
void CollectLightsForEffect(short roomNumber, RendererEffect* effect); void CollectLightsForEffect(short roomNumber, RendererEffect* effect);
void CollectLightsForRoom(short roomNumber, RenderView& renderView); void CollectLightsForRoom(short roomNumber, RenderView& renderView);

View file

@ -773,13 +773,11 @@ namespace TEN::Renderer
int y2 = _moveablesVertices[parentBucket->StartVertex + v2].Position.y + parentBone->GlobalTranslation.y; int y2 = _moveablesVertices[parentBucket->StartVertex + v2].Position.y + parentBone->GlobalTranslation.y;
int z2 = _moveablesVertices[parentBucket->StartVertex + v2].Position.z + parentBone->GlobalTranslation.z; int z2 = _moveablesVertices[parentBucket->StartVertex + v2].Position.z + parentBone->GlobalTranslation.z;
if (abs(x1 - x2) < 2 && abs(y1 - y2) < 2 && abs(z1 - z2) < 2) if (x1 == x2 && y1 == y2 && z1 == z2)
{ {
currentVertex->Bone = j; currentVertex->Bone = j;
currentVertex->Position = parentVertex->Position; currentVertex->Position = parentVertex->Position;
currentVertex->Normal = parentVertex->Normal; currentVertex->Normal = parentVertex->Normal;
currentVertex->AnimationFrameOffset = parentVertex->AnimationFrameOffset;
currentVertex->Tangent = parentVertex->Tangent;
break; break;
} }
} }
@ -854,7 +852,7 @@ namespace TEN::Renderer
int y2 = _moveablesVertices[parentBucket->StartVertex + v2].Position.y + parentBone->GlobalTranslation.y; int y2 = _moveablesVertices[parentBucket->StartVertex + v2].Position.y + parentBone->GlobalTranslation.y;
int z2 = _moveablesVertices[parentBucket->StartVertex + v2].Position.z + parentBone->GlobalTranslation.z; int z2 = _moveablesVertices[parentBucket->StartVertex + v2].Position.z + parentBone->GlobalTranslation.z;
if (abs(x1 - x2) < 2 && abs(y1 - y2) < 2 && abs(z1 - z2) < 2) if (x1 == x2 && y1 == y2 && z1 == z2)
{ {
currentVertex->Bone = j; currentVertex->Bone = j;
currentVertex->Position = parentVertex->Position; currentVertex->Position = parentVertex->Position;

View file

@ -573,7 +573,7 @@ namespace TEN::Renderer
} }
} }
void Renderer::CollectLights(Vector3 position, float radius, int roomNumber, int prevRoomNumber, bool prioritizeShadowLight, bool useCachedRoomLights, std::vector<RendererLightNode>* roomsLights, std::vector<RendererLight*>* outputLights) void Renderer::CollectLights(const Vector3& pos, float radius, int roomNumber, int prevRoomNumber, bool prioritizeShadowLight, bool useCachedRoomLights, std::vector<RendererLightNode>* roomsLights, std::vector<RendererLight*>* outputLights)
{ {
if (_rooms.size() <= roomNumber) if (_rooms.size() <= roomNumber)
return; return;
@ -618,7 +618,7 @@ namespace TEN::Renderer
// Dynamic lights have the priority // Dynamic lights have the priority
for (auto& light : _dynamicLights[_dynamicLightList]) for (auto& light : _dynamicLights[_dynamicLightList])
{ {
float distSqr = Vector3::DistanceSquared(position, light.Position); float distSqr = Vector3::DistanceSquared(pos, light.Position);
processLight(light, distSqr, 1); processLight(light, distSqr, 1);
} }
@ -649,7 +649,7 @@ namespace TEN::Renderer
light.Type == LightType::Shadow || light.Type == LightType::Shadow ||
light.Type == LightType::Spot) light.Type == LightType::Spot)
{ {
float distSqr = Vector3::DistanceSquared(position, light.Position); float distSqr = Vector3::DistanceSquared(pos, light.Position);
processLight(light, distSqr, 0); processLight(light, distSqr, 0);
} }
else else