summaryrefslogtreecommitdiffstats
path: root/src/control/Garages.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/control/Garages.cpp59
1 files changed, 32 insertions, 27 deletions
diff --git a/src/control/Garages.cpp b/src/control/Garages.cpp
index a4aa3729..b6786598 100644
--- a/src/control/Garages.cpp
+++ b/src/control/Garages.cpp
@@ -528,9 +528,14 @@ void CGarage::Update()
CGarages::GivePlayerDetonator();
CStats::KgsOfExplosivesUsed += KGS_OF_EXPLOSIVES_IN_BOMB;
}
+#ifdef DETECT_PAD_INPUT_SWITCH
+ int16 Mode = CPad::IsAffectedByController ? CPad::GetPad(0)->Mode : 0;
+#else
+ int16 Mode = CPad::GetPad(0)->Mode;
+#endif
switch (m_eGarageType) {
case GARAGE_BOMBSHOP1:
- switch (CPad::GetPad(0)->Mode) {
+ switch (Mode) {
case 0:
case 1:
case 2:
@@ -542,7 +547,7 @@ void CGarage::Update()
}
break;
case GARAGE_BOMBSHOP2:
- switch (CPad::GetPad(0)->Mode) {
+ switch (Mode) {
case 0:
case 1:
case 2:
@@ -749,7 +754,7 @@ void CGarage::Update()
if (((CAutomobile*)(m_pTarget))->Damage.GetEngineStatus() <= ENGINE_STATUS_ON_FIRE &&
((CAutomobile*)(m_pTarget))->m_fFireBlowUpTimer == 0.0f) {
#endif
- if (m_pTarget->m_status != STATUS_WRECKED) {
+ if (m_pTarget->GetStatus() != STATUS_WRECKED) {
CPad::GetPad(0)->SetDisablePlayerControls(PLAYERCONTROL_GARAGE);
FindPlayerPed()->m_pWanted->m_bIgnoredByCops = true;
m_eGarageState = GS_CLOSING;
@@ -1390,7 +1395,7 @@ void CGarages::PrintMessages()
CFont::SetBackgroundOff();
CFont::SetCentreSize(SCREEN_SCALE_FROM_RIGHT(50.0f));
CFont::SetCentreOn();
- CFont::SetFontStyle(FONT_BANK);
+ CFont::SetFontStyle(FONT_LOCALE(FONT_BANK));
CFont::SetColor(CRGBA(0, 0, 0, 255));
#if defined(PS2) || defined (FIX_BUGS)
@@ -1448,14 +1453,14 @@ void CGarage::UpdateDoorsHeight()
{
RefreshDoorPointers(false);
if (m_pDoor1) {
- m_pDoor1->GetPosition().z = m_fDoorPos + m_fDoor1Z;
+ m_pDoor1->GetMatrix().GetPosition().z = m_fDoorPos + m_fDoor1Z;
if (m_bRotatedDoor)
BuildRotatedDoorMatrix(m_pDoor1, m_fDoorPos / m_fDoorHeight);
m_pDoor1->GetMatrix().UpdateRW();
m_pDoor1->UpdateRwFrame();
}
if (m_pDoor2) {
- m_pDoor2->GetPosition().z = m_fDoorPos + m_fDoor2Z;
+ m_pDoor2->GetMatrix().GetPosition().z = m_fDoorPos + m_fDoor2Z;
if (m_bRotatedDoor)
BuildRotatedDoorMatrix(m_pDoor2, m_fDoorPos / m_fDoorHeight);
m_pDoor2->GetMatrix().UpdateRW();
@@ -1482,18 +1487,18 @@ void CGarage::UpdateCrusherAngle()
void CGarage::UpdateCrusherShake(float X, float Y)
{
RefreshDoorPointers(false);
- m_pDoor1->GetPosition().x += X;
- m_pDoor1->GetPosition().y += Y;
+ m_pDoor1->GetMatrix().GetPosition().x += X;
+ m_pDoor1->GetMatrix().GetPosition().y += Y;
m_pDoor1->GetMatrix().UpdateRW();
m_pDoor1->UpdateRwFrame();
- m_pDoor1->GetPosition().x -= X;
- m_pDoor1->GetPosition().y -= Y;
- m_pDoor2->GetPosition().x += X;
- m_pDoor2->GetPosition().y += Y;
+ m_pDoor1->GetMatrix().GetPosition().x -= X;
+ m_pDoor1->GetMatrix().GetPosition().y -= Y;
+ m_pDoor2->GetMatrix().GetPosition().x += X;
+ m_pDoor2->GetMatrix().GetPosition().y += Y;
m_pDoor2->GetMatrix().UpdateRW();
m_pDoor2->UpdateRwFrame();
- m_pDoor2->GetPosition().x -= X;
- m_pDoor2->GetPosition().y -= Y;
+ m_pDoor2->GetMatrix().GetPosition().x -= X;
+ m_pDoor2->GetMatrix().GetPosition().y -= Y;
}
// This is dumb but there is no way to avoid goto. What was there originally even?
@@ -1854,8 +1859,8 @@ CVehicle* CStoredCar::RestoreCar()
#else
CVehicle* pVehicle = new CAutomobile(m_nModelIndex, RANDOM_VEHICLE);
#endif
- pVehicle->GetPosition() = m_vecPos;
- pVehicle->m_status = STATUS_ABANDONED;
+ pVehicle->SetPosition(m_vecPos);
+ pVehicle->SetStatus(STATUS_ABANDONED);
pVehicle->GetForward() = m_vecAngle;
pVehicle->GetRight() = CVector(m_vecAngle.y, -m_vecAngle.x, 0.0f);
pVehicle->GetUp() = CVector(0.0f, 0.0f, 1.0f);
@@ -1975,7 +1980,7 @@ void CGarage::TidyUpGarage()
if (pVehicle->GetPosition().x > m_fX1 && pVehicle->GetPosition().x < m_fX2 &&
pVehicle->GetPosition().y > m_fY1 && pVehicle->GetPosition().y < m_fY2 &&
pVehicle->GetPosition().z > m_fZ1 && pVehicle->GetPosition().z < m_fZ2) {
- if (pVehicle->m_status == STATUS_WRECKED || pVehicle->GetUp().z < 0.5f) {
+ if (pVehicle->GetStatus() == STATUS_WRECKED || pVehicle->GetUp().z < 0.5f) {
CWorld::Remove(pVehicle);
delete pVehicle;
}
@@ -1990,7 +1995,7 @@ void CGarage::TidyUpGarageClose()
CVehicle* pVehicle = CPools::GetVehiclePool()->GetSlot(i);
if (!pVehicle || !pVehicle->IsCar())
continue;
- if (!pVehicle->IsCar() || pVehicle->m_status != STATUS_WRECKED || !IsEntityTouching3D(pVehicle))
+ if (!pVehicle->IsCar() || pVehicle->GetStatus() != STATUS_WRECKED || !IsEntityTouching3D(pVehicle))
continue;
bool bRemove = false;
if (m_eGarageState != GS_FULLYCLOSED) {
@@ -2089,15 +2094,15 @@ void CGarage::CenterCarInGarage(CVehicle* pVehicle)
float offsetZ = pos.z - pos.z;
float distance = CVector(offsetX, offsetY, offsetZ).Magnitude();
if (distance < RESPRAY_CENTERING_COEFFICIENT) {
- pVehicle->GetPosition().x = GetGarageCenterX();
- pVehicle->GetPosition().y = GetGarageCenterY();
+ pVehicle->GetMatrix().GetPosition().x = GetGarageCenterX();
+ pVehicle->GetMatrix().GetPosition().y = GetGarageCenterY();
}
else {
- pVehicle->GetPosition().x += offsetX * RESPRAY_CENTERING_COEFFICIENT / distance;
- pVehicle->GetPosition().y += offsetY * RESPRAY_CENTERING_COEFFICIENT / distance;
+ pVehicle->GetMatrix().GetPosition().x += offsetX * RESPRAY_CENTERING_COEFFICIENT / distance;
+ pVehicle->GetMatrix().GetPosition().y += offsetY * RESPRAY_CENTERING_COEFFICIENT / distance;
}
if (!IsEntityEntirelyInside3D(pVehicle, 0.1f))
- pVehicle->GetPosition() = pos;
+ pVehicle->SetPosition(pos);
}
void CGarages::CloseHideOutGaragesBeforeSave()
@@ -2164,7 +2169,7 @@ int32 CGarages::FindMaxNumStoredCarsForGarage(eGarageType type)
return 0;
}
-bool CGarages::IsPointWithinHideOutGarage(CVector& point)
+bool CGarages::IsPointWithinHideOutGarage(Const CVector& point)
{
for (int i = 0; i < NUM_GARAGES; i++) {
switch (aGarages[i].m_eGarageType) {
@@ -2180,7 +2185,7 @@ bool CGarages::IsPointWithinHideOutGarage(CVector& point)
return false;
}
-bool CGarages::IsPointWithinAnyGarage(CVector& point)
+bool CGarages::IsPointWithinAnyGarage(Const CVector& point)
{
for (int i = 0; i < NUM_GARAGES; i++) {
switch (aGarages[i].m_eGarageType) {
@@ -2205,7 +2210,7 @@ void CGarages::SetAllDoorsBackToOriginalHeight()
default:
aGarages[i].RefreshDoorPointers(true);
if (aGarages[i].m_pDoor1) {
- aGarages[i].m_pDoor1->GetPosition().z = aGarages[i].m_fDoor1Z;
+ aGarages[i].m_pDoor1->GetMatrix().GetPosition().z = aGarages[i].m_fDoor1Z;
if (aGarages[i].m_pDoor1->IsObject())
((CObject*)aGarages[i].m_pDoor1)->m_objectMatrix.GetPosition().z = aGarages[i].m_fDoor1Z;
if (aGarages[i].m_bRotatedDoor)
@@ -2214,7 +2219,7 @@ void CGarages::SetAllDoorsBackToOriginalHeight()
aGarages[i].m_pDoor1->UpdateRwFrame();
}
if (aGarages[i].m_pDoor2) {
- aGarages[i].m_pDoor2->GetPosition().z = aGarages[i].m_fDoor2Z;
+ aGarages[i].m_pDoor2->GetMatrix().GetPosition().z = aGarages[i].m_fDoor2Z;
if (aGarages[i].m_pDoor2->IsObject())
((CObject*)aGarages[i].m_pDoor2)->m_objectMatrix.GetPosition().z = aGarages[i].m_fDoor2Z;
if (aGarages[i].m_bRotatedDoor)