From d23b2c423e5811cf6e9de28cbf8490de32ea4fb5 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Thu, 30 Apr 2020 13:48:01 +0300 Subject: [PATCH] SetPosition, part 1 --- src/animation/CutsceneMgr.cpp | 4 ++-- src/audio/AudioManager.cpp | 2 +- src/audio/AudioManager.h | 2 +- src/control/Bridge.cpp | 6 +++--- src/control/CarCtrl.cpp | 11 +++++------ src/control/Garages.cpp | 4 ++-- src/control/Garages.h | 4 ++-- src/control/Phones.cpp | 2 +- src/control/Pickups.cpp | 14 +++++++------- src/control/Record.cpp | 8 ++++---- src/control/Remote.cpp | 2 +- src/control/Replay.cpp | 4 ++-- src/control/SceneEdit.cpp | 16 ++++++++-------- src/control/Script.cpp | 4 ++-- src/core/Placeable.h | 6 ++++++ src/core/World.cpp | 4 ++-- src/core/World.h | 4 ++-- src/core/common.h | 3 +++ src/peds/Ped.cpp | 4 ++-- src/render/PointLights.cpp | 2 +- src/render/PointLights.h | 2 +- src/render/Shadows.cpp | 2 +- src/render/Shadows.h | 2 +- src/vehicles/Train.cpp | 2 +- src/weapons/ProjectileInfo.cpp | 2 +- 25 files changed, 62 insertions(+), 54 deletions(-) diff --git a/src/animation/CutsceneMgr.cpp b/src/animation/CutsceneMgr.cpp index 334fe471..0db54c4b 100644 --- a/src/animation/CutsceneMgr.cpp +++ b/src/animation/CutsceneMgr.cpp @@ -267,11 +267,11 @@ CCutsceneMgr::SetupCutsceneToStart(void) assert(RwObjectGetType(ms_pCutsceneObjects[i]->m_rwObject) == rpCLUMP); if (CAnimBlendAssociation *pAnimBlendAssoc = RpAnimBlendClumpGetFirstAssociation((RpClump*)ms_pCutsceneObjects[i]->m_rwObject)) { assert(pAnimBlendAssoc->hierarchy->sequences[0].HasTranslation()); - ms_pCutsceneObjects[i]->GetPosition() = ms_cutsceneOffset + ((KeyFrameTrans*)pAnimBlendAssoc->hierarchy->sequences[0].GetKeyFrame(0))->translation; + ms_pCutsceneObjects[i]->SetPosition(ms_cutsceneOffset + ((KeyFrameTrans*)pAnimBlendAssoc->hierarchy->sequences[0].GetKeyFrame(0))->translation); CWorld::Add(ms_pCutsceneObjects[i]); pAnimBlendAssoc->SetRun(); } else { - ms_pCutsceneObjects[i]->GetPosition() = ms_cutsceneOffset; + ms_pCutsceneObjects[i]->SetPosition(ms_cutsceneOffset); } } diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp index be854539..f529b4de 100644 --- a/src/audio/AudioManager.cpp +++ b/src/audio/AudioManager.cpp @@ -9814,7 +9814,7 @@ cAudioManager::Terminate() } void -cAudioManager::TranslateEntity(CVector *in, CVector *out) const +cAudioManager::TranslateEntity(Const CVector *in, CVector *out) const { *out = MultiplyInverse(TheCamera.GetMatrix(), *in); } diff --git a/src/audio/AudioManager.h b/src/audio/AudioManager.h index d8b6c4d7..66d0e588 100644 --- a/src/audio/AudioManager.h +++ b/src/audio/AudioManager.h @@ -456,7 +456,7 @@ public: void SetupSuspectLastSeenReport(); void Terminate(); - void TranslateEntity(CVector *v1, CVector *v2) const; + void TranslateEntity(Const CVector *v1, CVector *v2) const; void UpdateGasPedalAudio(CAutomobile *automobile); void UpdateReflections(); diff --git a/src/control/Bridge.cpp b/src/control/Bridge.cpp index 8514ef9e..98c74bbe 100644 --- a/src/control/Bridge.cpp +++ b/src/control/Bridge.cpp @@ -93,16 +93,16 @@ void CBridge::Update() // Move bridge part if (liftHeight != OldLift) { - pLiftPart->GetPosition().z = DefaultZLiftPart + liftHeight; + pLiftPart->GetMatrix().GetPosition().z = DefaultZLiftPart + liftHeight; pLiftPart->GetMatrix().UpdateRW(); pLiftPart->UpdateRwFrame(); if (pLiftRoad) { - pLiftRoad->GetPosition().z = DefaultZLiftRoad + liftHeight; + pLiftRoad->GetMatrix().GetPosition().z = DefaultZLiftRoad + liftHeight; pLiftRoad->GetMatrix().UpdateRW(); pLiftRoad->UpdateRwFrame(); } - pWeight->GetPosition().z = DefaultZLiftWeight - liftHeight; + pWeight->GetMatrix().GetPosition().z = DefaultZLiftWeight - liftHeight; pWeight->GetMatrix().UpdateRW(); pWeight->UpdateRwFrame(); diff --git a/src/control/CarCtrl.cpp b/src/control/CarCtrl.cpp index bb70be8c..2d946145 100644 --- a/src/control/CarCtrl.cpp +++ b/src/control/CarCtrl.cpp @@ -461,7 +461,7 @@ CCarCtrl::GenerateOneRandomCar() return; } finalPosition.z = groundZ + pCar->GetHeightAboveRoad(); - pCar->GetPosition() = finalPosition; + pCar->SetPosition(finalPosition); pCar->SetMoveSpeed(directionIncludingCurve / GAME_SPEED_TO_CARAI_SPEED); CVector2D speedDifferenceWithTarget = (CVector2D)pCar->GetMoveSpeed() - vecPlayerSpeed; CVector2D distanceToTarget = positionIncludingCurve - vecTargetPos; @@ -1964,9 +1964,8 @@ void CCarCtrl::DragCarToPoint(CVehicle* pVehicle, CVector* pPoint) pVehicle->GetRight() = CVector(posTarget.y - midPos.y, -(posTarget.x - midPos.x), 0.0f) / 3; pVehicle->GetForward() = CVector(-cosZ * pVehicle->GetRight().y, cosZ * pVehicle->GetRight().x, sinZ); pVehicle->GetUp() = CrossProduct(pVehicle->GetRight(), pVehicle->GetForward()); - pVehicle->GetPosition() = (CVector(midPos.x, midPos.y, actualBehindZ) - + CVector(posTarget.x, posTarget.y, actualAheadZ)) / 2; - pVehicle->GetPosition().z += pVehicle->GetHeightAboveRoad(); + pVehicle->SetPosition((CVector(midPos.x, midPos.y, actualBehindZ) + CVector(posTarget.x, posTarget.y, actualAheadZ)) / 2); + pVehicle->GetMatrix().GetPosition().z += pVehicle->GetHeightAboveRoad(); } float CCarCtrl::FindSpeedMultiplier(float angleChange, float minAngle, float maxAngle, float coef) @@ -2647,7 +2646,7 @@ bool CCarCtrl::GenerateOneEmergencyServicesCar(uint32 mi, CVector vecPos) return nil; CAutomobile* pVehicle = new CAutomobile(mi, RANDOM_VEHICLE); pVehicle->AutoPilot.m_vecDestinationCoors = vecPos; - pVehicle->GetPosition() = spawnPos; + pVehicle->SetPosition(spawnPos); pVehicle->AutoPilot.m_nCarMission = (JoinCarWithRoadSystemGotoCoors(pVehicle, vecPos, false)) ? MISSION_GOTOCOORDS_STRAIGHT : MISSION_GOTOCOORDS; pVehicle->AutoPilot.m_fMaxTrafficSpeed = pVehicle->AutoPilot.m_nCruiseSpeed = 25; pVehicle->AutoPilot.m_nTempAction = TEMPACT_NONE; @@ -2672,7 +2671,7 @@ bool CCarCtrl::GenerateOneEmergencyServicesCar(uint32 mi, CVector vecPos) return false; } spawnPos.z = groundZ + pVehicle->GetDistanceFromCentreOfMassToBaseOfModel(); - pVehicle->GetPosition() = spawnPos; + pVehicle->SetPosition(spawnPos); pVehicle->SetMoveSpeed(CVector(0.0f, 0.0f, 0.0f)); pVehicle->SetStatus(STATUS_PHYSICS); switch (mi){ diff --git a/src/control/Garages.cpp b/src/control/Garages.cpp index fd18f4cf..97cb8303 100644 --- a/src/control/Garages.cpp +++ b/src/control/Garages.cpp @@ -2164,7 +2164,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 +2180,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) { diff --git a/src/control/Garages.h b/src/control/Garages.h index 65193b32..3105f72d 100644 --- a/src/control/Garages.h +++ b/src/control/Garages.h @@ -232,8 +232,8 @@ public: static bool CameraShouldBeOutside(void); static void GivePlayerDetonator(void); static void PlayerArrestedOrDied(void); - static bool IsPointWithinHideOutGarage(CVector&); - static bool IsPointWithinAnyGarage(CVector&); + static bool IsPointWithinHideOutGarage(Const CVector&); + static bool IsPointWithinAnyGarage(Const CVector&); static void SetAllDoorsBackToOriginalHeight(void); static void Save(uint8* buf, uint32* size); static void Load(uint8* buf, uint32 size); diff --git a/src/control/Phones.cpp b/src/control/Phones.cpp index 15e9f9f1..27bdc010 100644 --- a/src/control/Phones.cpp +++ b/src/control/Phones.cpp @@ -301,7 +301,7 @@ CPhoneInfo::Initialise(void) if (building->m_modelIndex == MI_PHONEBOOTH1) { CPhone *maxPhone = &m_aPhones[m_nMax]; maxPhone->m_nState = PHONE_STATE_FREE; - maxPhone->m_vecPos = *(building->GetPosition()); + maxPhone->m_vecPos = building->GetPosition(); maxPhone->m_pEntity = building; m_nMax++; } diff --git a/src/control/Pickups.cpp b/src/control/Pickups.cpp index d5db4ad8..08ce9418 100644 --- a/src/control/Pickups.cpp +++ b/src/control/Pickups.cpp @@ -84,7 +84,7 @@ CPickup::GiveUsAPickUpObject(int32 handle) if (object == nil) return nil; object->ObjectCreatedBy = MISSION_OBJECT; - object->GetPosition() = m_vecPos; + object->SetPosition(m_vecPos); object->SetOrientation(0.0f, 0.0f, -HALFPI); object->GetMatrix().UpdateRW(); object->UpdateRwFrame(); @@ -695,7 +695,7 @@ CPickups::DoPickUpEffects(CEntity *entity) assert(colorId >= 0); - CVector &pos = entity->GetPosition(); + const CVector &pos = entity->GetPosition(); float colorModifier = ((CGeneral::GetRandomNumber() & 0x1F) * 0.015f + 1.0f) * modifiedSin * 0.15f; CShadows::StoreStaticShadow( @@ -749,7 +749,7 @@ CPickups::DoPickUpEffects(CEntity *entity) void CPickups::DoMineEffects(CEntity *entity) { - CVector &pos = entity->GetPosition(); + const CVector &pos = entity->GetPosition(); float dist = (TheCamera.GetPosition() - pos).Magnitude(); const float MAXDIST = 20.0f; @@ -771,7 +771,7 @@ CPickups::DoMineEffects(CEntity *entity) void CPickups::DoMoneyEffects(CEntity *entity) { - CVector &pos = entity->GetPosition(); + const CVector &pos = entity->GetPosition(); float dist = (TheCamera.GetPosition() - pos).Magnitude(); const float MAXDIST = 20.0f; @@ -793,7 +793,7 @@ CPickups::DoMoneyEffects(CEntity *entity) void CPickups::DoCollectableEffects(CEntity *entity) { - CVector &pos = entity->GetPosition(); + const CVector &pos = entity->GetPosition(); float dist = (TheCamera.GetPosition() - pos).Magnitude(); const float MAXDIST = 14.0f; @@ -1145,7 +1145,7 @@ CPacManPickups::GeneratePMPickUps(CVector pos, float scrambleMult, int16 count, CObject *obj = new CObject(MI_BULLION, true); if (obj != nil) { obj->ObjectCreatedBy = MISSION_OBJECT; - obj->GetPosition() = aPMPickUps[i].m_vecPosn; + obj->SetPosition(aPMPickUps[i].m_vecPosn); obj->SetOrientation(0.0f, 0.0f, -HALFPI); obj->GetMatrix().UpdateRW(); obj->UpdateRwFrame(); @@ -1296,7 +1296,7 @@ CPacManPickups::GeneratePMPickUpsForRace(int32 race) if (obj != nil) { obj->ObjectCreatedBy = MISSION_OBJECT; - obj->GetPosition() = aPMPickUps[i].m_vecPosn; + obj->SetPosition(aPMPickUps[i].m_vecPosn); obj->SetOrientation(0.0f, 0.0f, -HALFPI); obj->GetMatrix().UpdateRW(); obj->UpdateRwFrame(); diff --git a/src/control/Record.cpp b/src/control/Record.cpp index bba9a45d..d086543f 100644 --- a/src/control/Record.cpp +++ b/src/control/Record.cpp @@ -279,7 +279,7 @@ void CRecordDataForChase::SaveOrRetrieveCarPositions(void) } if (CPad::GetPad(0)->GetLeftShockJustDown() && CPad::GetPad(0)->GetRightShockJustDown()) { if (!CPad::GetPad(0)->GetRightShockJustDown()) { - pChaseCars[CurrentCar]->GetPosition() = NewCoorsForRecordedCars[PositionChanges].pos; + pChaseCars[CurrentCar]->SetPosition(NewCoorsForRecordedCars[PositionChanges].pos); pChaseCars[CurrentCar]->SetMoveSpeed(0.0f, 0.0f, 0.0f); pChaseCars[CurrentCar]->GetMatrix().SetRotateZOnly(DEGTORAD(NewCoorsForRecordedCars[PositionChanges].angle)); ++PositionChanges; @@ -311,12 +311,12 @@ void CRecordDataForChase::SaveOrRetrieveCarPositions(void) pChaseCars[i]->GetRight() += (tmp.GetRight() - pChaseCars[i]->GetRight()) * dp; pChaseCars[i]->GetForward() += (tmp.GetForward() - pChaseCars[i]->GetForward()) * dp; pChaseCars[i]->GetUp() += (tmp.GetUp() - pChaseCars[i]->GetUp()) * dp; - pChaseCars[i]->GetPosition() += (tmp.GetPosition() - pChaseCars[i]->GetPosition()) * dp; + pChaseCars[i]->GetMatrix().GetPosition() += (tmp.GetPosition() - pChaseCars[i]->GetPosition()) * dp; } else{ RestoreInfoForCar(pChaseCars[i], &pBaseMemForCar[i][CHASE_SCENE_FRAMES_IN_RECORDING - 1], true); if (i == 0) - pChaseCars[i]->GetPosition().z += 0.2f; + pChaseCars[i]->GetMatrix().GetPosition().z += 0.2f; } pChaseCars[i]->GetMatrix().UpdateRW(); pChaseCars[i]->UpdateRwFrame(); @@ -407,7 +407,7 @@ void CRecordDataForChase::GiveUsACar(int32 mi, CVector pos, float angle, CAutomo if (!CStreaming::HasModelLoaded(mi)) return; CAutomobile* pCar = new CAutomobile(mi, MISSION_VEHICLE); - pCar->GetPosition() = pos; + pCar->SetPosition(pos); pCar->SetStatus(STATUS_PLAYER_PLAYBACKFROMBUFFER); pCar->GetMatrix().SetRotateZOnly(DEGTORAD(angle)); pCar->pDriver = nil; diff --git a/src/control/Remote.cpp b/src/control/Remote.cpp index ee729d7e..904e9023 100644 --- a/src/control/Remote.cpp +++ b/src/control/Remote.cpp @@ -18,7 +18,7 @@ CRemote::GivePlayerRemoteControlledCar(float x, float y, float z, float rot, uin z = car->GetDistanceFromCentreOfMassToBaseOfModel() + CWorld::FindGroundZFor3DCoord(x, y, z + 2.0f, &found); car->GetMatrix().SetRotateZOnly(rot); - car->GetPosition() = CVector(x, y, z); + car->SetPosition(x, y, z); car->SetStatus(STATUS_PLAYER_REMOTE); car->bIsLocked = true; diff --git a/src/control/Replay.cpp b/src/control/Replay.cpp index f9e894b6..49f5462f 100644 --- a/src/control/Replay.cpp +++ b/src/control/Replay.cpp @@ -1020,7 +1020,7 @@ void CReplay::ProcessReplayCamera(void) switch (CameraMode) { case REPLAYCAMMODE_TOPDOWN: { - TheCamera.GetPosition() = CVector(CameraFocusX, CameraFocusY, CameraFocusZ + 15.0f); + TheCamera.SetPosition(CameraFocusX, CameraFocusY, CameraFocusZ + 15.0f); TheCamera.GetForward() = CVector(0.0f, 0.0f, -1.0f); TheCamera.GetUp() = CVector(0.0f, 1.0f, 0.0f); TheCamera.GetRight() = CVector(1.0f, 0.0f, 0.0f); @@ -1539,7 +1539,7 @@ void CReplay::ProcessLookAroundCam(void) TheCamera.GetForward() = forward; TheCamera.GetUp() = up; TheCamera.GetRight() = right; - TheCamera.GetPosition() = camera_pt; + TheCamera.SetPosition(camera_pt); RwMatrix* pm = RwFrameGetMatrix(RwCameraGetFrame(TheCamera.m_pRwCamera)); pm->pos = *(RwV3d*)&TheCamera.GetPosition(); pm->at = *(RwV3d*)&TheCamera.GetForward(); diff --git a/src/control/SceneEdit.cpp b/src/control/SceneEdit.cpp index 8e9fc754..cf6cc4f6 100644 --- a/src/control/SceneEdit.cpp +++ b/src/control/SceneEdit.cpp @@ -349,7 +349,7 @@ void CSceneEdit::ProcessCommand(void) } CPed* pPed = new CCivilianPed(PEDTYPE_SPECIAL, m_nPedmodelId); pPed->CharCreatedBy = MISSION_CHAR; - pPed->GetPosition() = m_vecCurrentPosition; + pPed->SetPosition(m_vecCurrentPosition); pPed->SetOrientation(0.0f, 0.0f, 0.0f); CWorld::Add(pPed); pPed->bUsesCollision = false; @@ -363,7 +363,7 @@ void CSceneEdit::ProcessCommand(void) } } else { - pActors[m_nActor]->GetPosition() = m_vecCurrentPosition; + pActors[m_nActor]->SetPosition(m_vecCurrentPosition); pActors[m_nActor]->SetOrientation(0.0f, 0.0f, 0.0f); int32 mi = m_nPedmodelId; if (CPad::GetPad(1)->GetLeftShoulder1JustDown()) @@ -405,7 +405,7 @@ void CSceneEdit::ProcessCommand(void) SelectActor(); if (m_bCommandActive) break; - pActors[m_nActor]->GetPosition() = m_vecCurrentPosition; + pActors[m_nActor]->SetPosition(m_vecCurrentPosition); if (CPad::GetPad(1)->GetTriangleJustDown()) { m_bCommandActive = false; #ifndef FIX_BUGS // why? it crashes, also makes no sense @@ -451,7 +451,7 @@ void CSceneEdit::ProcessCommand(void) } CVehicle* pVehicle = new CAutomobile(m_nVehiclemodelId, MISSION_VEHICLE); pVehicle->SetStatus(STATUS_PHYSICS); - pVehicle->GetPosition() = m_vecCurrentPosition; + pVehicle->SetPosition(m_vecCurrentPosition); pVehicle->SetOrientation(0.0f, 0.0f, 0.0f); CWorld::Add(pVehicle); pVehicle->bUsesCollision = false; @@ -465,7 +465,7 @@ void CSceneEdit::ProcessCommand(void) } } else { - pVehicles[m_nVehicle]->GetPosition() = m_vecCurrentPosition; + pVehicles[m_nVehicle]->SetPosition(m_vecCurrentPosition); pVehicles[m_nVehicle]->SetOrientation(0.0f, 0.0f, 0.0f); int32 mi = m_nVehiclemodelId; if (CPad::GetPad(1)->GetLeftShoulder1JustDown()) @@ -507,7 +507,7 @@ void CSceneEdit::ProcessCommand(void) SelectVehicle(); if (m_bCommandActive) break; - pVehicles[m_nVehicle]->GetPosition() = m_vecCurrentPosition; + pVehicles[m_nVehicle]->SetPosition(m_vecCurrentPosition); if (CPad::GetPad(1)->GetTriangleJustDown()) { m_bCommandActive = false; #ifndef FIX_BUGS // again, why? works wrong @@ -785,7 +785,7 @@ void CSceneEdit::PlayBack(void) CPed* pPed = new CCivilianPed(PEDTYPE_SPECIAL, m_nPedmodelId); pPed->CharCreatedBy = MISSION_CHAR; CWorld::Add(pPed); - pPed->GetPosition() = m_vecCurrentPosition; + pPed->SetPosition(m_vecCurrentPosition); pPed->SetOrientation(0.0f, 0.0f, 0.0f); for (int i = 0; i < NUM_ACTORS_IN_MOVIE; i++) { if (pActors[i] == nil) { @@ -811,7 +811,7 @@ void CSceneEdit::PlayBack(void) } CVehicle* pVehicle = new CAutomobile(m_nVehiclemodelId, MISSION_VEHICLE); pVehicle->SetStatus(STATUS_PHYSICS); - pVehicle->GetPosition() = m_vecCurrentPosition; + pVehicle->SetPosition(m_vecCurrentPosition); pVehicle->SetOrientation(0.0f, 0.0f, 0.0f); CWorld::Add(pVehicle); for (int i = 0; i < NUM_VEHICLES_IN_MOVIE; i++) { diff --git a/src/control/Script.cpp b/src/control/Script.cpp index 4b3ed3bd..b63a5d87 100644 --- a/src/control/Script.cpp +++ b/src/control/Script.cpp @@ -1293,7 +1293,7 @@ int8 CRunningScript::ProcessCommands0To99(int32 command) if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); pos.z += CWorld::Players[index].m_pPed->GetDistanceFromCentreOfMassToBaseOfModel(); - CWorld::Players[index].m_pPed->GetPosition() = pos; + CWorld::Players[index].m_pPed->SetPosition(pos); CTheScripts::ClearSpaceForMissionEntity(pos, CWorld::Players[index].m_pPed); CPlayerPed::ReactivatePlayerPed(index); ScriptParams[0] = index; @@ -5153,7 +5153,7 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); CRestart::OverrideNextRestart(pos, *(float*)&ScriptParams[3]); - if (CWorld::Players[CWorld::PlayerInFocus].m_WBState != WBSTATE_PLAYING) //TODO: enum + if (CWorld::Players[CWorld::PlayerInFocus].m_WBState != WBSTATE_PLAYING) printf("RESTART_CRITICAL_MISSION - Player state is not PLAYING\n"); CWorld::Players[CWorld::PlayerInFocus].PlayerFailedCriticalMission(); return 0; diff --git a/src/core/Placeable.h b/src/core/Placeable.h index 2df26a7c..d39bb0d9 100644 --- a/src/core/Placeable.h +++ b/src/core/Placeable.h @@ -11,6 +11,12 @@ public: CPlaceable(void); virtual ~CPlaceable(void); CVector &GetPosition(void) { return m_matrix.GetPosition(); } + void SetPosition(float x, float y, float z) { + m_matrix.GetPosition().x = x; + m_matrix.GetPosition().y = y; + m_matrix.GetPosition().z = z; + } + void SetPosition(const CVector &pos) { m_matrix.GetPosition() = pos; } CVector &GetRight(void) { return m_matrix.GetRight(); } CVector &GetForward(void) { return m_matrix.GetForward(); } CVector &GetUp(void) { return m_matrix.GetUp(); } diff --git a/src/core/World.cpp b/src/core/World.cpp index 4b2ca76e..30d086df 100644 --- a/src/core/World.cpp +++ b/src/core/World.cpp @@ -659,7 +659,7 @@ CWorld::GetIsLineOfSightSectorListClear(CPtrList &list, const CColLine &line, bo } void -CWorld::FindObjectsInRangeSectorList(CPtrList &list, CVector ¢re, float radius, bool ignoreZ, short *nextObject, +CWorld::FindObjectsInRangeSectorList(CPtrList &list, Const CVector ¢re, float radius, bool ignoreZ, short *nextObject, short lastObject, CEntity **objects) { float radiusSqr = radius * radius; @@ -685,7 +685,7 @@ CWorld::FindObjectsInRangeSectorList(CPtrList &list, CVector ¢re, float radi } void -CWorld::FindObjectsInRange(CVector ¢re, float radius, bool ignoreZ, short *nextObject, short lastObject, +CWorld::FindObjectsInRange(Const CVector ¢re, float radius, bool ignoreZ, short *nextObject, short lastObject, CEntity **objects, bool checkBuildings, bool checkVehicles, bool checkPeds, bool checkObjects, bool checkDummies) { diff --git a/src/core/World.h b/src/core/World.h index 25c76531..991180af 100644 --- a/src/core/World.h +++ b/src/core/World.h @@ -101,8 +101,8 @@ public: static CEntity *TestSphereAgainstWorld(CVector centre, float radius, CEntity *entityToIgnore, bool checkBuildings, bool checkVehicles, bool checkPeds, bool checkObjects, bool checkDummies, bool ignoreSomeObjects); static CEntity *TestSphereAgainstSectorList(CPtrList&, CVector, float, CEntity*, bool); - static void FindObjectsInRangeSectorList(CPtrList&, CVector&, float, bool, short*, short, CEntity**); - static void FindObjectsInRange(CVector&, float, bool, short*, short, CEntity**, bool, bool, bool, bool, bool); + static void FindObjectsInRangeSectorList(CPtrList&, Const CVector&, float, bool, short*, short, CEntity**); + static void FindObjectsInRange(Const CVector&, float, bool, short*, short, CEntity**, bool, bool, bool, bool, bool); static void FindObjectsOfTypeInRangeSectorList(uint32 modelId, CPtrList& list, const CVector& position, float radius, bool bCheck2DOnly, int16* nEntitiesFound, int16 maxEntitiesToFind, CEntity** aEntities); static void FindObjectsOfTypeInRange(uint32 modelId, const CVector& position, float radius, bool bCheck2DOnly, int16* nEntitiesFound, int16 maxEntitiesToFind, CEntity** aEntities, bool bBuildings, bool bVehicles, bool bPeds, bool bObjects, bool bDummies); static float FindGroundZForCoord(float x, float y); diff --git a/src/core/common.h b/src/core/common.h index 18f4715c..ff8580a1 100644 --- a/src/core/common.h +++ b/src/core/common.h @@ -58,6 +58,9 @@ #define Max(a,b) ((a) > (b) ? (a) : (b)) #define Min(a,b) ((a) < (b) ? (a) : (b)) +// Use this to add const that wasn't there in the original code +#define Const const + typedef uint8_t uint8; typedef int8_t int8; typedef uint16_t uint16; diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index f81ffb71..20fa93da 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -2401,7 +2401,7 @@ void CPed::Teleport(CVector pos) { CWorld::Remove(this); - GetPosition() = pos; + SetPosition(pos); bIsStanding = false; m_nPedStateTimer = 0; m_actionX = 0.0f; @@ -3222,7 +3222,7 @@ CPed::TurnBody(void) bool turnDone = true; if (m_pLookTarget) { - CVector &lookPos = m_pLookTarget->GetPosition(); + const CVector &lookPos = m_pLookTarget->GetPosition(); lookDir = CGeneral::GetRadianAngleBetweenPoints( lookPos.x, diff --git a/src/render/PointLights.cpp b/src/render/PointLights.cpp index b92e7e83..88b9aaea 100644 --- a/src/render/PointLights.cpp +++ b/src/render/PointLights.cpp @@ -58,7 +58,7 @@ CPointLights::AddLight(uint8 type, CVector coors, CVector dir, float radius, flo } float -CPointLights::GenerateLightsAffectingObject(CVector *objCoors) +CPointLights::GenerateLightsAffectingObject(Const CVector *objCoors) { int i; float ret; diff --git a/src/render/PointLights.h b/src/render/PointLights.h index 215e1dc9..56b84f71 100644 --- a/src/render/PointLights.h +++ b/src/render/PointLights.h @@ -39,7 +39,7 @@ public: static void InitPerFrame(void); static void AddLight(uint8 type, CVector coors, CVector dir, float radius, float red, float green, float blue, uint8 fogType, bool castExtraShadows); - static float GenerateLightsAffectingObject(CVector *objCoors); + static float GenerateLightsAffectingObject(Const CVector *objCoors); static void RemoveLightsAffectingObject(void); static void RenderFogEffect(void); }; diff --git a/src/render/Shadows.cpp b/src/render/Shadows.cpp index d5970ebe..cc8c7034 100644 --- a/src/render/Shadows.cpp +++ b/src/render/Shadows.cpp @@ -214,7 +214,7 @@ CShadows::AddPermanentShadow(uint8 ShadowType, RwTexture *pTexture, CVector *pPo } void -CShadows::StoreStaticShadow(uint32 nID, uint8 ShadowType, RwTexture *pTexture, CVector *pPosn, +CShadows::StoreStaticShadow(uint32 nID, uint8 ShadowType, RwTexture *pTexture, Const CVector *pPosn, float fFrontX, float fFrontY, float fSideX, float fSideY, int16 nIntensity, uint8 nRed, uint8 nGreen, uint8 nBlue, float fZDistance, float fScale, float fDrawDistance, bool bTempShadow, float fUpDistance) diff --git a/src/render/Shadows.h b/src/render/Shadows.h index 65274879..39be343e 100644 --- a/src/render/Shadows.h +++ b/src/render/Shadows.h @@ -143,7 +143,7 @@ public: static void Init (void); static void Shutdown (void); static void AddPermanentShadow ( uint8 ShadowType, RwTexture *pTexture, CVector *pPosn, float fFrontX, float fFrontY, float fSideX, float fSideY, int16 nIntensity, uint8 nRed, uint8 nGreen, uint8 nBlue, float fZDistance, uint32 nTime, float fScale); - static void StoreStaticShadow (uint32 nID, uint8 ShadowType, RwTexture *pTexture, CVector *pPosn, float fFrontX, float fFrontY, float fSideX, float fSideY, int16 nIntensity, uint8 nRed, uint8 nGreen, uint8 nBlue, float fZDistance, float fScale, float fDrawDistance, bool bTempShadow, float fUpDistance); + static void StoreStaticShadow (uint32 nID, uint8 ShadowType, RwTexture *pTexture, Const CVector *pPosn, float fFrontX, float fFrontY, float fSideX, float fSideY, int16 nIntensity, uint8 nRed, uint8 nGreen, uint8 nBlue, float fZDistance, float fScale, float fDrawDistance, bool bTempShadow, float fUpDistance); static void StoreShadowToBeRendered ( uint8 ShadowType, CVector *pPosn, float fFrontX, float fFrontY, float fSideX, float fSideY, int16 nIntensity, uint8 nRed, uint8 nGreen, uint8 nBlue); static void StoreShadowToBeRendered ( uint8 ShadowType, RwTexture *pTexture, CVector *pPosn, float fFrontX, float fFrontY, float fSideX, float fSideY, int16 nIntensity, uint8 nRed, uint8 nGreen, uint8 nBlue, float fZDistance, bool bDrawOnWater, float fScale); static void StoreShadowForCar (CAutomobile *pCar); diff --git a/src/vehicles/Train.cpp b/src/vehicles/Train.cpp index 07d81501..7831a0c8 100644 --- a/src/vehicles/Train.cpp +++ b/src/vehicles/Train.cpp @@ -161,7 +161,7 @@ CTrain::ProcessControl(void) CVector posFront = (1.0f - f)*trackNodes[curTrackNodeFront].p + f*trackNodes[nextTrackNodeFront].p; // Now set matrix - GetPosition() = (posRear + posFront)/2.0f; + SetPosition((posRear + posFront)/2.0f); CVector fwd = posFront - posRear; fwd.Normalise(); CVector right = CrossProduct(fwd, CVector(0.0f, 0.0f, 1.0f)); diff --git a/src/weapons/ProjectileInfo.cpp b/src/weapons/ProjectileInfo.cpp index 2fba42e3..8297d953 100644 --- a/src/weapons/ProjectileInfo.cpp +++ b/src/weapons/ProjectileInfo.cpp @@ -245,7 +245,7 @@ CProjectileInfo::IsProjectileInRange(float x1, float x2, float y1, float y2, flo for (int i = 0; i < ARRAY_SIZE(ms_apProjectile); i++) { if (gaProjectileInfo[i].m_bInUse) { if (gaProjectileInfo[i].m_eWeaponType == WEAPONTYPE_ROCKETLAUNCHER || gaProjectileInfo[i].m_eWeaponType == WEAPONTYPE_MOLOTOV || gaProjectileInfo[i].m_eWeaponType == WEAPONTYPE_GRENADE) { - CVector &pos = ms_apProjectile[i]->GetPosition(); + const CVector &pos = ms_apProjectile[i]->GetPosition(); if (pos.x >= x1 && pos.x <= x2 && pos.y >= y1 && pos.y <= y2 && pos.z >= z1 && pos.z <= z2) { result = true; if (remove) {