From 37361b421f70cf2a0cce33f2c7d277116474b7cd Mon Sep 17 00:00:00 2001
From: Aure7138 <100095051+Aure7138@users.noreply.github.com>
Date: Sun, 30 Oct 2022 21:32:30 +0800
Subject: [PATCH] feat: added collision classes (#50)

---
 base/CNavigation.hpp        |  7 ++++++-
 base/phArchetypeDamp.hpp    | 16 ++++++++++++++++
 base/phBoundCapsule.hpp     | 14 ++++++++++++++
 base/phBoundCapsuleList.hpp | 15 +++++++++++++++
 base/phBoundComposite.hpp   | 16 ++++++++++++++++
 5 files changed, 67 insertions(+), 1 deletion(-)
 create mode 100644 base/phArchetypeDamp.hpp
 create mode 100644 base/phBoundCapsule.hpp
 create mode 100644 base/phBoundCapsuleList.hpp
 create mode 100644 base/phBoundComposite.hpp

diff --git a/base/CNavigation.hpp b/base/CNavigation.hpp
index 219fc63..bdfb0de 100644
--- a/base/CNavigation.hpp
+++ b/base/CNavigation.hpp
@@ -1,11 +1,15 @@
 #pragma once
 
 #include "../rage/vector.hpp"
+#include "phArchetypeDamp.hpp"
 
+#pragma pack(push, 1)
 class CNavigation
 {
 public:
-	char pad_0000[32]; //0x0000
+	char pad_0000[16]; //0x0000
+	class rage::phArchetypeDamp* m_damp; //0x0010
+	char pad_0018[8]; //0x0018
 	rage::fvector3 m_right; //0x0020
 	char pad_002C[4]; //0x002C
 	rage::fvector3 m_forward; //0x0030
@@ -15,3 +19,4 @@ public:
 	rage::fvector3 m_position; //0x0050
 }; //Size: 0x0060
 static_assert(sizeof(CNavigation) == 0x5C);
+#pragma pack(pop)
diff --git a/base/phArchetypeDamp.hpp b/base/phArchetypeDamp.hpp
new file mode 100644
index 0000000..cf91684
--- /dev/null
+++ b/base/phArchetypeDamp.hpp
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "phBoundComposite.hpp"
+
+namespace rage
+{
+
+	class phArchetypeDamp
+	{
+	public:
+		char pad_0000[32]; //0x0000
+		class phBoundComposite* m_bound_composite; //0x0020
+	}; //Size: 0x0028
+	static_assert(sizeof(phArchetypeDamp) == 0x28);
+
+}
\ No newline at end of file
diff --git a/base/phBoundCapsule.hpp b/base/phBoundCapsule.hpp
new file mode 100644
index 0000000..1de9148
--- /dev/null
+++ b/base/phBoundCapsule.hpp
@@ -0,0 +1,14 @@
+#pragma once
+
+namespace rage
+{
+
+	class phBoundCapsule
+	{
+	public:
+		char pad_0000[44]; //0x0000
+		float m_collision; //0x002C
+	}; //Size: 0x0030
+	static_assert(sizeof(phBoundCapsule) == 0x30);
+
+}
\ No newline at end of file
diff --git a/base/phBoundCapsuleList.hpp b/base/phBoundCapsuleList.hpp
new file mode 100644
index 0000000..83f2568
--- /dev/null
+++ b/base/phBoundCapsuleList.hpp
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "phBoundCapsule.hpp"
+
+namespace rage
+{
+
+	class phBoundCapsuleList
+	{
+	public:
+		class phBoundCapsule* m_bound_capsule; //0x0000
+	}; //Size: 0x0008
+	static_assert(sizeof(phBoundCapsuleList) == 0x08);
+
+}
\ No newline at end of file
diff --git a/base/phBoundComposite.hpp b/base/phBoundComposite.hpp
new file mode 100644
index 0000000..cff7fcc
--- /dev/null
+++ b/base/phBoundComposite.hpp
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "phBoundCapsuleList.hpp"
+
+namespace rage
+{
+
+	class phBoundComposite
+	{
+	public:
+		char pad_0000[112]; //0x0000
+		class phBoundCapsuleList* m_bound_capsule_list; //0x0070
+	}; //Size: 0x0078
+	static_assert(sizeof(phBoundComposite) == 0x78);
+
+}
\ No newline at end of file