diff options
Diffstat (limited to 'src/vehicles')
-rw-r--r-- | src/vehicles/Automobile.cpp | 2 | ||||
-rw-r--r-- | src/vehicles/Automobile.h | 2 | ||||
-rw-r--r-- | src/vehicles/Boat.cpp | 2 | ||||
-rw-r--r-- | src/vehicles/Boat.h | 2 | ||||
-rw-r--r-- | src/vehicles/Heli.h | 1 | ||||
-rw-r--r-- | src/vehicles/Plane.h | 1 | ||||
-rw-r--r-- | src/vehicles/Train.h | 1 | ||||
-rw-r--r-- | src/vehicles/Vehicle.cpp | 26 | ||||
-rw-r--r-- | src/vehicles/Vehicle.h | 24 |
9 files changed, 49 insertions, 12 deletions
diff --git a/src/vehicles/Automobile.cpp b/src/vehicles/Automobile.cpp index 9db60da0..602eb589 100644 --- a/src/vehicles/Automobile.cpp +++ b/src/vehicles/Automobile.cpp @@ -229,9 +229,11 @@ CAutomobile::ProcessControl(void) colModel = GetColModel(); bWarnedPeds = false; +#ifndef MIAMI // skip if the collision isn't for the current level if(colModel->level > LEVEL_NONE && colModel->level != CCollision::ms_collisionInMemory) return; +#endif // Improve grip of vehicles in certain cases bool strongGrip1 = false; diff --git a/src/vehicles/Automobile.h b/src/vehicles/Automobile.h index 041302bf..0356a9f2 100644 --- a/src/vehicles/Automobile.h +++ b/src/vehicles/Automobile.h @@ -197,8 +197,6 @@ public: static void SetAllTaxiLights(bool set); }; -static_assert(sizeof(CAutomobile) == 0x5A8, "CAutomobile: error"); - inline uint8 GetCarDoorFlag(int32 carnode) { switch (carnode) { case CAR_DOOR_LF: diff --git a/src/vehicles/Boat.cpp b/src/vehicles/Boat.cpp index 348f2732..ecf760e4 100644 --- a/src/vehicles/Boat.cpp +++ b/src/vehicles/Boat.cpp @@ -109,8 +109,10 @@ CBoat::GetComponentWorldPosition(int32 component, CVector &pos) void CBoat::ProcessControl(void) { +#ifndef MIAMI if(m_nZoneLevel > LEVEL_NONE && m_nZoneLevel != CCollision::ms_collisionInMemory) return; +#endif bool onLand = m_fDamageImpulse > 0.0f && m_vecDamageNormal.z > 0.1f; diff --git a/src/vehicles/Boat.h b/src/vehicles/Boat.h index 70407ab9..cde5de84 100644 --- a/src/vehicles/Boat.h +++ b/src/vehicles/Boat.h @@ -72,8 +72,6 @@ public: }; -static_assert(sizeof(CBoat) == 0x484, "CBoat: error"); - extern float MAX_WAKE_LENGTH; extern float MIN_WAKE_INTERVAL; extern float WAKE_LIFETIME;
\ No newline at end of file diff --git a/src/vehicles/Heli.h b/src/vehicles/Heli.h index 39e4cbcf..a8f604aa 100644 --- a/src/vehicles/Heli.h +++ b/src/vehicles/Heli.h @@ -95,4 +95,3 @@ public: static void ActivateHeli(bool activate); }; -static_assert(sizeof(CHeli) == 0x33C, "CHeli: error"); diff --git a/src/vehicles/Plane.h b/src/vehicles/Plane.h index 79738858..6fa6776b 100644 --- a/src/vehicles/Plane.h +++ b/src/vehicles/Plane.h @@ -63,7 +63,6 @@ public: static bool HasCesnaBeenDestroyed(void); static bool HasDropOffCesnaBeenShotDown(void); }; -static_assert(sizeof(CPlane) == 0x29C, "CPlane: error"); extern float LandingPoint; extern float TakeOffPoint; diff --git a/src/vehicles/Train.h b/src/vehicles/Train.h index bf541250..e20a08fd 100644 --- a/src/vehicles/Train.h +++ b/src/vehicles/Train.h @@ -91,4 +91,3 @@ public: float *totalLength, float *totalDuration, CTrainInterpolationLine *interpLines, bool rightRail); static void UpdateTrains(void); }; -static_assert(sizeof(CTrain) == 0x2E4, "CTrain: error"); diff --git a/src/vehicles/Vehicle.cpp b/src/vehicles/Vehicle.cpp index 5dc7bc72..67024782 100644 --- a/src/vehicles/Vehicle.cpp +++ b/src/vehicles/Vehicle.cpp @@ -99,6 +99,9 @@ CVehicle::CVehicle(uint8 CreatedBy) m_bSirenOrAlarm = 0; m_nCarHornTimer = 0; m_nCarHornPattern = 0; +#ifdef MIAMI + bParking = false; +#endif m_nAlarmState = 0; m_nDoorLock = CARLOCK_UNLOCKED; m_nLastWeaponDamage = -1; @@ -118,6 +121,9 @@ CVehicle::CVehicle(uint8 CreatedBy) AutoPilot.m_nTimeToStartMission = CTimer::GetTimeInMilliseconds(); AutoPilot.m_bStayInCurrentLevel = false; AutoPilot.m_bIgnorePathfinding = false; +#ifdef MIAMI + AutoPilot.m_nSwitchDistance = 20; +#endif } CVehicle::~CVehicle() @@ -1347,3 +1353,23 @@ CVehicle::Load(uint8*& buf) SkipSaveBuf(buf, 99); } #endif + +#ifdef MIAMI +eVehicleAppearance +//--MIAMI: TODO, implement VC version, appearance != type +// This would work for cars, boats and bikes but not for planes and helis +CVehicle::GetVehicleAppearance(void) +{ + if (IsCar()) + return VEHICLE_CAR; + if (IsBoat()) + return VEHICLE_BOAT; + if (IsBike()) + return VEHICLE_BIKE; + if (IsPlane()) + return VEHICLE_PLANE; + if (IsHeli()) + return VEHICLE_HELI; + return VEHICLE_NONE; +} +#endif diff --git a/src/vehicles/Vehicle.h b/src/vehicles/Vehicle.h index 110ff97c..bff5d578 100644 --- a/src/vehicles/Vehicle.h +++ b/src/vehicles/Vehicle.h @@ -109,6 +109,18 @@ enum eFlightModel FLIGHT_MODEL_SEAPLANE }; +#ifdef MIAMI +enum eVehicleAppearance +{ + VEHICLE_NONE, + VEHICLE_CAR, + VEHICLE_BIKE, + VEHICLE_HELI, + VEHICLE_BOAT, + VEHICLE_PLANE, +}; +#endif + // Or Weapon.h? void FireOneInstantHitRound(CVector *shotSource, CVector *shotTarget, int32 damage); @@ -172,6 +184,10 @@ public: uint8 bIsCarParkVehicle : 1; // Car has been created using the special CAR_PARK script command uint8 bHasAlreadyBeenRecorded : 1; // Used for replays +#ifdef MIAMI + uint8 bParking : 1; +#endif; + int8 m_numPedsUseItAsCover; uint8 m_nAmmoInClip; // Used to make the guns on boat do a reload (20 by default) int8 m_nPacManPickupsCarried; @@ -236,6 +252,9 @@ public: virtual void Load(uint8*& buf); #endif +#ifdef MIAMI + eVehicleAppearance GetVehicleAppearance(void); +#endif bool IsCar(void) { return m_vehType == VEHICLE_TYPE_CAR; } bool IsBoat(void) { return m_vehType == VEHICLE_TYPE_BOAT; } bool IsTrain(void) { return m_vehType == VEHICLE_TYPE_TRAIN; } @@ -291,9 +310,4 @@ public: static bool m_bDisableMouseSteering; }; -static_assert(sizeof(CVehicle) == 0x288, "CVehicle: error"); -static_assert(offsetof(CVehicle, m_pCurGroundEntity) == 0x1E0, "CVehicle: error"); -static_assert(offsetof(CVehicle, m_nAlarmState) == 0x1A0, "CVehicle: error"); -static_assert(offsetof(CVehicle, m_nLastWeaponDamage) == 0x228, "CVehicle: error"); - void DestroyVehicleAndDriverAndPassengers(CVehicle* pVehicle); |