1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
#include "pointer.h"
#include "entity.h"
Ntt_pointer::Ntt_pointer(): m_referenced(false), m_pointer(0)
{
}
Ntt_pointer::Ntt_pointer(Entity& ntt): m_pointer(&ntt), m_referenced(true)
{
}
Ntt_pointer::Ntt_pointer(const Ntt_pointer& cpy)
{
m_pointer = cpy.m_pointer;
m_referenced = cpy.m_referenced;
// DEBOUT("NTT_pointer::copyconstr()\n");
}
Ntt_pointer::~Ntt_pointer()
{
// DEBOUT("Calling Ntt_pointer::dtor()...\n");
unlink();
}
Entity* Ntt_pointer::get_pointer()
{
if(m_referenced==true)
return m_pointer;
return 0;
}
void Ntt_pointer::point_to(Entity& ntt)
{
m_pointer = &ntt;
m_referenced = true;
}
void Ntt_pointer::unlink()
{
m_pointer = 0;
m_referenced = false;
}
void Ntt_pointer::remove()
{
if( (m_pointer != 0) && m_referenced)
delete m_pointer;
else
unlink();
m_pointer = 0;
m_referenced = false;
}
/*
bool Ntt_pointer::is_referenced()
{
return m_referenced;
}
*/
/*
Entity* Ntt_pointer::operator->() const
{
if(m_referenced)
return m_pointer;
return 0;
} */
/*
Ntt_pointer::~Ntt_pointer()
{
if(m_referenced)
delete m_pointer;
}
*/
|