From 0ddc04743cf119751e61ad7bec73b721116b3c03 Mon Sep 17 00:00:00 2001
From: Sergeanur <s.anureev@yandex.ua>
Date: Sat, 11 Apr 2020 13:21:21 +0300
Subject: [PATCH 1/2] Fix cutscene camera latency

---
 src/animation/CutsceneMgr.cpp | 2 +-
 src/core/Cam.cpp              | 2 +-
 src/core/Timer.h              | 1 +
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/animation/CutsceneMgr.cpp b/src/animation/CutsceneMgr.cpp
index 0e35599b..6f8e9790 100644
--- a/src/animation/CutsceneMgr.cpp
+++ b/src/animation/CutsceneMgr.cpp
@@ -410,7 +410,7 @@ CCutsceneMgr::Update(void)
 
 	if (!ms_running) return;
 
-	ms_cutsceneTimer += CTimer::GetTimeStepNonClipped() * 0.02f;
+	ms_cutsceneTimer += CTimer::GetTimeStepNonClippedInSeconds();
 	if (CGeneral::faststricmp(ms_cutsceneName, "end") && TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_FLYBY && ms_cutsceneLoadStatus == CUTSCENE_LOADING_0) {
 		if (CPad::GetPad(0)->GetCrossJustDown()
 			|| (CGame::playingIntro && CPad::GetPad(0)->GetStartJustDown())
diff --git a/src/core/Cam.cpp b/src/core/Cam.cpp
index dc9ef74f..cfdea46a 100644
--- a/src/core/Cam.cpp
+++ b/src/core/Cam.cpp
@@ -3511,7 +3511,7 @@ CCam::Process_FlyBy(const CVector&, float, float, float)
 
 	Up = CVector(0.0f, 0.0f, 1.0f);
 	if(TheCamera.m_bStartingSpline)
-		m_fTimeElapsedFloat += CTimer::GetTimeStepInMilliseconds();
+		m_fTimeElapsedFloat += CTimer::GetTimeStepNonClippedInMilliseconds();
 	else{
 		m_fTimeElapsedFloat = 0.0f;
 		m_uiFinishTime = MS(TheCamera.m_arrPathArray[2].m_arr_PathData[10*((int)TheCamera.m_arrPathArray[2].m_arr_PathData[0]-1) + 1]);
diff --git a/src/core/Timer.h b/src/core/Timer.h
index 2498ec8a..88a46661 100644
--- a/src/core/Timer.h
+++ b/src/core/Timer.h
@@ -21,6 +21,7 @@ public:
 	static float GetTimeStepInMilliseconds() { return ms_fTimeStep / 50.0f * 1000.0f; }
 	static const float &GetTimeStepNonClipped(void) { return ms_fTimeStepNonClipped; }
 	static float GetTimeStepNonClippedInSeconds(void) { return ms_fTimeStepNonClipped / 50.0f; }
+	static float GetTimeStepNonClippedInMilliseconds(void) { return ms_fTimeStepNonClipped / 50.0f * 1000.0f; }
 	static void SetTimeStepNonClipped(float ts) { ms_fTimeStepNonClipped = ts; }
 	static const uint32 &GetFrameCounter(void) { return m_FrameCounter; }
 	static void SetFrameCounter(uint32 fc) { m_FrameCounter = fc; }

From 3c999a1eb85e2b36cace2d4158f4777811174731 Mon Sep 17 00:00:00 2001
From: aap <aap@papnet.eu>
Date: Sat, 11 Apr 2020 19:33:39 +0200
Subject: [PATCH 2/2] fixed traffic light position

---
 src/control/TrafficLights.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/control/TrafficLights.cpp b/src/control/TrafficLights.cpp
index e4416965..ab9cd92d 100644
--- a/src/control/TrafficLights.cpp
+++ b/src/control/TrafficLights.cpp
@@ -40,9 +40,9 @@ CTrafficLights::DisplayActualLight(CEntity *ent)
 	for(i = 1; i < 6; i++){
 		assert(mi->Get2dEffect(i));
 		yMin = min(yMin, mi->Get2dEffect(i)->pos.y);
-		yMax = min(yMax, mi->Get2dEffect(i)->pos.y);
+		yMax = max(yMax, mi->Get2dEffect(i)->pos.y);
 		zMin = min(zMin, mi->Get2dEffect(i)->pos.z);
-		zMax = min(zMax, mi->Get2dEffect(i)->pos.z);
+		zMax = max(zMax, mi->Get2dEffect(i)->pos.z);
 	}
 
 	CVector pos1, pos2;