Battle Pass System Source 

nice share :) cndev so nice. next share full source hahaha :) waiting haha joke
 
do you know how to fix this error
1>LINK : fatal error LNK1104: cannot open file 'libboost_filesystem-vc80-mt-1_34_1.lib'
when compiling Editor_BattlePass?
solved: just download libboost_filesystem-vc80-mt-1_34_1.lib and put it in Tik\Library folder
 
Last edited:
ChaBattlePass , image, NULL
ChaBattlePassEXP, int, NOT NULL, default value 0
ChaBattlePassLevel, int, NOT NULL, default value 0
ChaBattlePassPremium, int, NOT NULL, default value 0
1741708569786 - Battle Pass System - RaGEZONE Forums
 
do you know how to fix this error
1>LINK : fatal error LNK1104: cannot open file 'libboost_filesystem-vc80-mt-1_34_1.lib'
when compiling Editor_BattlePass?
solved: just download libboost_filesystem-vc80-mt-1_34_1.lib and put it in Tik\Library folder
her bro
 

Attachments

improved save button code
✅ No need to select a folder, save to game folder by default.
✅ If the folder has a .bp file, the dialog box displays a list of available files.
✅ If the folder does not have a .bp file, the dialog box asks for a new file name.
✅ If you enter a name without the .bp extension, the code will automatically add it.
vs 2022
C++:
void CEditorBattlePassDlg::OnBnClickedButtonFileSave()
{
CString initialDir = GLOGIC::GetPath();

CString searchPattern;
searchPattern.Format("%s\\*.bp", initialDir);
WIN32_FIND_DATA findFileData;
HANDLE hFind = FindFirstFile(searchPattern, &findFileData);
bool hasBpFile = (hFind != INVALID_HANDLE_VALUE);
if (hasBpFile) FindClose(hFind); // Đóng handle

CString szFilter = "BattlePass Setting File (*.bp)|*.bp|";
CString defaultFileName = hasBpFile ? findFileData.cFileName : "BattlePass.bp";

CFileDialog fileDlg(FALSE, ".bp", defaultFileName,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST,
szFilter, this);

fileDlg.m_ofn.lpstrInitialDir = initialDir;

if (fileDlg.DoModal() == IDOK)
{
CString fullPath = fileDlg.GetPathName();

if (fullPath.Right(3).CompareNoCase(".bp") != 0)
{
fullPath += ".bp";
}

HRESULT hr = GLBattlePass::GetInstance().SaveFile(fullPath.GetString());
if (FAILED(hr))
{
CDebugSet::MsgBox(GetSafeHwnd(), "Failure to Save File");
return;
}
}
}

Vs 2003
C++:
void CEditorBattlePassDlg::OnBnClickedButtonFileSave()
{
CString initialDir = GLOGIC::GetPath();

CString searchPattern = initialDir + "\\*.bp";
WIN32_FIND_DATA findFileData;
HANDLE hFind = FindFirstFile(searchPattern, &findFileData);
BOOL hasBpFile = (hFind != INVALID_HANDLE_VALUE);
if (hasBpFile) FindClose(hFind);

CString szFilter = "BattlePass Setting File (*.bp)|*.bp|";
CString defaultFileName = hasBpFile ? findFileData.cFileName : "NewBattlePass.bp";

CFileDialog fileDlg(FALSE, "bp", defaultFileName,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST,
szFilter, this);

fileDlg.m_ofn.lpstrInitialDir = initialDir.GetBuffer();

if (fileDlg.DoModal() == IDOK)
{
CString fullPath = fileDlg.GetPathName();

if (fullPath.Right(3).CompareNoCase("bp") != 0)
{
fullPath += ".bp";
}

HRESULT hr = GLBattlePass::GetInstance().SaveFile(fullPath.GetString());
if (FAILED(hr))
{
CDebugSet::MsgBox(GetSafeHwnd(), "Failure to Save File");
return;
}
}
}
 
