mirror of
https://github.com/halpz/re3.git
synced 2025-07-22 10:39:47 +00:00
some work on vehicles
This commit is contained in:
@ -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");
|
||||
|
@ -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");
|
||||
}
|
||||
|
@ -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
|
||||
{
|
||||
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,
|
||||
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 eDoors {
|
||||
enum
|
||||
{
|
||||
CAR_POS_HEADLIGHTS,
|
||||
CAR_POS_TAILLIGHTS,
|
||||
CAR_POS_FRONTSEAT,
|
||||
CAR_POS_BACKSEAT,
|
||||
CAR_POS_EXHAUST = 9,
|
||||
};
|
||||
|
||||
enum eDoors
|
||||
{
|
||||
DOOR_BONNET = 0,
|
||||
DOOR_BOOT,
|
||||
DOOR_FRONT_LEFT,
|
||||
DOOR_FRONT_RIGHT,
|
||||
DOOR_REAR_LEFT,
|
||||
DOOR_REAR_RIGHT
|
||||
};
|
||||
|
||||
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
|
||||
|
Reference in New Issue
Block a user