Ejemplo n.º 1
0
// Return the value, looking up any indirect ref.
void MHGenericObjectRef::GetValue(MHObjectRef &ref, MHEngine *engine) const
{
    if (m_fIsDirect) ref.Copy(m_ObjRef);
    else {
        MHUnion result;
        MHRoot *pBase = engine->FindObject(m_Indirect);
        pBase->GetVariableValue(result, engine);
        result.CheckType(MHUnion::U_ObjRef);
        ref.Copy(result.m_ObjRefVal);
    }
}
Ejemplo n.º 2
0
// Return the value, looking up any indirect ref.
void MHGenericObjectRef::GetValue(MHObjectRef &ref, MHEngine *engine) const
{
    if (m_fIsDirect)
    {
        ref.Copy(m_ObjRef);
    }
    else
    {
        // LVR - Hmm I don't think this is right. Should be: ref.Copy(m_Indirect);
        // But it's used in several places so workaround in Stream::MHActionGenericObjectRefFix
        MHUnion result;
        MHRoot *pBase = engine->FindObject(m_Indirect);
        pBase->GetVariableValue(result, engine);
        result.CheckType(MHUnion::U_ObjRef);
        ref.Copy(result.m_ObjRefVal);
    }
}
Ejemplo n.º 3
0
// Fix for MHActionGenericObjectRef
void MHActionGenericObjectRefFix::Perform(MHEngine *engine)
{
    MHObjectRef ref;
    if (m_RefObject.m_fIsDirect)
        m_RefObject.GetValue(ref, engine);
    else
        ref.Copy(*m_RefObject.GetReference());
    CallAction(engine, Target(engine), engine->FindObject(ref));
}