==============
vs 2022
C++:
C++:
void CEditorBattlePassDlg::OnBnClickedButtonFileSave() {
    CString initialDir = GLOGIC::GetPath();

    CString searchPattern;
    searchPattern.Format("%s\\*.bp", initialDir);
    WIN32_FIND_DATA findFileData;
    HANDLE hFind = FindFirstFile(searchPattern, & findFileData);
    bool hasBpFile = (hFind != INVALID_HANDLE_VALUE);
    if (hasBpFile) FindClose(hFind); // Đóng handle

    CString szFilter = "BattlePass Setting File (*.bp)|*.bp|";
    CString defaultFileName = hasBpFile ? findFileData.cFileName : "BattlePass.bp";

    CFileDialog fileDlg(FALSE, ".bp", defaultFileName,
        OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST,
        szFilter, this);

    fileDlg.m_ofn.lpstrInitialDir = initialDir;

    if (fileDlg.DoModal() == IDOK) {
        CString fullPath = fileDlg.GetPathName();

        if (fullPath.Right(3).CompareNoCase(".bp") != 0) {
            fullPath += ".bp";
        }

        HRESULT hr = GLBattlePass::GetInstance().SaveFile(fullPath.GetString());
        if (FAILED(hr)) {
            CDebugSet::MsgBox(GetSafeHwnd(), "Failure to Save File");
            return;
        }
    }
}
==============
Vs 2003
C++:
C++:
void CEditorBattlePassDlg::OnBnClickedButtonFileSave() {
    CString initialDir = GLOGIC::GetPath();

    CString searchPattern = initialDir + "\\*.bp";
    WIN32_FIND_DATA findFileData;
    HANDLE hFind = FindFirstFile(searchPattern, & findFileData);
    BOOL hasBpFile = (hFind != INVALID_HANDLE_VALUE);
    if (hasBpFile) FindClose(hFind);

    CString szFilter = "BattlePass Setting File (*.bp)|*.bp|";
    CString defaultFileName = hasBpFile ? findFileData.cFileName : "NewBattlePass.bp";

    CFileDialog fileDlg(FALSE, "bp", defaultFileName,
        OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST,
        szFilter, this);

    fileDlg.m_ofn.lpstrInitialDir = initialDir.GetBuffer();

    if (fileDlg.DoModal() == IDOK) {
        CString fullPath = fileDlg.GetPathName();

        if (fullPath.Right(3).CompareNoCase("bp") != 0) {
            fullPath += ".bp";
        }

        HRESULT hr = GLBattlePass::GetInstance().SaveFile(fullPath.GetString());
        if (FAILED(hr)) {
            CDebugSet::MsgBox(GetSafeHwnd(), "Failure to Save File");
            return;
        }
    }
}
 
Anyone encounter this how to fix this thanks in advance

1741863867592 - Battle Pass System - RaGEZONE Forums
 
Anyone have SetItemImageCheck and SetItemImageNone?
 


Anyone have SetItemImageCheck and SetItemImageNone?

ItemImage.cpp
C++:
#include "StdAfx.h"
#include "ItemImage.h"
#include "GLGaeaClient.h"
#include "GLItemMan.h"
#include "SkillFunc.h"
#include "./BasicProgressBar.h"
#include "./BasicTextBox.h"
#include "../Lib_Engine/DxCommon/DxFontMan.h"
#include "d3dfont.h"
#include "UITextControl.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

//    ¸®Â÷¡ Ä÷¯
const DWORD    RECHARGECOLOR = D3DCOLOR_ARGB(150,0,0,0);

CItemImage::CItemImage ()
    : m_pItemImageBack(NULL)
    , m_pItemImage ( NULL )
    , m_pItemImageOverlaped( NULL )
    , m_pOverImage(NULL)
    , m_pd3dDevice ( NULL )
    , m_sICONINDEXBACK ( NATIVEID_NULL () )
    , m_sICONINDEX ( NATIVEID_NULL () )
    , m_TotElapsedTime(0.0f)
    , m_bItemUsed(false)
    , m_bItemEnd(false)
    , m_bTwinkle(true)
    , m_pItemProcess( NULL )
    , m_sNativeID(false)
    , m_sNativeID_Overlaped(false)
    , m_pNumberText( NULL )
    , m_pTextBoxUpLeft( NULL )
    , m_pTextBoxUpRight( NULL )
    , m_pTextBoxDownLeft( NULL )
    , m_pTextBoxDownRight( NULL )
    , m_pItemImageCheck ( NULL )    /*6-2-24, collection system - CNDev*/
    , m_pItemImageFind ( NULL )        /*6-2-24, collection system - CNDev*/
    , m_pTextItemUpgrade( NULL )
{
}

CItemImage::~CItemImage ()
{
}

HRESULT CItemImage::InitDeviceObjects ( LPDIRECT3DDEVICEQ pd3dDevice )
{
    HRESULT hr = S_OK;
    hr = CUIGroup::InitDeviceObjects ( pd3dDevice );
    if ( FAILED ( hr ) ) return hr;

    m_pd3dDevice = pd3dDevice;

    return S_OK;
}

