summaryrefslogtreecommitdiffstats
path: root/src/entities
diff options
context:
space:
mode:
Diffstat (limited to 'src/entities')
-rw-r--r--src/entities/Automobile.h63
-rw-r--r--src/entities/Physical.cpp8
-rw-r--r--src/entities/Vehicle.h127
3 files changed, 99 insertions, 99 deletions
diff --git a/src/entities/Automobile.h b/src/entities/Automobile.h
index 64e411ce..b6617f4b 100644
--- a/src/entities/Automobile.h
+++ b/src/entities/Automobile.h
@@ -1,26 +1,61 @@
#pragma once
#include "DamageManager.h"
-#include "Door.h"
-#include "RwHelper.h"
#include "Vehicle.h"
+struct CDoor
+{
+ float m_fAngleWhenOpened;
+ float m_fAngleWhenClosed;
+ char field_8;
+ char field_9;
+ char field_10;
+ char field_11;
+ float m_fAngle;
+ float m_fPreviousAngle;
+ float m_fAngularVelocity;
+ CVector m_vecVelocity;
+};
+
class CAutomobile : public CVehicle
{
public:
// 0x288
- CDamageManager m_DamageManager;
- CDoor m_aDoors[6];
- RwFrame *m_apModelNodes[20];
- uint8 stuff1[160];
- float m_afWheelSuspDist[4];
- uint8 stuff2[44];
- float m_afWheelRotation[4];
- uint8 stuff3[200];
+ CDamageManager Damage;
+ CDoor Doors[6];
+ RwFrame *m_aCarNodes[NUM_CAR_NODES];
+ CColPoint m_aWheelColPoints[4];
+ float m_aWheelDist[4];
+ float m_aWheelDist_2[4];
+ float m_aWheelSkidThing[4];
+ int field_49C;
+ bool m_aWheelSkidmarkMuddy[4];
+ bool m_aWheelSkidmarkBloody[4];
+ float m_aWheelRotation[4];
+ float m_aWheelPosition[4];
+ float m_aWheelSpeed[4];
+ uint8 stuff3[12];
+ uint32 m_nBusDoorTimerEnd;
+ uint32 m_nBusDoorTimerStart;
+ float m_aSuspensionRange[4];
+ float m_aSuspensionLineLength[4];
+ float m_fHeightAboveRoad;
+ float m_fImprovedHandling;
+ uint8 stuff6[32];
+ CPhysical *m_aGroundPhysical[4]; // physicals touching wheels
+ CVector m_aGroundOffset[4]; // from ground object to colpoint
+ CEntity *m_pBlowUpEntity;
+ float m_weaponThingA; // TODO
+ float m_weaponThingB; // TODO
float m_fCarGunLR;
- uint8 stuff4[13];
- uint8 m_nDriveWheelsOnGround;
- uint8 stuff5[22];
+ float m_fCarGunUD;
+ float m_fWindScreenRotation;
+ uint8 stuff4[4];
+ uint8 m_nWheelsOnGround_2;
+ uint8 m_nWheelsOnGround;
+ uint8 m_nWheelsOnGroundPrev;
+ uint8 stuff5[5];
+ int32 m_aWheelState[4];
CAutomobile(int, uint8);
CAutomobile* ctor(int, uint8);
@@ -30,4 +65,4 @@ public:
void dtor() { this->CAutomobile::~CAutomobile(); }
};
static_assert(sizeof(CAutomobile) == 0x5A8, "CAutomobile: error");
-static_assert(offsetof(CAutomobile, m_afWheelSuspDist) == 0x46C, "CAutomobile: error");
+static_assert(offsetof(CAutomobile, m_aWheelDist) == 0x46C, "CAutomobile: error");
diff --git a/src/entities/Physical.cpp b/src/entities/Physical.cpp
index b570efd9..14891cd9 100644
--- a/src/entities/Physical.cpp
+++ b/src/entities/Physical.cpp
@@ -1858,10 +1858,10 @@ CPhysical::ProcessCollision(void)
CVehicle *veh = (CVehicle*)this;
if(veh->m_vehType == VEHICLE_TYPE_CAR){
CAutomobile *car = (CAutomobile*)this;
- car->m_afWheelSuspDist[0] = 1.0f;
- car->m_afWheelSuspDist[1] = 1.0f;
- car->m_afWheelSuspDist[2] = 1.0f;
- car->m_afWheelSuspDist[3] = 1.0f;
+ car->m_aWheelDist[0] = 1.0f;
+ car->m_aWheelDist[1] = 1.0f;
+ car->m_aWheelDist[2] = 1.0f;
+ car->m_aWheelDist[3] = 1.0f;
}else if(veh->m_vehType == VEHICLE_TYPE_BIKE){
assert(0 && "TODO - but unused");
}
diff --git a/src/entities/Vehicle.h b/src/entities/Vehicle.h
index eb5275ad..7b9bebef 100644
--- a/src/entities/Vehicle.h
+++ b/src/entities/Vehicle.h
@@ -14,14 +14,6 @@ enum {
PERMANENT_VEHICLE = 4,
};
-
-enum {
- GETTING_IN_OUT_FL = 1,
- GETTING_IN_OUT_RL = 2,
- GETTING_IN_OUT_FR = 4,
- GETTING_IN_OUT_RR = 8
-};
-
enum eCarLock {
CARLOCK_NOT_USED,
CARLOCK_UNLOCKED,
@@ -33,82 +25,55 @@ enum eCarLock {
CARLOCK_SKIP_SHUT_DOORS
};
-// TODO: where is this used? Is Vehicle.h the right file?
-enum eVehicleModel
+
+enum eCarNodes
+{
+ CAR_WHEEL_RF = 1,
+ CAR_WHEEL_RM,
+ CAR_WHEEL_RB,
+ CAR_WHEEL_LF,
+ CAR_WHEEL_LM,
+ CAR_WHEEL_LB,
+ CAR_BUMP_FRONT,
+ CAR_BUMP_REAR,
+ CAR_WING_RF,
+ CAR_WING_RR,
+ CAR_DOOR_RF,
+ CAR_DOOR_RR,
+ CAR_WING_LF,
+ CAR_WING_LR,
+ CAR_DOOR_LF,
+ CAR_DOOR_LR,
+ CAR_BONNET,
+ CAR_BOOT,
+ CAR_WINDSCREEN,
+ NUM_CAR_NODES,
+};
+
+enum
+{
+ CAR_POS_HEADLIGHTS,
+ CAR_POS_TAILLIGHTS,
+ CAR_POS_FRONTSEAT,
+ CAR_POS_BACKSEAT,
+ CAR_POS_EXHAUST = 9,
+};
+
+enum eDoors
{
- LANDSTAL,
- IDAHO,
- STINGER,
- LINERUN,
- PEREN,
- SENTINEL,
- PATRIOT,
- FIRETRUK,
- TRASH,
- STRETCH,
- MANANA,
- INFERNUS,
- BLISTA,
- PONY,
- MULE,
- CHEETAH,
- AMBULAN,
- FBICAR,
- MOONBEAM,
- ESPERANT,
- TAXI,
- KURUMA,
- BOBCAT,
- MRWHOOP,
- BFINJECT,
- CORPSE,
- POLICE,
- ENFORCER,
- SECURICA,
- BANSHEE,
- PREDATOR,
- BUS,
- RHINO,
- BARRACKS,
- TRAIN,
- CHOPPER,
- DODO,
- COACH,
- CABBIE,
- STALLION,
- RUMPO,
- RCBANDIT,
- BELLYUP,
- MRWONGS,
- MAFIA,
- YARDIE,
- YAKUZA,
- DIABLOS,
- COLUMB,
- HOODS,
- AIRTRAIN,
- DEADDODO,
- SPEEDER,
- REEFER,
- PANLANT,
- FLATBED,
- YANKEE,
- ESCAPE,
- BORGNINE,
- TOYZ,
- GHOST,
- CAR151,
- CAR152,
- CAR153,
- CAR154,
- CAR155,
- CAR156,
- CAR157,
- CAR158,
- CAR159,
+ DOOR_BONNET = 0,
+ DOOR_BOOT,
+ DOOR_FRONT_LEFT,
+ DOOR_FRONT_RIGHT,
+ DOOR_REAR_LEFT,
+ DOOR_REAR_RIGHT
};
-enum eDoors {
+enum {
+ GETTING_IN_OUT_FL = 1,
+ GETTING_IN_OUT_RL = 2,
+ GETTING_IN_OUT_FR = 4,
+ GETTING_IN_OUT_RR = 8
};
class CVehicle : public CPhysical