From 860cdb0aea22bb797ea4718765c3056f05df83ed Mon Sep 17 00:00:00 2001 From: melex750 Date: Wed, 3 Aug 2016 19:13:21 -0400 Subject: [PATCH] Fix calling multi-level inherited methods --- src/CBot/CBotClass.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/CBot/CBotClass.cpp b/src/CBot/CBotClass.cpp index 17e16517..98a0a6f3 100644 --- a/src/CBot/CBotClass.cpp +++ b/src/CBot/CBotClass.cpp @@ -333,7 +333,7 @@ CBotTypResult CBotClass::CompileMethode(const std::string& name, r = m_pMethod->CompileCall(name, ppParams, nIdent); if ( r.Eq(CBotErrUndefCall) && m_parent != nullptr ) - return m_parent->m_pMethod->CompileCall(name, ppParams, nIdent); + return m_parent->CompileMethode(name, pThis, ppParams, pStack, nIdent); return r; } @@ -354,9 +354,7 @@ bool CBotClass::ExecuteMethode(long& nIdent, if (m_parent != nullptr) { - ret = m_parent->m_pCalls->DoCall(name, pThis, ppParams, pResult, pStack, pToken); - if (ret >= 0) return ret; - ret = m_parent->m_pMethod->DoCall(nIdent, name, pThis, ppParams, pStack, pToken, m_parent); + ret = m_parent->ExecuteMethode(nIdent, name, pThis, ppParams, pResult, pStack, pToken); } return ret; }