mirror of
https://github.com/rwengine/openrw.git
synced 2024-11-07 03:12:36 +01:00
Remove raw ptrs from PickupObject
This commit is contained in:
parent
071481f617
commit
70304dd276
@ -98,11 +98,11 @@ PickupObject::PickupObject(GameWorld* world, const glm::vec3& position,
|
|||||||
tf.setIdentity();
|
tf.setIdentity();
|
||||||
tf.setOrigin(btVector3(position.x, position.y, position.z));
|
tf.setOrigin(btVector3(position.x, position.y, position.z));
|
||||||
|
|
||||||
m_ghost = new btPairCachingGhostObject;
|
m_ghost = std::make_unique<btPairCachingGhostObject>();
|
||||||
m_ghost->setUserPointer(this);
|
m_ghost->setUserPointer(this);
|
||||||
m_ghost->setWorldTransform(tf);
|
m_ghost->setWorldTransform(tf);
|
||||||
m_shape = new btSphereShape(0.5f);
|
m_shape = std::make_unique<btSphereShape>(0.5f);
|
||||||
m_ghost->setCollisionShape(m_shape);
|
m_ghost->setCollisionShape(m_shape.get());
|
||||||
m_ghost->setCollisionFlags(btCollisionObject::CF_KINEMATIC_OBJECT |
|
m_ghost->setCollisionFlags(btCollisionObject::CF_KINEMATIC_OBJECT |
|
||||||
btCollisionObject::CF_NO_CONTACT_RESPONSE);
|
btCollisionObject::CF_NO_CONTACT_RESPONSE);
|
||||||
|
|
||||||
@ -162,8 +162,6 @@ PickupObject::~PickupObject() {
|
|||||||
if (m_ghost) {
|
if (m_ghost) {
|
||||||
setEnabled(false);
|
setEnabled(false);
|
||||||
engine->destroyEffect(m_corona);
|
engine->destroyEffect(m_corona);
|
||||||
delete m_ghost;
|
|
||||||
delete m_shape;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -212,7 +210,7 @@ void PickupObject::tick(float dt) {
|
|||||||
|
|
||||||
const btBroadphasePair& pair = pairArray[i];
|
const btBroadphasePair& pair = pairArray[i];
|
||||||
auto otherObject = static_cast<const btCollisionObject*>(
|
auto otherObject = static_cast<const btCollisionObject*>(
|
||||||
pair.m_pProxy0->m_clientObject == m_ghost
|
pair.m_pProxy0->m_clientObject == m_ghost.get()
|
||||||
? pair.m_pProxy1->m_clientObject
|
? pair.m_pProxy1->m_clientObject
|
||||||
: pair.m_pProxy0->m_clientObject);
|
: pair.m_pProxy0->m_clientObject);
|
||||||
if (otherObject->getUserPointer()) {
|
if (otherObject->getUserPointer()) {
|
||||||
@ -256,10 +254,10 @@ void PickupObject::tick(float dt) {
|
|||||||
void PickupObject::setEnabled(bool enabled) {
|
void PickupObject::setEnabled(bool enabled) {
|
||||||
if (!m_enabled && enabled) {
|
if (!m_enabled && enabled) {
|
||||||
engine->dynamicsWorld->addCollisionObject(
|
engine->dynamicsWorld->addCollisionObject(
|
||||||
m_ghost, btBroadphaseProxy::SensorTrigger);
|
m_ghost.get(), btBroadphaseProxy::SensorTrigger);
|
||||||
m_corona.size = glm::vec2(1.5f, 1.5f);
|
m_corona.size = glm::vec2(1.5f, 1.5f);
|
||||||
} else if (m_enabled && !enabled) {
|
} else if (m_enabled && !enabled) {
|
||||||
engine->dynamicsWorld->removeCollisionObject(m_ghost);
|
engine->dynamicsWorld->removeCollisionObject(m_ghost.get());
|
||||||
m_corona.size = glm::vec2(0.f, 0.f);
|
m_corona.size = glm::vec2(0.f, 0.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,8 +116,8 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
btPairCachingGhostObject* m_ghost = nullptr;
|
std::unique_ptr<btPairCachingGhostObject> m_ghost;
|
||||||
btSphereShape* m_shape = nullptr;
|
std::unique_ptr<btSphereShape> m_shape;
|
||||||
bool m_enabled = false;
|
bool m_enabled = false;
|
||||||
float m_enableTimer = 0.f;
|
float m_enableTimer = 0.f;
|
||||||
bool m_collected = false;
|
bool m_collected = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user