mirror of
https://github.com/GTAmodding/re3.git
synced 2024-12-24 17:35:41 +00:00
Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami
This commit is contained in:
commit
770456d0c8
3 changed files with 53 additions and 10 deletions
|
@ -106,7 +106,7 @@ const int32 gaCarsToCollectInCraigsGarages[TOTAL_COLLECTCARS_GARAGES][TOTAL_COLL
|
||||||
{ MI_VOODOO, MI_CUBAN, MI_CADDY, MI_BAGGAGE, MI_MRWHOOP, MI_PIZZABOY }
|
{ 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;
|
int32 CGarages::BankVansCollected;
|
||||||
bool CGarages::BombsAreFree;
|
bool CGarages::BombsAreFree;
|
||||||
|
@ -2357,3 +2357,41 @@ CGarages::IsModelIndexADoor(uint32 id)
|
||||||
id == MI_GARAGEDOOR25 ||
|
id == MI_GARAGEDOOR25 ||
|
||||||
id == MI_GARAGEDOOR26;
|
id == MI_GARAGEDOOR26;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
|
@ -182,6 +182,10 @@ public:
|
||||||
void FindDoorsEntities();
|
void FindDoorsEntities();
|
||||||
void FindDoorsEntitiesSectorList(CPtrList&, bool);
|
void FindDoorsEntitiesSectorList(CPtrList&, bool);
|
||||||
void PlayerArrestedOrDied();
|
void PlayerArrestedOrDied();
|
||||||
|
bool Does60SecondsNeedThisCarAtAll(int mi);
|
||||||
|
bool Does60SecondsNeedThisCar(int mi);
|
||||||
|
void MarkThisCarAsCollectedFor60Seconds(int mi);
|
||||||
|
bool IsPlayerEntirelyInsideGarage();
|
||||||
|
|
||||||
bool IsPointInsideGarage(CVector);
|
bool IsPointInsideGarage(CVector);
|
||||||
bool IsPointInsideGarage(CVector, float);
|
bool IsPointInsideGarage(CVector, float);
|
||||||
|
@ -254,6 +258,7 @@ public:
|
||||||
static bool IsModelIndexADoor(uint32 id);
|
static bool IsModelIndexADoor(uint32 id);
|
||||||
static void SetFreeBombs(bool bValue) { BombsAreFree = bValue; }
|
static void SetFreeBombs(bool bValue) { BombsAreFree = bValue; }
|
||||||
static void SetFreeResprays(bool bValue) { RespraysAreFree = 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 void SetMaxNumStoredCarsForGarage(int16 garage, uint8 num) { aGarages[garage].m_nMaxStoredCars = num; }
|
||||||
|
|
||||||
static bool IsCarSprayable(CVehicle*);
|
static bool IsCarSprayable(CVehicle*);
|
||||||
|
|
|
@ -338,17 +338,17 @@ CPathFind::StoreNodeInfoCar(int16 id, int16 node, int8 type, int8 next, int16 x,
|
||||||
InfoForTileCars[i].x = x/16.0f;
|
InfoForTileCars[i].x = x/16.0f;
|
||||||
InfoForTileCars[i].y = y/16.0f;
|
InfoForTileCars[i].y = y/16.0f;
|
||||||
InfoForTileCars[i].z = z/16.0f;
|
InfoForTileCars[i].z = z/16.0f;
|
||||||
InfoForTilePeds[i].width = 8.0f*Min(width, 15.0f);
|
InfoForTileCars[i].width = 8.0f*Min(width, 15.0f);
|
||||||
InfoForTileCars[i].numLeftLanes = numLeft;
|
InfoForTileCars[i].numLeftLanes = numLeft;
|
||||||
InfoForTileCars[i].numRightLanes = numRight;
|
InfoForTileCars[i].numRightLanes = numRight;
|
||||||
InfoForTilePeds[i].crossing = false;
|
InfoForTileCars[i].crossing = false;
|
||||||
InfoForTilePeds[i].speedLimit = 0;
|
InfoForTileCars[i].speedLimit = 0;
|
||||||
InfoForTilePeds[i].roadBlock = false;
|
InfoForTileCars[i].roadBlock = false;
|
||||||
InfoForTilePeds[i].disabled = false;
|
InfoForTileCars[i].disabled = false;
|
||||||
InfoForTilePeds[i].waterPath = false;
|
InfoForTileCars[i].waterPath = false;
|
||||||
InfoForTilePeds[i].onlySmallBoats = false;
|
InfoForTileCars[i].onlySmallBoats = false;
|
||||||
InfoForTilePeds[i].betweenLevels = false;
|
InfoForTileCars[i].betweenLevels = false;
|
||||||
InfoForTilePeds[i].spawnRate = Min(spawnRate, 15);
|
InfoForTileCars[i].spawnRate = Min(spawnRate, 15);
|
||||||
|
|
||||||
if(node == 11)
|
if(node == 11)
|
||||||
InfoForTileCars[id*12].SwapConnectionsToBeRightWayRound();
|
InfoForTileCars[id*12].SwapConnectionsToBeRightWayRound();
|
||||||
|
|
Loading…
Reference in a new issue