diff options
Diffstat (limited to '')
-rw-r--r-- | src/control/Garages.cpp | 59 |
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) |