void    CItemImage::CreateSubControl (const std::string& overImageKey ,DWORD color, const char* szControlKeyword)
{
    m_pItemImageBack = new CUIControl;
    m_pItemImageBack->CreateSub ( this, szControlKeyword );   
    m_pItemImageBack->SetUseRender ( TRUE );
    m_pItemImageBack->SetVisibleSingle ( FALSE );
    RegisterControl ( m_pItemImageBack );

    m_pItemImage = new CUIControl();
    m_pItemImage->CreateSub ( this, szControlKeyword, UI_FLAG_DEFAULT, ITEM_IMAGE_SLOT );   
    m_pItemImage->SetUseRender ( TRUE );
    m_pItemImage->SetVisibleSingle ( FALSE );
    RegisterControl ( m_pItemImage );

    m_pItemImageOverlaped = new CUIControl();
    m_pItemImageOverlaped->CreateSub ( this, szControlKeyword, UI_FLAG_DEFAULT, ITEM_IMAGE_OVER );   
    m_pItemImageOverlaped->SetUseRender ( TRUE );
    m_pItemImageOverlaped->SetVisibleSingle ( FALSE );
    RegisterControl ( m_pItemImageOverlaped );

    if (!overImageKey.empty())
    {
        m_pOverImage = new CUIControl;
        m_pOverImage->CreateSub( this, overImageKey.c_str() );   
        m_pOverImage->SetVisibleSingle(FALSE);
        m_pOverImage->SetDiffuse( color );
        RegisterControl(m_pOverImage);
    }

    CBasicProgressBar* pItemProcess = new CBasicProgressBar;
    pItemProcess->CreateSub ( this, "ITEM_IMAGE_PROGRESS" );
    pItemProcess->CreateOverImage ( "ITEM_IMAGE_PROGRESS_OVER" );
    pItemProcess->SetType ( CBasicProgressBar::VERTICAL );
    pItemProcess->SetOverImageUseRender ( TRUE );
    pItemProcess->SetOverImageDiffuse ( 0 );
    pItemProcess->SetPercent( 0 );
    pItemProcess->SetControlNameEx ( "ÇÁ·Î±×·¡½º¹Ù" );   
    pItemProcess->SetVisibleSingle( FALSE );
    RegisterControl ( pItemProcess );
    m_pItemProcess = pItemProcess;

    CD3DFontPar* pFont8 = DxFontMan::GetInstance().LoadDxFont( _DEFAULT_FONT, 8, D3DFONT_SHADOW | D3DFONT_ASCII );

    CBasicTextBox* pTextBox = new CBasicTextBox;
    pTextBox->CreateSub ( this, "ITEM_NUMBER0" );
    pTextBox->SetFont ( pFont8 );
    pTextBox->SetTextAlign ( TEXT_ALIGN_RIGHT );
    RegisterControl ( pTextBox );

    m_pNumberText = pTextBox;

    if( m_pNumberText ) m_pNumberText->SetVisibleSingle(FALSE);

    /*6-2-24, collection system - CNDev*/
    m_pTextItemUpgrade = new CBasicTextBox;
    m_pTextItemUpgrade->CreateSub ( this, "ITEM_IMAGE_UPGRADE" );
    m_pTextItemUpgrade->SetFont ( pFont8 );
    m_pTextItemUpgrade->SetTextAlign ( TEXT_ALIGN_RIGHT );
    RegisterControl ( m_pTextItemUpgrade );
    m_pTextItemUpgrade->SetVisibleSingle ( FALSE );

    m_pItemImageCheck = new CUIControl();
    m_pItemImageCheck->CreateSub ( this, "ITEM_IMAGE_CHECK", UI_FLAG_DEFAULT );   
    m_pItemImageCheck->SetVisibleSingle ( FALSE );
    RegisterControl ( m_pItemImageCheck );

    m_pItemImageFind = new CUIControl();
    m_pItemImageFind->CreateSub ( this, "ITEM_IMAGE_FIND", UI_FLAG_DEFAULT );   
    m_pItemImageFind->SetVisibleSingle ( FALSE );
    RegisterControl ( m_pItemImageFind );

}

void CItemImage::SetNumber ( int nNumber, int nMaxNumber )
{
    CString strNumber;

    if( nNumber > 1 )
    {       
        strNumber.Format ( "%d", nNumber );
        DWORD dwColor = NS_UITEXTCOLOR::GREENYELLOW;
        //if ( nNumber == nMaxNumber ) dwColor = NS_UITEXTCOLOR::ORANGE;
        m_pNumberText->SetOneLineText ( strNumber, dwColor );
        m_pNumberText->SetVisibleSingle ( TRUE );

        return;
    }   

    ResetNumber();
}

void CItemImage::ResetNumber()
{
    m_pNumberText->ClearText ();
    m_pNumberText->SetVisibleSingle ( FALSE );
}


void    CItemImage::CreateTextBoxUpLeft ()
{
    CD3DFontPar* pFont = DxFontMan::GetInstance().LoadDxFont ( _DEFAULT_FONT, 8, _DEFAULT_FONT_SHADOW_FLAG );

    m_pTextBoxUpLeft = new CBasicTextBox;
    m_pTextBoxUpLeft->CreateSub ( this, "ITEM_IMAGE_TEXT_UP_LEFT" );
    m_pTextBoxUpLeft->SetFont ( pFont );
    m_pTextBoxUpLeft->SetTextAlign ( TEXT_ALIGN_LEFT );
    RegisterControl ( m_pTextBoxUpLeft );
}

