bool CBotExprRetVar::Execute(CBotStack* &pj) { CBotStack* pile = pj->AddStack(); CBotStack* pile1 = pile; CBotVar* pVar; if (pile1->GetState() == 0) { pVar = pj->GetVar(); pVar->Update(pj->GetUserPtr()); if (pVar->GetType(CBotVar::GetTypeMode::CLASS_AS_POINTER) == CBotTypNullPointer) { pile1->SetError(CBotErrNull, &m_token); return pj->Return(pile1); } if ( !m_next3->ExecuteVar(pVar, pile, &m_token, true, false) ) return false; if (pVar) pile1->SetCopyVar(pVar); else return pj->Return(pile1); pile1->IncState(); } pVar = pile1->GetVar(); if (pVar == nullptr) { return pj->Return(pile1); } if (pVar->IsUndefined()) { pile1->SetError(CBotErrNotInit, &m_token); return pj->Return(pile1); } return pj->Return(pile1); }