с++ HL2(source) как получить объект "противник" из дочернего класса?

Все здравствуйте. Код для танка, игра HL2, движек source. Мне нужно получить противника в функции поиска противников, как-то записать это значение, что бы потом получить это значение из любой дочерней функции. Как это сделать? Код(основное):

            /*Класс ТЕЛО*/
class CNPC_t80u : public CAI_BaseNPC        
{
    DECLARE_CLASS(CNPC_t80u, CAI_BaseNPC);  
    DECLARE_DATADESC();
public:
    CNPC_t80u();
    ~CNPC_t80u();
    Class_T         Classify(void) { return CLASS_MILITARY; };
    void            Precache();
    void            Spawn();
    void            Activate();

    void            CameraVision();
    void            TowerRotation(CBaseEntity *pEnemy);
    void            BarrelMovement();

    void            SetVictime(CBaseEntity *pEnemy);
    CBaseEntity*    GetVictim(void) {return m_hVictim;}

 private:
    EHANDLE            m_hVictim;
    Vector             m_vecLastTargetPosition;

};

//---------------------------------------------
    CNPC_t80u::CNPC_t80u() {}
    CNPC_t80u::~CNPC_t80u() {}
//---------------------------------------------

    void CNPC_t80u::Spawn() {
    BaseClass::Spawn();
    Precache();
    SetModel(MODEL_T80U_BODY);
    SetHullType(HULL_164_378_134);  
    SetNavType(NAV_GROUND);
    m_NPCState = NPC_STATE_NONE;
    SetClassname("t80u_Body");
    m_iHealth = m_iMaxHealth = sk_t80u_health.GetInt();
    SetSolid(SOLID_BBOX);
    AddSolidFlags(FSOLID_NOT_STANDABLE);
    SetBloodColor(DONT_BLEED);

                   /*Подкласс БАШНЯ*/
    CBaseEntity *pTower = CreateEntityByName("prop_dynamic_override");
    if (pTower) {
        Vector TowerPos; QAngle TowerAngle;
        GetAttachment(ATTACHMENT_TOWER, TowerPos, TowerAngle);
        pTower->KeyValue("model", MODEL_T80U_TOWER);
        pTower->SetClassname("t80u_Tower");
        pTower->SetAbsOrigin(TowerPos);
        pTower->SetParent(this);
        DispatchSpawn(pTower);
        pTower->Activate();
        pTower->SetThink(&CNPC_t80u::CameraVision);   // Функция Сканер(работает с Башни)
        pTower->SetNextThink(gpGlobals->curtime + 0.1);
               
                       /*Подкласс ПУШКА*/
        CBaseAnimating *pBarrel = (CBaseAnimating *)CreateEntityByName("prop_dynamic_override");
        if (pBarrel) {
            Vector  BarrelPos; QAngle   BarrelAngle;
            GetAttachment(ATTACHMENT_BARREL, BarrelPos, BarrelAngle);
            pBarrel->KeyValue("model", MODEL_T80U_BARREL);
            pBarrel->SetClassname("t80u_Barrel");
            //pBarrel->SetOwnerEntity(this);
            pBarrel->SetAbsOrigin(BarrelPos);
            pBarrel->SetParent(pTower);
            DispatchSpawn(pBarrel);
            pBarrel->Activate();
            pBarrel->SetName(GetEntityName());
            pBarrel->SetThink(&CNPC_t80u::BarrelMovement);   // Функция Движек пушки.
            pBarrel->SetNextThink(gpGlobals->curtime + 0.1);
        }
        m_fBarrelNextShot = gpGlobals->curtime;
        m_flTimeNextPing = gpGlobals->curtime;
        NPCInit();
    }
}

void CNPC_t80u::Activate() {
    BaseClass::Activate();
}

Мне нужно что бы из дочерней функции BarrelMovement я мог получить значение найденного в функции CameraVision противника.

На сейчас, противник находится, башня поворачивается к противнику, всё отлично(значение найденного противника я передаю по ссылке из функции CameraVision в функцию TowerRotation, так как поиск противника работает с башни).

Но так же, по ссылке, передать нужное значение в функцию управления пушкой(BarrelMovement) я не могу, как ни пытаюсь - не видит эта функция значений из родительских классов вообще.


Ответы (0 шт):