diff options
author | Nikolay Korolev <nickvnuk@gmail.com> | 2021-01-23 13:29:00 +0100 |
---|---|---|
committer | Nikolay Korolev <nickvnuk@gmail.com> | 2021-01-23 13:33:01 +0100 |
commit | 33266032657f65909d5edfabf315e48fda5b9231 (patch) | |
tree | 5132c0eed7527381388531a523be1dcbe4bcf3e4 /src/control | |
parent | wrong path node array (diff) | |
download | re3-33266032657f65909d5edfabf315e48fda5b9231.tar re3-33266032657f65909d5edfabf315e48fda5b9231.tar.gz re3-33266032657f65909d5edfabf315e48fda5b9231.tar.bz2 re3-33266032657f65909d5edfabf315e48fda5b9231.tar.lz re3-33266032657f65909d5edfabf315e48fda5b9231.tar.xz re3-33266032657f65909d5edfabf315e48fda5b9231.tar.zst re3-33266032657f65909d5edfabf315e48fda5b9231.zip |
Diffstat (limited to 'src/control')
-rw-r--r-- | src/control/Garages.cpp | 40 | ||||
-rw-r--r-- | src/control/Garages.h | 5 |
2 files changed, 44 insertions, 1 deletions
diff --git a/src/control/Garages.cpp b/src/control/Garages.cpp index de536918..e8c2f2a6 100644 --- a/src/control/Garages.cpp +++ b/src/control/Garages.cpp @@ -106,7 +106,7 @@ const int32 gaCarsToCollectInCraigsGarages[TOTAL_COLLECTCARS_GARAGES][TOTAL_COLL { MI_VOODOO, MI_CUBAN, MI_CADDY, MI_BAGGAGE, MI_MRWHOOP, MI_PIZZABOY } }; -const int32 gaCarsToCollectIn60Seconds[] = { MI_CHEETAH, MI_TAXI, MI_ESPERANT, MI_SENTINEL, MI_IDAHO }; // what is this? +const int32 gaCarsToCollectIn60Seconds[] = { MI_CHEETAH, MI_TAXI, MI_ESPERANT, MI_SENTINEL, MI_IDAHO }; int32 CGarages::BankVansCollected; bool CGarages::BombsAreFree; @@ -2450,3 +2450,41 @@ CGarages::IsModelIndexADoor(uint32 id) id == MI_LCS_GARAGEDOOR39 || id == MI_LCS_GARAGEDOOR40; } + +void CGarages::StopCarFromBlowingUp(CAutomobile* pCar) +{ + pCar->m_fFireBlowUpTimer = 0.0f; + pCar->m_fHealth = Max(pCar->m_fHealth, 300.0f); + pCar->Damage.SetEngineStatus(Max(pCar->Damage.GetEngineStatus(), 275)); +} + +bool CGarage::Does60SecondsNeedThisCarAtAll(int mi) +{ + for (int i = 0; i < ARRAY_SIZE(gaCarsToCollectIn60Seconds); i++) { + if (gaCarsToCollectIn60Seconds[i] == mi) + return true; + } + return false; +} + +bool CGarage::Does60SecondsNeedThisCar(int mi) +{ + for (int i = 0; i < ARRAY_SIZE(gaCarsToCollectIn60Seconds); i++) { + if (gaCarsToCollectIn60Seconds[i] == mi) + return m_bCollectedCarsState & BIT(i); + } + return false; +} + +void CGarage::MarkThisCarAsCollectedFor60Seconds(int mi) +{ + for (int i = 0; i < ARRAY_SIZE(gaCarsToCollectIn60Seconds); i++) { + if (gaCarsToCollectIn60Seconds[i] == mi) + m_bCollectedCarsState |= BIT(i); + } +} + +bool CGarage::IsPlayerEntirelyInsideGarage() +{ + return IsEntityEntirelyInside3D(FindPlayerVehicle() ? (CEntity*)FindPlayerVehicle() : (CEntity*)FindPlayerPed(), 0.0f); +} diff --git a/src/control/Garages.h b/src/control/Garages.h index 47de898f..843f4a30 100644 --- a/src/control/Garages.h +++ b/src/control/Garages.h @@ -183,6 +183,10 @@ public: void FindDoorsEntities(); void FindDoorsEntitiesSectorList(CPtrList&, bool); void PlayerArrestedOrDied(); + bool Does60SecondsNeedThisCarAtAll(int mi); + bool Does60SecondsNeedThisCar(int mi); + void MarkThisCarAsCollectedFor60Seconds(int mi); + bool IsPlayerEntirelyInsideGarage(); bool IsPointInsideGarage(CVector); bool IsPointInsideGarage(CVector, float); @@ -255,6 +259,7 @@ public: static bool IsModelIndexADoor(uint32 id); static void SetFreeBombs(bool bValue) { BombsAreFree = bValue; } static void SetFreeResprays(bool bValue) { RespraysAreFree = bValue; } + static void StopCarFromBlowingUp(CAutomobile*); static void SetMaxNumStoredCarsForGarage(int16 garage, uint8 num) { aGarages[garage].m_nMaxStoredCars = num; } static bool IsCarSprayable(CVehicle*); |