void    CItemImage::CreateTextBoxUpRight ()
{
    CD3DFontPar* pFont = DxFontMan::GetInstance().LoadDxFont ( _DEFAULT_FONT, 8, _DEFAULT_FONT_SHADOW_FLAG );

    m_pTextBoxUpRight = new CBasicTextBox;
    m_pTextBoxUpRight->CreateSub ( this, "ITEM_IMAGE_TEXT_UP_RIGHT" );
    m_pTextBoxUpRight->SetFont ( pFont );
    m_pTextBoxUpRight->SetTextAlign ( TEXT_ALIGN_RIGHT );
    RegisterControl ( m_pTextBoxUpRight );
}

void    CItemImage::CreateTextBoxDownLeft ()
{
    CD3DFontPar* pFont = DxFontMan::GetInstance().LoadDxFont ( _DEFAULT_FONT, 8, _DEFAULT_FONT_SHADOW_FLAG );

    m_pTextBoxDownLeft = new CBasicTextBox;
    m_pTextBoxDownLeft->CreateSub ( this, "ITEM_IMAGE_TEXT_DOWN_LEFT" );
    m_pTextBoxDownLeft->SetFont ( pFont );
    m_pTextBoxDownLeft->SetTextAlign ( TEXT_ALIGN_LEFT );
    RegisterControl ( m_pTextBoxDownLeft );
}

void    CItemImage::CreateTextBoxDownRight ()
{
    CD3DFontPar* pFont = DxFontMan::GetInstance().LoadDxFont ( _DEFAULT_FONT, 8, _DEFAULT_FONT_SHADOW_FLAG );

    m_pTextBoxDownRight = new CBasicTextBox;
    m_pTextBoxDownRight->CreateSub ( this, "ITEM_IMAGE_TEXT_DOWN_RIGHT" );
    m_pTextBoxDownRight->SetFont ( pFont );
    m_pTextBoxDownRight->SetTextAlign ( TEXT_ALIGN_RIGHT );
    RegisterControl ( m_pTextBoxDownRight );
}


void CItemImage::Update( int x, int y, BYTE LB, BYTE MB, BYTE RB, int nScroll, float fElapsedTime, BOOL bFirstControl )
{
    CUIGroup::Update ( x, y, LB, MB, RB, nScroll, fElapsedTime, bFirstControl );

    if( !m_pItemImage->GetTexture() )
        m_pItemImage->InitDeviceObjects ( m_pd3dDevice );

    if( !m_pItemImageOverlaped->GetTexture() )
        m_pItemImageOverlaped->InitDeviceObjects ( m_pd3dDevice );

    if( m_bItemUsed && m_bItemEnd )
    {
        m_TotElapsedTime += fElapsedTime;

        if( m_TotElapsedTime < 0.3f )        m_pItemProcess->SetPercent(0);
        else if( m_TotElapsedTime < 0.6f )    m_pItemProcess->SetPercent(1);
        else if( m_TotElapsedTime < 0.9f )    m_pItemProcess->SetPercent(0);
        else if( m_TotElapsedTime < 1.2f )    m_pItemProcess->SetPercent(1);
        else
        {
            m_pItemProcess->SetPercent(0);
            m_TotElapsedTime = 0.0f;
            m_bItemEnd = false;
            m_bItemUsed = false;
        }
    }

    //    ÄðŸÀÓ Ç¥½Ã
    if ( !m_pItemProcess )
    {
        GASSERT ( 0 && "ÇÁ·Î±×·¡½º¹Ù°¡ ¸¸µé¾îÁöÁö ¾Ê¾Ò½À´Ï´Ù." );
        return ;
    }

    SITEM* pItem = GLItemMan::GetInstance().GetItem( m_sNativeID );
    if ( !pItem )    return ;

    if ( !GLGaeaClient::GetInstance().GetCharacter()->IsCoolTime( m_sNativeID ) )
    {
        m_bItemEnd = true;
        return;
    }   

    ITEM_COOLTIME* pItemCoolTime = GLGaeaClient::GetInstance().GetCharacter()->GetCoolTime( m_sNativeID );
    if ( !pItemCoolTime )
    {
        m_bItemEnd = true;
        return;
    }

    m_pItemProcess->SetVisibleSingle( TRUE );
    m_pItemProcess->SetOverImageDiffuse ( RECHARGECOLOR );

    m_bItemEnd = false;

    __time64_t tCurTime = GLGaeaClient::GetInstance().GetCurrentTime().GetTime();
    __time64_t tUseTime = pItemCoolTime->tUseTime;
    __time64_t tCoolTime = pItemCoolTime->tCoolTime;

    float fCoolTime = tCoolTime - tUseTime;
    float fCurTime = fCoolTime - ( tCurTime - tUseTime );
    
    if ( fCoolTime == 0.0f )
    {
        fCoolTime = 1.0f;
    }

    const float fPercent = fCurTime / fCoolTime;
    m_pItemProcess->SetPercent ( fPercent );
    m_bItemUsed = true;
}

