summaryrefslogtreecommitdiffstats
path: root/src/PedType.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/PedType.cpp')
-rw-r--r--src/PedType.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/PedType.cpp b/src/PedType.cpp
new file mode 100644
index 00000000..904b4f97
--- /dev/null
+++ b/src/PedType.cpp
@@ -0,0 +1,31 @@
+#include "common.h"
+#include "patcher.h"
+#include "PedType.h"
+
+CPedType* (&CPedType::ms_apPedType)[23] = *(CPedType * (*)[23]) * (int*)0x941594;
+
+WRAPPER void CPedType::LoadPedData(void) { EAXJMP(0x4EE8D0); }
+
+void
+CPedType::Initialise()
+{
+ debug("Initialising CPedType...\n");
+ for(int i = 0; i < 23; i++) {
+ ms_apPedType[i] = new CPedType;
+ ms_apPedType[i]->m_Type.IntValue = 1;
+ ms_apPedType[i]->field_4 = 0;
+ ms_apPedType[i]->field_8 = 0;
+ // Why field_C not initialized?
+ ms_apPedType[i]->field_10 = 0;
+ ms_apPedType[i]->field_14 = 0;
+ ms_apPedType[i]->m_Threat.IntValue = 0;
+ ms_apPedType[i]->m_Avoid.IntValue = 0;
+ }
+ debug("Loading ped data...\n");
+ LoadPedData();
+ debug("CPedType ready\n");
+}
+
+STARTPATCHES
+ InjectHook(0x4EE7E0, &CPedType::Initialise, PATCH_JUMP);
+ENDPATCHES \ No newline at end of file