summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergeanur <s.anureev@yandex.ua>2020-02-01 17:40:54 +0100
committerSergeanur <s.anureev@yandex.ua>2020-02-01 17:40:54 +0100
commit3d69148497d9d6415b2a67348fac4531a5952adf (patch)
tree870248f43478e8f768271f41672b3de4d6f58e92
parentFix damage bar assert crash (diff)
downloadre3-3d69148497d9d6415b2a67348fac4531a5952adf.tar
re3-3d69148497d9d6415b2a67348fac4531a5952adf.tar.gz
re3-3d69148497d9d6415b2a67348fac4531a5952adf.tar.bz2
re3-3d69148497d9d6415b2a67348fac4531a5952adf.tar.lz
re3-3d69148497d9d6415b2a67348fac4531a5952adf.tar.xz
re3-3d69148497d9d6415b2a67348fac4531a5952adf.tar.zst
re3-3d69148497d9d6415b2a67348fac4531a5952adf.zip
-rw-r--r--src/control/CarCtrl.cpp4
-rw-r--r--src/control/OnscreenTimer.cpp4
-rw-r--r--src/control/OnscreenTimer.h6
-rw-r--r--src/render/Hud.cpp16
4 files changed, 18 insertions, 12 deletions
diff --git a/src/control/CarCtrl.cpp b/src/control/CarCtrl.cpp
index 209a5e21..ab7a4aa1 100644
--- a/src/control/CarCtrl.cpp
+++ b/src/control/CarCtrl.cpp
@@ -2421,8 +2421,8 @@ void CCarCtrl::SteerAIBoatWithPhysicsHeadingForTarget(CBoat* pBoat, float target
float angleForward = CGeneral::GetATanOfXY(forward.x, forward.y);
float angleDiff = LimitRadianAngle(angleToTarget - angleForward);
angleDiff = min(DEFAULT_MAX_STEER_ANGLE, max(-DEFAULT_MAX_STEER_ANGLE, angleDiff));
- float currentSpeed = pBoat->GetMoveSpeed().Magnitude(); // +0.0f for some reason
- float speedDiff = pBoat->AutoPilot.m_nCruiseSpeed - currentSpeed;
+ float currentSpeed = pBoat->GetMoveSpeed().Magnitude2D(); // +0.0f for some reason
+ float speedDiff = pBoat->AutoPilot.m_nCruiseSpeed - currentSpeed * 60.0f;
if (speedDiff > 0.0f){
float accRemaining = speedDiff / pBoat->AutoPilot.m_nCruiseSpeed;
*pAccel = (accRemaining > 0.25f) ? 1.0f : 1.0f - (0.25f - accRemaining) * 4.0f;
diff --git a/src/control/OnscreenTimer.cpp b/src/control/OnscreenTimer.cpp
index 12aa2923..1677df06 100644
--- a/src/control/OnscreenTimer.cpp
+++ b/src/control/OnscreenTimer.cpp
@@ -19,7 +19,7 @@ void COnscreenTimer::Init() {
m_sEntries[i].m_aCounterText[j] = 0;
}
- m_sEntries[i].m_nType = 0;
+ m_sEntries[i].m_nType = COUNTER_DISPLAY_NUMBER;
m_sEntries[i].m_bTimerProcessed = 0;
m_sEntries[i].m_bCounterProcessed = 0;
}
@@ -49,7 +49,7 @@ void COnscreenTimer::ClearCounter(uint32 offset) {
if(offset == m_sEntries[i].m_nCounterOffset) {
m_sEntries[i].m_nCounterOffset = 0;
m_sEntries[i].m_aCounterText[0] = 0;
- m_sEntries[i].m_nType = 0;
+ m_sEntries[i].m_nType = COUNTER_DISPLAY_NUMBER;
m_sEntries[i].m_bCounterProcessed = 0;
}
}
diff --git a/src/control/OnscreenTimer.h b/src/control/OnscreenTimer.h
index bf92b988..b1e0e622 100644
--- a/src/control/OnscreenTimer.h
+++ b/src/control/OnscreenTimer.h
@@ -1,5 +1,11 @@
#pragma once
+enum
+{
+ COUNTER_DISPLAY_NUMBER,
+ COUNTER_DISPLAY_BAR,
+};
+
class COnscreenTimerEntry
{
public:
diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp
index 1d6a6474..be7329e2 100644
--- a/src/render/Hud.cpp
+++ b/src/render/Hud.cpp
@@ -701,14 +701,7 @@ void CHud::Draw()
}
if (CTimer::GetFrameCounter() & 4 || !CounterFlashTimer) {
- if (CUserDisplay::OnscnTimer.m_sEntries[0].m_nType) {
- int counter = atoi(CUserDisplay::OnscnTimer.m_sEntries[0].m_bCounterBuffer);
-#ifdef FIX_BUGS
- counter = min(counter, 100);
-#endif
- CSprite2d::DrawRect(CRect(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) - SCREEN_SCALE_X(100.0f) / 2 + SCREEN_SCALE_X(4.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(8.0f), SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) + SCREEN_SCALE_X(4.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(11.0f) + SCREEN_SCALE_Y(8.0f)), CRGBA(0, 106, 164, 80));
- CSprite2d::DrawRect(CRect(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) - SCREEN_SCALE_X(100.0f) / 2 + SCREEN_SCALE_X(4.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(8.0f), SCREEN_SCALE_X(counter) / 2.0f + SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET + 50.0f) + SCREEN_SCALE_X(4.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(11.0f) + SCREEN_SCALE_Y(8.0f)), CRGBA(0, 106, 164, 255));
- } else {
+ if (CUserDisplay::OnscnTimer.m_sEntries[0].m_nType == COUNTER_DISPLAY_NUMBER) {
AsciiToUnicode(CUserDisplay::OnscnTimer.m_sEntries[0].m_bCounterBuffer, sTimer);
CFont::SetPropOn();
@@ -728,6 +721,13 @@ void CHud::Draw()
CFont::SetColor(CRGBA(0, 106, 164, 255));
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET), SCREEN_SCALE_Y(132.0f), sTimer);
+ } else {
+ int counter = atoi(CUserDisplay::OnscnTimer.m_sEntries[0].m_bCounterBuffer);
+#ifdef FIX_BUGS
+ counter = min(counter, 100);
+#endif
+ CSprite2d::DrawRect(CRect(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) - SCREEN_SCALE_X(100.0f) / 2 + SCREEN_SCALE_X(4.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(8.0f), SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) + SCREEN_SCALE_X(4.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(11.0f) + SCREEN_SCALE_Y(8.0f)), CRGBA(0, 106, 164, 80));
+ CSprite2d::DrawRect(CRect(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) - SCREEN_SCALE_X(100.0f) / 2 + SCREEN_SCALE_X(4.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(8.0f), SCREEN_SCALE_X(counter) / 2.0f + SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET + 50.0f) + SCREEN_SCALE_X(4.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(11.0f) + SCREEN_SCALE_Y(8.0f)), CRGBA(0, 106, 164, 255));
}
if (CUserDisplay::OnscnTimer.m_sEntries[0].m_aCounterText[0]) {