//
// Get best guess at name of userdata type
//
SString GetUserDataClassName ( void* ptr, lua_State* luaVM )
{
    // Try element
    if ( CElement* pElement = UserDataCast < CElement > ( (CElement*)NULL, ptr, NULL ) )
    {
        return pElement->GetTypeName ();
    }

    // Try xml node
    if ( CXMLNode* pXMLNode = UserDataCast < CXMLNode > ( (CXMLNode*)NULL, ptr, NULL ) )
    {
        return GetClassTypeName ( pXMLNode );
    }

    // Try timer
    if ( CLuaTimer* pLuaTimer = UserDataCast < CLuaTimer > ( (CLuaTimer*)NULL, ptr, luaVM ) )
    {
        return GetClassTypeName ( pLuaTimer );
    }

    // Try resource
    if ( CResource* pResource = UserDataCast < CResource > ( (CResource*)NULL, ptr, NULL ) )
    {
        return GetClassTypeName ( pResource );
    }

    return "";
}
Ejemplo n.º 2
0
//
// Get best guess at name of userdata type
//
SString GetUserDataClassName ( void* ptr, lua_State* luaVM )
{
    // Try element
    if ( CClientEntity* pClientElement = UserDataCast < CClientEntity > ( (CClientEntity*)NULL, ptr, NULL ) )
    {
        // Try gui element
        if ( CClientGUIElement* pGuiElement = DynamicCast < CClientGUIElement > ( pClientElement ) )
        {
            return EnumToString ( pGuiElement->GetCGUIElement ()->GetType () );
        }
        return pClientElement->GetTypeName ();
    }

    // Try xml node
    if ( CXMLNode* pXMLNode = UserDataCast < CXMLNode > ( (CXMLNode*)NULL, ptr, NULL ) )
    {
        return GetClassTypeName ( pXMLNode );
    }

    // Try timer
    if ( CLuaTimer* pLuaTimer = UserDataCast < CLuaTimer > ( (CLuaTimer*)NULL, ptr, luaVM ) )
    {
        return GetClassTypeName ( pLuaTimer );
    }

    // Try resource
    if ( CResource* pResource = UserDataCast < CResource > ( (CResource*)NULL, ptr, NULL ) )
    {
        return GetClassTypeName ( pResource );
    }

    return "";
}
Ejemplo n.º 3
0
//
// Get best guess at name of userdata type
//
SString GetUserDataClassName(void* ptr, lua_State* luaVM, bool bFindElementType)
{
    // Try element
    if (CClientEntity* pClientElement = UserDataCast<CClientEntity>((CClientEntity*)NULL, ptr, NULL))
    {
        if (bFindElementType)
            // Try gui element first
            if (CClientGUIElement* pGuiElement = DynamicCast<CClientGUIElement>(pClientElement))
                return EnumToString(pGuiElement->GetCGUIElement()->GetType());
            else
                return pClientElement->GetTypeName();
        else
            return GetClassTypeName(pClientElement);
    }

    if (auto* pVar = UserDataCast<CResource>((CResource*)NULL, ptr, luaVM))            // Try resource
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast<CXMLNode>((CXMLNode*)NULL, ptr, luaVM))            // Try xml node
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast<CLuaTimer>((CLuaTimer*)NULL, ptr, luaVM))            // Try timer
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast<CLuaVector2D>((CLuaVector2D*)NULL, ptr, luaVM))            // Try 2D Vector
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast<CLuaVector3D>((CLuaVector3D*)NULL, ptr, luaVM))            // Try 3D Vector
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast<CLuaVector4D>((CLuaVector4D*)NULL, ptr, luaVM))
        return GetClassTypeName(pVar);

    return "";
}
bool
CWin32WindowContext::Initialize( const GUI::CString& title                ,
                                     const GUI::CVideoSettings& videoSettings )
{GUCEF_TRACE;

    // Do not initialize twice
    Shutdown();

    if ( !CORE::CMsWin32Window::RegisterWindowClass( GetClassTypeName() ) )
    {
        GUCEF_ERROR_LOG( CORE::LOGLEVEL_NORMAL, "Win32WindowContext: Could not register window class" );
        return false;
    }

    // First create a regular Win32 window
    if ( m_window.WindowCreate( GetClassTypeName()                          ,
                                title                                       ,
                                0                                           ,
                                0                                           ,
                                videoSettings.GetResolutionWidthInPixels()  ,
                                videoSettings.GetResolutionHeightInPixels() ) )
    {
        // Display the new window
        m_window.Show();
        m_window.SendToForegound();
        m_window.GrabFocus();

        // Grab the main app pulse generator and set the update interval for the context to the desired refresh rate
        CORE::CPulseGenerator& pulseGenerator = CORE::CCoreGlobal::Instance()->GetPulseGenerator(); 
        pulseGenerator.RequestPeriodicPulses( this, 1000 / videoSettings.GetFrequency() );
        SubscribeTo( &pulseGenerator );

        GUCEF_SYSTEM_LOG( CORE::LOGLEVEL_NORMAL, "Win32WindowContext: Succesfully created Win32 window" );
        return true;
    }
    return false;
}
//
// Get best guess at name of userdata type
//
SString GetUserDataClassName ( void* ptr, lua_State* luaVM, bool bFindElementType )
{
    if (CElement* pVar = UserDataCast < CElement >((CElement*)NULL, ptr, luaVM)) // Try element
        return bFindElementType ? pVar->GetTypeName() : GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast < CResource >((CResource*)NULL, ptr, luaVM)) // Try resource
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast < CXMLNode >((CXMLNode*)NULL, ptr, luaVM)) // Try xml node
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast < CLuaTimer >((CLuaTimer*)NULL, ptr, luaVM)) // Try timer
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast < CAccount >((CAccount*)NULL, ptr, luaVM))
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast < CDbJobData >((CDbJobData*)NULL, ptr, luaVM))
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast < CAccessControlList >((CAccessControlList*)NULL, ptr, luaVM))
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast < CAccessControlListGroup >((CAccessControlListGroup*)NULL, ptr, luaVM))
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast < CCustomWeapon >((CCustomWeapon*)NULL, ptr, luaVM))
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast < CBan >((CBan*)NULL, ptr, luaVM))
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast < CTextItem >((CTextItem*)NULL, ptr, luaVM)) 
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast < CTextDisplay >((CTextDisplay*)NULL, ptr, luaVM))
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast < CLuaVector2D >((CLuaVector2D*)NULL, ptr, luaVM))
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast < CLuaVector3D >((CLuaVector3D*)NULL, ptr, luaVM))
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast < CLuaVector4D >((CLuaVector4D*)NULL, ptr, luaVM))
        return GetClassTypeName(pVar);
    if (auto* pVar = UserDataCast < CLuaMatrix >((CLuaMatrix*)NULL, ptr, luaVM))
        return GetClassTypeName(pVar);

    return "";
}