From 542a5393acae66a9add32c195939b058bf154b15 Mon Sep 17 00:00:00 2001
From: erorcun <erorcunerorcun@hotmail.com.tr>
Date: Wed, 13 Jan 2021 03:08:50 +0300
Subject: [PATCH 1/8] Fix build without FIX_BUGS, divide to 0 fixes

---
 src/core/config.h         |  6 +++++-
 src/entities/Physical.cpp | 37 ++++++++++++++++++++++++++++++++++++-
 src/rw/MemoryMgr.cpp      |  2 +-
 src/rw/RwHelper.cpp       |  9 +++++----
 src/text/Text.cpp         | 10 +++++-----
 src/text/Text.h           |  4 ++--
 6 files changed, 54 insertions(+), 14 deletions(-)

diff --git a/src/core/config.h b/src/core/config.h
index 8e528a67..2ce692b5 100644
--- a/src/core/config.h
+++ b/src/core/config.h
@@ -238,12 +238,16 @@ enum Config {
 #	define TIMEBARS		// print debug timers
 #endif
 
-#define FIX_BUGS		// fixes bugs that we've came across during reversing, TODO: use this more
+#define FIX_BUGS		// fixes bugs that we've came across during reversing. You can undefine this only on release builds.
 //#define MORE_LANGUAGES		// Add more translations to the game
 #define COMPATIBLE_SAVES // this allows changing structs while keeping saves compatible
 #define LOAD_INI_SETTINGS // as the name suggests. fundamental for CUSTOM_FRONTEND_OPTIONS
 #define FIX_HIGH_FPS_BUGS_ON_FRONTEND
 
+#if defined(__LP64__) || defined(_WIN64)
+#define FIX_BUGS_64 // Must have fixes to be able to run 64 bit build
+#endif
+
 // Just debug menu entries
 #ifdef DEBUGMENU
 #define RELOADABLES			// some debug menu options to reload TXD files
diff --git a/src/entities/Physical.cpp b/src/entities/Physical.cpp
index 706b469c..07d1d0b4 100644
--- a/src/entities/Physical.cpp
+++ b/src/entities/Physical.cpp
@@ -883,9 +883,13 @@ CPhysical::ApplyCollision(CPhysical *B, CColPoint &colpoint, float &impulseA, fl
 				if(B->GetStatus() == STATUS_PLAYER)
 					pointposB *= 0.8f;
 				if(CWorld::bNoMoreCollisionTorque){
-					// BUG: the game actually uses A here, but this can't be right
+#ifdef FIX_BUGS
 					B->ApplyFrictionMoveForce(fB*-0.3f);
 					B->ApplyFrictionTurnForce(fB*-0.3f, pointposB);
+#else
+					A->ApplyFrictionMoveForce(fB*-0.3f);
+					A->ApplyFrictionTurnForce(fB*-0.3f, pointposB);
+#endif
 				}
 			}
 			if(!A->bInfiniteMass){
@@ -1054,7 +1058,13 @@ CPhysical::ApplyFriction(CPhysical *B, float adhesiveLimit, CColPoint &colpoint)
 		fOtherSpeedA = vOtherSpeedA.Magnitude();
 		fOtherSpeedB = vOtherSpeedB.Magnitude();
 
+#ifdef FIX_BUGS // division by 0
+		frictionDir = vOtherSpeedA;
+		frictionDir.Normalise();
+#else
 		frictionDir = vOtherSpeedA * (1.0f/fOtherSpeedA);
+#endif
+
 		speedSum = (B->m_fMass*fOtherSpeedB + A->m_fMass*fOtherSpeedA)/(B->m_fMass + A->m_fMass);
 		if(fOtherSpeedA > speedSum){
 			impulseA = (speedSum - fOtherSpeedA) * A->m_fMass;
@@ -1084,7 +1094,12 @@ CPhysical::ApplyFriction(CPhysical *B, float adhesiveLimit, CColPoint &colpoint)
 		fOtherSpeedA = vOtherSpeedA.Magnitude();
 		fOtherSpeedB = vOtherSpeedB.Magnitude();
 
+#ifdef FIX_BUGS // division by 0
+		frictionDir = vOtherSpeedA;
+		frictionDir.Normalise();
+#else
 		frictionDir = vOtherSpeedA * (1.0f/fOtherSpeedA);
+#endif
 		float massB = B->GetMass(pointposB, frictionDir);
 		speedSum = (massB*fOtherSpeedB + A->m_fMass*fOtherSpeedA)/(massB + A->m_fMass);
 		if(fOtherSpeedA > speedSum){
@@ -1112,7 +1127,12 @@ CPhysical::ApplyFriction(CPhysical *B, float adhesiveLimit, CColPoint &colpoint)
 		fOtherSpeedA = vOtherSpeedA.Magnitude();
 		fOtherSpeedB = vOtherSpeedB.Magnitude();
 
+#ifdef FIX_BUGS // division by 0
+		frictionDir = vOtherSpeedA;
+		frictionDir.Normalise();
+#else
 		frictionDir = vOtherSpeedA * (1.0f/fOtherSpeedA);
+#endif
 		float massA = A->GetMass(pointposA, frictionDir);
 		speedSum = (B->m_fMass*fOtherSpeedB + massA*fOtherSpeedA)/(B->m_fMass + massA);
 		if(fOtherSpeedA > speedSum){
@@ -1140,7 +1160,12 @@ CPhysical::ApplyFriction(CPhysical *B, float adhesiveLimit, CColPoint &colpoint)
 		fOtherSpeedA = vOtherSpeedA.Magnitude();
 		fOtherSpeedB = vOtherSpeedB.Magnitude();
 
+#ifdef FIX_BUGS // division by 0
+		frictionDir = vOtherSpeedA;
+		frictionDir.Normalise();
+#else
 		frictionDir = vOtherSpeedA * (1.0f/fOtherSpeedA);
+#endif
 		float massA = A->GetMass(pointposA, frictionDir);
 		float massB = B->GetMass(pointposB, frictionDir);
 		speedSum = (massB*fOtherSpeedB + massA*fOtherSpeedA)/(massB + massA);
@@ -1178,7 +1203,12 @@ CPhysical::ApplyFriction(float adhesiveLimit, CColPoint &colpoint)
 
 		fOtherSpeed = vOtherSpeed.Magnitude();
 		if(fOtherSpeed > 0.0f){
+#ifdef FIX_BUGS // division by 0
+			frictionDir = vOtherSpeed;
+			frictionDir.Normalise();
+#else
 			frictionDir = vOtherSpeed * (1.0f/fOtherSpeed);
+#endif
 			// not really impulse but speed
 			// maybe use ApplyFrictionMoveForce instead?
 			fImpulse = -fOtherSpeed;
@@ -1196,7 +1226,12 @@ CPhysical::ApplyFriction(float adhesiveLimit, CColPoint &colpoint)
 
 		fOtherSpeed = vOtherSpeed.Magnitude();
 		if(fOtherSpeed > 0.0f){
+#ifdef FIX_BUGS // division by 0
+			frictionDir = vOtherSpeed;
+			frictionDir.Normalise();
+#else
 			frictionDir = vOtherSpeed * (1.0f/fOtherSpeed);
+#endif
 			fImpulse = -fOtherSpeed * m_fMass;
 			impulseLimit = adhesiveLimit*CTimer::GetTimeStep() * 1.5;
 			if(fImpulse < -impulseLimit) fImpulse = -impulseLimit;
diff --git a/src/rw/MemoryMgr.cpp b/src/rw/MemoryMgr.cpp
index e2f6f144..2379692c 100644
--- a/src/rw/MemoryMgr.cpp
+++ b/src/rw/MemoryMgr.cpp
@@ -93,7 +93,7 @@ MemoryMgrFree(void *ptr)
 void *
 RwMallocAlign(RwUInt32 size, RwUInt32 align)
 {
-#ifdef FIX_BUGS
+#if defined (FIX_BUGS) || defined(FIX_BUGS_64)
 	uintptr ptralign = align-1;
 	void *mem = (void *)MemoryMgrMalloc(size + sizeof(uintptr) + ptralign);
 
diff --git a/src/rw/RwHelper.cpp b/src/rw/RwHelper.cpp
index cab3b68c..d3fbd1d0 100644
--- a/src/rw/RwHelper.cpp
+++ b/src/rw/RwHelper.cpp
@@ -255,7 +255,8 @@ SkinGetBonePositionsToTable(RpClump *clump, RwV3d *boneTable)
 			parent = stack[sp--];
 		else
 			parent = i;
-		assert(parent >= 0 && parent < numBones);
+
+		//assert(parent >= 0 && parent < numBones);
 	}
 }
 
@@ -263,7 +264,7 @@ RpHAnimAnimation*
 HAnimAnimationCreateForHierarchy(RpHAnimHierarchy *hier)
 {
 	int i;
-#ifdef FIX_BUGS
+#if defined FIX_BUGS || defined LIBRW
 	int numNodes = hier->numNodes*2;	// you're supposed to have at least two KFs per node
 #else
 	int numNodes = hier->numNodes;
@@ -277,7 +278,7 @@ HAnimAnimationCreateForHierarchy(RpHAnimHierarchy *hier)
 		frame->q.real = 1.0f;
 		frame->q.imag.x = frame->q.imag.y = frame->q.imag.z = 0.0f;
 		frame->t.x = frame->t.y = frame->t.z = 0.0f;
-#ifdef FIX_BUGS
+#if defined FIX_BUGS || defined LIBRW
 		// times are subtracted and divided giving NaNs
 		// so they can't both be 0
 		frame->time = i/hier->numNodes;
@@ -483,7 +484,7 @@ CameraSize(RwCamera * camera, RwRect * rect,
 			RwRaster           *zRaster;
 
 			// BUG: game just changes camera raster's sizes, but this is a hack
-#ifdef FIX_BUGS
+#if defined FIX_BUGS || defined LIBRW
 			/*
 			 * Destroy rasters...
 			 */
diff --git a/src/text/Text.cpp b/src/text/Text.cpp
index 5f7a07cc..7afd64d2 100644
--- a/src/text/Text.cpp
+++ b/src/text/Text.cpp
@@ -111,14 +111,14 @@ wchar*
 CText::Get(const char *key)
 {
 	uint8 result = false;
-#ifdef FIX_BUGS
+#if defined (FIX_BUGS) || defined(FIX_BUGS_64)
 	wchar *outstr = keyArray.Search(key, data.chars, &result);
 #else
 	wchar *outstr = keyArray.Search(key, &result);
 #endif
 
 	if (!result && bHasMissionTextOffsets && bIsMissionTextLoaded)
-#ifdef FIX_BUGS
+#if defined (FIX_BUGS) || defined(FIX_BUGS_64)
 		outstr = mission_keyArray.Search(key, mission_data.chars, &result);
 #else
 		outstr = mission_keyArray.Search(key, &result);
@@ -340,7 +340,7 @@ CKeyArray::Unload(void)
 void
 CKeyArray::Update(wchar *chars)
 {
-#ifndef FIX_BUGS
+#if !defined(FIX_BUGS) && !defined(FIX_BUGS_64)
 	int i;
 	for(i = 0; i < numEntries; i++)
 		entries[i].value = (wchar*)((uint8*)chars + (uintptr)entries[i].value);
@@ -368,7 +368,7 @@ CKeyArray::BinarySearch(const char *key, CKeyEntry *entries, int16 low, int16 hi
 }
 
 wchar*
-#ifdef FIX_BUGS
+#if defined (FIX_BUGS) || defined(FIX_BUGS_64)
 CKeyArray::Search(const char *key, wchar *data, uint8 *result)
 #else
 CKeyArray::Search(const char *key, uint8 *result)
@@ -378,7 +378,7 @@ CKeyArray::Search(const char *key, uint8 *result)
 	char errstr[25];
 	int i;
 
-#ifdef FIX_BUGS
+#if defined (FIX_BUGS) || defined(FIX_BUGS_64)
 	found = BinarySearch(key, entries, 0, numEntries-1);
 	if (found) {
 		*result = true;
diff --git a/src/text/Text.h b/src/text/Text.h
index 33dc313e..1174216c 100644
--- a/src/text/Text.h
+++ b/src/text/Text.h
@@ -7,7 +7,7 @@ void TextCopy(wchar *dst, const wchar *src);
 
 struct CKeyEntry
 {
-#ifdef FIX_BUGS
+#if defined(FIX_BUGS) || defined(FIX_BUGS_64)
 	uint32 valueOffset;
 #else
 	wchar *value;
@@ -30,7 +30,7 @@ public:
 	void Unload(void);
 	void Update(wchar *chars);
 	CKeyEntry *BinarySearch(const char *key, CKeyEntry *entries, int16 low, int16 high);
-#ifdef FIX_BUGS
+#if defined (FIX_BUGS) || defined(FIX_BUGS_64)
 	wchar *Search(const char *key, wchar *data, uint8 *result);
 #else
 	wchar *Search(const char *key, uint8* result);

From 3553f467b2efbb39e8a0241052a2258eaeab687d Mon Sep 17 00:00:00 2001
From: erorcun <erayorcunus@gmail.com>
Date: Wed, 13 Jan 2021 03:50:59 +0300
Subject: [PATCH 2/8] move TODO to Readme

---
 README.md | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index c0e17db3..a51bc65c 100644
--- a/README.md
+++ b/README.md
@@ -35,6 +35,13 @@ There are various settings at the very bottom of [config.h](https://github.com/G
 ## Contributing
 Please read the [Coding Style](https://github.com/GTAmodding/re3/blob/master/CODING_STYLE.md) Document
 
-### Unreversed / incomplete classes (at least the ones we know)
-See [VC todo list](https://github.com/GTAmodding/re3/wiki/VC-todo)
+### Unreversed / incomplete classes  
+
+PS2/Mobile stuff:
+
+	src/core/Pad.cpp
+	src/core/main.cpp
+	src/core/Frontend_PS2.cpp
+	src/core/FrontEndControls.cpp
+	src/save/MemoryCard.cpp
 

From 1b55a9956f6dbb2e89e739c133158aa6e08fc9e8 Mon Sep 17 00:00:00 2001
From: aap <aap@papnet.eu>
Date: Wed, 13 Jan 2021 12:31:23 +0100
Subject: [PATCH 3/8] some loose ends

---
 src/core/main.cpp    | 4 ++++
 src/render/MBlur.cpp | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/core/main.cpp b/src/core/main.cpp
index d0663c30..a84bd495 100644
--- a/src/core/main.cpp
+++ b/src/core/main.cpp
@@ -1421,11 +1421,13 @@ Idle(void *arg)
 	CSprite2d::InitPerFrame();
 	CFont::InitPerFrame();
 
+	PUSH_MEMID(MEMID_GAME_PROCESS);
 	CPointLights::InitPerFrame();
 
 	tbStartTimer(0, "CGame::Process");
 	CGame::Process();
 	tbEndTimer("CGame::Process");
+	POP_MEMID();
 
 	tbStartTimer(0, "DMAudio.Service");
 	DMAudio.Service();
@@ -1447,6 +1449,8 @@ Idle(void *arg)
 	if(arg == nil)
 		return;
 
+	PUSH_MEMID(MEMID_RENDER);
+
 	if(!FrontEndMenuManager.m_bMenuActive && TheCamera.GetScreenFadeStatus() != FADE_2)
 	{
 		// This is from SA, but it's nice for windowed mode
diff --git a/src/render/MBlur.cpp b/src/render/MBlur.cpp
index 44d4f1d4..205f9d92 100644
--- a/src/render/MBlur.cpp
+++ b/src/render/MBlur.cpp
@@ -442,7 +442,7 @@ CMBlur::OverlayRender(RwCamera *cam, RwRaster *raster, RwRGBA color, int32 type,
 			RwIm2DVertexSetIntRGBA(&Vertex2[3], r, g, b, 80);
 			RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDSRCALPHA);
 			RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDINVSRCALPHA);
-			// TODO(MIAMI): pBufVertCount = 0;
+			pBufVertCount = 0;
 		}else{
 			RwIm2DVertexSetIntRGBA(&Vertex2[0], r*2, g*2, b*2, 30);
 			RwIm2DVertexSetIntRGBA(&Vertex2[1], r*2, g*2, b*2, 30);

From 4741afd2cfc1c38ae0a81c1b71134b1a323b9ac1 Mon Sep 17 00:00:00 2001
From: Filip Gawin <filip.gawin@zoho.com>
Date: Wed, 13 Jan 2021 12:45:10 +0100
Subject: [PATCH 4/8] Port cmake improvements to miami

---
 CMakeLists.txt          |  94 +++++++++++++++-------
 cmake/FindMPG123.cmake  |  28 -------
 cmake/FindSndFile.cmake |  84 +++++++++----------
 cmake/Findmpg123.cmake  |  38 +++++++++
 src/CMakeLists.txt      | 174 +++++++++++++++++++++-------------------
 5 files changed, 237 insertions(+), 181 deletions(-)
 delete mode 100644 cmake/FindMPG123.cmake
 create mode 100644 cmake/Findmpg123.cmake

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 387400b3..7282135d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,44 +1,82 @@
 cmake_minimum_required(VERSION 3.8)
 
-project(reVC C CXX)
+set(EXECUTABLE reVC)
+set(PROJECT REVC)
+
+project(${EXECUTABLE} C CXX)
 list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
 
 if(WIN32)
-    set(REVC_AUDIOS "NULL" "OAL" "MSS")
+    set(${PROJECT}_AUDIOS "OAL" "MSS")
 else()
-    set(REVC_AUDIOS "NULL" "OAL")
+    set(${PROJECT}_AUDIOS "OAL")
 endif()
 
-set(REVC_AUDIO "OAL" CACHE STRING "Audio")
+set(${PROJECT}_AUDIO "OAL" CACHE STRING "Audio")
 
-set_property(CACHE REVC_AUDIO PROPERTY STRINGS ${REVC_AUDIOS})
-message(STATUS "REVC_AUDIO = ${REVC_AUDIO} (choices=${REVC_AUDIOS})")
-set("REVC_AUDIO_${REVC_AUDIO}" ON)
-if(NOT REVC_AUDIO IN_LIST REVC_AUDIOS)
-    message(FATAL_ERROR "Illegal REVC_AUDIO=${REVC_AUDIO}")
+option(${PROJECT}_WITH_OPUS "Build ${EXECUTABLE} with opus support" OFF)
+option(${PROJECT}_WITH_LIBSNDFILE "Build ${EXECUTABLE} with libsndfile (instead of internal decoder)" OFF)
+
+set_property(CACHE ${PROJECT}_AUDIO PROPERTY STRINGS ${${PROJECT}_AUDIOS})
+message(STATUS "${PROJECT}_AUDIO = ${${PROJECT}_AUDIO} (choices=${${PROJECT}_AUDIOS})")
+set("${PROJECT}_AUDIO_${${PROJECT}_AUDIO}" ON)
+if(NOT ${PROJECT}_AUDIO IN_LIST ${PROJECT}_AUDIOS)
+    message(FATAL_ERROR "Illegal ${PROJECT}_AUDIO=${${PROJECT}_AUDIO}")
 endif()
 
-if(REVC_INSTALL)
-    include(GNUInstallDirs)
-    set(REVC_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/reVC")
+option(${PROJECT}_VENDORED_LIBRW "Use vendored librw" ON)
+if(${PROJECT}_VENDORED_LIBRW)
+    add_subdirectory(vendor/librw)
+else()
+    find_package(librw REQUIRED)
 endif()
-
-add_subdirectory("vendor/librw")
 add_subdirectory(src)
 
-if(REVC_INSTALL)
-    include(CMakePackageConfigHelpers)
-    configure_package_config_file(reVC-config.cmake.in reVC-config.cmake
-        INSTALL_DESTINATION "${CMAKE_INSTALL_PREFIX}"
-        )
-    install(
-        FILES "${CMAKE_CURRENT_BINARY_DIR}/reVC-config.cmake"
-        DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
-        )
-    install(
-        EXPORT reVC-targets
-        DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
-        )
+if(${PROJECT}_INSTALL)
+    install(DIRECTORY gamefiles/ DESTINATION ".")
+    if(LIBRW_PLATFORM_NULL)
+        set(platform "-null")
+    elseif(LIBRW_PLATFORM_PS2)
+        set(platform "-ps2")
+    elseif(LIBRW_PLATFORM_GL3)
+        if(LIBRW_GL3_GFXLIB STREQUAL "GLFW")
+            set(platform "-gl3-glfw")
+        else()
+            set(platform "-gl3-sdl2")
+        endif()
+    elseif(LIBRW_PLATFORM_D3D9)
+        set(platform "-d3d9")
+    endif()
+    if(${PROJECT}_AUDIO_OAL)
+        set(audio "-oal")
+    elseif(${PROJECT}_AUDIO_MSS)
+        set(audio "-mss")
+    endif()
+    if(${PROJECT}_WITH_OPUS)
+        set(audio "${audio}-opus")
+    endif()
+    if(NOT LIBRW_PLATFORM_PS2)
+        if(WIN32)
+            set(os "-win")
+        elseif(APPLE)
+            set(os "-apple")
+        elseif(UNIX)
+            set(os "-linux")
+        else()
+            set(compiler "-UNK")
+            message(WARNING "Unknown os. Created cpack package will be wrong. (override using cpack -P)")
+        endif()
+    endif()
 
-    include(CMakeCPack.cmake)
+    set(CPACK_PACKAGE_NAME "${PROJECT_NAME}${platform}${audio}${os}${compiler}")
+    set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "GTA III reversed")
+    set(CPACK_PACKAGE_VENDOR "GTAModding")
+    # FIXME: missing license (https://github.com/GTAmodding/re3/issues/794)
+    # set(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/LICENSE")
+    # set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
+    set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}")
+    set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}")
+    set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}")
+    set(CPACK_GENERATOR "TXZ")
+    include(CPack)
 endif()
diff --git a/cmake/FindMPG123.cmake b/cmake/FindMPG123.cmake
deleted file mode 100644
index a9b6dd8b..00000000
--- a/cmake/FindMPG123.cmake
+++ /dev/null
@@ -1,28 +0,0 @@
-# - Find mpg123
-# Find the native mpg123 includes and library
-#
-#  MPG123_INCLUDE_DIR - where to find mpg123.h
-#  MPG123_LIBRARIES   - List of libraries when using mpg123.
-#  MPG123_FOUND       - True if mpg123 found.
-
-IF(MPG123_INCLUDE_DIR AND MPG123_LIBRARIES)
-  # Already in cache, be silent
-  SET(MPG123_FIND_QUIETLY TRUE)
-ENDIF(MPG123_INCLUDE_DIR AND MPG123_LIBRARIES)
-
-FIND_PATH(MPG123_INCLUDE_DIR mpg123.h
-          PATHS "${MPG123_DIR}"
-          PATH_SUFFIXES include
-          )
-
-FIND_LIBRARY(MPG123_LIBRARIES NAMES mpg123 mpg123-0
-             PATHS "${MPG123_DIR}"
-             PATH_SUFFIXES lib
-             )
-
-# MARK_AS_ADVANCED(MPG123_LIBRARIES MPG123_INCLUDE_DIR)
-
-# handle the QUIETLY and REQUIRED arguments and set MPG123_FOUND to TRUE if
-# all listed variables are TRUE
-INCLUDE(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(MPG123 DEFAULT_MSG MPG123_LIBRARIES MPG123_INCLUDE_DIR)
diff --git a/cmake/FindSndFile.cmake b/cmake/FindSndFile.cmake
index 8ae47b70..5381af48 100644
--- a/cmake/FindSndFile.cmake
+++ b/cmake/FindSndFile.cmake
@@ -4,9 +4,11 @@
 # 
 # Once done this will define
 #
-#  SNDFILE_FOUND - system has libsndfile
+#  SNDFILE_FOUND        - system has libsndfile
 #  SNDFILE_INCLUDE_DIRS - the libsndfile include directory
-#  SNDFILE_LIBRARIES - Link these to use libsndfile
+#  SNDFILE_LIBRARIES    - Link these to use libsndfile
+#  SNDFILE_CFLAGS       - Compile options to use libsndfile
+#  SndFile::SndFile     - Imported library of libsndfile
 #
 #  Copyright (C) 2006  Wengo
 #
@@ -15,53 +17,51 @@
 #  For details see the accompanying COPYING-CMAKE-SCRIPTS file.
 #
 
-if (SNDFILE_LIBRARIES AND SNDFILE_INCLUDE_DIRS)
-  # in cache already
-  set(SNDFILE_FOUND TRUE)
-else (SNDFILE_LIBRARIES AND SNDFILE_INCLUDE_DIRS)
+find_package(PkgConfig QUIET)
+if(PKG_CONFIG_FOUND)
+    pkg_search_module(PKG_SNDFILE "sndfile")
+endif()
 
-  find_path(SNDFILE_INCLUDE_DIR
+find_path(SNDFILE_INCLUDE_DIR
     NAMES
-      sndfile.h
+        sndfile.h
+    HINTS
+        ${PKG_SNDFILE_INCLUDE_DIRS}
     PATHS
-      /usr/include
-      /usr/local/include
-      /opt/local/include
-      /sw/include
-  )
-  
-  find_library(SNDFILE_LIBRARY
+        /usr/include
+        /usr/local/include
+        /opt/local/include
+        /sw/include
+    )
+
+find_library(SNDFILE_LIBRARY
     NAMES
-      sndfile
+        sndfile
+    HINTS
+        ${PKG_SNDFILE_LIBRARIES}
     PATHS
-      /usr/lib
-      /usr/local/lib
-      /opt/local/lib
-      /sw/lib
-  )
+        /usr/lib
+        /usr/local/lib
+        /opt/local/lib
+        /sw/lib
+)
 
-  set(SNDFILE_INCLUDE_DIRS
-    ${SNDFILE_INCLUDE_DIR}
-  )
-  set(SNDFILE_LIBRARIES
-    ${SNDFILE_LIBRARY}
-  )
+set(SNDFILE_CFLAGS "${PKG_SNDFILE_CFLAGS_OTHER}" CACHE STRING "CFLAGS of libsndfile")
 
-  if (SNDFILE_INCLUDE_DIRS AND SNDFILE_LIBRARIES)
+set(SNDFILE_INCLUDE_DIRS "${SNDFILE_INCLUDE_DIR}")
+set(SNDFILE_LIBRARIES "${SNDFILE_LIBRARY}")
+
+if(SNDFILE_INCLUDE_DIRS AND SNDFILE_LIBRARIES)
     set(SNDFILE_FOUND TRUE)
-  endif (SNDFILE_INCLUDE_DIRS AND SNDFILE_LIBRARIES)
+endif()
 
-  if (SNDFILE_FOUND)
-    if (NOT SndFile_FIND_QUIETLY)
-      message(STATUS "Found libsndfile: ${SNDFILE_LIBRARIES}")
-    endif (NOT SndFile_FIND_QUIETLY)
-  else (SNDFILE_FOUND)
-    if (SndFile_FIND_REQUIRED)
-      message(FATAL_ERROR "Could not find libsndfile")
-    endif (SndFile_FIND_REQUIRED)
-  endif (SNDFILE_FOUND)
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(SndFile DEFAULT_MSG SNDFILE_INCLUDE_DIRS SNDFILE_LIBRARIES)
 
-  # show the SNDFILE_INCLUDE_DIRS and SNDFILE_LIBRARIES variables only in the advanced view
-  mark_as_advanced(SNDFILE_INCLUDE_DIRS SNDFILE_LIBRARIES)
-
-endif (SNDFILE_LIBRARIES AND SNDFILE_INCLUDE_DIRS)
+if(NOT TARGET SndFile::SndFile)
+    add_library(__SndFile INTERFACE)
+    target_compile_options(__SndFile INTERFACE ${SNDFILE_CFLAGS})
+    target_include_directories(__SndFile INTERFACE ${SNDFILE_INCLUDE_DIRS})
+    target_link_libraries(__SndFile INTERFACE ${SNDFILE_LIBRARIES})
+    add_library(SndFile::SndFile ALIAS __SndFile)
+endif()
diff --git a/cmake/Findmpg123.cmake b/cmake/Findmpg123.cmake
new file mode 100644
index 00000000..c6fe56bb
--- /dev/null
+++ b/cmake/Findmpg123.cmake
@@ -0,0 +1,38 @@
+# - Find mpg123
+# Find the native mpg123 includes and library
+#
+#  mpg123_INCLUDE_DIR - Where to find mpg123.h
+#  mpg123_LIBRARIES   - List of libraries when using mpg123.
+#  mpg123_CFLAGS      - Compile options to use mpg123
+#  mpg123_FOUND       - True if mpg123 found.
+#  MPG123::libmpg123  - Imported library of libmpg123
+
+find_package(PkgConfig QUIET)
+if(PKG_CONFIG_FOUND)
+    pkg_search_module(PKG_MPG123 mpg123)
+endif()
+
+find_path(mpg123_INCLUDE_DIR mpg123.h
+    HINTS ${PKG_MPG123_INCLUDE_DIRS}
+    PATHS "${mpg123_DIR}"
+    PATH_SUFFIXES include
+)
+
+find_library(mpg123_LIBRARIES NAMES mpg123 mpg123-0
+    HINTS ${PKG_MPG123_LIBRARIES}
+    PATHS "${mpg123_DIR}"
+    PATH_SUFFIXES lib
+)
+
+set(mpg123_CFLAGS "${PKG_MPG123_CFLAGS_OTHER}" CACHE STRING "CFLAGS of mpg123")
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(mpg123 DEFAULT_MSG mpg123_LIBRARIES mpg123_INCLUDE_DIR)
+
+if(NOT TARGET MPG123::libmpg123)
+    add_library(__libmpg123 INTERFACE)
+    target_compile_options(__libmpg123 INTERFACE ${mpg123_CFLAGS})
+    target_include_directories(__libmpg123 INTERFACE ${mpg123_INCLUDE_DIR})
+    target_link_libraries(__libmpg123 INTERFACE ${mpg123_LIBRARIES})
+    add_library(MPG123::libmpg123 ALIAS __libmpg123)
+endif()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e87878a8..dc204d17 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,92 +1,105 @@
 set(THREADS_PREFER_PTHREAD_FLAG ON)
 find_package(Threads REQUIRED)
 
-if(${REVC_AUDIO} STREQUAL "OAL")
-        find_package(OpenAL REQUIRED)
-        find_package(MPG123 REQUIRED)
-        find_package(SndFile REQUIRED)
-endif()
+file(GLOB_RECURSE ${PROJECT}_SOURCES "*.cpp" "*.h" "*.rc")
 
-file(GLOB_RECURSE Sources "*.cpp" "*.h")
+function(header_directories RETURN_LIST)
+    file(GLOB_RECURSE ALL_SRCS *.h *.cpp *.c)
+    set(RELDIRS)
+    foreach(SRC ${ALL_SRCS})
+        file(RELATIVE_PATH RELSRC "${CMAKE_CURRENT_SOURCE_DIR}" "${SRC}")
+        get_filename_component(RELDIR "${RELSRC}" DIRECTORY)
+        list(APPEND RELDIRS ${RELDIR})
+    endforeach()
+    list(REMOVE_DUPLICATES RELDIRS)
+    set(${RETURN_LIST} ${RELDIRS} PARENT_SCOPE)
+endfunction()
 
-MACRO(HEADER_DIRECTORIES return_list)
-    FILE(GLOB_RECURSE new_list *.cpp)
-    SET(dir_list "animation"
-            "audio"
-            "collision"
-            "control"
-            "core"
-            "entities"
-            "extras"
-            "fakerw"
-            "math"
-            "modelinfo"
-            "objects"
-            "peds"
-            "render"
-            "rw"
-            "save"
-            "skel"
-            "text"
-            "vehicles"
-            "weapons")
-    FOREACH(file_path ${new_list})
-        GET_FILENAME_COMPONENT(dir_path ${file_path} PATH)
-        SET(dir_list ${dir_list} ${dir_path})
-    ENDFOREACH()
-    LIST(REMOVE_DUPLICATES dir_list)
-    SET(${return_list} ${dir_list})
-ENDMACRO()
+header_directories(${PROJECT}_INCLUDES)
 
-HEADER_DIRECTORIES(header_list)
-include_directories(${header_list})
+add_executable(${EXECUTABLE} WIN32
+    ${${PROJECT}_SOURCES}
+)
 
+target_link_libraries(${EXECUTABLE} PRIVATE
+    librw::librw
+    Threads::Threads
+)
 
-add_executable(reVC ${Sources})
-target_link_libraries(reVC librw)
-target_link_libraries(reVC Threads::Threads)
-
-if(${REVC_AUDIO} STREQUAL "OAL")
-        target_link_libraries(reVC ${OPENAL_LIBRARY})
-        target_link_libraries(reVC ${MPG123_LIBRARIES})
-        target_link_libraries(reVC ${SNDFILE_LIBRARIES})
-endif()
-
-target_include_directories(reVC
-    INTERFACE
-        $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
-    )
-
-target_compile_definitions(reVC
+target_include_directories(${EXECUTABLE}
     PRIVATE
-        "$<IF:$<CONFIG:DEBUG>,DEBUG,NDEBUG>"
-    PUBLIC
-        "RW_${REVC_PLATFORM}"
-    )
+        $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
+        $<BUILD_INTERFACE:${${PROJECT}_INCLUDES}>
+)
 
-target_compile_definitions(reVC PRIVATE LIBRW=1 AUDIO_OAL=1)
+target_compile_definitions(${EXECUTABLE}
+    PRIVATE
+        $<IF:$<CONFIG:DEBUG>,DEBUG,NDEBUG>
+        LIBRW
+        ${PROJECT}_NO_AUTOLINK
+)
+
+if(LIBRW_PLATFORM_D3D9)
+    target_compile_definitions(${EXECUTABLE}
+        PUBLIC
+            USE_D3D9
+    )
+endif()
+
+if(${PROJECT}_AUDIO STREQUAL "OAL")
+    find_package(OpenAL REQUIRED)
+    target_include_directories(${EXECUTABLE} PRIVATE ${OPENAL_INCLUDE_DIR})
+    target_link_libraries(${EXECUTABLE} PRIVATE ${OPENAL_LIBRARY})
+    target_compile_definitions(${EXECUTABLE} PRIVATE ${OPENAL_DEFINITIONS})
+    target_compile_definitions(${EXECUTABLE} PRIVATE AUDIO_OAL)
+elseif(${PROJECT}_AUDIO STREQUAL "MSS")
+    find_package(MilesSDK REQUIRED)
+    target_compile_definitions(${EXECUTABLE} PRIVATE AUDIO_MSS)
+    target_link_libraries(${EXECUTABLE} PRIVATE MilesSDK::MilesSDK)
+endif()
+
+find_package(mpg123 REQUIRED)
+target_link_libraries(${EXECUTABLE} PRIVATE
+    MPG123::libmpg123
+)
+if(${PROJECT}_WITH_OPUS)
+    find_package(opusfile REQUIRED)
+    target_link_libraries(${EXECUTABLE} PRIVATE
+        opusfile::opusfile
+    )
+    target_compile_definitions(${EXECUTABLE} PRIVATE AUDIO_OPUS)
+endif()
+if(${PROJECT}_WITH_LIBSNDFILE)
+    find_package(SndFile REQUIRED)
+    target_link_libraries(${EXECUTABLE} PRIVATE
+        SndFile::SndFile
+    )
+    target_compile_definitions(${EXECUTABLE} PRIVATE AUDIO_OAL_USE_SNDFILE)
+endif()
+
+target_compile_definitions(${EXECUTABLE} PRIVATE )
 
 if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
-    target_compile_options(reVC
+    target_compile_options(${EXECUTABLE}
         PRIVATE
             "-Wall"
-        )
-    if (NOT REVC_PLATFORM_PS2)
-        target_compile_options(reVC
+    )
+    if (NOT LIBRW_PLATFORM_PS2)
+        target_compile_options(${EXECUTABLE}
             PRIVATE
-                "-Wextra"
-                "-Wdouble-promotion"
-                "-Wpedantic"
-            )
+                -Wextra
+                -Wdouble-promotion
+                -Wpedantic
+        )
     endif()
 elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
-    target_compile_options(reVC
+    target_compile_options(${EXECUTABLE}
         PUBLIC
-            /wd4996 /wd4244
-        )
+            /Zc:sizedDealloc-
+    )
 endif()
 
-set_target_properties(reVC
+set_target_properties(${EXECUTABLE}
     PROPERTIES
         C_STANDARD 11
         C_EXTENSIONS OFF
@@ -94,20 +107,15 @@ set_target_properties(reVC
         CXX_STANDARD 11
         CXX_EXTENSIONS OFF
         CXX_STANDARD_REQUIRED ON
-        PREFIX ""
-    )
-
-if(REVC_INSTALL)
-    target_include_directories(reVC
-        INTERFACE
-            $<INSTALL_INTERFACE:${REVC_INSTALL_INCLUDEDIR}>
-        )
+)
 
+if(${PROJECT}_INSTALL)
     install(
-        TARGETS reVC
-        EXPORT reVC-targets
-        RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
-        LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
-        ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
-        )
+        TARGETS ${EXECUTABLE}
+        EXPORT ${EXECUTABLE}-targets
+        RUNTIME DESTINATION "."
+    )
+    if(MSVC)
+        install(FILES $<TARGET_PDB_FILE:${EXECUTABLE}> DESTINATION "." OPTIONAL)
+    endif()
 endif()

From e3a261d29cbb10abc0776ca697512349845a105c Mon Sep 17 00:00:00 2001
From: aap <aap@papnet.eu>
Date: Wed, 13 Jan 2021 13:01:20 +0100
Subject: [PATCH 5/8] rename m_vehEnterType -> m_vehDoor

---
 src/control/Script4.cpp     |  16 +--
 src/core/Camera.cpp         |   2 +-
 src/core/PlayerInfo.cpp     |   4 +-
 src/peds/Ped.cpp            |  98 +++++++-------
 src/peds/Ped.h              |   2 +-
 src/peds/PedAI.cpp          | 248 ++++++++++++++++++------------------
 src/vehicles/Automobile.cpp |   2 +-
 src/vehicles/Bike.cpp       |   2 +-
 src/vehicles/Train.cpp      |   2 +-
 src/vehicles/Vehicle.cpp    |  12 +-
 10 files changed, 194 insertions(+), 194 deletions(-)

diff --git a/src/control/Script4.cpp b/src/control/Script4.cpp
index fa9a9d6a..3c4860f7 100644
--- a/src/control/Script4.cpp
+++ b/src/control/Script4.cpp
@@ -792,20 +792,20 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
 			}else{
 				pPed->m_pMyVehicle->RemovePassenger(pPed);
 			}
-			if (pPed->m_vehEnterType) {
+			if (pPed->m_vehDoor) {
 				if (pPed->GetPedState() == PED_EXIT_CAR || pPed->GetPedState() == PED_DRAG_FROM_CAR) {
 					uint8 flags = 0;
 					if (pPed->m_pMyVehicle->IsBike()) {
-						if (pPed->m_vehEnterType == CAR_DOOR_LF ||
-							pPed->m_vehEnterType == CAR_DOOR_RF ||
-							pPed->m_vehEnterType == CAR_WINDSCREEN)
+						if (pPed->m_vehDoor == CAR_DOOR_LF ||
+							pPed->m_vehDoor == CAR_DOOR_RF ||
+							pPed->m_vehDoor == CAR_WINDSCREEN)
 							flags = CAR_DOOR_FLAG_LF | CAR_DOOR_FLAG_RF;
-						else if (pPed->m_vehEnterType == CAR_DOOR_LR ||
-							pPed->m_vehEnterType == CAR_DOOR_RR)
+						else if (pPed->m_vehDoor == CAR_DOOR_LR ||
+							pPed->m_vehDoor == CAR_DOOR_RR)
 							flags = CAR_DOOR_FLAG_LR | CAR_DOOR_FLAG_RR;
 					}
 					else {
-						switch (pPed->m_vehEnterType) {
+						switch (pPed->m_vehDoor) {
 						case CAR_DOOR_LF:
 							flags = pPed->m_pMyVehicle->m_nNumMaxPassengers != 0 ? CAR_DOOR_FLAG_LF : CAR_DOOR_FLAG_LF | CAR_DOOR_FLAG_LR;
 							break;
@@ -821,7 +821,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
 						}
 					}
 					pPed->m_pMyVehicle->m_nGettingOutFlags &= ~flags;
-					pPed->m_pMyVehicle->ProcessOpenDoor(pPed->m_vehEnterType, NUM_STD_ANIMS, 0.0f);
+					pPed->m_pMyVehicle->ProcessOpenDoor(pPed->m_vehDoor, NUM_STD_ANIMS, 0.0f);
 				}
 			}
 		}
diff --git a/src/core/Camera.cpp b/src/core/Camera.cpp
index d245bb5a..992c7d74 100644
--- a/src/core/Camera.cpp
+++ b/src/core/Camera.cpp
@@ -2353,7 +2353,7 @@ CCamera::StartTransition(int16 newMode)
 		while(deltaBeta < -PI) deltaBeta += 2*PI;
 		deltaBeta = Abs(deltaBeta);
 
-		door = FindPlayerPed()->m_vehEnterType;
+		door = FindPlayerPed()->m_vehDoor;
 		if(deltaBeta > HALFPI){
 			if(((CPed*)pTargetEntity)->m_carInObjective){
 				if(((CPed*)pTargetEntity)->m_carInObjective->IsUpsideDown()){
diff --git a/src/core/PlayerInfo.cpp b/src/core/PlayerInfo.cpp
index 7289175d..f0f3e2c6 100644
--- a/src/core/PlayerInfo.cpp
+++ b/src/core/PlayerInfo.cpp
@@ -390,8 +390,8 @@ CPlayerInfo::Process(void)
 						m_pPed->SetObjective(OBJECTIVE_ENTER_CAR_AS_PASSENGER, carBelow);
 					} else if (carBelow->IsBoat()) {
 						if (!carBelow->pDriver) {
-							m_pPed->m_vehEnterType = 0;
-							m_pPed->SetEnterCar(carBelow, m_pPed->m_vehEnterType);
+							m_pPed->m_vehDoor = 0;
+							m_pPed->SetEnterCar(carBelow, m_pPed->m_vehDoor);
 						}
 					} else {
 						m_pPed->SetObjective(OBJECTIVE_ENTER_CAR_AS_DRIVER, carBelow);
diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp
index b8afaeab..572395d8 100644
--- a/src/peds/Ped.cpp
+++ b/src/peds/Ped.cpp
@@ -121,7 +121,7 @@ CPed::CPed(uint32 pedType) : m_pedIK(this)
 	m_fRotationCur = 0.0f;
 	m_headingRate = 15.0f;
 	m_fRotationDest = 0.0f;
-	m_vehEnterType = CAR_DOOR_LF;
+	m_vehDoor = CAR_DOOR_LF;
 	m_walkAroundType = 0;
 	m_pCurrentPhysSurface = nil;
 	m_vecOffsetFromPhysSurface = CVector(0.0f, 0.0f, 0.0f);
@@ -381,7 +381,7 @@ CPed::~CPed(void)
 		GetPedAttractorManager()->DeRegisterPed(this, m_attractor);
 	CRadar::ClearBlipForEntity(BLIP_CHAR, CPools::GetPedPool()->GetIndex(this));
 	if (InVehicle()){
-		uint8 door_flag = GetCarDoorFlag(m_vehEnterType);
+		uint8 door_flag = GetCarDoorFlag(m_vehDoor);
 		if (m_pMyVehicle->pDriver == this)
 			m_pMyVehicle->pDriver = nil;
 		else {
@@ -3656,7 +3656,7 @@ CPed::SetDirectionToWalkAroundObject(CEntity *obj)
 			if (Abs(angleDiffBtwObjCenterAndForward) >= objTopRightHeading) {
 				if (PI - objTopRightHeading >= Abs(angleDiffBtwObjCenterAndForward)) {
 					if ((angleDiffBtwObjCenterAndForward <= 0.0f || objUpsideDown) && (angleDiffBtwObjCenterAndForward < 0.0f || !objUpsideDown)) {
-						if (goingToEnterCar && (m_vehEnterType == CAR_DOOR_RF || m_vehEnterType == CAR_DOOR_RR)) {
+						if (goingToEnterCar && (m_vehDoor == CAR_DOOR_RF || m_vehDoor == CAR_DOOR_RR)) {
 							m_walkAroundType = 0;
 						} else {
 							if (CGeneral::LimitRadianAngle(m_fRotationDest - angleToFaceObjCenter) >= 0.0f) {
@@ -3674,7 +3674,7 @@ CPed::SetDirectionToWalkAroundObject(CEntity *obj)
 							}
 						}
 					} else {
-						if (goingToEnterCar && (m_vehEnterType == CAR_DOOR_LF || m_vehEnterType == CAR_DOOR_LR)) {
+						if (goingToEnterCar && (m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_LR)) {
 							m_walkAroundType = 0;
 						} else {
 							if (CGeneral::LimitRadianAngle(m_fRotationDest - angleToFaceObjCenter) <= 0.0f) {
@@ -3692,7 +3692,7 @@ CPed::SetDirectionToWalkAroundObject(CEntity *obj)
 							}
 						}
 					}
-				} else if (goingToEnterCar && (m_vehEnterType == CAR_DOOR_LF || m_vehEnterType == CAR_DOOR_LR)
+				} else if (goingToEnterCar && (m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_LR)
 					|| CGeneral::LimitRadianAngle(m_fRotationDest - angleToFaceObjCenter) < 0.0f) {
 					if (entityOnTopLeftOfObj == 1 || entityOnTopLeftOfObj && !entityOnTopRightOfObj && !entityOnBottomRightOfObj) {
 						m_walkAroundType = 3;
@@ -3700,7 +3700,7 @@ CPed::SetDirectionToWalkAroundObject(CEntity *obj)
 				} else if (entityOnTopRightOfObj == 1 || entityOnTopRightOfObj && !entityOnTopLeftOfObj && !entityOnBottomLeftOfObj) {
 					m_walkAroundType = 4;
 				}
-			} else if (goingToEnterCar && (m_vehEnterType == CAR_DOOR_LF || m_vehEnterType == CAR_DOOR_LR)
+			} else if (goingToEnterCar && (m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_LR)
 				|| CGeneral::LimitRadianAngle(m_fRotationDest - angleToFaceObjCenter) > 0.0f) {
 				if (entityOnBottomLeftOfObj == 1 || entityOnBottomLeftOfObj && !entityOnTopRightOfObj && !entityOnBottomRightOfObj) {
 					m_walkAroundType = 2;
@@ -3723,10 +3723,10 @@ CPed::SetDirectionToWalkAroundObject(CEntity *obj)
 	if (Abs(angleDiffBtwObjCenterAndForward) < objTopRightHeading) {
 		if (goingToEnterCar) {
 			if (goingToEnterCarAndItsVan) {
-				if (m_vehEnterType == CAR_DOOR_LR || m_vehEnterType == CAR_DOOR_RR)
+				if (m_vehDoor == CAR_DOOR_LR || m_vehDoor == CAR_DOOR_RR)
 					return;
 			}
-			if (m_vehEnterType != CAR_DOOR_LF && m_vehEnterType != CAR_DOOR_LR && (!entityOnBottomRightOfObj || entityOnBottomLeftOfObj)) {
+			if (m_vehDoor != CAR_DOOR_LF && m_vehDoor != CAR_DOOR_LR && (!entityOnBottomRightOfObj || entityOnBottomLeftOfObj)) {
 				m_fRotationDest = CGeneral::LimitRadianAngle(dirToSet - HALFPI);
 				localPosToHead.x = adjustedColMax.x;
 				localPosToHead.z = 0.0f;
@@ -3755,9 +3755,9 @@ CPed::SetDirectionToWalkAroundObject(CEntity *obj)
 	} else {
 		if (PI - objTopRightHeading >= Abs(angleDiffBtwObjCenterAndForward)) {
 			if (angleDiffBtwObjCenterAndForward <= 0.0f) {
-				if (!goingToEnterCar || !goingToEnterCarAndItsVan || m_vehEnterType != CAR_DOOR_LR && m_vehEnterType != CAR_DOOR_RR) {
+				if (!goingToEnterCar || !goingToEnterCarAndItsVan || m_vehDoor != CAR_DOOR_LR && m_vehDoor != CAR_DOOR_RR) {
 					if (goingToEnterCar) {
-						if (m_vehEnterType == CAR_DOOR_RF || (m_vehEnterType == CAR_DOOR_RR && !goingToEnterCarAndItsVan))
+						if (m_vehDoor == CAR_DOOR_RF || (m_vehDoor == CAR_DOOR_RR && !goingToEnterCarAndItsVan))
 							return;
 					}
 					if (m_walkAroundType == 4 || m_walkAroundType == 3
@@ -3779,14 +3779,14 @@ CPed::SetDirectionToWalkAroundObject(CEntity *obj)
 					localPosToHead.z = 0.0f;
 					localPosToHead.y = adjustedColMin.y;
 				}
-			} else if (goingToEnterCar && goingToEnterCarAndItsVan && (m_vehEnterType == CAR_DOOR_LR || m_vehEnterType == CAR_DOOR_RR)) {
+			} else if (goingToEnterCar && goingToEnterCarAndItsVan && (m_vehDoor == CAR_DOOR_LR || m_vehDoor == CAR_DOOR_RR)) {
 				m_fRotationDest = CGeneral::LimitRadianAngle(PI + dirToSet);
 				localPosToHead.x = adjustedColMin.x;
 				localPosToHead.z = 0.0f;
 				localPosToHead.y = adjustedColMin.y;
 			} else {
 				if (goingToEnterCar) {
-					if (m_vehEnterType == CAR_DOOR_LF || m_vehEnterType == CAR_DOOR_LR && !goingToEnterCarAndItsVan)
+					if (m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_LR && !goingToEnterCarAndItsVan)
 						return;
 				}
 				if (m_walkAroundType == 1 || m_walkAroundType == 2
@@ -3804,8 +3804,8 @@ CPed::SetDirectionToWalkAroundObject(CEntity *obj)
 				}
 			}
 		} else {
-			if (goingToEnterCar && (!goingToEnterCarAndItsVan || m_vehEnterType != CAR_DOOR_LR && m_vehEnterType != CAR_DOOR_RR)) {
-				if (m_vehEnterType != CAR_DOOR_LF && m_vehEnterType != CAR_DOOR_LR && (!entityOnTopRightOfObj || entityOnTopLeftOfObj)) {
+			if (goingToEnterCar && (!goingToEnterCarAndItsVan || m_vehDoor != CAR_DOOR_LR && m_vehDoor != CAR_DOOR_RR)) {
+				if (m_vehDoor != CAR_DOOR_LF && m_vehDoor != CAR_DOOR_LR && (!entityOnTopRightOfObj || entityOnTopLeftOfObj)) {
 
 					m_fRotationDest = CGeneral::LimitRadianAngle(dirToSet - HALFPI);
 					localPosToHead.x = adjustedColMax.x;
@@ -4099,9 +4099,9 @@ CPed::PedSetOutCarCB(CAnimBlendAssociation *animAssoc, void *arg)
 		}
 		if (veh && veh->IsBike())
 			// BUG? 
-			veh->m_nGettingOutFlags &= ~GetBikeDoorFlag(ped->m_vehEnterType);
+			veh->m_nGettingOutFlags &= ~GetBikeDoorFlag(ped->m_vehDoor);
 		else
-			veh->m_nGettingOutFlags &= ~GetCarDoorFlag(ped->m_vehEnterType);
+			veh->m_nGettingOutFlags &= ~GetCarDoorFlag(ped->m_vehDoor);
 
 		if (veh->pDriver == ped) {
 			veh->RemoveDriver();
@@ -4123,7 +4123,7 @@ CPed::PedSetOutCarCB(CAnimBlendAssociation *animAssoc, void *arg)
 
 		if (veh->bIsBus && !veh->IsUpsideDown() && !veh->IsOnItsSide()) {
 			float angleAfterExit;
-			if (ped->m_vehEnterType == CAR_DOOR_LF) {
+			if (ped->m_vehDoor == CAR_DOOR_LF) {
 				angleAfterExit = HALFPI + veh->GetForward().Heading();
 			} else {
 				angleAfterExit = veh->GetForward().Heading() - HALFPI;
@@ -4174,7 +4174,7 @@ CPed::PedSetDraggedOutCarCB(CAnimBlendAssociation *dragAssoc, void *arg)
 	uint8 exitFlags = 0;
 	quickJackedAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), ANIM_CAR_QJACKED);
 	if (dragAssoc && dragAssoc->animId == ANIM_BIKE_HIT && ped->m_pMyVehicle) {
-		if (ped->m_vehEnterType == CAR_DOOR_LF || ped->m_vehEnterType == CAR_DOOR_RF) {
+		if (ped->m_vehDoor == CAR_DOOR_LF || ped->m_vehDoor == CAR_DOOR_RF) {
 			CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_BIKE_FALL_OFF, 100.0f);
 			ped->m_pMyVehicle->m_nGettingOutFlags &= ~(CAR_DOOR_FLAG_RF | CAR_DOOR_FLAG_LF);
 		} else {
@@ -4196,9 +4196,9 @@ CPed::PedSetDraggedOutCarCB(CAnimBlendAssociation *dragAssoc, void *arg)
 	vehicle = ped->m_pMyVehicle;
 
 	if (vehicle && vehicle->IsBike())
-		exitFlags = GetBikeDoorFlagInclJumpInFromFront(ped->m_vehEnterType);
+		exitFlags = GetBikeDoorFlagInclJumpInFromFront(ped->m_vehDoor);
 	else
-		exitFlags = GetCarDoorFlag(ped->m_vehEnterType);
+		exitFlags = GetCarDoorFlag(ped->m_vehDoor);
 
 	if (vehicle)
 		vehicle->m_nGettingOutFlags &= ~exitFlags;
@@ -4419,7 +4419,7 @@ CPed::PedSetInCarCB(CAnimBlendAssociation *animAssoc, void *arg)
 		} else if (veh->bIsBus) {
 			veh->AddPassenger(ped);
 		} else {
-			switch (ped->m_vehEnterType) {
+			switch (ped->m_vehDoor) {
 				case CAR_DOOR_RF:
 					veh->AddPassenger(ped, 0);
 					break;
@@ -4449,9 +4449,9 @@ CPed::PedSetInCarCB(CAnimBlendAssociation *animAssoc, void *arg)
 
 	int8 doorFlag;
 	if (veh->IsBike()) {
-		doorFlag = GetBikeDoorFlagInclJumpInFromFront(ped->m_vehEnterType);
+		doorFlag = GetBikeDoorFlagInclJumpInFromFront(ped->m_vehDoor);
 	} else {
-		doorFlag = GetEnterCarDoorFlag(ped->m_vehEnterType, veh->m_nNumMaxPassengers);
+		doorFlag = GetEnterCarDoorFlag(ped->m_vehDoor, veh->m_nNumMaxPassengers);
 	}
 
 	veh->m_nGettingInFlags &= ~doorFlag;
@@ -5133,13 +5133,13 @@ void
 CPed::Idle(void)
 {
 	CVehicle *veh = m_pMyVehicle;
-	if (veh && veh->m_nGettingOutFlags && m_vehEnterType) {
+	if (veh && veh->m_nGettingOutFlags && m_vehDoor) {
 
-		if (veh->m_nGettingOutFlags & GetCarDoorFlag(m_vehEnterType)) {
+		if (veh->m_nGettingOutFlags & GetCarDoorFlag(m_vehDoor)) {
 
 			if (m_objective != OBJECTIVE_KILL_CHAR_ON_FOOT) {
 
-				CVector doorPos = GetPositionToOpenCarDoor(veh, m_vehEnterType);
+				CVector doorPos = GetPositionToOpenCarDoor(veh, m_vehDoor);
 				CVector doorDist = GetPosition() - doorPos;
 
 				if (doorDist.MagnitudeSqr() < sq(0.5f)) {
@@ -7480,7 +7480,7 @@ CPed::SetSeekCar(CVehicle *car, uint32 doorNode)
 	m_pMyVehicle = car;
 	m_pMyVehicle->RegisterReference((CEntity**) &m_pMyVehicle);
 	// m_pSeekTarget->RegisterReference((CEntity**) &m_pSeekTarget);
-	m_vehEnterType = doorNode;
+	m_vehDoor = doorNode;
 	m_distanceToCountSeekDone = 0.5f;
 	SetPedState(PED_SEEK_CAR);
 
@@ -7498,9 +7498,9 @@ CPed::SeekCar(void)
 	}
 
 	if (m_objective != OBJECTIVE_ENTER_CAR_AS_PASSENGER) {
-		if (!vehToSeek->IsBike() && m_vehEnterType && m_objective != OBJECTIVE_ENTER_CAR_AS_DRIVER) {
+		if (!vehToSeek->IsBike() && m_vehDoor && m_objective != OBJECTIVE_ENTER_CAR_AS_DRIVER) {
 			if (IsRoomToBeCarJacked()) {
-				dest = GetPositionToOpenCarDoor(vehToSeek, m_vehEnterType);
+				dest = GetPositionToOpenCarDoor(vehToSeek, m_vehDoor);
 			} else if (m_nPedType == PEDTYPE_COP) {
 				dest = GetPositionToOpenCarDoor(vehToSeek, CAR_DOOR_RF);
 			} else {
@@ -7581,7 +7581,7 @@ CPed::SeekCar(void)
 	else if (2.0f * vehToSeek->GetColModel()->boundingBox.max.x > distToDestSqr)
 		bCanPedEnterSeekedCar = true;
 
-	if (vehToSeek->m_nGettingInFlags & GetCarDoorFlag(m_vehEnterType))
+	if (vehToSeek->m_nGettingInFlags & GetCarDoorFlag(m_vehDoor))
 		bVehEnterDoorIsBlocked = true;
 	else
 		bVehEnterDoorIsBlocked = false;
@@ -7592,7 +7592,7 @@ CPed::SeekCar(void)
 			if (1.6f + GetPosition().z > dest.z && GetPosition().z - 0.5f < dest.z) {
 #ifdef GTA_TRAIN
 				if (vehToSeek->IsTrain()) {
-					SetEnterTrain(vehToSeek, m_vehEnterType);
+					SetEnterTrain(vehToSeek, m_vehDoor);
 				} else
 #endif
 				{
@@ -7613,42 +7613,42 @@ CPed::SeekCar(void)
 								case STATUS_PLAYER_DISABLED:
 									if (vehToSeek->IsBike()) {
 										if ((!m_leader || m_leader != vehToSeek->pDriver) &&
-											((m_vehEnterType == CAR_DOOR_LF || m_vehEnterType == CAR_DOOR_RF || m_vehEnterType == CAR_WINDSCREEN) && vehToSeek->pDriver ||
-											(m_vehEnterType == CAR_DOOR_LR || m_vehEnterType == CAR_DOOR_RR) && vehToSeek->pPassengers[0])) {
+											((m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_RF || m_vehDoor == CAR_WINDSCREEN) && vehToSeek->pDriver ||
+											(m_vehDoor == CAR_DOOR_LR || m_vehDoor == CAR_DOOR_RR) && vehToSeek->pPassengers[0])) {
 											SetCarJack(vehToSeek);
 										} else {
-											SetEnterCar(vehToSeek, m_vehEnterType);
+											SetEnterCar(vehToSeek, m_vehDoor);
 										}
 									} else if (!vehToSeek->bIsBus && (!m_leader || m_leader != vehToSeek->pDriver) &&
-										(m_vehEnterType == CAR_DOOR_LF && vehToSeek->pDriver || m_vehEnterType == CAR_DOOR_RF && vehToSeek->pPassengers[0] || m_vehEnterType == CAR_DOOR_LR && vehToSeek->pPassengers[1] || m_vehEnterType == CAR_DOOR_RR && vehToSeek->pPassengers[2])) {
+										(m_vehDoor == CAR_DOOR_LF && vehToSeek->pDriver || m_vehDoor == CAR_DOOR_RF && vehToSeek->pPassengers[0] || m_vehDoor == CAR_DOOR_LR && vehToSeek->pPassengers[1] || m_vehDoor == CAR_DOOR_RR && vehToSeek->pPassengers[2])) {
 										SetCarJack(vehToSeek);
-										if (m_objective == OBJECTIVE_ENTER_CAR_AS_DRIVER && m_vehEnterType != CAR_DOOR_LF)
+										if (m_objective == OBJECTIVE_ENTER_CAR_AS_DRIVER && m_vehDoor != CAR_DOOR_LF)
 											vehToSeek->pDriver->bFleeAfterExitingCar = true;
 									} else {
-										SetEnterCar(vehToSeek, m_vehEnterType);
+										SetEnterCar(vehToSeek, m_vehDoor);
 									}
 									break;
 								case STATUS_ABANDONED:
 									if (vehToSeek->IsBike()) {
-										if ((m_vehEnterType == CAR_DOOR_LR || m_vehEnterType == CAR_DOOR_RR) && vehToSeek->pPassengers[0]) {
+										if ((m_vehDoor == CAR_DOOR_LR || m_vehDoor == CAR_DOOR_RR) && vehToSeek->pPassengers[0]) {
 											if (vehToSeek->pPassengers[0]->bDontDragMeOutCar) {
 												if (IsPlayer())
-													SetEnterCar(vehToSeek, m_vehEnterType);
+													SetEnterCar(vehToSeek, m_vehDoor);
 											} else {
 												SetCarJack(vehToSeek);
 											}
 										} else {
-											SetEnterCar(vehToSeek, m_vehEnterType);
+											SetEnterCar(vehToSeek, m_vehDoor);
 										}
-									} else if (m_vehEnterType == CAR_DOOR_RF && vehToSeek->pPassengers[0]) {
+									} else if (m_vehDoor == CAR_DOOR_RF && vehToSeek->pPassengers[0]) {
 										if (vehToSeek->pPassengers[0]->bDontDragMeOutCar) {
 											if (IsPlayer())
-												SetEnterCar(vehToSeek, m_vehEnterType);
+												SetEnterCar(vehToSeek, m_vehDoor);
 										} else {
 											SetCarJack(vehToSeek);
 										}
 									} else {
-										SetEnterCar(vehToSeek, m_vehEnterType);
+										SetEnterCar(vehToSeek, m_vehDoor);
 									}
 									break;
 								case STATUS_WRECKED:
@@ -8980,7 +8980,7 @@ CPed::SetSolicit(uint32 time)
 
 	if (CharCreatedBy != MISSION_CHAR && m_carInObjective->m_nNumGettingIn == 0
 		&& CTimer::GetTimeInMilliseconds() < m_objectiveTimer) {
-		if (m_vehEnterType == CAR_DOOR_LF) {
+		if (m_vehDoor == CAR_DOOR_LF) {
 			m_fRotationDest = m_carInObjective->GetForward().Heading() - HALFPI;
 		} else {
 			m_fRotationDest = m_carInObjective->GetForward().Heading() + HALFPI;
@@ -9002,7 +9002,7 @@ void
 CPed::Solicit(void)
 {
 	if (m_standardTimer >= CTimer::GetTimeInMilliseconds() && m_carInObjective) {
-		CVector doorPos = GetPositionToOpenCarDoor(m_carInObjective, m_vehEnterType, 0.0f);
+		CVector doorPos = GetPositionToOpenCarDoor(m_carInObjective, m_vehDoor, 0.0f);
 		Say(SOUND_PED_SOLICIT);
 		if (FindPlayerVehicle() == m_carInObjective) {
 			FindPlayerPed()->Say(SOUND_PED_SOLICIT);
@@ -9138,7 +9138,7 @@ CPed::PossiblyFindBetterPosToSeekCar(CVector *pos, CVehicle *veh)
 		bool canHeadToRf = NTVF_RF <= 0.0f || NTVF_RF >= HALFPI;
 
 		// Only order of conditions are different among enterTypes.
-		if (m_vehEnterType == CAR_DOOR_RR) {
+		if (m_vehDoor == CAR_DOOR_RR) {
 			if (canHeadToRr) {
 				foundPos = rightRearPos;
 				foundIt = true;
@@ -9152,7 +9152,7 @@ CPed::PossiblyFindBetterPosToSeekCar(CVector *pos, CVehicle *veh)
 				foundPos = leftFrontPos;
 				foundIt = true;
 			}
-		} else if(m_vehEnterType == CAR_DOOR_RF) {
+		} else if(m_vehDoor == CAR_DOOR_RF) {
 			if (canHeadToRf) {
 				foundPos = rightFrontPos;
 				foundIt = true;
@@ -9166,7 +9166,7 @@ CPed::PossiblyFindBetterPosToSeekCar(CVector *pos, CVehicle *veh)
 				foundPos = leftRearPos;
 				foundIt = true;
 			}
-		} else if (m_vehEnterType == CAR_DOOR_LF) {
+		} else if (m_vehDoor == CAR_DOOR_LF) {
 			if (canHeadToLf) {
 				foundPos = leftFrontPos;
 				foundIt = true;
@@ -9180,7 +9180,7 @@ CPed::PossiblyFindBetterPosToSeekCar(CVector *pos, CVehicle *veh)
 				foundPos = rightRearPos;
 				foundIt = true;
 			}
-		} else if (m_vehEnterType == CAR_DOOR_LR) {
+		} else if (m_vehDoor == CAR_DOOR_LR) {
 			if (canHeadToLr) {
 				foundPos = leftRearPos;
 				foundIt = true;
diff --git a/src/peds/Ped.h b/src/peds/Ped.h
index 7798483f..eb3f470a 100644
--- a/src/peds/Ped.h
+++ b/src/peds/Ped.h
@@ -559,7 +559,7 @@ public:
 	float m_fRotationCur;
 	float m_fRotationDest;
 	float m_headingRate;
-	uint16 m_vehEnterType;
+	uint16 m_vehDoor;
 	int16 m_walkAroundType;
 	CPhysical *m_pCurrentPhysSurface;
 	CVector m_vecOffsetFromPhysSurface;
diff --git a/src/peds/PedAI.cpp b/src/peds/PedAI.cpp
index de82524d..b7b63c00 100644
--- a/src/peds/PedAI.cpp
+++ b/src/peds/PedAI.cpp
@@ -1178,7 +1178,7 @@ CPed::ProcessObjective(void)
 							bool foundSeat = false;
 							if (m_carInObjective->IsBike()) {
 								if (!m_carInObjective->pPassengers[0] && !(m_carInObjective->m_nGettingInFlags & (CAR_DOOR_FLAG_RR | CAR_DOOR_FLAG_LR))) {
-									m_vehEnterType = CAR_DOOR_RR;
+									m_vehDoor = CAR_DOOR_RR;
 									foundSeat = true;
 								}
 							} else {
@@ -1187,27 +1187,27 @@ CPed::ProcessObjective(void)
 										if (m_carInObjective->pPassengers[2] || m_carInObjective->m_nGettingInFlags & CAR_DOOR_FLAG_RR) {
 											foundSeat = false;
 										} else {
-											m_vehEnterType = CAR_DOOR_RR;
+											m_vehDoor = CAR_DOOR_RR;
 											foundSeat = true;
 										}
 									} else {
-										m_vehEnterType = CAR_DOOR_LR;
+										m_vehDoor = CAR_DOOR_LR;
 										foundSeat = true;
 									}
 								} else {
-									m_vehEnterType = CAR_DOOR_RF;
+									m_vehDoor = CAR_DOOR_RF;
 									foundSeat = true;
 								}
 							}
 							for (int i = 2; i < m_carInObjective->m_nNumMaxPassengers; ++i) {
 								if (!m_carInObjective->pPassengers[i] && !(m_carInObjective->m_nGettingInFlags & CAR_DOOR_FLAG_RF)) {
-									m_vehEnterType = CAR_DOOR_RF;
+									m_vehDoor = CAR_DOOR_RF;
 									foundSeat = true;
 								}
 							}
 							if (foundSeat) {
-								SetPosition(GetPositionToOpenCarDoor(m_carInObjective, m_vehEnterType));
-								SetEnterCar(m_carInObjective, m_vehEnterType);
+								SetPosition(GetPositionToOpenCarDoor(m_carInObjective, m_vehDoor));
+								SetEnterCar(m_carInObjective, m_vehDoor);
 							}
 						}
 						m_objectiveTimer = 0;
@@ -2337,7 +2337,7 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg)
 		return;
 	}
 
-	if (!ped->m_vehEnterType) {
+	if (!ped->m_vehDoor) {
 		ped->QuitEnteringCar();
 		return;
 	}
@@ -2351,7 +2351,7 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg)
 	bool itsLow = !!veh->bLowVehicle;
 	eDoors enterDoor;
 
-	switch (ped->m_vehEnterType) {
+	switch (ped->m_vehDoor) {
 		case CAR_DOOR_RF:
 			itsVan = false;
 			enterDoor = DOOR_FRONT_RIGHT;
@@ -2373,7 +2373,7 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg)
 	if (veh->IsBike()) {
 		CPed *pedToDragOut = nil;
 		if (veh->GetStatus() == STATUS_ABANDONED) {
-			if (ped->m_vehEnterType == CAR_WINDSCREEN) {
+			if (ped->m_vehDoor == CAR_WINDSCREEN) {
 				ped->m_pVehicleAnim = CAnimManager::BlendAnimation(ped->GetClump(), ((CBike*)veh)->m_bikeAnimType, ANIM_BIKE_KICK, 6.0f);
 				ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped);
 				((CBike*)veh)->bIsBeingPickedUp = true;
@@ -2399,7 +2399,7 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg)
 				ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped);
 				((CBike*)veh)->bIsBeingPickedUp = true;
 			}
-		} else if (ped->m_vehEnterType == CAR_WINDSCREEN) {
+		} else if (ped->m_vehDoor == CAR_WINDSCREEN) {
 			if (veh->pDriver->m_nPedState != PED_DRIVING || veh->pDriver->bDontDragMeOutCar) {
 				ped->QuitEnteringCar();
 			} else {
@@ -2413,7 +2413,7 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg)
 				if (veh->pDriver) {
 					if (veh->m_vecMoveSpeed.Magnitude() > 0.2f) {
 						ped->QuitEnteringCar();
-						ped->SetFall(1000, ped->m_vehEnterType == CAR_DOOR_LF || ped->m_vehEnterType == CAR_DOOR_LR ? ANIM_KO_SPIN_L : ANIM_KO_SPIN_R, false);
+						ped->SetFall(1000, ped->m_vehDoor == CAR_DOOR_LF || ped->m_vehDoor == CAR_DOOR_LR ? ANIM_KO_SPIN_L : ANIM_KO_SPIN_R, false);
 						return;
 					}
 					if (veh->pDriver->m_nPedState != PED_DRIVING || veh->pDriver->bDontDragMeOutCar) {
@@ -2434,7 +2434,7 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg)
 				if (veh->pPassengers[0]) {
 					if (veh->m_vecMoveSpeed.Magnitude() > 0.2f) {
 						ped->QuitEnteringCar();
-						ped->SetFall(1000, ped->m_vehEnterType == CAR_DOOR_LF || ped->m_vehEnterType == CAR_DOOR_LR ? ANIM_KO_SPIN_L : ANIM_KO_SPIN_R, false);
+						ped->SetFall(1000, ped->m_vehDoor == CAR_DOOR_LF || ped->m_vehDoor == CAR_DOOR_LR ? ANIM_KO_SPIN_L : ANIM_KO_SPIN_R, false);
 						return;
 					}
 					if (veh->pPassengers[0]->m_nPedState != PED_DRIVING || veh->pPassengers[0]->bDontDragMeOutCar) {
@@ -2457,7 +2457,7 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg)
 		}
 
 		if (pedToDragOut) {
-			pedToDragOut->SetBeingDraggedFromCar(veh, ped->m_vehEnterType, false);
+			pedToDragOut->SetBeingDraggedFromCar(veh, ped->m_vehDoor, false);
 			if (pedToDragOut->IsGangMember())
 				pedToDragOut->RegisterThreatWithGangPeds(ped);
 
@@ -2535,7 +2535,7 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg)
 					}
 
 					if (player != veh->pDriver) {
-						veh->pDriver->SetBeingDraggedFromCar(veh, ped->m_vehEnterType, true);
+						veh->pDriver->SetBeingDraggedFromCar(veh, ped->m_vehDoor, true);
 						if (veh->pDriver->IsGangMember())
 							veh->pDriver->RegisterThreatWithGangPeds(ped);
 					}
@@ -2585,7 +2585,7 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg)
 
 	eDoors door;
 	CPed *pedInSeat = nil;
-	switch (ped->m_vehEnterType) {
+	switch (ped->m_vehDoor) {
 		case CAR_DOOR_RF:
 			door = DOOR_FRONT_RIGHT;
 			pedInSeat = veh->pPassengers[0];
@@ -2643,21 +2643,21 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg)
 	if (veh->m_vecMoveSpeed.Magnitude() > 0.2f ||
 		veh->IsCar() && veh->GetVehicleAppearance() == VEHICLE_APPEARANCE_HELI && ((CAutomobile*)veh)->m_nWheelsOnGround == 0) {
 		ped->QuitEnteringCar();
-		if (ped->m_vehEnterType != CAR_DOOR_LF && ped->m_vehEnterType != CAR_DOOR_LR)
+		if (ped->m_vehDoor != CAR_DOOR_LF && ped->m_vehDoor != CAR_DOOR_LR)
 			ped->SetFall(1000, ANIM_KO_SPIN_R, false);
 		else
 			ped->SetFall(1000, ANIM_KO_SPIN_L, false);
 		
 		return;
 	}
-	veh->ProcessOpenDoor(ped->m_vehEnterType, ANIM_CAR_OPEN_LHS, 1.0f);
+	veh->ProcessOpenDoor(ped->m_vehDoor, ANIM_CAR_OPEN_LHS, 1.0f);
 
-	if (ped->m_vehEnterType == CAR_DOOR_LF || ped->m_vehEnterType == CAR_DOOR_RF)
+	if (ped->m_vehDoor == CAR_DOOR_LF || ped->m_vehDoor == CAR_DOOR_RF)
 		isVan = false;
 
 	if (ped->m_nPedState != PED_CARJACK || isBus) {
 
-		if (ped->m_vehEnterType == CAR_DOOR_LF || ped->m_vehEnterType == CAR_DOOR_LR) {
+		if (ped->m_vehDoor == CAR_DOOR_LF || ped->m_vehDoor == CAR_DOOR_LR) {
 			if (veh->IsBike()) {
 				ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ((CBike*)veh)->m_bikeAnimType, ANIM_BIKE_JUMPON_R);
 			} else if (isVan) {
@@ -2682,14 +2682,14 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg)
 				ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_RHS);
 			}
 
-			if (ped->m_vehEnterType == CAR_DOOR_RF && pedInSeat && veh->IsCar())
+			if (ped->m_vehDoor == CAR_DOOR_RF && pedInSeat && veh->IsCar())
 				pedInSeat->SetObjective(OBJECTIVE_LEAVE_CAR, veh);
 		}
 		
 		ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped);
 	} else {
 		CPed *pedToDragOut = nil;
-		switch (ped->m_vehEnterType) {
+		switch (ped->m_vehDoor) {
 			case CAR_DOOR_RF: pedToDragOut = veh->pPassengers[0]; break;
 			case CAR_DOOR_RR: pedToDragOut = veh->pPassengers[2]; break;
 			case CAR_DOOR_LF: pedToDragOut = veh->pDriver; break;
@@ -2703,7 +2703,7 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg)
 				((CCopPed*)ped)->SetArrestPlayer(ped->m_pedInObjective);
 		}
 
-		if (ped->m_vehEnterType != CAR_DOOR_LF && ped->m_vehEnterType != CAR_DOOR_LR) {
+		if (ped->m_vehDoor != CAR_DOOR_LF && ped->m_vehDoor != CAR_DOOR_LR) {
 
 			if (pedToDragOut && !pedToDragOut->bDontDragMeOutCar) {
 				if (pedToDragOut->m_nPedState != PED_DRIVING) {
@@ -2773,7 +2773,7 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg)
 			}
 
 			if (player != pedToDragOut) {
-				pedToDragOut->SetBeingDraggedFromCar(veh, ped->m_vehEnterType, false);
+				pedToDragOut->SetBeingDraggedFromCar(veh, ped->m_vehDoor, false);
 				if (pedToDragOut->IsGangMember())
 					pedToDragOut->RegisterThreatWithGangPeds(ped);
 			}
@@ -2844,7 +2844,7 @@ CPed::PedAnimPullPedOutCB(CAnimBlendAssociation* animAssoc, void* arg)
 		}
 
 		if (ped->m_objective == OBJECTIVE_ENTER_CAR_AS_DRIVER) {
-			if (ped->m_vehEnterType == CAR_DOOR_LF || ped->m_vehEnterType == CAR_DOOR_LR) {
+			if (ped->m_vehDoor == CAR_DOOR_LF || ped->m_vehDoor == CAR_DOOR_LR) {
 				if (veh->IsBike())
 					ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ((CBike*)veh)->m_bikeAnimType, ANIM_BIKE_JUMPON_R);
 				else if (isLow)
@@ -2901,7 +2901,7 @@ CPed::PedAnimGetInCB(CAnimBlendAssociation *animAssoc, void *arg)
 		}
 		return;
 	}
-	if (ped->IsPlayer() && ped->m_vehEnterType == CAR_DOOR_LF
+	if (ped->IsPlayer() && ped->m_vehDoor == CAR_DOOR_LF
 		&& (Pads[0].GetAccelerate() >= 255.0f || Pads[0].GetBrake() >= 255.0f)
 		&& veh->IsCar() && !veh->pDriver) {
 
@@ -2920,7 +2920,7 @@ CPed::PedAnimGetInCB(CAnimBlendAssociation *animAssoc, void *arg)
 	bool isBus = !!veh->bIsBus;
 	bool isLow = !!veh->bLowVehicle;
 	eDoors enterDoor;
-	switch (ped->m_vehEnterType) {
+	switch (ped->m_vehDoor) {
 		case CAR_DOOR_RF:
 			isVan = false;
 			enterDoor = DOOR_FRONT_RIGHT;
@@ -2966,7 +2966,7 @@ CPed::PedAnimGetInCB(CAnimBlendAssociation *animAssoc, void *arg)
 			ped->m_leaveCarTimer = CTimer::GetTimeInMilliseconds() + 400;
 			return;
 		}
-		if (driver != ped && ped->m_vehEnterType != CAR_DOOR_LF) {
+		if (driver != ped && ped->m_vehDoor != CAR_DOOR_LF) {
 			if (!driver->IsPlayer()) {
 				driver->bUsePedNodeSeek = true;
 				driver->m_pLastPathNode = nil;
@@ -3049,10 +3049,10 @@ CPed::PedAnimDoorCloseCB(CAnimBlendAssociation *animAssoc, void *arg)
 		bool isLow = !!veh->bLowVehicle;
 
 		if (!veh->bIsBus)
-			veh->ProcessOpenDoor(ped->m_vehEnterType, ANIM_CAR_CLOSEDOOR_LHS, 1.0f);
+			veh->ProcessOpenDoor(ped->m_vehDoor, ANIM_CAR_CLOSEDOOR_LHS, 1.0f);
 
 		eDoors door;
-		switch (ped->m_vehEnterType) {
+		switch (ped->m_vehDoor) {
 			case CAR_DOOR_RF: door = DOOR_FRONT_RIGHT; break;
 			case CAR_DOOR_RR: door = DOOR_REAR_RIGHT; break;
 			case CAR_DOOR_LF: door = DOOR_FRONT_LEFT; break;
@@ -3065,7 +3065,7 @@ CPed::PedAnimDoorCloseCB(CAnimBlendAssociation *animAssoc, void *arg)
 
 		if (door == DOOR_FRONT_LEFT || ped->m_objective == OBJECTIVE_ENTER_CAR_AS_PASSENGER || veh->bIsBus || veh->m_nNumMaxPassengers == 0) {
 			PedSetInCarCB(nil, ped);
-		} else if (ped->m_vehEnterType == CAR_DOOR_RF
+		} else if (ped->m_vehDoor == CAR_DOOR_RF
 				&& (veh->m_nGettingInFlags & CAR_DOOR_FLAG_LF ||
 					(veh->pDriver != nil && 
 						(veh->pDriver->m_objective != OBJECTIVE_LEAVE_CAR
@@ -3218,7 +3218,7 @@ CPed::PedAnimStepOutCarCB(CAnimBlendAssociation* animAssoc, void* arg)
 	veh->m_vecMoveSpeed += CVector(0.001f, 0.001f, 0.001f);
 	veh->m_vecTurnSpeed += CVector(0.001f, 0.001f, 0.001f);
 	if (!veh->bIsBus)
-		veh->ProcessOpenDoor(ped->m_vehEnterType, ANIM_CAR_GETOUT_LHS, 1.0f);
+		veh->ProcessOpenDoor(ped->m_vehDoor, ANIM_CAR_GETOUT_LHS, 1.0f);
 
 	/* 
 	// Duplicate and only in PC for some reason
@@ -3228,7 +3228,7 @@ CPed::PedAnimStepOutCarCB(CAnimBlendAssociation* animAssoc, void* arg)
 	}
 	*/
 	eDoors door;
-	switch (ped->m_vehEnterType) {
+	switch (ped->m_vehDoor) {
 		case CAR_DOOR_RF:
 			door = DOOR_FRONT_RIGHT;
 			break;
@@ -3397,7 +3397,7 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase)
 	if (veh->GetUp().z <= -0.8f)
 		vehIsUpsideDown = true;
 
-	if (m_vehEnterType == CAR_DOOR_RF || m_vehEnterType == CAR_DOOR_RR) {
+	if (m_vehDoor == CAR_DOOR_RF || m_vehDoor == CAR_DOOR_RR) {
 		if (vehIsUpsideDown) {
 			m_fRotationDest = -PI + veh->GetForward().Heading();
 		} else if (veh->bIsBus) {
@@ -3405,7 +3405,7 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase)
 		} else {
 			m_fRotationDest = veh->GetForward().Heading();
 		}
-	} else if (m_vehEnterType == CAR_DOOR_LF || m_vehEnterType == CAR_DOOR_LR) {
+	} else if (m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_LR) {
 		if (vehIsUpsideDown) {
 			m_fRotationDest = veh->GetForward().Heading();
 		} else if (veh->bIsBus) {
@@ -3420,7 +3420,7 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase)
 			m_fRotationDest = veh->GetForward().Heading();
 		} else if (veh->bIsBus) {
 			m_fRotationDest = 0.5f * PI + veh->GetForward().Heading();
-		} else if (m_vehEnterType == CAR_WINDSCREEN) {
+		} else if (m_vehDoor == CAR_WINDSCREEN) {
 			m_fRotationDest = veh->GetForward().Heading() + PI;
 		} else {
 			m_fRotationDest = veh->GetForward().Heading();
@@ -3528,7 +3528,7 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase)
 	if (phase == LINE_UP_TO_CAR_2) {
 		neededPos = GetPosition();
 	} else {
-		neededPos = GetPositionToOpenCarDoor(veh, m_vehEnterType, seatPosMult);
+		neededPos = GetPositionToOpenCarDoor(veh, m_vehDoor, seatPosMult);
 	}
 
 	autoZPos = neededPos;
@@ -3645,13 +3645,13 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase)
 		SetHeading(m_fRotationCur);
 	} else {
 		CMatrix vehDoorMat(veh->GetMatrix());
-		vehDoorMat.GetPosition() += Multiply3x3(vehDoorMat, GetLocalPositionToOpenCarDoor(veh, m_vehEnterType, 0.0f));
+		vehDoorMat.GetPosition() += Multiply3x3(vehDoorMat, GetLocalPositionToOpenCarDoor(veh, m_vehDoor, 0.0f));
 
-		if (m_vehEnterType == CAR_WINDSCREEN || veh->bIsBus) {
+		if (m_vehDoor == CAR_WINDSCREEN || veh->bIsBus) {
 			CMatrix correctionMat;
-			if (veh->bIsBus && (m_vehEnterType == CAR_DOOR_LF || m_vehEnterType == CAR_DOOR_LR))
+			if (veh->bIsBus && (m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_LR))
 				correctionMat.SetRotateZ(-HALFPI);
-			else if (veh->bIsBus && (m_vehEnterType == CAR_DOOR_RF || m_vehEnterType == CAR_DOOR_RR))
+			else if (veh->bIsBus && (m_vehDoor == CAR_DOOR_RF || m_vehDoor == CAR_DOOR_RR))
 				correctionMat.SetRotateZ(HALFPI);
 			else
 				correctionMat.SetRotateZ(PI);
@@ -3675,7 +3675,7 @@ CPed::SetCarJack(CVehicle* car)
 		return;
 
 	if (car->IsBike()) {
-		switch (m_vehEnterType) {
+		switch (m_vehDoor) {
 			case CAR_DOOR_RF:
 				doorFlag = CAR_DOOR_FLAG_LF | CAR_DOOR_FLAG_RF;
 				door = DOOR_FRONT_RIGHT;
@@ -3702,7 +3702,7 @@ CPed::SetCarJack(CVehicle* car)
 				break;
 		}
 	} else {
-		switch (m_vehEnterType) {
+		switch (m_vehDoor) {
 			case CAR_DOOR_RF:
 				doorFlag = CAR_DOOR_FLAG_RF;
 				door = DOOR_FRONT_RIGHT;
@@ -3743,7 +3743,7 @@ CPed::SetCarJack(CVehicle* car)
 			if (m_nPedState != PED_CARJACK && !m_pVehicleAnim)
 				if ((car->IsDoorReady(door) || car->IsDoorFullyOpen(door)))
 					if (!car->bIsBeingCarJacked && !(doorFlag & car->m_nGettingInFlags) && !(doorFlag & car->m_nGettingOutFlags))
-						SetCarJack_AllClear(car, m_vehEnterType, doorFlag);
+						SetCarJack_AllClear(car, m_vehDoor, doorFlag);
 }
 
 // --MIAMI: Done
@@ -3767,7 +3767,7 @@ CPed::SetCarJack_AllClear(CVehicle* car, uint32 doorNode, uint32 doorFlag)
 		Say(SOUND_PED_CAR_JACKING, 1000);
 
 	CVector carEnterPos;
-	carEnterPos = GetPositionToOpenCarDoor(car, m_vehEnterType);
+	carEnterPos = GetPositionToOpenCarDoor(car, m_vehDoor);
 
 	car->m_nGettingInFlags |= doorFlag;
 	m_vecOffsetSeek = carEnterPos - GetPosition();
@@ -3780,7 +3780,7 @@ CPed::SetCarJack_AllClear(CVehicle* car, uint32 doorNode, uint32 doorFlag)
 		float zDiff = Max(0.0f, carEnterPos.z - GetPosition().z);
 		bUsesCollision = false;
 
-		if (m_vehEnterType == CAR_DOOR_LF || m_vehEnterType == CAR_DOOR_LR)
+		if (m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_LR)
 			m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, zDiff > 4.4f ? ANIM_CAR_ALIGNHI_LHS : ANIM_CAR_ALIGN_LHS, 4.0f);
 		else
 			m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, zDiff > 4.4f ? ANIM_CAR_ALIGNHI_RHS : ANIM_CAR_ALIGN_RHS, 4.0f);
@@ -3806,14 +3806,14 @@ CPed::SetBeingDraggedFromCar(CVehicle *veh, uint32 vehEnterType, bool quickJack)
 	if (veh->IsBike()) {
 		((CBike*)veh)->bIsBeingPickedUp = true;
 		if (veh->pPassengers[0] != this && (vehEnterType != CAR_WINDSCREEN || veh->pPassengers[0]))
-			m_vehEnterType = CAR_DOOR_LF;
+			m_vehDoor = CAR_DOOR_LF;
 		else
-			m_vehEnterType = CAR_DOOR_LR;
+			m_vehDoor = CAR_DOOR_LR;
 	} else {
-		m_vehEnterType = vehEnterType;
+		m_vehDoor = vehEnterType;
 	}
 
-	if (m_vehEnterType == CAR_DOOR_LF) {
+	if (m_vehDoor == CAR_DOOR_LF) {
 		if (veh->pDriver && veh->pDriver->IsPlayer())
 			veh->SetStatus(STATUS_PLAYER_DISABLED);
 		else
@@ -3833,9 +3833,9 @@ CPed::SetBeingDraggedFromCar(CVehicle *veh, uint32 vehEnterType, bool quickJack)
 	SetRadioStation();
 
 	if(veh->IsBike())
-		veh->m_nGettingOutFlags |= GetBikeDoorFlagInclJumpInFromFront(m_vehEnterType);
+		veh->m_nGettingOutFlags |= GetBikeDoorFlagInclJumpInFromFront(m_vehDoor);
 	else
-		veh->m_nGettingOutFlags |= GetCarDoorFlag(m_vehEnterType);
+		veh->m_nGettingOutFlags |= GetCarDoorFlag(m_vehDoor);
 }
 
 // --MIAMI: Done
@@ -3854,15 +3854,15 @@ CPed::BeingDraggedFromCar(void)
 			assocGroup = ((CBike*)m_pMyVehicle)->m_bikeAnimType;
 
 		} else {
-			if (m_vehEnterType == CAR_DOOR_LF || m_vehEnterType == CAR_DOOR_LR) {
-				if (bWillBeQuickJacked && m_vehEnterType == CAR_DOOR_LF) {
+			if (m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_LR) {
+				if (bWillBeQuickJacked && m_vehDoor == CAR_DOOR_LF) {
 					enterAnim = ANIM_CAR_QJACKED;
 				} else if (m_pMyVehicle->bLowVehicle) {
 					enterAnim = ANIM_CAR_LJACKED_LHS;
 				} else {
 					enterAnim = ANIM_CAR_JACKED_LHS;
 				}
-			} else if (m_vehEnterType == CAR_DOOR_RF || m_vehEnterType == CAR_DOOR_RR) {
+			} else if (m_vehDoor == CAR_DOOR_RF || m_vehDoor == CAR_DOOR_RR) {
 				if (m_pMyVehicle->bLowVehicle)
 					enterAnim = ANIM_CAR_LJACKED_RHS;
 				else
@@ -3899,7 +3899,7 @@ CPed::BeingDraggedFromCar(void)
 	static float mult = 5.f;
 	if (m_objective == OBJECTIVE_LEAVE_CAR_AND_DIE) {
 		if (m_pMyVehicle) {
-			m_pMyVehicle->ProcessOpenDoor(m_vehEnterType, NUM_STD_ANIMS, m_pVehicleAnim->currentTime * mult);
+			m_pMyVehicle->ProcessOpenDoor(m_vehDoor, NUM_STD_ANIMS, m_pVehicleAnim->currentTime * mult);
 		}
 	}
 }
@@ -3915,7 +3915,7 @@ CPed::SetEnterCar(CVehicle *car, uint32 unused)
 		uint8 doorFlag;
 		eDoors door;
 		if (car->IsBike()) {
-			switch (m_vehEnterType) {
+			switch (m_vehDoor) {
 				case CAR_DOOR_RF:
 					doorFlag = CAR_DOOR_FLAG_RF | CAR_DOOR_FLAG_LF;
 					door = DOOR_FRONT_RIGHT;
@@ -3941,7 +3941,7 @@ CPed::SetEnterCar(CVehicle *car, uint32 unused)
 					break;
 			}
 		} else {
-			switch (m_vehEnterType) {
+			switch (m_vehDoor) {
 				case CAR_DOOR_RF:
 					doorFlag = CAR_DOOR_FLAG_RF;
 					door = DOOR_FRONT_RIGHT;
@@ -3977,7 +3977,7 @@ CPed::SetEnterCar(CVehicle *car, uint32 unused)
 			|| doorFlag && !car->IsDoorReady(door) && !car->IsDoorFullyOpen(door))
 			SetMoveState(PEDMOVE_STILL);
 		else
-			SetEnterCar_AllClear(car, m_vehEnterType, doorFlag);
+			SetEnterCar_AllClear(car, m_vehDoor, doorFlag);
 	}
 }
 
@@ -3993,9 +3993,9 @@ CPed::SetEnterCar_AllClear(CVehicle *car, uint32 doorNode, uint32 doorFlag)
 
 	m_pSeekTarget = car;
 	m_pSeekTarget->RegisterReference((CEntity **) &m_pSeekTarget);
-	m_vehEnterType = doorNode;
+	m_vehDoor = doorNode;
 	SetPedState(PED_ENTER_CAR);
-	if (m_vehEnterType == CAR_DOOR_RF && m_objective == OBJECTIVE_ENTER_CAR_AS_DRIVER && !car->IsBike()) {
+	if (m_vehDoor == CAR_DOOR_RF && m_objective == OBJECTIVE_ENTER_CAR_AS_DRIVER && !car->IsBike()) {
 		car->bIsBeingCarJacked = true;
 	}
 
@@ -4003,7 +4003,7 @@ CPed::SetEnterCar_AllClear(CVehicle *car, uint32 doorNode, uint32 doorFlag)
 	m_pMyVehicle->RegisterReference((CEntity**) &m_pMyVehicle);
 	((CVehicle*)m_pSeekTarget)->m_nNumGettingIn++;
 	bUsesCollision = false;
-	CVector doorOpenPos = GetPositionToOpenCarDoor(car, m_vehEnterType);
+	CVector doorOpenPos = GetPositionToOpenCarDoor(car, m_vehDoor);
 
 	// Because buses have stairs
 	if (!m_pMyVehicle->bIsBus)
@@ -4026,7 +4026,7 @@ CPed::SetEnterCar_AllClear(CVehicle *car, uint32 doorNode, uint32 doorFlag)
 		car->AutoPilot.m_nCruiseSpeed = 0;
 
 	} else {
-		if (m_vehEnterType == CAR_DOOR_LF || m_vehEnterType == CAR_DOOR_LR)
+		if (m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_LR)
 			m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, zDiff > 4.4f ? ANIM_CAR_ALIGNHI_RHS : ANIM_CAR_ALIGN_RHS, 4.0f);
 		else
 			m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, zDiff > 4.4f ? ANIM_CAR_ALIGNHI_LHS : ANIM_CAR_ALIGN_LHS, 4.0f);
@@ -4042,11 +4042,11 @@ CPed::EnterCar(void)
 		CVehicle *veh = m_pMyVehicle;
 
 		// Not used.
-		// CVector posForDoor = GetPositionToOpenCarDoor(veh, m_vehEnterType);
+		// CVector posForDoor = GetPositionToOpenCarDoor(veh, m_vehDoor);
 
 		if (veh->CanPedOpenLocks(this)) {
-			if (m_vehEnterType && m_pVehicleAnim) {
-				veh->ProcessOpenDoor(m_vehEnterType, m_pVehicleAnim->animId, m_pVehicleAnim->currentTime);
+			if (m_vehDoor && m_pVehicleAnim) {
+				veh->ProcessOpenDoor(m_vehDoor, m_pVehicleAnim->animId, m_pVehicleAnim->currentTime);
 			}
 		}
 		bIsInTheAir = false;
@@ -4102,10 +4102,10 @@ CPed::QuitEnteringCar(void)
 			RestorePreviousObjective();
 
 		if (veh->IsBike()) {
-			veh->m_nGettingInFlags &= ~GetBikeDoorFlag(m_vehEnterType);
+			veh->m_nGettingInFlags &= ~GetBikeDoorFlag(m_vehDoor);
 			((CBike*)veh)->bIsBeingPickedUp = false;
 		} else
-			veh->m_nGettingInFlags &= ~GetEnterCarDoorFlag(m_vehEnterType, veh->m_nNumMaxPassengers);
+			veh->m_nGettingInFlags &= ~GetEnterCarDoorFlag(m_vehDoor, veh->m_nNumMaxPassengers);
 	}
 
 	bUsesCollision = true;
@@ -4139,7 +4139,7 @@ CPed::SetExitBoat(CVehicle *boat)
 		newPos = { 0.0f, 0.0f, boatCol->boundingBox.min.z };
 		newPos = boat->GetMatrix() * newPos;
 		newPos.z += 1.0f;
-		m_vehEnterType = CAR_DOOR_RF;
+		m_vehDoor = CAR_DOOR_RF;
 		PedSetOutCarCB(nil, this);
 		bIsStanding = true;
 		m_pCurSurface = boat;
@@ -4148,7 +4148,7 @@ CPed::SetExitBoat(CVehicle *boat)
 	} else {
 		if (boat->m_modelIndex == MI_SKIMMER) {
 			if (!boat->bIsInWater) {
-				m_vehEnterType = CAR_DOOR_RF;
+				m_vehDoor = CAR_DOOR_RF;
 				PedSetOutCarCB(nil, this);
 				bIsStanding = true;
 				SetMoveState(PEDMOVE_STILL);
@@ -4169,7 +4169,7 @@ CPed::SetExitBoat(CVehicle *boat)
 
 			newPos.z += 2.0f;
 		}
-		m_vehEnterType = CAR_DOOR_RF;
+		m_vehDoor = CAR_DOOR_RF;
 		PedSetOutCarCB(nil, this);
 		bIsStanding = true;
 		m_pCurSurface = boat;
@@ -4410,14 +4410,14 @@ CPed::SetExitCar(CVehicle *veh, uint32 wantedDoorNode)
 
 				// needed for PositionPedOutOfCollision()
 				optedDoorNode = firstOptedDoor;
-				m_vehEnterType = firstOptedDoor;
+				m_vehDoor = firstOptedDoor;
 				PositionPedOutOfCollision();
 				teleportNeeded = true;
 			}
 		}
 
 		if (!teleportNeeded && veh->IsOnItsSide()) {
-			m_vehEnterType = optedDoorNode;
+			m_vehDoor = optedDoorNode;
 			PositionPedOutOfCollision();
 			teleportNeeded = true;
 		}
@@ -4435,7 +4435,7 @@ CPed::SetExitCar(CVehicle *veh, uint32 wantedDoorNode)
 		bUsesCollision = false;
 		m_pSeekTarget = veh;
 		m_pSeekTarget->RegisterReference((CEntity**) &m_pSeekTarget);
-		m_vehEnterType = optedDoorNode;
+		m_vehDoor = optedDoorNode;
 		SetPedState(PED_EXIT_CAR);
 		if (m_pVehicleAnim && m_pVehicleAnim->flags & ASSOC_PARTIAL)
 			m_pVehicleAnim->blendDelta = -1000.0f;
@@ -4448,16 +4448,16 @@ CPed::SetExitCar(CVehicle *veh, uint32 wantedDoorNode)
 			PedSetOutCarCB(nil, this);
 		} else {
 			if (veh->GetUp().z <= -0.8f && !veh->IsBike()) {
-				if (m_vehEnterType == CAR_DOOR_RF || m_vehEnterType == CAR_DOOR_RR) {
+				if (m_vehDoor == CAR_DOOR_RF || m_vehDoor == CAR_DOOR_RR) {
 					m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_CRAWLOUT_RHS2);
-				} else if (m_vehEnterType == CAR_DOOR_LF || m_vehEnterType == CAR_DOOR_LR) {
+				} else if (m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_LR) {
 					m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_CRAWLOUT_RHS);
 				}
 				m_pVehicleAnim->SetFinishCallback(PedSetOutCarCB, this);
 
 			} else if (veh->IsBike()) {
 				CBike* bike = (CBike*)veh;
-				switch (m_vehEnterType) {
+				switch (m_vehDoor) {
 					case CAR_BUMP_REAR:
 					case CAR_BOOT:
 						m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), bike->m_bikeAnimType, ANIM_BIKE_GETOFF_BACK);
@@ -4476,7 +4476,7 @@ CPed::SetExitCar(CVehicle *veh, uint32 wantedDoorNode)
 				int8 exitFlags = 0;
 
 				// Bike door flags incl. passenger jump off
-				switch (m_vehEnterType) {
+				switch (m_vehDoor) {
 					case CAR_BUMP_REAR:
 					case CAR_DOOR_RR:
 					case CAR_DOOR_LR:
@@ -4490,7 +4490,7 @@ CPed::SetExitCar(CVehicle *veh, uint32 wantedDoorNode)
 				}
 
 				// Passenger get off
-				if (m_vehEnterType == CAR_BUMP_REAR || m_vehEnterType == CAR_BOOT) {
+				if (m_vehDoor == CAR_BUMP_REAR || m_vehDoor == CAR_BOOT) {
 					m_pVehicleAnim->SetFinishCallback(RestoreHeadingRateCB, this);
 					m_headingRate = 0.0f;
 
@@ -4500,7 +4500,7 @@ CPed::SetExitCar(CVehicle *veh, uint32 wantedDoorNode)
 				}
 
 			} else {
-				switch (m_vehEnterType) {
+				switch (m_vehDoor) {
 					case CAR_DOOR_RF:
 						if (canJumpOut) {
 							m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_ROLLOUT_RHS);
@@ -4551,7 +4551,7 @@ CPed::SetExitCar(CVehicle *veh, uint32 wantedDoorNode)
 						break;
 				}
 				if (!bBusJacked && !canJumpOut) {
-					veh->m_nGettingOutFlags |= GetCarDoorFlag(m_vehEnterType);
+					veh->m_nGettingOutFlags |= GetCarDoorFlag(m_vehDoor);
 				}
 				m_pVehicleAnim->SetFinishCallback(canJumpOut ? RestoreHeadingRateCB : PedAnimStepOutCarCB, this);
 			}
@@ -4577,7 +4577,7 @@ CPed::ExitCar(void)
 	if (!m_pVehicleAnim) {
 		if (InVehicle()) {
 			if (m_pMyVehicle->IsBike()) {
-				if (m_vehEnterType == CAR_BOOT || m_vehEnterType == CAR_BUMP_REAR) {
+				if (m_vehDoor == CAR_BOOT || m_vehDoor == CAR_BUMP_REAR) {
 					((CBike*)m_pMyVehicle)->KnockOffRider(WEAPONTYPE_UNARMED, 0, this, false);
 				}
 			} else if (m_pMyVehicle->IsCar()) {
@@ -4611,7 +4611,7 @@ CPed::ExitCar(void)
 			LineUpPedWithCar(LINE_UP_TO_CAR_FALL);
 		}
 	} else {
-		m_pMyVehicle->ProcessOpenDoor(m_vehEnterType, exitAnim, animTime);
+		m_pMyVehicle->ProcessOpenDoor(m_vehDoor, exitAnim, animTime);
 
 		if (m_pSeekTarget) {
 			// Car is upside down
@@ -4673,17 +4673,17 @@ CPed::GetNearestDoor(CVehicle *veh, CVector &posToOpen)
 					angleDiff += TWOPI;
 
 				if (Abs(angleDiff) < DEGTORAD(30.f)
-					&& (IsPlayer() && ((CPlayerPed*)this)->m_fMoveSpeed > 1.5f && !m_vehEnterType ||
+					&& (IsPlayer() && ((CPlayerPed*)this)->m_fMoveSpeed > 1.5f && !m_vehDoor ||
 						!IsPlayer() && m_nPedType != PEDTYPE_COP && m_nMoveState == PEDMOVE_RUN
 						&& m_pedStats->m_temper > 65
-						&& !m_vehEnterType || m_vehEnterType == CAR_WINDSCREEN)) {
-					m_vehEnterType = CAR_WINDSCREEN;
+						&& !m_vehDoor || m_vehDoor == CAR_WINDSCREEN)) {
+					m_vehDoor = CAR_WINDSCREEN;
 					posToOpen = GetPositionToOpenCarDoor(veh, CAR_WINDSCREEN);
 					return;
 				}
 			}
 		}
-	} else if (m_vehEnterType == CAR_DOOR_LF && veh->pDriver && !veh->bLowVehicle && !veh->bIsBus) {
+	} else if (m_vehDoor == CAR_DOOR_LF && veh->pDriver && !veh->bLowVehicle && !veh->bIsBus) {
 		enterOffset = &vecPedQuickDraggedOutCarAnimOffset;
 	}
 
@@ -4694,10 +4694,10 @@ CPed::GetNearestDoor(CVehicle *veh, CVector &posToOpen)
 	if ((lfPos - GetPosition()).MagnitudeSqr2D() < (rfPos - GetPosition()).MagnitudeSqr2D()) {
 
 		if (veh->IsRoomForPedToLeaveCar(CAR_DOOR_LF, enterOffset)) {
-			m_vehEnterType = CAR_DOOR_LF;
+			m_vehDoor = CAR_DOOR_LF;
 			posToOpen = lfPos;
 		} else if (veh->IsRoomForPedToLeaveCar(CAR_DOOR_RF, enterOffset)) {
-			m_vehEnterType = CAR_DOOR_RF;
+			m_vehDoor = CAR_DOOR_RF;
 			posToOpen = rfPos;
 		}
 	} else {
@@ -4711,14 +4711,14 @@ CPed::GetNearestDoor(CVehicle *veh, CVector &posToOpen)
 					&& veh->IsRoomForPedToLeaveCar(CAR_DOOR_LF, enterOffset)
 				|| (veh->m_nGettingInFlags & CAR_DOOR_FLAG_RF) && veh->IsRoomForPedToLeaveCar(CAR_DOOR_LF, enterOffset)) {
 
-				m_vehEnterType = CAR_DOOR_LF;
+				m_vehDoor = CAR_DOOR_LF;
 				posToOpen = lfPos;
 			} else {
-				m_vehEnterType = CAR_DOOR_RF;
+				m_vehDoor = CAR_DOOR_RF;
 				posToOpen = rfPos;
 			}
 		} else if (veh->IsRoomForPedToLeaveCar(CAR_DOOR_LF, enterOffset)) {
-			m_vehEnterType = CAR_DOOR_LF;
+			m_vehDoor = CAR_DOOR_LF;
 			posToOpen = lfPos;
 		}
 	}
@@ -4735,7 +4735,7 @@ CPed::GetNearestPassengerDoor(CVehicle *veh, CVector &posToOpen)
 
 	switch (veh->GetModelIndex()) {
 		case MI_BUS:
-			m_vehEnterType = CAR_DOOR_RF;
+			m_vehDoor = CAR_DOOR_RF;
 			posToOpen = GetPositionToOpenCarDoor(veh, CAR_DOOR_RF);
 			return true;
 		case MI_RHINO:
@@ -4794,15 +4794,15 @@ CPed::GetNearestPassengerDoor(CVehicle *veh, CVector &posToOpen)
 
 	CVector2D nextToCompare = rfPosDist;
 	posToOpen = rfPos;
-	m_vehEnterType = CAR_DOOR_RF;
+	m_vehDoor = CAR_DOOR_RF;
 	if (lrPosDist.MagnitudeSqr() < nextToCompare.MagnitudeSqr()) {
-		m_vehEnterType = CAR_DOOR_LR;
+		m_vehDoor = CAR_DOOR_LR;
 		posToOpen = lrPos;
 		nextToCompare = lrPosDist;
 	}
 
 	if (rrPosDist.MagnitudeSqr() < nextToCompare.MagnitudeSqr()) {
-		m_vehEnterType = CAR_DOOR_RR;
+		m_vehDoor = CAR_DOOR_RR;
 		posToOpen = rrPos;
 	}
 	return canEnter;
@@ -4825,7 +4825,7 @@ void CPed::PedSetGetInCarPositionCB(CAnimBlendAssociation* assoc, void* arg)
 	CPed* pPed = (CPed*)arg;
 	CMatrix mat(pPed->GetMatrix());
 	CVehicle* pVehicle = pPed->m_pMyVehicle;
-	const CVector& offset = (pVehicle->bIsVan && (pPed->m_vehEnterType == CAR_DOOR_RR || pPed->m_vehEnterType == CAR_DOOR_LR)) ? vecPedVanRearDoorAnimOffset : vecPedCarDoorAnimOffset;
+	const CVector& offset = (pVehicle->bIsVan && (pPed->m_vehDoor == CAR_DOOR_RR || pPed->m_vehDoor == CAR_DOOR_LR)) ? vecPedVanRearDoorAnimOffset : vecPedCarDoorAnimOffset;
 	CVector position = Multiply3x3(mat, offset) + pPed->GetPosition();
 	CPedPlacement::FindZCoorForPed(&position);
 	pPed->SetMoveSpeed(0.0f, 0.0f, 0.0f);
@@ -5009,7 +5009,7 @@ CPed::PedSetQuickDraggedOutCarPositionCB(CAnimBlendAssociation *animAssoc, void
 	ped->bUsesCollision = true;
 	ped->RestartNonPartialAnims();
 	draggedOutOffset = vecPedQuickDraggedOutCarAnimOffset;
-	if (ped->m_vehEnterType == CAR_DOOR_RF || ped->m_vehEnterType == CAR_DOOR_RR)
+	if (ped->m_vehDoor == CAR_DOOR_RF || ped->m_vehDoor == CAR_DOOR_RR)
 		draggedOutOffset.x = -draggedOutOffset.x;
 
 	finalPos = Multiply3x3(pedMat, draggedOutOffset) + ped->GetPosition();
@@ -5022,7 +5022,7 @@ CPed::PedSetQuickDraggedOutCarPositionCB(CAnimBlendAssociation *animAssoc, void
 		ped->m_fRotationCur = ped->m_fRotationDest;
 		ped->CalculateNewOrientation();
 
-		if (!veh->IsRoomForPedToLeaveCar(ped->m_vehEnterType, &vecPedQuickDraggedOutCarAnimOffset))
+		if (!veh->IsRoomForPedToLeaveCar(ped->m_vehDoor, &vecPedQuickDraggedOutCarAnimOffset))
 			ped->PositionPedOutOfCollision();
 	}
 
@@ -5113,7 +5113,7 @@ CPed::PedSetDraggedOutCarPositionCB(CAnimBlendAssociation* animAssoc, void* arg)
 	} else {
 		draggedOutOffset = vecPedDraggedOutCarAnimOffset;
 	}
-	if (ped->m_vehEnterType == CAR_DOOR_RF || ped->m_vehEnterType == CAR_DOOR_RR)
+	if (ped->m_vehDoor == CAR_DOOR_RF || ped->m_vehDoor == CAR_DOOR_RR)
 		draggedOutOffset.x = -draggedOutOffset.x;
 
 	CVector posAfterBeingDragged = Multiply3x3(pedMat, draggedOutOffset);
@@ -5122,7 +5122,7 @@ CPed::PedSetDraggedOutCarPositionCB(CAnimBlendAssociation* animAssoc, void* arg)
 	ped->m_vecMoveSpeed = CVector(0.0f, 0.0f, 0.0f);
 	ped->SetPosition(posAfterBeingDragged);
 
-	if (ped->m_pMyVehicle && !ped->m_pMyVehicle->IsBike() && !ped->m_pMyVehicle->IsRoomForPedToLeaveCar(ped->m_vehEnterType, &vecPedDraggedOutCarAnimOffset)) {
+	if (ped->m_pMyVehicle && !ped->m_pMyVehicle->IsBike() && !ped->m_pMyVehicle->IsRoomForPedToLeaveCar(ped->m_vehDoor, &vecPedDraggedOutCarAnimOffset)) {
 		ped->PositionPedOutOfCollision();
 	}
 
@@ -5190,7 +5190,7 @@ CPed::GetNearestTrainDoor(CVehicle *train, CVector &doorPos)
 	CVehicleModelInfo* trainModel = (CVehicleModelInfo*)CModelInfo::GetModelInfo(train->m_modelIndex);
 	CMatrix trainMat = CMatrix(train->GetMatrix());
 
-	doorPos = trainModel->m_positions[m_vehEnterType];
+	doorPos = trainModel->m_positions[m_vehDoor];
 	doorPos.x -= 1.5f;
 	doorPos = Multiply3x3(trainMat, doorPos);
 	doorPos += train->GetPosition();
@@ -5241,17 +5241,17 @@ CPed::GetNearestTrainPedPosition(CVehicle *train, CVector &enterPos)
 	if (distMidEntry < distLeftEntry) {
 		if (distMidEntry < distRightEntry) {
 			enterPos = midEntryPos;
-			m_vehEnterType = TRAIN_POS_MID_ENTRY;
+			m_vehDoor = TRAIN_POS_MID_ENTRY;
 		} else {
 			enterPos = rightEntryPos;
-			m_vehEnterType = TRAIN_POS_RIGHT_ENTRY;
+			m_vehDoor = TRAIN_POS_RIGHT_ENTRY;
 		}
 	} else if (distRightEntry < distLeftEntry) {
 		enterPos = rightEntryPos;
-		m_vehEnterType = TRAIN_POS_RIGHT_ENTRY;
+		m_vehDoor = TRAIN_POS_RIGHT_ENTRY;
 	} else {
 		enterPos = leftEntryPos;
-		m_vehEnterType = TRAIN_POS_LEFT_ENTRY;
+		m_vehDoor = TRAIN_POS_LEFT_ENTRY;
 	}
 
 	return 1;
@@ -6030,7 +6030,7 @@ CPed::SeekBoatPosition(void)
 		m_vecSeekPos = boatMat * enterOffset;
 		if (Seek()) {
 			// We arrived to the boat
-			m_vehEnterType = 0;
+			m_vehDoor = 0;
 			SetEnterCar(m_carInObjective, 0);
 		}
 	} else
@@ -6167,9 +6167,9 @@ CPed::PositionPedOutOfCollision(void)
 				foundAPos = true;
 		}
 
-	} else if (m_vehEnterType != 0) {
+	} else if (m_vehDoor != 0) {
 		// Try the normal way
-		CVector pos = GetPositionToOpenCarDoor(m_pMyVehicle, m_vehEnterType);
+		CVector pos = GetPositionToOpenCarDoor(m_pMyVehicle, m_vehDoor);
 		newPos = pos;
 		GetMatrix().SetTranslate(newPos);
 		if (!CheckCollision()) {
@@ -6179,7 +6179,7 @@ CPed::PositionPedOutOfCollision(void)
 	}
 
 	float vehRelativeExitX = vehCol->boundingBox.min.x - 0.355f;
-	if (m_vehEnterType == CAR_DOOR_RF || m_vehEnterType == CAR_DOOR_RR)
+	if (m_vehDoor == CAR_DOOR_RF || m_vehDoor == CAR_DOOR_RR)
 		vehRelativeExitX = 0.355f + vehCol->boundingBox.max.x;
 
 	if (!foundAPos) {
@@ -6500,19 +6500,19 @@ CPed::KillCharOnFootArmed(CVector &ourPos, CVector &targetPos, CVector &distWith
 						if (m_nPedType == PEDTYPE_COP || vehOfTarget->bIsBus) {
 							GoToNearestDoor(vehOfTarget);
 						} else {
-							m_vehEnterType = 0;
+							m_vehDoor = 0;
 							if (m_pedInObjective == vehOfTarget->pDriver || vehOfTarget->bIsBus) {
-								m_vehEnterType = CAR_DOOR_LF;
+								m_vehDoor = CAR_DOOR_LF;
 							} else if (m_pedInObjective == vehOfTarget->pPassengers[0]) {
-								m_vehEnterType = CAR_DOOR_RF;
+								m_vehDoor = CAR_DOOR_RF;
 							} else if (m_pedInObjective == vehOfTarget->pPassengers[1]) {
-								m_vehEnterType = CAR_DOOR_LR;
+								m_vehDoor = CAR_DOOR_LR;
 							} else if (m_pedInObjective == vehOfTarget->pPassengers[2]) {
-								m_vehEnterType = CAR_DOOR_RR;
+								m_vehDoor = CAR_DOOR_RR;
 							}
 							// Unused
-							// GetPositionToOpenCarDoor(vehOfTarget, m_vehEnterType);
-							SetSeekCar(vehOfTarget, m_vehEnterType);
+							// GetPositionToOpenCarDoor(vehOfTarget, m_vehDoor);
+							SetSeekCar(vehOfTarget, m_vehDoor);
 							SetMoveState(PEDMOVE_RUN);
 						}
 					}
@@ -6790,19 +6790,19 @@ CPed::KillCharOnFootMelee(CVector &ourPos, CVector &targetPos, CVector &distWith
 						if (m_nPedType == PEDTYPE_COP || vehOfTarget->bIsBus) {
 							GoToNearestDoor(vehOfTarget);
 						} else {
-							m_vehEnterType = 0;
+							m_vehDoor = 0;
 							if (m_pedInObjective == vehOfTarget->pDriver || vehOfTarget->bIsBus) {
-								m_vehEnterType = CAR_DOOR_LF;
+								m_vehDoor = CAR_DOOR_LF;
 							} else if (m_pedInObjective == vehOfTarget->pPassengers[0]) {
-								m_vehEnterType = CAR_DOOR_RF;
+								m_vehDoor = CAR_DOOR_RF;
 							} else if (m_pedInObjective == vehOfTarget->pPassengers[1]) {
-								m_vehEnterType = CAR_DOOR_LR;
+								m_vehDoor = CAR_DOOR_LR;
 							} else if (m_pedInObjective == vehOfTarget->pPassengers[2]) {
-								m_vehEnterType = CAR_DOOR_RR;
+								m_vehDoor = CAR_DOOR_RR;
 							}
 							// Unused
-							// GetPositionToOpenCarDoor(vehOfTarget, m_vehEnterType);
-							SetSeekCar(vehOfTarget, m_vehEnterType);
+							// GetPositionToOpenCarDoor(vehOfTarget, m_vehDoor);
+							SetSeekCar(vehOfTarget, m_vehDoor);
 							SetMoveState(PEDMOVE_RUN);
 						}
 					}
diff --git a/src/vehicles/Automobile.cpp b/src/vehicles/Automobile.cpp
index 65e3f313..ad3d9c3f 100644
--- a/src/vehicles/Automobile.cpp
+++ b/src/vehicles/Automobile.cpp
@@ -5823,7 +5823,7 @@ CAutomobile::KnockPedOutCar(eWeaponType weapon, uint16 door, CPed *ped)
 	if(ped == nil)
 		return;
 
-	ped->m_vehEnterType = door;
+	ped->m_vehDoor = door;
 	ped->SetPedState(PED_IDLE);
 	CAnimManager::BlendAnimation(ped->GetClump(), ped->m_animGroup, ANIM_IDLE_STANCE, 100.0f);
 	CPed::PedSetOutCarCB(nil, ped);
diff --git a/src/vehicles/Bike.cpp b/src/vehicles/Bike.cpp
index 19e95a6e..17d8592e 100644
--- a/src/vehicles/Bike.cpp
+++ b/src/vehicles/Bike.cpp
@@ -2609,7 +2609,7 @@ CBike::KnockOffRider(eWeaponType weapon, uint8 direction, CPed *ped, bool bGetBa
 
 	ped->SetPedState(PED_IDLE);
 	CAnimManager::BlendAnimation(ped->GetClump(), ped->m_animGroup, ANIM_IDLE_STANCE, 100.0f);
-	ped->m_vehEnterType = CAR_DOOR_LF;
+	ped->m_vehDoor = CAR_DOOR_LF;
 	CPed::PedSetOutCarCB(nil, ped);
 	ped->SetMoveState(PEDMOVE_STILL);
 	if(GetUp().z < 0.0f)
diff --git a/src/vehicles/Train.cpp b/src/vehicles/Train.cpp
index 1a4af307..5f0cf36a 100644
--- a/src/vehicles/Train.cpp
+++ b/src/vehicles/Train.cpp
@@ -388,7 +388,7 @@ void
 CTrain::AddPassenger(CPed *ped)
 {
 #ifdef GTA_TRAIN
-	int i = ped->m_vehEnterType;
+	int i = ped->m_vehDoor;
 	if((i == TRAIN_POS_LEFT_ENTRY || i == TRAIN_POS_MID_ENTRY || i == TRAIN_POS_RIGHT_ENTRY) && pPassengers[i] == nil){
 		pPassengers[i] = ped;
 		m_nNumPassengers++;
diff --git a/src/vehicles/Vehicle.cpp b/src/vehicles/Vehicle.cpp
index 75bd6ec6..5fb5a5d4 100644
--- a/src/vehicles/Vehicle.cpp
+++ b/src/vehicles/Vehicle.cpp
@@ -1430,13 +1430,13 @@ CVehicle::ShufflePassengersToMakeSpace(void)
 		if (!pPassengers[2] && !(m_nGettingInFlags & CAR_DOOR_FLAG_RR)) {
 			pPassengers[2] = pPassengers[1];
 			pPassengers[1] = nil;
-			pPassengers[2]->m_vehEnterType = CAR_DOOR_RR;
+			pPassengers[2]->m_vehDoor = CAR_DOOR_RR;
 			return true;
 		}
 		if (!pPassengers[0] && !(m_nGettingInFlags & CAR_DOOR_FLAG_RF)) {
 			pPassengers[0] = pPassengers[1];
 			pPassengers[1] = nil;
-			pPassengers[0]->m_vehEnterType = CAR_DOOR_RF;
+			pPassengers[0]->m_vehDoor = CAR_DOOR_RF;
 			return true;
 		}
 		return false;
@@ -1447,13 +1447,13 @@ CVehicle::ShufflePassengersToMakeSpace(void)
 		if (!pPassengers[1] && !(m_nGettingInFlags & CAR_DOOR_FLAG_LR)) {
 			pPassengers[1] = pPassengers[2];
 			pPassengers[2] = nil;
-			pPassengers[1]->m_vehEnterType = CAR_DOOR_LR;
+			pPassengers[1]->m_vehDoor = CAR_DOOR_LR;
 			return true;
 		}
 		if (!pPassengers[0] && !(m_nGettingInFlags & CAR_DOOR_FLAG_RF)) {
 			pPassengers[0] = pPassengers[2];
 			pPassengers[2] = nil;
-			pPassengers[0]->m_vehEnterType = CAR_DOOR_RF;
+			pPassengers[0]->m_vehDoor = CAR_DOOR_RF;
 			return true;
 		}
 		return false;
@@ -1464,13 +1464,13 @@ CVehicle::ShufflePassengersToMakeSpace(void)
 		if (!pPassengers[1] && !(m_nGettingInFlags & CAR_DOOR_FLAG_LR)) {
 			pPassengers[1] = pPassengers[0];
 			pPassengers[0] = nil;
-			pPassengers[1]->m_vehEnterType = CAR_DOOR_LR;
+			pPassengers[1]->m_vehDoor = CAR_DOOR_LR;
 			return true;
 		}
 		if (!pPassengers[2] && !(m_nGettingInFlags & CAR_DOOR_FLAG_RR)) {
 			pPassengers[2] = pPassengers[0];
 			pPassengers[0] = nil;
-			pPassengers[2]->m_vehEnterType = CAR_DOOR_RR;
+			pPassengers[2]->m_vehDoor = CAR_DOOR_RR;
 			return true;
 		}
 		return false;

From 2804ad2363626958be7513014b9a302ea72768b6 Mon Sep 17 00:00:00 2001
From: aap <aap@papnet.eu>
Date: Wed, 13 Jan 2021 13:06:38 +0100
Subject: [PATCH 6/8] anim velocity union

---
 src/animation/AnimBlendClumpData.cpp |  2 +-
 src/animation/AnimBlendClumpData.h   |  6 ++--
 src/animation/FrameUpdate.cpp        | 42 ++++++++++++++--------------
 src/animation/RpAnimBlend.cpp        |  2 +-
 src/objects/CutsceneObject.cpp       |  2 +-
 src/peds/Ped.cpp                     |  3 +-
 6 files changed, 29 insertions(+), 28 deletions(-)

diff --git a/src/animation/AnimBlendClumpData.cpp b/src/animation/AnimBlendClumpData.cpp
index 4e8f3153..620c2229 100644
--- a/src/animation/AnimBlendClumpData.cpp
+++ b/src/animation/AnimBlendClumpData.cpp
@@ -8,7 +8,7 @@
 CAnimBlendClumpData::CAnimBlendClumpData(void)
 {
 	numFrames = 0;
-	velocity = nil;
+	velocity2d = nil;
 	frames = nil;
 	link.Init();
 }
diff --git a/src/animation/AnimBlendClumpData.h b/src/animation/AnimBlendClumpData.h
index 633fc7b9..bb711b28 100644
--- a/src/animation/AnimBlendClumpData.h
+++ b/src/animation/AnimBlendClumpData.h
@@ -3,7 +3,6 @@
 #include "AnimBlendList.h"
 
 
-// TODO: put somewhere else
 struct AnimBlendFrameData
 {
 	enum {
@@ -31,7 +30,10 @@ class CAnimBlendClumpData
 public:
 	CAnimBlendLink link;
 	int32 numFrames;
-	CVector *velocity;
+	union {
+		CVector2D *velocity2d;
+		CVector *velocity3d;
+	};
 	// order of frames is determined by RW hierarchy
 	AnimBlendFrameData *frames;
 
diff --git a/src/animation/FrameUpdate.cpp b/src/animation/FrameUpdate.cpp
index a085fd4b..e35bd4c8 100644
--- a/src/animation/FrameUpdate.cpp
+++ b/src/animation/FrameUpdate.cpp
@@ -33,7 +33,7 @@ FrameUpdateCallBackNonSkinned(AnimBlendFrameData *frame, void *arg)
 	AnimBlendFrameUpdateData *updateData = (AnimBlendFrameUpdateData*)arg;
 
 	if(frame->flag & AnimBlendFrameData::VELOCITY_EXTRACTION &&
-	   gpAnimBlendClump->velocity){
+	   gpAnimBlendClump->velocity2d){
 		if(frame->flag & AnimBlendFrameData::VELOCITY_EXTRACTION_3D)
 			FrameUpdateCallBackWith3dVelocityExtractionNonSkinned(frame, arg);
 		else
@@ -142,11 +142,11 @@ FrameUpdateCallBackWithVelocityExtractionNonSkinned(AnimBlendFrameData *frame, v
 	}
 
 	if((frame->flag & AnimBlendFrameData::IGNORE_TRANSLATION) == 0){
-		gpAnimBlendClump->velocity->x = transx - curx;
-		gpAnimBlendClump->velocity->y = transy - cury;
+		gpAnimBlendClump->velocity2d->x = transx - curx;
+		gpAnimBlendClump->velocity2d->y = transy - cury;
 		if(looped){
-			gpAnimBlendClump->velocity->x += endx;
-			gpAnimBlendClump->velocity->y += endy;
+			gpAnimBlendClump->velocity2d->x += endx;
+			gpAnimBlendClump->velocity2d->y += endy;
 		}
 		mat->pos.x = pos.x - transx;
 		mat->pos.y = pos.y - transy;
@@ -222,9 +222,9 @@ FrameUpdateCallBackWith3dVelocityExtractionNonSkinned(AnimBlendFrameData *frame,
 	}
 
 	if((frame->flag & AnimBlendFrameData::IGNORE_TRANSLATION) == 0){
-		*gpAnimBlendClump->velocity = trans - cur;
+		*gpAnimBlendClump->velocity3d = trans - cur;
 		if(looped)
-			*gpAnimBlendClump->velocity += end;
+			*gpAnimBlendClump->velocity3d += end;
 		mat->pos.x = (pos - trans).x + frame->resetPos.x;
 		mat->pos.y = (pos - trans).y + frame->resetPos.y;
 		mat->pos.z = (pos - trans).z + frame->resetPos.z;
@@ -244,7 +244,7 @@ FrameUpdateCallBackSkinned(AnimBlendFrameData *frame, void *arg)
 	AnimBlendFrameUpdateData *updateData = (AnimBlendFrameUpdateData*)arg;
 
 	if(frame->flag & AnimBlendFrameData::VELOCITY_EXTRACTION &&
-	   gpAnimBlendClump->velocity){
+	   gpAnimBlendClump->velocity2d){
 		if(frame->flag & AnimBlendFrameData::VELOCITY_EXTRACTION_3D)
 			FrameUpdateCallBackWith3dVelocityExtractionSkinned(frame, arg);
 		else
@@ -354,11 +354,11 @@ FrameUpdateCallBackWithVelocityExtractionSkinned(AnimBlendFrameData *frame, void
 	}
 
 	if((frame->flag & AnimBlendFrameData::IGNORE_TRANSLATION) == 0){
-		gpAnimBlendClump->velocity->x = transx - curx;
-		gpAnimBlendClump->velocity->y = transy - cury;
+		gpAnimBlendClump->velocity2d->x = transx - curx;
+		gpAnimBlendClump->velocity2d->y = transy - cury;
 		if(looped){
-			gpAnimBlendClump->velocity->x += endx;
-			gpAnimBlendClump->velocity->y += endy;
+			gpAnimBlendClump->velocity2d->x += endx;
+			gpAnimBlendClump->velocity2d->y += endy;
 		}
 		xform->t.x = pos.x - transx;
 		xform->t.y = pos.y - transy;
@@ -434,9 +434,9 @@ FrameUpdateCallBackWith3dVelocityExtractionSkinned(AnimBlendFrameData *frame, vo
 	}
 
 	if((frame->flag & AnimBlendFrameData::IGNORE_TRANSLATION) == 0){
-		*gpAnimBlendClump->velocity = trans - cur;
+		*gpAnimBlendClump->velocity3d = trans - cur;
 		if(looped)
-			*gpAnimBlendClump->velocity += end;
+			*gpAnimBlendClump->velocity3d += end;
 		xform->t.x = (pos - trans).x + frame->resetPos.x;
 		xform->t.y = (pos - trans).y + frame->resetPos.y;
 		xform->t.z = (pos - trans).z + frame->resetPos.z;
@@ -446,7 +446,7 @@ FrameUpdateCallBackWith3dVelocityExtractionSkinned(AnimBlendFrameData *frame, vo
 void
 FrameUpdateCallBackOffscreen(AnimBlendFrameData *frame, void *arg)
 {
-	if(frame->flag & AnimBlendFrameData::VELOCITY_EXTRACTION && gpAnimBlendClump->velocity)
+	if(frame->flag & AnimBlendFrameData::VELOCITY_EXTRACTION && gpAnimBlendClump->velocity2d)
 		FrameUpdateCallBackWithVelocityExtractionSkinned(frame, arg);
 }
 
@@ -466,7 +466,7 @@ FrameUpdateCallBackNonSkinnedCompressed(AnimBlendFrameData *frame, void *arg)
 	AnimBlendFrameUpdateData *updateData = (AnimBlendFrameUpdateData*)arg;
 
 	if(frame->flag & AnimBlendFrameData::VELOCITY_EXTRACTION &&
-	   gpAnimBlendClump->velocity){
+	   gpAnimBlendClump->velocity2d){
 		if(updateData->foobar)
 			for(node = updateData->nodes; *node; node++)
 				if((*node)->sequence && (*node)->association->IsPartial())
@@ -511,9 +511,9 @@ FrameUpdateCallBackNonSkinnedCompressed(AnimBlendFrameData *frame, void *arg)
 		}
 
 		if((frame->flag & AnimBlendFrameData::IGNORE_TRANSLATION) == 0){
-			*gpAnimBlendClump->velocity = trans - cur;
+			*gpAnimBlendClump->velocity3d = trans - cur;
 			if(looped)
-				*gpAnimBlendClump->velocity += end;
+				*gpAnimBlendClump->velocity3d += end;
 			mat->pos.x = (pos - trans).x + frame->resetPos.x;
 			mat->pos.y = (pos - trans).y + frame->resetPos.y;
 			mat->pos.z = (pos - trans).z + frame->resetPos.z;
@@ -573,7 +573,7 @@ FrameUpdateCallBackSkinnedCompressed(AnimBlendFrameData *frame, void *arg)
 	AnimBlendFrameUpdateData *updateData = (AnimBlendFrameUpdateData*)arg;
 
 	if(frame->flag & AnimBlendFrameData::VELOCITY_EXTRACTION &&
-	   gpAnimBlendClump->velocity){
+	   gpAnimBlendClump->velocity2d){
 		if(updateData->foobar)
 			for(node = updateData->nodes; *node; node++)
 				if((*node)->sequence && (*node)->association->IsPartial())
@@ -620,9 +620,9 @@ FrameUpdateCallBackSkinnedCompressed(AnimBlendFrameData *frame, void *arg)
 		}
 
 		if((frame->flag & AnimBlendFrameData::IGNORE_TRANSLATION) == 0){
-			*gpAnimBlendClump->velocity = trans - cur;
+			*gpAnimBlendClump->velocity3d = trans - cur;
 			if(looped)
-				*gpAnimBlendClump->velocity += end;
+				*gpAnimBlendClump->velocity3d += end;
 			xform->t.x = (pos - trans).x + frame->resetPos.x;
 			xform->t.y = (pos - trans).y + frame->resetPos.y;
 			xform->t.z = (pos - trans).z + frame->resetPos.z;
diff --git a/src/animation/RpAnimBlend.cpp b/src/animation/RpAnimBlend.cpp
index c4103dbf..9223d198 100644
--- a/src/animation/RpAnimBlend.cpp
+++ b/src/animation/RpAnimBlend.cpp
@@ -437,7 +437,7 @@ RpAnimBlendNodeUpdateKeyframes(AnimBlendFrameData *frames, AnimBlendFrameUpdateD
 		CAnimBlendAssociation *a = (*node)->association;
 		for(i = 0; i < numNodes; i++)
 			if((frames[i].flag & AnimBlendFrameData::VELOCITY_EXTRACTION) == 0 ||
-			   gpAnimBlendClump->velocity == nil){
+			   gpAnimBlendClump->velocity2d == nil){
 				if((*node)[i].sequence)
 					(*node)[i].FindKeyFrame(a->currentTime - a->timeStep);
 			}
diff --git a/src/objects/CutsceneObject.cpp b/src/objects/CutsceneObject.cpp
index 8d1be357..e36d8e25 100644
--- a/src/objects/CutsceneObject.cpp
+++ b/src/objects/CutsceneObject.cpp
@@ -46,7 +46,7 @@ CCutsceneObject::SetModelIndex(uint32 id)
 	CEntity::SetModelIndex(id);
 	assert(RwObjectGetType(m_rwObject) == rpCLUMP);
 	RpAnimBlendClumpInit((RpClump*)m_rwObject);
-	(*RPANIMBLENDCLUMPDATA(m_rwObject))->velocity = &m_vecMoveSpeed;
+	(*RPANIMBLENDCLUMPDATA(m_rwObject))->velocity3d = &m_vecMoveSpeed;
 	(*RPANIMBLENDCLUMPDATA(m_rwObject))->frames[0].flag |= AnimBlendFrameData::VELOCITY_EXTRACTION_3D;
 }
 
diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp
index 572395d8..a4490c2f 100644
--- a/src/peds/Ped.cpp
+++ b/src/peds/Ped.cpp
@@ -434,8 +434,7 @@ CPed::SetModelIndex(uint32 mi)
 	if (!CanUseTorsoWhenLooking())
 		m_pedIK.m_flags |= CPedIK::LOOKAROUND_HEAD_ONLY;
 
-	// This is a mistake by R*, velocity is CVector, whereas m_vecAnimMoveDelta is CVector2D. 
-	(*RPANIMBLENDCLUMPDATA(m_rwObject))->velocity = (CVector*) &m_vecAnimMoveDelta;
+	(*RPANIMBLENDCLUMPDATA(m_rwObject))->velocity2d = &m_vecAnimMoveDelta;
 
 	if(modelInfo->GetHitColModel() == nil)
 		modelInfo->CreateHitColModelSkinned(GetClump());

From ac3ba5b4a651d9557167af73acef65dfcd084933 Mon Sep 17 00:00:00 2001
From: aap <aap@papnet.eu>
Date: Wed, 13 Jan 2021 13:41:31 +0100
Subject: [PATCH 7/8] more renames

---
 src/peds/Ped.cpp      | 49 ++++++++++++++++++++++---------------------
 src/peds/Ped.h        |  4 ++--
 src/peds/PedAI.cpp    |  4 ++--
 src/peds/PedFight.cpp | 12 +++++------
 4 files changed, 35 insertions(+), 34 deletions(-)

diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp
index a4490c2f..53fca844 100644
--- a/src/peds/Ped.cpp
+++ b/src/peds/Ped.cpp
@@ -113,9 +113,9 @@ CPed::CPed(uint32 pedType) : m_pedIK(this)
 	m_attackTimer = 0;
 	m_timerUnused = 0;
 	m_lookTimer = 0;
-	m_standardTimer = 0;
+	m_chatTimer = 0;
 	m_shootTimer = 0;
-	m_hitRecoverTimer = 0;
+	m_carJackTimer = 0;
 	m_duckAndCoverTimer = 0;
 	m_moved = CVector2D(0.0f, 0.0f);
 	m_fRotationCur = 0.0f;
@@ -1298,7 +1298,8 @@ CPed::ScanForInterestingStuff(void)
 	if (LookForInterestingNodes())
 		return;
 
-	if (m_nPedType == PEDTYPE_CRIMINAL && m_hitRecoverTimer < CTimer::GetTimeInMilliseconds()) {
+	if (m_nPedType == PEDTYPE_CRIMINAL && m_carJackTimer < CTimer::GetTimeInMilliseconds()) {
+		// Find a car to steal or a ped to mug if we haven't already decided to steal a car
 		if (CGeneral::GetRandomNumber() % 100 < 10) {
 			int mostExpensiveVehAround = -1;
 			int bestMonetaryValue = 0;
@@ -1321,10 +1322,10 @@ CPed::ScanForInterestingStuff(void)
 			}
 			if (bestMonetaryValue > 2000 && mostExpensiveVehAround != -1 && vehicles[mostExpensiveVehAround]) {
 				SetObjective(OBJECTIVE_ENTER_CAR_AS_DRIVER, vehicles[mostExpensiveVehAround]);
-				m_hitRecoverTimer = CTimer::GetTimeInMilliseconds() + 5000;
+				m_carJackTimer = CTimer::GetTimeInMilliseconds() + 5000;
 				return;
 			}
-			m_hitRecoverTimer = CTimer::GetTimeInMilliseconds() + 5000;
+			m_carJackTimer = CTimer::GetTimeInMilliseconds() + 5000;
 		} else if (m_objective != OBJECTIVE_MUG_CHAR && !(CGeneral::GetRandomNumber() & 7)) {
 			CPed *charToMug = nil;
 			for (int i = 0; i < m_numNearPeds; ++i) {
@@ -1346,13 +1347,13 @@ CPed::ScanForInterestingStuff(void)
 			if (charToMug)
 				SetObjective(OBJECTIVE_MUG_CHAR, charToMug);
 
-			m_hitRecoverTimer = CTimer::GetTimeInMilliseconds() + 5000;
+			m_carJackTimer = CTimer::GetTimeInMilliseconds() + 5000;
 		}
 	}
 
 	if (m_nPedState == PED_WANDER_PATH) {
 		if (CGeneral::GetRandomNumberInRange(0.0f, 1.0f) < 0.5f) {
-			if (CTimer::GetTimeInMilliseconds() > m_standardTimer) {
+			if (CTimer::GetTimeInMilliseconds() > m_chatTimer) {
 				for (int i = 0; i < m_numNearPeds; i ++) {
 					if (m_nearPeds[i] && m_nearPeds[i]->m_nPedState == PED_WANDER_PATH) {
 						if ((GetPosition() - m_nearPeds[i]->GetPosition()).Magnitude() < 1.8f
@@ -1368,7 +1369,7 @@ CPed::ScanForInterestingStuff(void)
 				}
 			}
 		} else {
-			m_standardTimer = CTimer::GetTimeInMilliseconds() + 200;
+			m_chatTimer = CTimer::GetTimeInMilliseconds() + 200;
 		}
 	}
 }
@@ -5885,7 +5886,7 @@ CPed::ClearFlee(void)
 {
 	RestorePreviousState();
 	bUsePedNodeSeek = false;
-	m_standardTimer = 0;
+	m_chatTimer = 0;
 	m_fleeTimer = 0;
 }
 
@@ -5931,7 +5932,7 @@ CPed::Flee(void)
 		if (m_nPedStateTimer < CTimer::GetTimeInMilliseconds()
 			&& m_collidingThingTimer < CTimer::GetTimeInMilliseconds()) {
 
-			if (m_pNextPathNode && CTimer::GetTimeInMilliseconds() > m_standardTimer)  {
+			if (m_pNextPathNode && CTimer::GetTimeInMilliseconds() > m_chatTimer)  {
 
 				curDirectionShouldBe = CGeneral::GetNodeHeadingFromVector(GetPosition().x - ms_vec2DFleePosition.x, GetPosition().y - ms_vec2DFleePosition.y);
 				if (m_nPathDir < curDirectionShouldBe)
@@ -5974,7 +5975,7 @@ CPed::Flee(void)
 			
 			if (m_pNextPathNode && m_pNextPathNode != realLastNode && m_pNextPathNode != m_pLastPathNode && curDirectionShouldBe - nextDirection != 4) {
 				m_nPathDir = nextDirection;
-				m_standardTimer = CTimer::GetTimeInMilliseconds() + 2000;
+				m_chatTimer = CTimer::GetTimeInMilliseconds() + 2000;
 			} else {
 				bUsePedNodeSeek = false;
 				SetMoveState(PEDMOVE_RUN);
@@ -7214,7 +7215,7 @@ CPed::SetChat(CEntity *chatWith, uint32 time)
 	SetMoveState(PEDMOVE_STILL);
 	m_lookTimer = 0;
 	SetLookFlag(chatWith, true);
-	m_standardTimer = CTimer::GetTimeInMilliseconds() + time;
+	m_chatTimer = CTimer::GetTimeInMilliseconds() + time;
 	m_lookTimer = CTimer::GetTimeInMilliseconds() + 3000;
 }
 
@@ -7235,7 +7236,7 @@ CPed::Chat(void)
 
 	if (partner->m_nPedState != PED_CHAT) {
 		ClearChat();
-		m_standardTimer = CTimer::GetTimeInMilliseconds() + 30000;
+		m_chatTimer = CTimer::GetTimeInMilliseconds() + 30000;
 		if (partner->m_pedInObjective) {
 			if (partner->m_objective == OBJECTIVE_KILL_CHAR_ON_FOOT ||
 				partner->m_objective == OBJECTIVE_FLEE_CHAR_ON_FOOT_TILL_SAFE)
@@ -7268,9 +7269,9 @@ CPed::Chat(void)
 			Say(SOUND_PED_CHAT);
 		}
 	}
-	if (m_standardTimer && CTimer::GetTimeInMilliseconds() > m_standardTimer) {
+	if (m_chatTimer && CTimer::GetTimeInMilliseconds() > m_chatTimer) {
 		ClearChat();
-		m_standardTimer = CTimer::GetTimeInMilliseconds() + 30000;
+		m_chatTimer = CTimer::GetTimeInMilliseconds() + 30000;
 	}
 }
 
@@ -7508,7 +7509,7 @@ CPed::SeekCar(void)
 		} else
 			GetNearestDoor(vehToSeek, dest);
 	} else {
-		if (m_hitRecoverTimer > CTimer::GetTimeInMilliseconds()) {
+		if (m_carJackTimer > CTimer::GetTimeInMilliseconds()) {
 			SetMoveState(PEDMOVE_STILL);
 			return;
 		}
@@ -7552,7 +7553,7 @@ CPed::SeekCar(void)
 			if (IsPlayer()) {
 				ClearObjective();
 			} else if (CharCreatedBy == RANDOM_CHAR) {
-				m_hitRecoverTimer = CTimer::GetTimeInMilliseconds() + 30000;
+				m_carJackTimer = CTimer::GetTimeInMilliseconds() + 30000;
 			}
 			SetMoveState(PEDMOVE_STILL);
 			TheCamera.ClearPlayerWeaponMode();
@@ -7965,7 +7966,7 @@ CPed::LookForInterestingNodes(void)
 	C2dEffect *effect;
 	CMatrix *objMat;
 
-	if ((CTimer::GetFrameCounter() + (m_randomSeed % 256)) & 7 || CTimer::GetTimeInMilliseconds() <= m_standardTimer) {
+	if ((CTimer::GetFrameCounter() + (m_randomSeed % 256)) & 7 || CTimer::GetTimeInMilliseconds() <= m_chatTimer) {
 		return false;
 	}
 	bool found = false;
@@ -8075,7 +8076,7 @@ CPed::LookForInterestingNodes(void)
 	float angleToFace = CGeneral::GetRadianAngleBetweenPoints(effectFrontLocal.x, effectFrontLocal.y, 0.0f, 0.0f);
 	randVal = CGeneral::GetRandomNumber() % 256;
 	if (randVal <= m_randomSeed % 256) {
-		m_standardTimer = CTimer::GetTimeInMilliseconds() + 2000;
+		m_chatTimer = CTimer::GetTimeInMilliseconds() + 2000;
 		SetLookFlag(angleToFace, true);
 		SetLookTimer(1000);
 		return false;
@@ -8298,7 +8299,7 @@ CPed::SetWaitState(eWaitState state, void *time)
 			if (m_objective == OBJECTIVE_ENTER_CAR_AS_PASSENGER && CharCreatedBy == RANDOM_CHAR && m_nPedState == PED_SEEK_CAR) {
 				ClearObjective();
 				RestorePreviousState();
-				m_hitRecoverTimer = CTimer::GetTimeInMilliseconds() + 30000;
+				m_carJackTimer = CTimer::GetTimeInMilliseconds() + 30000;
 			}
 			break;
 		case WAITSTATE_TURN180:
@@ -8327,7 +8328,7 @@ CPed::SetWaitState(eWaitState state, void *time)
 			if (m_objective == OBJECTIVE_ENTER_CAR_AS_PASSENGER && CharCreatedBy == RANDOM_CHAR && m_nPedState == PED_SEEK_CAR) {
 				ClearObjective();
 				RestorePreviousState();
-				m_hitRecoverTimer = CTimer::GetTimeInMilliseconds() + 30000;
+				m_carJackTimer = CTimer::GetTimeInMilliseconds() + 30000;
 			}
 			break;
 		case WAITSTATE_LOOK_ABOUT:
@@ -8986,7 +8987,7 @@ CPed::SetSolicit(uint32 time)
 		}
 
 		if (Abs(m_fRotationDest - m_fRotationCur) < HALFPI) {
-			m_standardTimer = CTimer::GetTimeInMilliseconds() + time;
+			m_chatTimer = CTimer::GetTimeInMilliseconds() + time;
 
 			if(!m_carInObjective->bIsVan && !m_carInObjective->bIsBus)
 				m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_HOOKERTALK, 4.0f);
@@ -9000,7 +9001,7 @@ CPed::SetSolicit(uint32 time)
 void
 CPed::Solicit(void)
 {
-	if (m_standardTimer >= CTimer::GetTimeInMilliseconds() && m_carInObjective) {
+	if (m_chatTimer >= CTimer::GetTimeInMilliseconds() && m_carInObjective) {
 		CVector doorPos = GetPositionToOpenCarDoor(m_carInObjective, m_vehDoor, 0.0f);
 		Say(SOUND_PED_SOLICIT);
 		if (FindPlayerVehicle() == m_carInObjective) {
@@ -9061,7 +9062,7 @@ CPed::BuyIceCream(void)
 {
 	if (m_carInObjective) {
 		CPed *driver = m_carInObjective->pDriver;
-		if (driver && CTimer::GetTimeInMilliseconds() > m_standardTimer) {
+		if (driver && CTimer::GetTimeInMilliseconds() > m_chatTimer) {
 			SetChat(driver, 8000);
 			driver->SetChat(this, 8000);
 			return;
diff --git a/src/peds/Ped.h b/src/peds/Ped.h
index eb3f470a..05b8914e 100644
--- a/src/peds/Ped.h
+++ b/src/peds/Ped.h
@@ -613,10 +613,10 @@ public:
 	uint32 m_leaveCarTimer;
 	uint32 m_getUpTimer;
 	uint32 m_lookTimer;
-	uint32 m_standardTimer;
+	uint32 m_chatTimer;
 	uint32 m_attackTimer;
 	uint32 m_shootTimer; // shooting is a part of attack
-	uint32 m_hitRecoverTimer;
+	uint32 m_carJackTimer;
 	uint32 m_objectiveTimer;
 	uint32 m_duckTimer;
 	uint32 m_duckAndCoverTimer;
diff --git a/src/peds/PedAI.cpp b/src/peds/PedAI.cpp
index b7b63c00..3aa9300c 100644
--- a/src/peds/PedAI.cpp
+++ b/src/peds/PedAI.cpp
@@ -1520,7 +1520,7 @@ CPed::ProcessObjective(void)
 				if (bInVehicle) {
 					bScriptObjectiveCompleted = true;
 					RestorePreviousObjective();
-				} else if (m_hitRecoverTimer < CTimer::GetTimeInMilliseconds()) {
+				} else if (m_carJackTimer < CTimer::GetTimeInMilliseconds()) {
 					CVehicle *carToSteal = nil;
 					float closestCarDist = nEnterCarRangeMultiplier * ENTER_CAR_MAX_DIST;
 					CVector pos = GetPosition();
@@ -1545,7 +1545,7 @@ CPed::ProcessObjective(void)
 					}
 					if (carToSteal) {
 						SetObjective(OBJECTIVE_ENTER_CAR_AS_DRIVER, carToSteal);
-						m_hitRecoverTimer = CTimer::GetTimeInMilliseconds() + 5000;
+						m_carJackTimer = CTimer::GetTimeInMilliseconds() + 5000;
 					} else {
 						RestorePreviousObjective();
 						RestorePreviousState();
diff --git a/src/peds/PedFight.cpp b/src/peds/PedFight.cpp
index eaa2aa3d..e0ffa82e 100644
--- a/src/peds/PedFight.cpp
+++ b/src/peds/PedFight.cpp
@@ -2404,7 +2404,7 @@ CPed::SetInvestigateEvent(eEventType event, CVector2D pos, float distanceToCount
 	SetStoredState();
 	bFindNewNodeAfterStateRestore = false;
 	SetPedState(PED_INVESTIGATE);
-	m_standardTimer = CTimer::GetTimeInMilliseconds() + time;
+	m_chatTimer = CTimer::GetTimeInMilliseconds() + time;
 	m_eventType = event;
 	m_eventOrThreat = pos;
 	m_distanceToCountSeekDone = distanceToCountDone;
@@ -2428,13 +2428,13 @@ CPed::InvestigateEvent(void)
 	if (m_nWaitState == WAITSTATE_TURN180)
 		return;
 
-	if (CTimer::GetTimeInMilliseconds() > m_standardTimer) {
+	if (CTimer::GetTimeInMilliseconds() > m_chatTimer) {
 
-		if (m_standardTimer) {
+		if (m_chatTimer) {
 			if (m_eventType < EVENT_UNK)
 				SetWaitState(WAITSTATE_TURN180, nil);
 
-			m_standardTimer = 0;
+			m_chatTimer = 0;
 		} else {
 			ClearInvestigateEvent();
 		}
@@ -2495,7 +2495,7 @@ CPed::InvestigateEvent(void)
 							Say(SOUND_PED_CHAT_EVENT);
 
 					} else {
-						m_standardTimer = 0;
+						m_chatTimer = 0;
 					}
 
 				} else if (CTimer::GetTimeInMilliseconds() > m_lookTimer) {
@@ -2639,7 +2639,7 @@ CPed::ClearInvestigateEvent(void)
 		animAssoc->flags |= ASSOC_DELETEFADEDOUT;
 	}
 	if (m_eventType > EVENT_EXPLOSION)
-		m_standardTimer = CTimer::GetTimeInMilliseconds() + 15000;
+		m_chatTimer = CTimer::GetTimeInMilliseconds() + 15000;
 
 	bGonnaInvestigateEvent = false;
 	m_pEventEntity = nil;

From 0e9a44dd43441c081266665c74a150afa0386858 Mon Sep 17 00:00:00 2001
From: Sergeanur <s.anureev@yandex.ua>
Date: Wed, 13 Jan 2021 14:55:55 +0200
Subject: [PATCH 8/8] Fix backface culling of cutscene objects

---
 src/objects/CutsceneObject.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/objects/CutsceneObject.cpp b/src/objects/CutsceneObject.cpp
index e36d8e25..7d9fe640 100644
--- a/src/objects/CutsceneObject.cpp
+++ b/src/objects/CutsceneObject.cpp
@@ -150,9 +150,9 @@ CCutsceneObject::PreRender(void)
 void
 CCutsceneObject::Render(void)
 {
-	RwRenderStateSet(rwRENDERSTATECULLMODE, (void *)rwCULLMODECULLNONE);
+	SetCullMode(rwCULLMODECULLNONE);
 	CObject::Render();
-	RwRenderStateSet(rwRENDERSTATECULLMODE, (void *)rwCULLMODECULLBACK);
+	SetCullMode(rwCULLMODECULLBACK);
 }
 
 bool