summaryrefslogtreecommitdiffstats
path: root/src/Radar.cpp
diff options
context:
space:
mode:
authoreray orçunus <erayorcunus@gmail.com>2019-06-16 21:44:05 +0200
committereray orçunus <erayorcunus@gmail.com>2019-06-16 21:44:05 +0200
commitbeb6f0d4c75fa5f7be4998f78929e0a66fc9540c (patch)
tree8a1f28b7f4987d222c26749e99529f9002e0f0ca /src/Radar.cpp
parentCPed fixes and needed functions for further commits (diff)
parentfix the cleanup... (diff)
downloadre3-beb6f0d4c75fa5f7be4998f78929e0a66fc9540c.tar
re3-beb6f0d4c75fa5f7be4998f78929e0a66fc9540c.tar.gz
re3-beb6f0d4c75fa5f7be4998f78929e0a66fc9540c.tar.bz2
re3-beb6f0d4c75fa5f7be4998f78929e0a66fc9540c.tar.lz
re3-beb6f0d4c75fa5f7be4998f78929e0a66fc9540c.tar.xz
re3-beb6f0d4c75fa5f7be4998f78929e0a66fc9540c.tar.zst
re3-beb6f0d4c75fa5f7be4998f78929e0a66fc9540c.zip
Diffstat (limited to 'src/Radar.cpp')
-rw-r--r--src/Radar.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/Radar.cpp b/src/Radar.cpp
index a84d5b91..63a84680 100644
--- a/src/Radar.cpp
+++ b/src/Radar.cpp
@@ -1,5 +1,47 @@
#include "common.h"
#include "patcher.h"
#include "Radar.h"
+#include "Camera.h"
+#include "Hud.h"
+#include "World.h"
+#include "Frontend.h"
WRAPPER void CRadar::ClearBlipForEntity(eBlipType type, int32 id) { EAXJMP(0x4A56C0); }
+WRAPPER void CRadar::Draw3dMarkers() { EAXJMP(0x4A4C70); }
+//WRAPPER void CRadar::DrawMap () { EAXJMP(0x4A4200); }
+WRAPPER void CRadar::DrawBlips() { EAXJMP(0x4A42F0); }
+WRAPPER void CRadar::DrawRadarMap() { EAXJMP(0x4A6C20); }
+
+Float &CRadar::m_RadarRange = *(Float*)0x8E281C;
+CVector2D &CRadar::vec2DRadarOrigin = *(CVector2D*)0x6299B8;
+
+void CRadar::DrawMap() {
+ if (!TheCamera.m_WideScreenOn && CHud::m_Wants_To_Draw_Hud) {
+ if (FindPlayerVehicle()) {
+ if (FindPlayerVehicle()->GetSpeed().Magnitude() > 0.3f) {
+ if (FindPlayerVehicle()->GetSpeed().Magnitude() > 0.9f)
+ CRadar::m_RadarRange = 350.0f;
+ else
+ CRadar::m_RadarRange = (FindPlayerVehicle()->GetSpeed().Magnitude() + 0.3f) * 200.0f;
+ }
+ else {
+ CRadar::m_RadarRange = 120.0f;
+ }
+ }
+ else {
+ CRadar::m_RadarRange = 120.0f;
+ }
+ vec2DRadarOrigin.x = FindPlayerCentreOfWorld_NoSniperShift().x;
+ vec2DRadarOrigin.y = FindPlayerCentreOfWorld_NoSniperShift().y;
+ CRadar::DrawRadarMap();
+ }
+}
+
+void CRadar::TransformRadarPointToScreenSpace(CVector2D *out, CVector2D *in) {
+ out->x = in->x * HUD_STRETCH_X(47.0f) + HUD_STRETCH_X(47.0f + 20.0f);
+ out->y = (HUD_STRETCH_Y(76.0f)) * 0.5f + SCREEN_HEIGHT - (HUD_STRETCH_Y(123.0f)) - in->y * (HUD_STRETCH_Y(76.0f)) * 0.5f;
+}
+
+STARTPATCHES
+ InjectHook(0x4A5040, CRadar::TransformRadarPointToScreenSpace, PATCH_JUMP);
+ENDPATCHES \ No newline at end of file