summaryrefslogtreecommitdiff
path: root/src/renderer/Skidmarks.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/renderer/Skidmarks.h')
-rw-r--r--src/renderer/Skidmarks.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/renderer/Skidmarks.h b/src/renderer/Skidmarks.h
new file mode 100644
index 00000000..28082f08
--- /dev/null
+++ b/src/renderer/Skidmarks.h
@@ -0,0 +1,41 @@
+#pragma once
+
+enum { SKIDMARK_LENGTH = 16 };
+
+enum eSkidmarkType
+{
+ SKIDMARK_NORMAL,
+ SKIDMARK_MUDDY,
+ SKIDMARK_SANDY,
+ SKIDMARK_BLOODY
+};
+
+class CSkidmark
+{
+public:
+ CVector m_pos[SKIDMARK_LENGTH];
+ float m_sideX[SKIDMARK_LENGTH];
+ float m_sideY[SKIDMARK_LENGTH];
+ uintptr m_id;
+ uint32 m_lastUpdate;
+ uint32 m_fadeStart;
+ uint32 m_fadeEnd;
+ uint32 m_type;
+ int16 m_last;
+ uint8 m_state;
+ bool m_wasUpdated;
+};
+
+class CSkidmarks
+{
+ static CSkidmark aSkidmarks[NUMSKIDMARKS];
+public:
+
+ static void Init(void);
+ static void Shutdown(void);
+ static void Clear(void);
+ static void Update(void);
+ static void Render(void);
+ static void RegisterOne(uintptr id, const CVector &pos, float fwdX, float fwdY, eSkidmarkType type, bool *isBloody);
+ static void RegisterOne(uintptr id, const CVector &pos, float fwdX, float fwdY, bool *isMuddy, bool *isBloody);
+};