const bool    CItemImage::SetItem ( const SITEMCUSTOM& itemCustom )
{
    // ¹Ú½º Æ÷ÀåǰÀ̶ó¸é Æ÷ÀåÁöÀ̹ÌÁö¸¦ Æ÷ÀåµÈ¾ÆÀÌÅÛ À̹ÌÁöÀ§¿¡ µ¡¾º¿ì´Â ¹æ½ÄÀ¸·Î Ç¥Çö;
    if ( itemCustom.IsBoxWrapped() )
    {
       SITEM* pItemData = GLItemMan::GetInstance().GetItem ( itemCustom.nidDISGUISE );
       //SITEM* pItemData = GLItemMan::GetInstance().GetItem ( itemCustom.GetBoxWrappedItemID() );
       if ( pItemData == NULL )
            return false;

        SITEM* pBoxWrapperItemData = GLItemMan::GetInstance().GetItem ( itemCustom.GetRealNativeID() );
        //SITEM* pBoxWrapperItemData = GLItemMan::GetInstance().GetItem ( itemCustom.sNativeID );
        if ( pBoxWrapperItemData == NULL )
            return false;

        return SetItem(pItemData->sBasicOp.sICONID, pItemData->GetInventoryFile(), pItemData->sBasicOp.sNativeID,
                pBoxWrapperItemData->sBasicOp.sICONID, pBoxWrapperItemData->GetInventoryFile(), pBoxWrapperItemData->sBasicOp.sNativeID);
    }
    return SetItem(itemCustom.GetNativeID());
}

const bool CItemImage::SetItem( SNATIVEID sNativeID )
{
    if( NATIVEID_NULL() == sNativeID )
    {
        ResetItem();
        return false;
    }

    SITEM* pItemData = GLItemMan::GetInstance().GetItem ( sNativeID );
    if ( pItemData == NULL )
        return false;

    return SetItem( pItemData->sBasicOp.sICONID, pItemData->GetInventoryFile(), pItemData->sBasicOp.sNativeID );
}

const bool CItemImage::SetItem ( SNATIVEID sICONINDEX, const char* szTexture, SNATIVEID sNativeID)
{   
    if ( m_pItemImage == NULL )
        return false;

    //    NOTE
    //        ÀÌÀü ÇÁ·¹ÀÓ°ú ¾ÆÀÌÄÜ ID°¡ °°°í,
    //        ÅØ½ºÃİ¡ µ¿ÀÏÇÏ´Ù¸é °°Àº À̹ÌÁö À̹ǷÎ,
    //        ´õ ÀÌ»ó ÀÛ¾÷À» ¼öÇàÇÒ Çʿ䰡 ¾ø´Ù.

    if( m_sNativeID == sNativeID && sNativeID != NATIVEID_NULL() )
        return false;

    // ¿©±â¼ ¸®ÅÏÇϸé sNativeID°¡ Àû¿ë¾ÈµÈ´Ù
//     if ( (sICONINDEX == m_sICONINDEX) && (szTexture == m_pItemImage->GetTextureName ()) )
//         return ;

    ResetItem ();
    SetItemProcess( sNativeID );

    m_pItemImage->SetTexturePos ( NS_SKILL::GetIconTexurePos ( sICONINDEX ) );
    m_pItemImage->SetTextureName ( szTexture );   

    //        if ( m_pd3dDevice )
    {   
        //            m_pItemImage->InitDeviceObjects ( m_pd3dDevice );
        m_pItemImage->SetVisibleSingle ( TRUE );

        m_sICONINDEX = sICONINDEX;
        m_strTextureName = szTexture;
    }

    if ( m_pd3dDevice )
        m_pItemImage->InitDeviceObjects ( m_pd3dDevice );

    return true;
}

