mirror of
https://github.com/GTAmodding/re3.git
synced 2025-07-14 03:14:08 +00:00
commit
fd4cd3e8f1
26 changed files with 581 additions and 650 deletions
|
@ -82,10 +82,6 @@ CCamera::CCamera(void)
|
|||
Init();
|
||||
}
|
||||
|
||||
CCamera::CCamera(float)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
CCamera::Init(void)
|
||||
{
|
||||
|
@ -93,12 +89,7 @@ CCamera::Init(void)
|
|||
float fMouseAccelHorzntl = m_fMouseAccelHorzntl;
|
||||
float fMouseAccelVertical = m_fMouseAccelVertical;
|
||||
#endif
|
||||
#ifdef FIX_BUGS
|
||||
static const CCamera DummyCamera = CCamera(0.f);
|
||||
*this = DummyCamera;
|
||||
#else
|
||||
memset(this, 0, sizeof(CCamera)); // getting rid of vtable, eh?
|
||||
#endif
|
||||
memset(this, 0, sizeof(CCamera)); // this is fine, no vtable
|
||||
#ifdef GTA3_1_1_PATCH
|
||||
m_fMouseAccelHorzntl = fMouseAccelHorzntl;
|
||||
m_fMouseAccelVertical = fMouseAccelVertical;
|
||||
|
|
|
@ -549,7 +549,6 @@ public:
|
|||
|
||||
// High level and misc
|
||||
CCamera(void);
|
||||
CCamera(float);
|
||||
void Init(void);
|
||||
void Process(void);
|
||||
void CamControl(void);
|
||||
|
|
|
@ -7,8 +7,6 @@ CPlaceable::CPlaceable(void)
|
|||
m_matrix.SetScale(1.0f);
|
||||
}
|
||||
|
||||
CPlaceable::~CPlaceable(void) = default;
|
||||
|
||||
void
|
||||
CPlaceable::SetHeading(float angle)
|
||||
{
|
||||
|
|
|
@ -9,7 +9,6 @@ public:
|
|||
CMatrix m_matrix;
|
||||
|
||||
CPlaceable(void);
|
||||
virtual ~CPlaceable(void);
|
||||
const CVector &GetPosition(void) { return m_matrix.GetPosition(); }
|
||||
void SetPosition(float x, float y, float z) {
|
||||
m_matrix.GetPosition().x = x;
|
||||
|
|
|
@ -1813,18 +1813,22 @@ void
|
|||
CWorld::RepositionOneObject(CEntity *pEntity)
|
||||
{
|
||||
int16 modelId = pEntity->GetModelIndex();
|
||||
if (IsTrafficLight(modelId) || IsTreeModel(modelId) || modelId == MI_PARKINGMETER ||
|
||||
modelId == MI_PHONEBOOTH1 || modelId == MI_WASTEBIN || modelId == MI_BIN || modelId == MI_POSTBOX1 ||
|
||||
modelId == MI_NEWSSTAND || modelId == MI_TRAFFICCONE || modelId == MI_DUMP1 ||
|
||||
modelId == MI_ROADWORKBARRIER1 || modelId == MI_BUSSIGN1 || modelId == MI_NOPARKINGSIGN1 ||
|
||||
modelId == MI_PHONESIGN || modelId == MI_TAXISIGN || modelId == MI_FISHSTALL01 ||
|
||||
modelId == MI_FISHSTALL02 || modelId == MI_FISHSTALL03 || modelId == MI_FISHSTALL04 ||
|
||||
modelId == MI_BAGELSTAND2 || modelId == MI_FIRE_HYDRANT || modelId == MI_BOLLARDLIGHT ||
|
||||
modelId == MI_PARKTABLE) {
|
||||
if (modelId == MI_PARKINGMETER || modelId == MI_PHONEBOOTH1 || modelId == MI_WASTEBIN ||
|
||||
modelId == MI_BIN || modelId == MI_POSTBOX1 || modelId == MI_NEWSSTAND || modelId == MI_TRAFFICCONE ||
|
||||
modelId == MI_DUMP1 || modelId == MI_ROADWORKBARRIER1 || modelId == MI_BUSSIGN1 || modelId == MI_NOPARKINGSIGN1 ||
|
||||
modelId == MI_PHONESIGN || modelId == MI_FIRE_HYDRANT || modelId == MI_BOLLARDLIGHT ||
|
||||
modelId == MI_PARKTABLE || modelId == MI_PARKINGMETER2 || modelId == MI_TELPOLE02 ||
|
||||
modelId == MI_PARKBENCH || modelId == MI_BARRIER1 || IsTreeModel(modelId)
|
||||
// TODO(MIAMI): this is actually a different case
|
||||
|| IsStreetLight(modelId)
|
||||
) {
|
||||
CVector &position = pEntity->GetMatrix().GetPosition();
|
||||
float fBoundingBoxMinZ = pEntity->GetColModel()->boundingBox.min.z;
|
||||
CColModel *pColModel = pEntity->GetColModel();
|
||||
float fBoundingBoxMinZ = pColModel->boundingBox.min.z;
|
||||
float fHeight = pColModel->boundingBox.max.z - pColModel->boundingBox.min.z;
|
||||
if(fHeight < OBJECT_REPOSITION_OFFSET_Z) fHeight = OBJECT_REPOSITION_OFFSET_Z;
|
||||
position.z = CWorld::FindGroundZFor3DCoord(position.x, position.y,
|
||||
position.z + OBJECT_REPOSITION_OFFSET_Z, nil) -
|
||||
position.z + fHeight, nil) -
|
||||
fBoundingBoxMinZ;
|
||||
pEntity->m_matrix.UpdateRW();
|
||||
pEntity->UpdateRwFrame();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue