summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikolay Korolev <nickvnuk@gmail.com>2019-07-14 14:00:36 +0200
committerNikolay Korolev <nickvnuk@gmail.com>2019-07-14 14:00:36 +0200
commite16562aa6deea5e15376afe0fcb3149a04a7b3c7 (patch)
tree4977eaa5d07dc5236c4b58b01e76265c888f3c08
parentRunningScript 2. So far with bugs (cops not caring, errors in arithmetical opcodes) (diff)
downloadre3-e16562aa6deea5e15376afe0fcb3149a04a7b3c7.tar
re3-e16562aa6deea5e15376afe0fcb3149a04a7b3c7.tar.gz
re3-e16562aa6deea5e15376afe0fcb3149a04a7b3c7.tar.bz2
re3-e16562aa6deea5e15376afe0fcb3149a04a7b3c7.tar.lz
re3-e16562aa6deea5e15376afe0fcb3149a04a7b3c7.tar.xz
re3-e16562aa6deea5e15376afe0fcb3149a04a7b3c7.tar.zst
re3-e16562aa6deea5e15376afe0fcb3149a04a7b3c7.zip
-rw-r--r--src/control/Script.cpp4
-rw-r--r--src/peds/CopPed.cpp2
-rw-r--r--src/peds/CopPed.h1
-rw-r--r--src/peds/EmergencyPed.cpp2
-rw-r--r--src/peds/EmergencyPed.h1
5 files changed, 8 insertions, 2 deletions
diff --git a/src/control/Script.cpp b/src/control/Script.cpp
index a3a310ad..f3996872 100644
--- a/src/control/Script.cpp
+++ b/src/control/Script.cpp
@@ -1561,13 +1561,13 @@ int8 CRunningScript::ProcessCommandsFrom100To199(int32 command)
}
case COMMAND_ABS_VAR_FLOAT:
{
- int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL);
+ float* ptr = (float*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL);
*ptr = abs(*ptr);
return 0;
}
case COMMAND_ABS_LVAR_FLOAT:
{
- int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL);
+ float* ptr = (float*)GetPointerToScriptVariable(&m_nIp, VAR_LOCAL);
*ptr = abs(*ptr);
return 0;
}
diff --git a/src/peds/CopPed.cpp b/src/peds/CopPed.cpp
index badcc4de..5bc67e15 100644
--- a/src/peds/CopPed.cpp
+++ b/src/peds/CopPed.cpp
@@ -3,6 +3,8 @@
#include "CopPed.h"
#include "ModelIndices.h"
+WRAPPER void CCopPed::ProcessControl() { EAXJMP(0x4C1400); }
+
CCopPed::CCopPed(eCopType copType) : CPed(PEDTYPE_COP)
{
m_nCopType = copType;
diff --git a/src/peds/CopPed.h b/src/peds/CopPed.h
index 17ca111f..162f14a6 100644
--- a/src/peds/CopPed.h
+++ b/src/peds/CopPed.h
@@ -35,6 +35,7 @@ public:
~CCopPed();
void ClearPursuit(void);
+ void ProcessControl(void);
};
static_assert(sizeof(CCopPed) == 0x558, "CCopPed: error");
diff --git a/src/peds/EmergencyPed.cpp b/src/peds/EmergencyPed.cpp
index d4f46b0e..cbcfb403 100644
--- a/src/peds/EmergencyPed.cpp
+++ b/src/peds/EmergencyPed.cpp
@@ -10,6 +10,8 @@ public:
void dtor(void) { CEmergencyPed::~CEmergencyPed(); }
};
+WRAPPER void CEmergencyPed::ProcessControl(void) { EAXJMP(0x4C2F10); }
+
CEmergencyPed::CEmergencyPed(uint32 type) : CPed(type)
{
switch (type){
diff --git a/src/peds/EmergencyPed.h b/src/peds/EmergencyPed.h
index b9d979e3..f55fa4e2 100644
--- a/src/peds/EmergencyPed.h
+++ b/src/peds/EmergencyPed.h
@@ -15,5 +15,6 @@ public:
int32 field_1360;
CEmergencyPed(uint32);
+ void ProcessControl(void);
};
static_assert(sizeof(CEmergencyPed) == 0x554, "CEmergencyPed: error");