const bool CItemImage::SetItem ( SNATIVEID sICONINDEX, const char* szTexture, SNATIVEID sNativeID, SNATIVEID sICONINDEX_Overlaped, const char* szTexture_Overlaped, SNATIVEID sNativeID_Overlaped )
{
    if ( m_pItemImage == NULL )
        return false;

    if ( m_pItemImageOverlaped == NULL )
        return false;

    //    NOTE
    //        ÀÌÀü ÇÁ·¹ÀÓ°ú ¾ÆÀÌÄÜ ID°¡ °°°í,
    //        ÅØ½ºÃİ¡ µ¿ÀÏÇÏ´Ù¸é °°Àº À̹ÌÁö À̹ǷÎ,
    //        ´õ ÀÌ»ó ÀÛ¾÷À» ¼öÇàÇÒ Çʿ䰡 ¾ø´Ù.

    if( m_sNativeID == sNativeID && sNativeID != NATIVEID_NULL() )
        return false;

    // ¿©±â¼ ¸®ÅÏÇÏ¸é Æ÷ÀåµÈ ¾ÆÀÌÅÛ³¢¸® ±³È¯½Ã À̹ÌÁö°¡ º¯°æµÇÁö ¾Ê´Â´Ù;
    //if( m_sNativeID_Overlaped == sNativeID_Overlaped && sNativeID_Overlaped != NATIVEID_NULL() )
    //    return false;

    // ¿©±â¼ ¸®ÅÏÇϸé sNativeID°¡ Àû¿ë¾ÈµÈ´Ù
    //     if ( (sICONINDEX == m_sICONINDEX) && (szTexture == m_pItemImage->GetTextureName ()) )
    //         return ;

    ResetItem ();
    SetItemProcess( sNativeID );
    
    // ³»¿ë¹° À̹ÌÁö
    {
        m_pItemImage->SetTexturePos ( NS_SKILL::GetIconTexurePos ( sICONINDEX ) );
        m_pItemImage->SetTextureName ( szTexture );   

        //        if ( m_pd3dDevice )
        {   
            //            m_pItemImage->InitDeviceObjects ( m_pd3dDevice );
            m_pItemImage->SetVisibleSingle ( TRUE );

            m_sICONINDEX = sICONINDEX;
            m_strTextureName = szTexture;
        }

        if ( m_pd3dDevice )
            m_pItemImage->InitDeviceObjects ( m_pd3dDevice );
    }

    // Æ÷ÀåÁö À̹ÌÁö µ¡¾º¿ò;
    {
        m_sNativeID_Overlaped = sNativeID_Overlaped;

        m_pItemImageOverlaped->SetTexturePos ( NS_SKILL::GetIconTexurePos ( sICONINDEX_Overlaped ) );
        m_pItemImageOverlaped->SetTextureName ( szTexture_Overlaped );

        //        if ( m_pd3dDevice )
        {   
            //            m_pItemImage->InitDeviceObjects ( m_pd3dDevice );
            m_pItemImageOverlaped->SetVisibleSingle ( TRUE );
        }

        if ( m_pd3dDevice )
            m_pItemImageOverlaped->InitDeviceObjects ( m_pd3dDevice );
    }

    return true;
}

void CItemImage::SetSkill(SNATIVEID sICONINDEX, const char* szTexture, SNATIVEID sNativeID)
{
    if (!m_pItemImage)    return;

    //    NOTE
    //        ÀÌÀü ÇÁ·¹ÀÓ°ú ¾ÆÀÌÄÜ ID°¡ °°°í,
    //        ÅØ½ºÃİ¡ µ¿ÀÏÇÏ´Ù¸é °°Àº À̹ÌÁö À̹ǷÎ,
    //        ´õ ÀÌ»ó ÀÛ¾÷À» ¼öÇàÇÒ Çʿ䰡 ¾ø´Ù.

    if (m_sNativeID == sNativeID && sNativeID != NATIVEID_NULL())    return;

    if ((sICONINDEX == m_sICONINDEX) && (szTexture == m_pItemImage->GetTextureName()))    return;


    ResetItem();
    SetItemProcess(sNativeID);

    if (m_pItemImage)
    {
        m_pItemImage->SetTexturePos(NS_SKILL::GetIconTexurePos(sICONINDEX));
        m_pItemImage->SetTextureName(szTexture);

        if (m_pd3dDevice)
        {
            m_pItemImage->InitDeviceObjects(m_pd3dDevice);
            m_pItemImage->SetVisibleSingle(TRUE);

            m_sICONINDEX = sICONINDEX;
            m_strTextureName = szTexture;
        }
    }
}

void CItemImage::SetBackItem( SNATIVEID sICONINDEX, const char* szTexture )
{   
    if ( m_pItemImageBack )
    {
        if ( (sICONINDEX == m_sICONINDEXBACK) && (szTexture == m_pItemImageBack->GetTextureName ()) )    return ;

        m_pItemImageBack->SetTexturePos ( NS_SKILL::GetIconTexurePos ( sICONINDEX ) );
        m_pItemImageBack->SetTextureName ( szTexture );   

        if ( m_pd3dDevice )
        {   
            m_sICONINDEXBACK = sICONINDEX;

            m_pItemImageBack->InitDeviceObjects ( m_pd3dDevice );
            m_pItemImageBack->SetVisibleSingle ( TRUE );
        }
    }
}

SNATIVEID     CItemImage::GetItemImageSlotPos ()
{
    return m_sICONINDEX;
}

void CItemImage::ResetItem ()
{
    if ( m_pItemImage )
    {
        if ( m_sICONINDEX != NATIVEID_NULL () )
        {
            m_pItemImage->DeleteDeviceObjects ();
            m_pItemImage->SetTextureName ( NULL );
            m_pItemImage->SetVisibleSingle ( FALSE );
            m_pItemImage->SetDiffuseAlpha(255);

            m_sICONINDEX = NATIVEID_NULL ();

            ReSetItemProcess();

            m_strTextureName.Empty ();
        }       
    }

    if ( m_pItemImageBack )
    {
        m_sICONINDEXBACK = NATIVEID_NULL ();

        m_pItemImageBack->DeleteDeviceObjects ();
        m_pItemImageBack->SetTextureName ( NULL );
        m_pItemImageBack->SetVisibleSingle ( FALSE );
    }

    if ( m_pItemImageOverlaped )
    {
        m_pItemImageOverlaped->DeleteDeviceObjects ();
        m_pItemImageOverlaped->SetTextureName ( NULL );
        m_pItemImageOverlaped->SetVisibleSingle(FALSE);
    }

    m_sNativeID = NATIVEID_NULL();
    m_sNativeID_Overlaped = NATIVEID_NULL();

    ResetNumber();

    /*6-2-24, collection system - CNDev*/
    if ( m_pTextItemUpgrade )
    {
        m_pTextItemUpgrade->ClearText();
        m_pTextItemUpgrade->SetVisibleSingle(FALSE);
    }

    if ( m_pItemImageCheck )
        m_pItemImageCheck->SetVisibleSingle(FALSE);

    if ( m_pItemImageFind )
        m_pItemImageFind->SetVisibleSingle(FALSE);
}

void CItemImage::SetItemProcess( SNATIVEID sNativeID )
{
    m_bItemUsed = false;   
    m_sNativeID = sNativeID;

    if ( sNativeID == NATIVEID_NULL() )
    {
        m_pItemProcess->SetVisibleSingle( FALSE );
    }
    else
    {
        m_pItemProcess->SetVisibleSingle( TRUE );
    }

    return;
}

void CItemImage::ReSetItemProcess()
{
    m_bItemUsed = false;
    m_sNativeID = NATIVEID_NULL();
    m_pItemProcess->SetVisibleSingle( FALSE );
    m_pItemProcess->SetOverImageDiffuse ( 0 );
    m_pItemProcess->SetPercent( 0.0f );
    SetVisibleOverImage(false);
    return;
}

void CItemImage::SetDiffuse(D3DCOLOR _diffuse)
{
    CUIGroup::SetDiffuse( _diffuse );
    m_pItemProcess->SetOverImageDiffuse ( RECHARGECOLOR );
}

void CItemImage::SetVisibleOverImage( bool isVisible )
{
    if(m_pOverImage)
        m_pOverImage->SetVisibleSingle(isVisible);
}

bool CItemImage::IsVisibleOverImage()
{
    return m_pOverImage->IsVisible() ? true : false;
}

SNATIVEID CItemImage::GetItem()
{
    return m_sNativeID;
}

const CString& CItemImage::GetItemTextureName() const
{
    return m_strTextureName;
}

void CItemImage::SetTextUpLeft( CString strText, DWORD dwColor )
{
    if ( m_pTextBoxUpLeft )    m_pTextBoxUpLeft->SetText( strText.GetString(), dwColor );
}

void CItemImage::SetTextUpRight( CString strText, DWORD dwColor )
{
    if ( m_pTextBoxUpRight )    m_pTextBoxUpRight->SetText( strText.GetString(), dwColor );
}

void CItemImage::SetTextDownLeft( CString strText, DWORD dwColor )
{
    if ( m_pTextBoxDownLeft )    m_pTextBoxDownLeft->SetText( strText.GetString(), dwColor );
}

void CItemImage::SetTextDownRight( CString strText, DWORD dwColor )
{
    if ( m_pTextBoxDownRight )    m_pTextBoxDownRight->SetText( strText.GetString(), dwColor );
}

void CItemImage::SetTurnNum( int nNum )
{
}

/*6-2-24, collection system - CNDev*/
void CItemImage::SetItemImageCheck()
{
    if ( m_pItemImageCheck )   
    {
        m_pItemImage->SetDiffuseAlpha(255);
        m_pItemImageCheck->SetVisibleSingle(TRUE);
    }
}

void CItemImage::SetItemImageNone()
{
    m_pItemImage->SetDiffuseAlpha(50);
}

void CItemImage::SetItemImageFind()
{
    if ( m_pItemImageFind )   
    {
        m_pItemImage->SetDiffuseAlpha(255);
        m_pItemImageFind->SetVisibleSingle(TRUE);
    }
}

void CItemImage::SetItemUpgrade( CString strText, DWORD dwColor )
{
    if ( m_pTextItemUpgrade )   
    {
        m_pTextItemUpgrade->SetText( strText.GetString(), dwColor );
        m_pTextItemUpgrade->SetVisibleSingle(TRUE);
    }
}

ItemImage.h

C++:
//    ±âº» Á¤º¸ Ç¥½Ã
//
//    ÃÖÃÊ ÀÛ¼ºÀÚ : ¼º±â¿±
//    ÀÌÈÄ ¼öÁ¤ÀÚ :
//    ·Î±×
//        [2003.11.27]
//            @ ÀÛ¼º
//

#pragma    once

#include "../Lib_Engine/GUInterface/UIGroup.h"
#include "GLDefine.h"

struct SITEMCUSTOM;
class    CBasicProgressBar;
class    CBasicTextBox;

class    CItemImage : public CUIGroup
{
private:
    enum {
        ITEM_IMAGE_SLOT = NO_ID + 1,
        ITEM_IMAGE_OVER,
    };
public:
    CItemImage ();
    virtual    ~CItemImage ();

public:
    void    CreateSubControl (const std::string& overImageKey = "" ,DWORD color = D3DCOLOR_XRGB(255,255,255), const char* szControlKeyword = "ITEM_IMAGE");
    void    CreateTextBoxUpLeft();
    void    CreateTextBoxUpRight();
    void    CreateTextBoxDownLeft();
    void    CreateTextBoxDownRight();

public:
    virtual HRESULT InitDeviceObjects ( LPDIRECT3DDEVICEQ pd3dDevice );
    virtual void Update( int x, int y, BYTE LB, BYTE MB, BYTE RB, int nScroll, float fElapsedTime, BOOL bFirstControl );
    virtual    void SetDiffuse(D3DCOLOR _diffuse);

public:
    const bool    SetItem ( const SITEMCUSTOM& itemCustom );
    const bool    SetItem ( SNATIVEID sNativeID  );

    void    SetSkill(SNATIVEID sICONINDEX, const char* szTexture, SNATIVEID sNativeID = false);
    void    SetBackItem( SNATIVEID sICONINDEX, const char* szTexture );

    void    SetVisibleOverImage(bool isVisible);
    bool    IsVisibleOverImage();

    SNATIVEID   GetItem();
    SNATIVEID    GetItemImageSlotPos();

    SNATIVEID    GetItemID()        { return m_sNativeID; }

    const CString&    GetItemTextureName () const;

    void SetUseTwinkle( bool bUse )                    { m_bTwinkle = bUse; }
    
    void SetNumber ( int nNumber, int nMaxNumber );
    void ResetNumber (  );

private:
    const bool    SetItem ( SNATIVEID sICONINDEX, const char* szTexture, SNATIVEID sNativeID );
    const bool    SetItem ( SNATIVEID sICONINDEX, const char* szTexture, SNATIVEID sNativeID, SNATIVEID sICONINDEX_Overlaped, const char* szTexture_Overlaped, SNATIVEID sNativeID_Overlaped );

public:
    virtual void    ResetItem ();
    virtual void    SetItemProcess( SNATIVEID sNativeID );
    virtual void    ReSetItemProcess();


private:
    LPDIRECT3DDEVICEQ    m_pd3dDevice;

protected:
    SNATIVEID    m_sICONINDEX;
    SNATIVEID    m_sICONINDEXBACK;
    SNATIVEID    m_sNativeID;
    SNATIVEID    m_sNativeID_Overlaped;
    CString        m_strTextureName;

    CBasicProgressBar*    m_pItemProcess;
    CBasicTextBox*        m_pTextBoxUpLeft;
    CBasicTextBox*        m_pTextBoxUpRight;
    CBasicTextBox*        m_pTextBoxDownLeft;
    CBasicTextBox*        m_pTextBoxDownRight;

    float m_TotElapsedTime;
    bool m_bItemUsed;
    bool m_bItemEnd;

    bool m_bTwinkle;

    
    CUIControl*        m_pItemImage;
    CUIControl*        m_pItemImageOverlaped;
    CUIControl*        m_pOverImage;
    CBasicTextBox*  m_pNumberText;

    /*6-2-24, collection system - CNDev*/
    CUIControl*        m_pItemImageCheck;
    CUIControl*        m_pItemImageFind;
    CBasicTextBox*    m_pTextItemUpgrade;


private:
    CUIControl*        m_pItemImageBack;
    //CUIControl*        m_pItemImage;

public:
    void    SetTextUpLeft( CString strText, DWORD dwColor );
    void    SetTextUpRight( CString strText, DWORD dwColor );
    void    SetTextDownLeft( CString strText, DWORD dwColor );
    void    SetTextDownRight( CString strText, DWORD dwColor );

    void    SetTurnNum( int nNum );

    void    SetItemImageCheck();
    void    SetItemImageNone();
    void    SetItemImageFind();
    void    SetItemUpgrade( CString strText, DWORD dwColor );
};
 
Last edited:
Back