예제 #1
0
// ----------------------------------------------------------------------------
// Name : Render()
// Desc :
// ----------------------------------------------------------------------------
void CUIAD::Render()
{
	CDrawPort* pDrawPort = CUIManager::getSingleton()->GetDrawPort();

	// Set skill learn texture
	pDrawPort->InitTextureData( m_ptdBaseTexture );

	SelectLogo();

	PlayLC(m_eAniType);
	
	// Attach Map window
	extern ENGINE_API INDEX sam_iScreenSizeI;
//	m_rcAD[0].SetRect(sam_iScreenSizeI - 115, 145,sam_iScreenSizeI - 14,197);
	m_rcAD[0].SetRect(sam_iScreenSizeI - 115, 152,sam_iScreenSizeI - 14,205);
	m_rcAD[1].CopyRect( m_rcAD[0] );

	m_rcAD_ani = m_rcAD[0];
	
	pDrawPort->AddTexture( m_rcAD_ani.Left  , m_rcAD_ani.Top  , m_rcAD_ani.Right , m_rcAD_ani.Bottom ,
		m_uvAD[m_selAni].U0, m_uvAD[m_selAni].V0,	m_uvAD[m_selAni].U1, m_uvAD[m_selAni].V1,	0xFFFFFFFF );
	

	// Render all elements
	pDrawPort->FlushRenderingQueue();	
	
	// Flush all render text queue
	pDrawPort->EndTextEx();
}
예제 #2
0
// ----------------------------------------------------------------------------
// Name : Render()
// Desc :
// ----------------------------------------------------------------------------
void CUISelectResource::Render()
{
	CDrawPort* pDrawPort = CUIManager::getSingleton()->GetDrawPort();

	// Set skill learn texture
	pDrawPort->InitTextureData( m_ptdBaseTexture );
	
	// Add render regions
	// Background
	int nX = m_nPosX;
	int nY = m_nPosY;
	pDrawPort->AddTexture( nX, m_nPosY, nX + m_nWidth, nY + TITLEBAR_HEIGHT,
		m_rtBackTop.U0, m_rtBackTop.V0, 
		m_rtBackTop.U1, m_rtBackTop.V1,
		0xFFFFFFFF );
	
	nY += TITLEBAR_HEIGHT;	
	pDrawPort->AddTexture( nX, nY, nX + m_nWidth, m_nPosY + m_nHeight - 7,
		m_rtBackMiddle1.U0, m_rtBackMiddle1.V0, 
		m_rtBackMiddle1.U1, m_rtBackMiddle1.V1,
		0xFFFFFFFF );
	
	nY = m_nPosY + m_nHeight - 7;

	pDrawPort->AddTexture( nX, nY, nX + m_nWidth, m_nPosY + m_nHeight,
		m_rtBackBottom.U0, m_rtBackBottom.V0, 
		m_rtBackBottom.U1, m_rtBackBottom.V1,
		0xFFFFFFFF );	

	m_btnClose.Render();

	std::vector<CUIButton>::iterator itend = m_vectorResourceList.end();
	std::vector<CUIButton>::iterator it = m_vectorResourceList.begin();

	for(; it != itend; ++it)
	{
		(*it).Render();
	}

	// Render all elements
	pDrawPort->FlushRenderingQueue();	
	
	CTString strTitle = _S( 1823, "미네랄 선택" );
	
	// Text in skill learn	
	if( m_bSelectType )
	{
		strTitle =_S( 1974,  "생산방법 선택" );
	}
		
	pDrawPort->PutTextEx( strTitle, m_nPosX + SELECTRESOURCE_TITLE_TEXT_OFFSETX,	
		m_nPosY + SELECTRESOURCE_TITLE_TEXT_OFFSETY, 0xFFFFFFFF );
	
	// Flush all render text queue
	pDrawPort->EndTextEx();
}
예제 #3
0
void CUIChildQuickSlot::Render()
{
	CUIManager* pUIManager = CUIManager::getSingleton();
	CDrawPort* pDrawPort = pUIManager->GetDrawPort();
	
	///< texture init
	pDrawPort->InitTextureData( m_ptdBaseTexture );
	
	if( *(m_bRotation[m_nCurSlot]) == 1 )
	{
		int	nX = m_nPosX;
		int	nY = m_nPosY;
		// Quick slot base texture
		pDrawPort->AddTexture( nX, nY
			,nX + CHILD_QUICKSLOT_WIDTH, nY + CHILD_QUICKSLOT_HEIGHT
			,m_rtHorzBackground.U0, m_rtHorzBackground.V0
			,m_rtHorzBackground.U1, m_rtHorzBackground.V1
			,0xFFFFFFFF );
		
		// 퀵슬롯 페이지 출력 위치를 수동으로 계산 [12/20/2012 Ranma]
		pDrawPort->PutTextExCX(m_strPageNumber, m_nPosX + 7, m_nPosY + 11 );
		m_btnHorizontal.Render();
		m_btnLock.SetPos(CHILD_QUICKSLOT_WIDTH - QSLOT_OUTSIDE_BTN_SIZE - 1, 19);
		m_btnUnLock.SetPos(CHILD_QUICKSLOT_WIDTH - QSLOT_OUTSIDE_BTN_SIZE - 1, 19);
	}
	else if ( *(m_bRotation[m_nCurSlot]) == 0 )
	{
		int	nX = m_nPosX;
		int	nY = m_nPosY;
		// Quick slot base texture
		pDrawPort->AddTexture( nX, nY
			, nX + CHILD_QUICKSLOT_HEIGHT, nY + CHILD_QUICKSLOT_WIDTH
			, m_rtVerBackground.U0, m_rtVerBackground.V0
			, m_rtVerBackground.U1, m_rtVerBackground.V1
			, 0xFFFFFFFF );
		
		// 퀵슬롯 페이지 출력 위치를 수동으로 계산 [12/20/2012 Ranma]
		pDrawPort->PutTextExCX(m_strPageNumber, m_nPosX + 18, m_nPosY + 2 );
		m_btnVertical.Render();
		m_btnLock.SetPos(1, CHILD_QUICKSLOT_WIDTH - QSLOT_OUTSIDE_BTN_SIZE - 1);
		m_btnUnLock.SetPos(1, CHILD_QUICKSLOT_WIDTH - QSLOT_OUTSIDE_BTN_SIZE - 1);
	}
	
	if(*(m_bLock[m_nCurSlot]))
		m_btnLock.Render();
	else
		m_btnUnLock.Render();
	
	pDrawPort->FlushRenderingQueue();
	
	SlotRender();
	
	// Flush all render text queue
	pDrawPort->EndTextEx();
}
예제 #4
0
void CUIImageBox::PopupRender()
{
	CUIManager* pUIManager = CUIManager::getSingleton();
	CDrawPort* pDrawPort = CUIManager::getSingleton()->GetDrawPort();

	int	nX, nY;
	GetAbsPos( nX, nY );
	
	int nX0 = nX + m_rtRenderRegion.Left;
	int nX1 = nX + m_rtRenderRegion.Right;
	int nY0 = nY + m_rtRenderRegion.Top;
	int nY1 = nY + m_rtRenderRegion.Bottom;

	int rtRenderRegionMiddle = nX + (m_rtRenderRegion.Left + m_rtRenderRegion.Right) / 2;
	int nRegionHeight = m_rtRenderRegion.Bottom - m_rtRenderRegion.Top;
		
	if ( m_bShowPopup )	
	{
		pDrawPort->InitTextureData( m_ptdPopup );
		
		int nAlineSize	= m_vecString.size();
		int nPopHeight	= 10 - _pUIFontTexMgr->GetLineSpacing() + (nAlineSize+1) * _pUIFontTexMgr->GetLineHeight();
		int nPopX = rtRenderRegionMiddle - (m_nPopWidth/2);
		int nPopY = nY0 - nPopHeight;
	
		if( nPopX < pUIManager->GetMinI() )
		{
			nPopX = pUIManager->GetMinI();
		}
		else if (nPopX + m_nPopWidth > pUIManager->GetMaxI())
		{
			nPopX = pUIManager->GetMaxI() - m_nPopWidth;
		}
		
		if (nPopY < pUIManager->GetMinJ())
		{
			nPopY = nY + nRegionHeight;
		}
		
		m_bxPopupInfo.SetBoxPos(WRect(nPopX-nX, nPopY-nY, nPopX-nX+m_nPopWidth, nPopY-nY+nPopHeight ));
		m_bxPopupInfo.Render(nX,nY);

		std::vector<CTString>::iterator b = m_vecString.begin();
		
		for (int i = 0; b != m_vecString.end(); b++, i++)
		{
			pDrawPort->PutTextEx( *b, nPopX+20, nPopY+6+(i*14), m_colText );
		}
		pDrawPort->FlushRenderingQueue();
		pDrawPort->EndTextEx();		
	}
}
예제 #5
0
void CUIHelp::RenderImage(int iListIndex)
{
	// Check invalid
	if(iListIndex<=0) return;
	HELP1 tHelp1 = (*m_pHelp1)[iListIndex];
	if( tHelp1.m_width <= 0 ) return;

	FLOAT fTexWidth	= m_ptdImageTemp->GetPixWidth();
	FLOAT fTexHeight	= m_ptdImageTemp->GetPixHeight();	

	CDrawPort* pDrawPort = CUIManager::getSingleton()->GetDrawPort();

	pDrawPort->InitTextureData( m_ptdImageTemp );

	// Add render regions
	int	nX, nY;

	m_bSlideImgX = tHelp1.m_width;

	if(tHelp1.m_width > sideImageSize)
	{
		nX = m_nPosX + m_rcRightView.Left + m_bSlideImgX;
		nY = m_nPosY + m_lbReadContent.GetPosY() + (m_lbReadContent.GetCurItemCount(0)*m_lbReadContent.GetLineHeight());
	}
	else
	{
		nX = m_nPosX + m_nWidth + m_bSlideImgX;
		nY = m_nPosY;
	}
	
	// Set UV 
	UIRectUV tUV;
	tUV.SetUV(tHelp1.m_uv_x,tHelp1.m_uv_y,tHelp1.m_uv_x+m_bSlideImgX,tHelp1.m_uv_y+tHelp1.m_height,fTexWidth,fTexHeight);

	pDrawPort->AddTexture(
		nX - m_bSlideImgX, nY, nX , nY + tHelp1.m_height,
		tUV.U0,tUV.V0,tUV.U1,tUV.V1,
		0xFFFFFFFF);
	
	pDrawPort->FlushRenderingQueue();	
}
예제 #6
0
// ----------------------------------------------------------------------------
// Name : Render()
// Desc :
// ----------------------------------------------------------------------------
void CUICompound::Render()
{
	CDrawPort* pDrawPort = CUIManager::getSingleton()->GetDrawPort();

	// Set texture
	pDrawPort->InitTextureData( m_ptdBaseTexture );

	// Add render regions
	int	nX, nY, i;
	// Background
	// Top
	nX = m_nPosX + m_nWidth;
	nY = m_nPosY + 26;
	pDrawPort->AddTexture( m_nPosX, m_nPosY, nX, nY,
										m_rtTop.U0, m_rtTop.V0, m_rtTop.U1, m_rtTop.V1,
										0xFFFFFFFF );

	// Middle 1
	pDrawPort->AddTexture( m_nPosX, nY, nX, nY + m_nTextRegionHeight,
										m_rtMiddle1.U0, m_rtMiddle1.V0, m_rtMiddle1.U1, m_rtMiddle1.V1,
										0xFFFFFFFF );

	// Middle 2
	nY += m_nTextRegionHeight;
	pDrawPort->AddTexture( m_nPosX, nY, nX, m_nPosY + m_nHeight - 7,
										m_rtMiddle2.U0, m_rtMiddle2.V0, m_rtMiddle2.U1, m_rtMiddle2.V1,
										0xFFFFFFFF );

	// Bottom
	nY = m_nPosY + m_nHeight - 7;
	pDrawPort->AddTexture( m_nPosX, nY, nX, m_nPosY + m_nHeight,
										m_rtBottom.U0, m_rtBottom.V0, m_rtBottom.U1, m_rtBottom.V1,
										0xFFFFFFFF );

	for ( i = 0; i < COMPOUND_ITEM_SLOT_COUNT; i++ )
	{
		// Slot item region
		pDrawPort->AddTexture( m_nPosX + m_rcItemSlot[i].Left, m_nPosY + m_rcItemSlot[i].Top,
											m_nPosX + m_rcItemSlot[i].Right, m_nPosY + m_rcItemSlot[i].Bottom,
											m_rtItemSlot.U0, m_rtItemSlot.V0, m_rtItemSlot.U1, m_rtItemSlot.V1,
											0xFFFFFFFF );
	}

	// Close button
	m_btnClose.Render();

	// OK button
	m_btnOK.Render();

	// Cancel button
	m_btnCancel.Render();

	// Render all elements
	pDrawPort->FlushRenderingQueue();

	// Item
	for( i = 0; i < COMPOUND_ITEM_SLOT_COUNT; i++ )
	{
		if (m_pIconSlot[i]->IsEmpty() == false)
		{
			m_pIconSlot[i]->Render(pDrawPort);
			pDrawPort->FlushBtnRenderingQueue( UBET_ITEM );
		}
	}

	// Text in 
	pDrawPort->PutTextEx( _S( 723, "힘의 상자" ), m_nPosX + COMPOUND_TITLE_TEXT_OFFSETX,			
										m_nPosY + COMPOUND_TITLE_TEXT_OFFSETY, 0xFFFFFFFF );

	nX = m_nPosX + COMPOUND_DESC_TEXT_SX;
	nY = m_nPosY + COMPOUND_DESC_TEXT_SY;
	for( int iDesc = 0; iDesc < m_nStringCount; iDesc++ )
	{
		pDrawPort->PutTextEx( m_strDesc[iDesc], nX , nY, 0xC5C5C5FF );
		nY += _pUIFontTexMgr->GetLineHeight();
	}

	// Flush all render text queue
	pDrawPort->EndTextEx();
}
예제 #7
0
// ----------------------------------------------------------------------------
// Name : Render()
// Desc :
// ----------------------------------------------------------------------------
void CUICreateChar::Render()
{	
	extern INDEX	sam_bWideScreen;
	CDrawPort* pDrawPort = CUIManager::getSingleton()->GetDrawPort();

	// Set create character textire
	pDrawPort->InitTextureData( m_ptdBaseTexture );
	
	// Character information
	// Top
	pDrawPort->AddTexture( m_rcCharInfo.Left, m_rcCharInfo.Top,
										m_rcCharInfo.Right, m_rcCharInfo.Top + CREATECHAR_INFO_HEIGHT,
										m_rtCharInfoTop.U0, m_rtCharInfoTop.V0,
										m_rtCharInfoTop.U1, m_rtCharInfoTop.V1,
										0xFFFFFFFF );
	// Bottom
	pDrawPort->AddTexture( m_rcCharInfo.Left, m_rcCharInfo.Top + CREATECHAR_INFO_HEIGHT,
										m_rcCharInfo.Right, m_rcCharInfo.Bottom,
										m_rtCharInfoBottom.U0, m_rtCharInfoBottom.V0,
										m_rtCharInfoBottom.U1, m_rtCharInfoBottom.V1,
										0xFFFFFFFF );

	// Character name input box
	m_ebCharName.Render();

	// Job button
	m_btnJobPrev.Render();
	m_btnJobNext.Render();

	// Head button
	m_btnFacePrev.Render();
	m_btnFaceNext.Render();

	// Hair button
	m_btnHairPrev.Render();
	m_btnHairNext.Render();

	// Face button
	//m_btnHeadPrev.Render();
	//m_btnHeadNext.Render();

	// OK button
	m_btnOK.Render();

	// Cancel button
	m_btnCancel.Render();

	// Character control
	/*
	// Zoom in button
	m_btnZoomIn.Render();

	// Zoom out button
	m_btnZoomOut.Render();

	// Rotate to left button
	m_btnRotateToLeft.Render();

	// Rotate to right
	m_btnRotateToRight.Render();
	*/

	// Render all elements
	pDrawPort->FlushRenderingQueue();

	// Render character information
	int	nX = m_rcCharInfo.Left + CREATECHAR_DESC_SX;
	int	nY = m_rcCharInfo.Top + CREATECHAR_DESC_SY;
	for( int iInfo = 0; iInfo < m_nCurInfoLines; iInfo++ )
	{
		pDrawPort->PutTextEx( m_strCharInfo[iInfo], nX, nY, m_colCharInfo[iInfo] );
		nY += _pUIFontTexMgr->GetLineHeight();
	}
	
	// Prepare Rendering Text
	nX = m_rcCharInfo.Left;
	nY = m_rcCharInfo.Top;
	pDrawPort->PutTextEx( _S( 140, "캐릭터 생성" ),
										nX + CREATECHAR_TITLE_OFFSETX, nY + CREATECHAR_TITLE_OFFSETY );
	pDrawPort->PutTextExRX( _S( 71, "이름" ),
											nX + CREATECHAR_NAME_RX, nY + CREATECHAR_NAME_SY );
	pDrawPort->PutTextExRX( _S( 141, "직업" ),
											nX + CREATECHAR_NAME_RX, nY + CREATECHAR_JOB_SY );
	pDrawPort->PutTextExRX( _S( 144, "얼굴" ),		// 얼굴
											nX + CREATECHAR_NAME_RX, nY + CREATECHAR_FACE_SY );
	pDrawPort->PutTextExRX( _S( 143, "헤어" ),		// 헤어
											nX + CREATECHAR_NAME_RX, nY + CREATECHAR_HAIR_SY );
	//pDrawPort->PutTextExRX( _S( 142, "머리" ),		// 머리
	//										nX + CREATECHAR_NAME_RX, nY + CREATECHAR_HEAD_SY );

	// Print Job
	pDrawPort->PutTextExCX( JobInfo().GetName(m_iSelectedJob),
											nX + CREATECHAR_JOB_MAIN_CY, nY + CREATECHAR_JOB_SY );
	// Print Face
	CTString strTemp;
	strTemp.PrintF("%d", m_sbSelectedFace + 1);
	pDrawPort->PutTextExCX( strTemp,
											nX + CREATECHAR_JOB_MAIN_CY, nY + CREATECHAR_FACE_SY );

	strTemp.PrintF("%d", m_sbSelectedHair + 1);
	// Print Hair
	pDrawPort->PutTextExCX( strTemp,
											nX + CREATECHAR_JOB_MAIN_CY, nY + CREATECHAR_HAIR_SY );

	// Print Head
	//pDrawPort->PutTextExCX( CTString( "1" ),
	//										nX + CREATECHAR_JOB_MAIN_CY, nY + CREATECHAR_FACE_SY );

	// Flush all render text queue
	pDrawPort->EndTextEx();

	// Reading window
	if( m_ebCharName.DoesShowReadingWindow() )
	{
		// Set texture
		pDrawPort->InitTextureData( m_ptdBaseTexture );

		// Reading window
		m_ebCharName.RenderReadingWindow();

		// Render all elements
		pDrawPort->FlushRenderingQueue();

		// Flush all render text queue
		pDrawPort->EndTextEx();
	}

	// show night shadow message [11/6/2009 rumist]
	if( m_bIsShowMessageInfo )
	{
		pDrawPort->InitTextureData( m_ptdMsgTexture );
		m_bxNoticeMsg.SetBoxPos(m_rcMessageInfo);
		m_bxNoticeMsg.Render();
		
		// Render all elements
		pDrawPort->FlushRenderingQueue();
		
		m_msgNCText.SetRenderPos( m_rcMessageInfo.Left, m_rcMessageInfo.Top );
		m_msgNCText.Render();
	}
}
예제 #8
0
void CUIImageBox::Render()
{
	// Get position
	int	nX, nY;
	GetAbsPos( nX, nY );

	int nX0 = nX + m_rtRenderRegion.Left;
	int nX1 = nX + m_rtRenderRegion.Right;
	int nY0 = nY + m_rtRenderRegion.Top;
	int nY1 = nY + m_rtRenderRegion.Bottom;
	float fU0 = m_rtUV.U0 + (m_rtUV.U1 - m_rtUV.U0) * m_rtRenderRegion.Left / float(m_nWidth);
	float fU1 = m_rtUV.U0 + (m_rtUV.U1 - m_rtUV.U0) * m_rtRenderRegion.Right / float(m_nWidth);
	float fV0 = m_rtUV.V0 + (m_rtUV.V1 - m_rtUV.V0) * m_rtRenderRegion.Top / float(m_nHeight);
	float fV1 = m_rtUV.V0 + (m_rtUV.V1 - m_rtUV.V0) * m_rtRenderRegion.Bottom / float(m_nHeight);

	CDrawPort* pDrawPort = CUIManager::getSingleton()->GetDrawPort();

	if(m_eImageType == IT_GENERAL)
	{
		pDrawPort->InitTextureData( m_ptdBaseTexture );
		pDrawPort->AddTexture(nX0, nY0, nX1, nY1,
											fU0, fV0,
											fU1, fV1,
											0xFFFFFFFF );
		pDrawPort->FlushRenderingQueue();
	}
	else if (m_eImageType == IT_CORPS)
	{
		pDrawPort->InitTextureData( m_ptdCorps );
		pDrawPort->AddTexture(nX0, nY0, nX1, nY1,
											fU0, fV0,
											fU1, fV1,
											0xFFFFFFFF );
		pDrawPort->FlushRenderingQueue();
	}
	else
	{
		UIBtnExType bet;
		switch(m_eImageType)
		{
			case IT_EXP:
			case IT_MONEY:
			case IT_ITEM:
			case IT_SP:		// [090617: selo] SP 이미지 타입
			case IT_RVR_POINT:
				bet = UBET_ITEM;
				break;
			case IT_SKILL:
			case IT_SSKILL:
			case IT_AFFINITY: // 친화도 개편2 친화도 타입 추가 [2/7/2013 Ranma]
				bet = UBET_SKILL;
				break;
			case IT_ACTION:
				bet = UBET_ACTION;
				break;
			case IT_AFFINITY_MONSTER:
				bet = UBET_COMBO;				
				break;
		}
		pDrawPort->AddBtnTexture(m_nTextureID, nX0, nY0, nX1, nY1,
											fU0, fV0,
											fU1, fV1,
											0xFFFFFFFF );
		pDrawPort->FlushBtnRenderingQueue( bet, PBT_BLEND );

		if(m_bHighlight)
		{
			pDrawPort->AddBtnTexture(m_nTextureID, nX0, nY0, nX1, nY1,
												fU0, fV0,
												fU1, fV1,
												m_colHighlight );

			// Render all button elements
			pDrawPort->FlushBtnRenderingQueue( bet, PBT_ADD );
		}
	}
}
예제 #9
0
void CUIChildQuickSlot::SlotNumberRender()
{
	CUIManager* pUIManager = CUIManager::getSingleton();
	CDrawPort* pDrawPort = pUIManager->GetDrawPort();
	
	///< texture init
	pDrawPort->InitTextureData( m_ptdBaseTexture );
	if( *(m_bRotation[m_nCurSlot]) == 1 )
	{
		int	nX = m_nPosX;
		int	nY = m_nPosY;
		// 슬롯 번호 텍스춰
		nX = m_nPosX + 16;
		nY = m_nPosY + 4;
		switch(m_nID)
		{
		case UI_QUICKSLOT2:
			{
				pDrawPort->AddTexture(nX, nY, nX + 398, nY + 7
					, m_rtHorzSlotNumber.U0, m_rtHorzSlotNumber.V0
					, m_rtHorzSlotNumber.U1, m_rtHorzSlotNumber.V1
					, 0xFFFFFFFF);
				break;
			}
			
		case UI_QUICKSLOT3:
			{
				pDrawPort->AddTexture(nX, nY, nX + 406, nY + 7
					, m_rtHorzSlotNumber.U0, m_rtHorzSlotNumber.V0
					, m_rtHorzSlotNumber.U1, m_rtHorzSlotNumber.V1
					, 0xFFFFFFFF);
				break;
			}
		}
	}
	else if ( *(m_bRotation[m_nCurSlot]) == 0 )
	{
		int	nX = m_nPosX;
		int	nY = m_nPosY;
		// 슬롯 번호 텍스춰
		nX = m_nPosX + 4;
		nY = m_nPosY + 16;
		
		switch(m_nID)
		{
		case UI_QUICKSLOT2:
			{
				pDrawPort->AddTexture(nX, nY, nX + 13, nY + 392
					, m_rtVerSlotNumber.U0, m_rtVerSlotNumber.V0
					, m_rtVerSlotNumber.U1, m_rtVerSlotNumber.V1
					, 0xFFFFFFFF);
				break;
			}
			
		case UI_QUICKSLOT3:
			{
				pDrawPort->AddTexture(nX, nY, nX + 21, nY + 392
					, m_rtVerSlotNumber.U0, m_rtVerSlotNumber.V0
					, m_rtVerSlotNumber.U1, m_rtVerSlotNumber.V1
					, 0xFFFFFFFF);
				break;
			}
		}
	}
	
	pDrawPort->FlushRenderingQueue();
}
예제 #10
0
// ----------------------------------------------------------------------------
// Name : RenderRemissionBtns()
// Desc :
// ----------------------------------------------------------------------------
void CUIRemission::RenderRemissionBtns()
{
    int	nX = REMISSION_SLOT_SX, nY = REMISSION_SLOT_SY;
    int	iRow, iRowS, iRowE;

    // Remission remission button
    iRowS = m_sbRemissionIcon.GetScrollPos();
    iRowE = iRowS + REMISSION_SLOT_ROW;

    if ( m_vectorbtnRemissions.size() < iRowE )
    {
        iRowE = m_vectorbtnRemissions.size();
    }

    for( iRow = iRowS; iRow < iRowE; iRow++, nY += REMISSION_SLOT_OFFSETY )
    {
        m_vectorbtnRemissions[iRow].SetPos( nX, nY );
        if( m_vectorbtnRemissions[iRow].IsEmpty() )
            continue;

        m_vectorbtnRemissions[iRow].Render();
    }

    CDrawPort* pDrawPort = CUIManager::getSingleton()->GetDrawPort();

    // Render all button elements
    pDrawPort->FlushBtnRenderingQueue( UBET_REMISSION );

    if( m_nSelRemissionID >= 0 )
    {
        // Set remission learn texture
        pDrawPort->InitTextureData( m_ptdBaseTexture );

        m_vectorbtnRemissions[m_nSelRemissionID].GetAbsPos( nX, nY );
        pDrawPort->AddTexture( nX, nY, nX + BTN_SIZE, nY + BTN_SIZE,
                               m_rtSelOutline.U0, m_rtSelOutline.V0,
                               m_rtSelOutline.U1, m_rtSelOutline.V1,
                               0xFFFFFFFF );

        // Render all elements
        pDrawPort->FlushRenderingQueue();
    }

    nY = REMISSION_NAME_SY;

    iRowS = m_sbRemissionIcon.GetScrollPos();
    iRowE = iRowS + REMISSION_SLOT_ROW;
    if ( m_vectorbtnRemissions.size() < iRowE )
    {
        iRowE = m_vectorbtnRemissions.size();
    }
    for( iRow = iRowS; iRow < iRowE; iRow++, nY += REMISSION_SLOT_OFFSETY )
    {
        if( m_vectorbtnRemissions[iRow].IsEmpty() )
            continue;

        const SBYTE sbRemissionType = m_vectorbtnRemissions[iRow].GetRemissionType();
        if(sbRemissionType == REMISSION_NONE)
            continue;

        switch(sbRemissionType)
        {
        case REMISSION_HP:
            m_strShortDesc.PrintF( _S( 616, "육체의 면죄부" ) );
            pDrawPort->PutTextExCX( m_strShortDesc, m_nPosX + REMISSION_NAME_CX, m_nPosY + nY,	0xFFC672FF);
            break;
        case REMISSION_MP:
            m_strShortDesc.PrintF( _S( 617, "영혼의 면죄부" ) );
            pDrawPort->PutTextExCX( m_strShortDesc, m_nPosX + REMISSION_NAME_CX, m_nPosY + nY,	0xFFC672FF);
            break;
        case REMISSION_ITEM:
        {
            m_strShortDesc.PrintF( _S( 618, "장비의 면죄부" ) );
            pDrawPort->PutTextExCX( m_strShortDesc, m_nPosX + REMISSION_NAME_CX, m_nPosY + nY,	0xFFC672FF);

            m_strShortDesc.PrintF( "%s", _pNetwork->GetItemName( m_vectorbtnRemissions[iRow].GetItemIndex() ));
            pDrawPort->PutTextExCX( m_strShortDesc, m_nPosX + REMISSION_NAME_CX, m_nPosY + nY + 17, 0xBDA99FFF);
        }
        break;
        }
    }
}
예제 #11
0
// ----------------------------------------------------------------------------
// Name : Render()
// Desc :
// ----------------------------------------------------------------------------
void CUIRemission::Render()
{
    // Check distance
    FLOAT	fDiffX = _pNetwork->MyCharacterInfo.x - m_fNpcX;
    FLOAT	fDiffZ = _pNetwork->MyCharacterInfo.z - m_fNpcZ;
    if( fDiffX * fDiffX + fDiffZ * fDiffZ > UI_VALID_SQRDIST )
        CloseRemission();

    CDrawPort* pDrawPort = CUIManager::getSingleton()->GetDrawPort();

    // Set remission texture
    pDrawPort->InitTextureData( m_ptdBaseTexture );

    // Add render regions
    // Background
    pDrawPort->AddTexture( m_nPosX, m_nPosY, m_nPosX + m_nWidth, m_nPosY + m_nHeight,
                           m_rtBackground.U0, m_rtBackground.V0, m_rtBackground.U1, m_rtBackground.V1,
                           0xFFFFFFFF );

    // Close button
    m_btnClose.Render();

    // Buy button
    m_btnOK.Render();

    // Cancel button
    m_btnCancel.Render();

    m_sbRemissionIcon.Render();

    // List box of remission desc
    m_lbRemissionDesc.Render();

    // Render all elements
    pDrawPort->FlushRenderingQueue();

    // Remission buttons
    RenderRemissionBtns();

    // Text in remission
    pDrawPort->PutTextEx( _S( 601, "면죄부" ), m_nPosX + REMISSION_TITLE_TEXT_OFFSETX,
                          m_nPosY + REMISSION_TITLE_TEXT_OFFSETY, 0xFFFFFFFF );

    pDrawPort->PutTextExCX( _S( 601, "면죄부" ), m_nPosX + REMISSION_TAB_CX, m_nPosY + REMISSION_TAB_SY,
                            0x6B6B6BFF );

    pDrawPort->PutTextEx( _S( 609, "현재 나스" ), m_nPosX + REMISSION_CURSP_SX,
                          m_nPosY + REMISSION_CURSP_SY );

    CUIManager* pUIManager = CUIManager::getSingleton();

    // Set money
    CTString strPlayerMoney;
    if( _pNetwork->MyCharacterInfo.money > 0 )
    {
        strPlayerMoney.PrintF( "%I64d", _pNetwork->MyCharacterInfo.money );
        pUIManager->InsertCommaToString( strPlayerMoney );
    }

    pDrawPort->PutTextExRX( strPlayerMoney,
                            m_nPosX + REMISSION_CURSP_RX, m_nPosY + REMISSION_CURSP_SY, pUIManager->GetNasColor( strPlayerMoney ) );

    // Flush all render text queue
    pDrawPort->EndTextEx();
}
예제 #12
0
// ----------------------------------------------------------------------------
// Name : Render()
// Desc :
// ----------------------------------------------------------------------------
void CUISelectList::Render()
{
	CDrawPort* pDrawPort = CUIManager::getSingleton()->GetDrawPort();

	// Set texture
	pDrawPort->InitTextureData( m_ptdBaseTexture );

	// Add render regions
	int	nX, nY;
	// Background
	// Top
	nX = m_nPosX + m_nWidth;
	nY = m_nPosY + 26;
	
	pDrawPort->AddTexture( m_nPosX, m_nPosY, nX, nY,
										m_rtBackTop.U0, m_rtBackTop.V0,
										m_rtBackTop.U1, m_rtBackTop.V1,
										0xFFFFFFFF );

	// Middle 1
	pDrawPort->AddTexture( m_nPosX, nY, nX, nY + m_nTextRegionHeight,
										m_rtBackMiddle1.U0, m_rtBackMiddle1.V0,
										m_rtBackMiddle1.U1, m_rtBackMiddle1.V1,
										0xFFFFFFFF );

	// Middle 2
	nY += m_nTextRegionHeight;
	pDrawPort->AddTexture( m_nPosX, nY, nX, m_nPosY + m_nHeight - 7,
										m_rtBackMiddle2.U0, m_rtBackMiddle2.V0,
										m_rtBackMiddle2.U1, m_rtBackMiddle2.V1,
										0xFFFFFFFF );

	// Bottom
	nY = m_nPosY + m_nHeight - 7;
	pDrawPort->AddTexture( m_nPosX, nY, nX, m_nPosY + m_nHeight,
										m_rtBackBottom.U0, m_rtBackBottom.V0,
										m_rtBackBottom.U1, m_rtBackBottom.V1,
										0xFFFFFFFF );

	
	
	// Registration
	if( m_dwStyle & SLS_REGIST )
		m_btnRegist.Render();

	// Reward
	if( m_dwStyle & SLS_REWARD )
		m_btnReward.Render();

	// Cancel button
	if( m_dwStyle & SLS_CANCEL )
		m_btnCancel.Render();

	// Prev button
	if( m_dwStyle & SLS_PREV )
		m_btnPrev.Render();

	// Next button
	if( m_dwStyle & SLS_NEXT )		
		m_btnNext.Render();



	// Render all elements
	pDrawPort->FlushRenderingQueue();

	// Title
	pDrawPort->PutTextEx( m_strTitle, m_nPosX + SELECTLIST_TITLE_TEXT_OFFSETX,
										m_nPosY + SELECTLIST_TITLE_TEXT_OFFSETY, 0xFFFFFFFF );

	// List strings
	int nLineCount;
	int tv_size = m_vSelList.size();
	int tv_page = m_nMaxLine*m_nPageCur;
	nLineCount = tv_size>(tv_page+m_nMaxLine) ? (tv_page+m_nMaxLine):tv_size ;
	CTString	tIdx,sName;
	nX = m_nPosX ;
	nY = m_nPosY + 30 ;

	for( int i = tv_page; i < nLineCount; i++ )
	{
		tIdx.PrintF("%d.",i+1);
		sName  = m_vSelList[i].m_sName;
	
		if( m_nSelLine == i ) m_selColor = 0x49A1FFFF;
		else m_selColor = 0xF2F2F2FF;
		pDrawPort->PutTextEx( tIdx, nX +15,	nY ,m_selColor);
		if(m_vSelList[i].m_nIndex == _pNetwork->MyCharacterInfo.index)  sName+=CTString("(Me)");
		pDrawPort->PutTextEx( sName, nX + 35,  nY ,m_selColor);
		pDrawPort->PutTextEx( m_pstrState[m_vSelList[i].m_nState], nX + 160, nY,m_selColor);
		nY += TEXT_GAP;

	}

	// Flush all render text queue
	pDrawPort->EndTextEx();

}
예제 #13
0
// ----------------------------------------------------------------------------
// Name : Render()
// Desc :
// ----------------------------------------------------------------------------
void CUIHelp::Render()
{
	CDrawPort* pDrawPort = CUIManager::getSingleton()->GetDrawPort();
	m_bVisible = TRUE;

	// Set web board texture
	pDrawPort->InitTextureData( m_ptdBaseTexture );

	// Add render regions
	int	nX, nY, nX2, nY2;
	// Background
	// Upper left
	nX = m_nPosX;
	nY = m_nPosY;
	nX2 = m_nPosX + m_nWidth;
	nY2 = m_nPosY + 28;
	pDrawPort->AddTexture( nX, nY, nX + 49, nY2,
										m_rtTitleUL.U0, m_rtTitleUL.V0, m_rtTitleUL.U1, m_rtTitleUL.V1,
										0xFFFFFFFF );
	// Upper middle
	pDrawPort->AddTexture( nX + 49, nY, nX2 - 32, nY2,
										m_rtTitleUM.U0, m_rtTitleUM.V0, m_rtTitleUM.U1, m_rtTitleUM.V1,
										0xFFFFFFFF );
	// Upper right
	pDrawPort->AddTexture( nX2 - 32, nY, nX2, nY2,
										m_rtTitleUR.U0, m_rtTitleUR.V0, m_rtTitleUR.U1, m_rtTitleUR.V1,
										0xFFFFFFFF );

	nY = nY2;
	nY2 = nY2 + 10;

	pDrawPort->AddTexture( nX, nY, nX + 49, nY2,
										m_rtBackUL.U0, m_rtBackUL.V0, m_rtBackUL.U1, m_rtBackUL.V1,
										0xFFFFFFFF );
	// Upper middle
	pDrawPort->AddTexture( nX + 49, nY, nX2 - 32, nY2,
										m_rtBackUM.U0, m_rtBackUM.V0, m_rtBackUM.U1, m_rtBackUM.V1,
										0xFFFFFFFF );
	// Upper right
	pDrawPort->AddTexture( nX2 - 32, nY, nX2, nY2,
										m_rtBackUR.U0, m_rtBackUR.V0, m_rtBackUR.U1, m_rtBackUR.V1,
										0xFFFFFFFF );

	// Middle left
	nY = m_nPosY + m_nHeight - 15;
	pDrawPort->AddTexture( nX, nY2, nX + 49, nY,
										m_rtBackML.U0, m_rtBackML.V0, m_rtBackML.U1, m_rtBackML.V1,
										0xFFFFFFFF );
	// Middle middle
	pDrawPort->AddTexture( nX + 49, nY2, nX2 - 32, nY,
										m_rtBackMM.U0, m_rtBackMM.V0, m_rtBackMM.U1, m_rtBackMM.V1,
										0xFFFFFFFF );
	// Middle right
	pDrawPort->AddTexture( nX2 - 32, nY2, nX2, nY,
										m_rtBackMR.U0, m_rtBackMR.V0, m_rtBackMR.U1, m_rtBackMR.V1,
										0xFFFFFFFF );

	// Lower left
	nY2 = m_nPosY + m_nHeight;
	pDrawPort->AddTexture( nX, nY, nX + 49, nY2,
										m_rtBackLL.U0, m_rtBackLL.V0, m_rtBackLL.U1, m_rtBackLL.V1,
										0xFFFFFFFF );
	// Lower middle
	pDrawPort->AddTexture( nX + 49, nY, nX2 - 32, nY2,
										m_rtBackLM.U0, m_rtBackLM.V0, m_rtBackLM.U1, m_rtBackLM.V1,
										0xFFFFFFFF );
	// Lower right
	pDrawPort->AddTexture( nX2 - 32, nY, nX2, nY2,
										m_rtBackLR.U0, m_rtBackLR.V0, m_rtBackLR.U1, m_rtBackLR.V1,
										0xFFFFFFFF );	

	// Close button
	m_btnClose.Render();

	// Text in web board
	// Title
	pDrawPort->PutTextEx( _S( 1610, "도움말" ), m_nPosX + HELP_TITLE_OFFSETX,
										m_nPosY + HELP_TITLE_OFFSETY, 0xFFFFFFFF );	

	// Render subject List
	RenderList();
	RenderContent();

	// Flush all render queue
	pDrawPort->FlushRenderingQueue();
	pDrawPort->EndTextEx();

	// Render Help Image
	if( m_iImageIdx>=0 )
		RenderImage( m_iImageIdx );	
}
예제 #14
0
// ----------------------------------------------------------------------------
// Name : Render()
// Desc :
// ----------------------------------------------------------------------------
void CUISelectServer::Render()
{
#ifdef AUTO_RESTART	// [2012/10/18 : Sora] 재시작시 자동 로그인
	extern BOOL g_bAutoRestart;
	if(g_bAutoRestart)
	{
		CUIManager::getSingleton()->RenderLoading();
		return;
	}
#endif

	CDrawPort* pDrawPort = CUIManager::getSingleton()->GetDrawPort();

	// Set select server texture
	pDrawPort->InitTextureData( m_ptdBaseTexture );

	// Add render regions
	// Background
	int	nY = m_nPosY + NOTICE_SIZE_Y + 29;
	int	nY2 = m_nPosY + m_nHeight - 39;
	pDrawPort->AddTexture( m_nPosX, m_nPosY, m_nPosX + m_nWidth, m_nPosY +28,
		m_rtBackTop.U0, m_rtBackTop.V0, m_rtBackTop.U1, m_rtBackTop.V1,
						0xFFFFFFFF );
	pDrawPort->AddTexture( m_nPosX, m_nPosY +28, m_nPosX + m_nWidth, nY,
		m_rtBackTop1.U0, m_rtBackTop1.V0, m_rtBackTop1.U1, m_rtBackTop1.V1,
						0xFFFFFFFF );
	// 공지 창
	pDrawPort->AddTexture( m_nPosX + 13 , m_nPosY +29, m_nPosX + m_nWidth - 13, nY -3,
						m_rtBackTop2.U0, m_rtBackTop2.V0, m_rtBackTop2.U1, m_rtBackTop2.V1,
						0xFFFFFFFF );
//	pDrawPort->AddTexture( m_nPosX + 18 , m_nPosY +29, m_nPosX + m_nWidth - 18, nY,
//						m_rtBackTop2.U0, m_rtBackTop2.V0, m_rtBackTop2.U1, m_rtBackTop2.V1,
//						0xFFFFFFFF );
	// 서버군, 서버 표시
	pDrawPort->AddTexture( m_nPosX, nY , m_nPosX + m_nWidth, nY + 29,
						m_rtBackMiddle0.U0, m_rtBackMiddle0.V0, m_rtBackMiddle0.U1, m_rtBackMiddle0.V1,
						0xFFFFFFFF );
	pDrawPort->AddTexture( m_nPosX, nY + 29 , m_nPosX + m_nWidth, nY2 ,
						m_rtBackMiddle.U0, m_rtBackMiddle.V0, m_rtBackMiddle.U1, m_rtBackMiddle.V1,
						0xFFFFFFFF );
	pDrawPort->AddTexture( m_nPosX, nY2, m_nPosX + m_nWidth, m_nPosY + m_nHeight,
						m_rtBackBottom.U0, m_rtBackBottom.V0, m_rtBackBottom.U1, m_rtBackBottom.V1,
						0xFFFFFFFF );

	// 추천 서버 이미지
	int count = m_vectorGroupInfo.size();

	for ( int i = 0; i < count; i++)
	{
		UBYTE Type = m_vectorGroupInfo[i].ubServerType;
		int nOrder = m_vectorGroupInfo[i].nOrder;
		FLOAT U0, U1, V0, V1;

		switch (Type)
		{
		case SERVER_TYPE_RECOMEND:
			U0 = m_rtRecommend.U0;
			U1 = m_rtRecommend.U1;
			V0 = m_rtRecommend.V0;
			V1 = m_rtRecommend.V1;
			break;
		case SERVER_TYPE_SPEEDUP:
			U0 = m_rtSpeed.U0;
			U1 = m_rtSpeed.U1;
			V0 = m_rtSpeed.V0;
			V1 = m_rtSpeed.V1;			
			break;
		default:
			continue;
		}
		
		pDrawPort->AddTexture( m_nPosX+RECOMMEND_POS_X , nY+4+(15* nOrder) , m_nPosX +RECOMMEND_POS_X+ 63, nY + 4 + (15*(nOrder+1)),
				U0, V0, U1, V1,	0xFFFFFFFF );	
	}
	
	// Ok button
	m_btnOK.Render();

	// Cancel button
	m_btnCancel.Render();

#ifdef AUTO_RESTART	// [2012/10/18 : Sora] 재시작시 자동 로그인
	m_btnExit.Render();
#endif

	// Server group list box
	m_lbServerGroup.Render();

	// Server list box
	m_lbServer.Render();

	// Render all elements
	pDrawPort->FlushRenderingQueue();

	// text render
	pDrawPort->PutTextEx( _S( 250, "서버 선택" ),
					m_nPosX + SELECTSERVER_TITLE_TEXT_OFFSETX, m_nPosY + SELECTSERVER_TITLE_TEXT_OFFSETY , 0xFFFFFFFF );
	pDrawPort->PutTextEx( _S( 251, "서버군" ),
					m_nPosX + SELECTSERVER_GROUP_TEXT_POSX, m_nPosY + SELECTSERVER_GROUP_TEXT_POSY + NOTICE_SIZE_Y, 0xFFB500FF );
	pDrawPort->PutTextEx( _S( 370, "서버" ),
					m_nPosX + SELECTSERVER_SERVER_TEXT_POSX, m_nPosY + SELECTSERVER_SERVER_TEXT_POSY + NOTICE_SIZE_Y, 0xFFB500FF );

	// --Add Message -------------------------------------------------->>
	int tv_y = m_nPosY + SELECTSERVER_TITLE_TEXT_OFFSETY + 35;

#if defined G_KOR
	// 국내 설명 수정(초보지원)
	pDrawPort->PutTextEx( _S(4874, "♣초보지원 서버란?" ),
					m_nPosX + SELECTSERVER_TITLE_TEXT_OFFSETX, tv_y , 0xFFAAFFFF );
	tv_y+=20;
	pDrawPort->PutTextEx( _S(4875, "라스트카오스를 처음 시작하신다면 3채널(초보지원) 서버를 추천" ), 
					m_nPosX + SELECTSERVER_TITLE_TEXT_OFFSETX, tv_y , 0xFFFFFFFF );
	tv_y+=15;
	pDrawPort->PutTextEx( _S(4876, "해 드립니다. 3채널에 있는 '초보 지원사'를 통해 경험치/숙련도" ),
					m_nPosX + SELECTSERVER_TITLE_TEXT_OFFSETX, tv_y , 0xFFFFFFFF );
	tv_y+=15;
	pDrawPort->PutTextEx( _S(4877, "2배, 물리/마법 공격력이 20% 향상되는 '초보지원 버프'를 받으"), 
					m_nPosX + SELECTSERVER_TITLE_TEXT_OFFSETX, tv_y , 0xFFFFFFFF );
	tv_y+=15;
	pDrawPort->PutTextEx( _S(4878, "실 수 있습니다. '초보지원 버프'는 레벨 60까지만 제공됩니다."), 
					m_nPosX + SELECTSERVER_TITLE_TEXT_OFFSETX, tv_y , 0xFFFFFFFF );
#else
	pDrawPort->PutTextEx( _S(2618, "♣추천 서버란?" ),
					m_nPosX + SELECTSERVER_TITLE_TEXT_OFFSETX, tv_y , 0xFFAAFFFF );
	tv_y+=20;
	pDrawPort->PutTextEx( _S(2619, "매일 정오에 교체가 되며, 해당 서버에서 플레이를 하면 30레벨" ), 
					m_nPosX + SELECTSERVER_TITLE_TEXT_OFFSETX, tv_y , 0xFFFFFFFF );
	tv_y+=15;
	pDrawPort->PutTextEx( _S(2620, "이하의 캐릭터는 사냥시 신비한 효과를 주는 버프 아이템을 얻을" ),
					m_nPosX + SELECTSERVER_TITLE_TEXT_OFFSETX, tv_y , 0xFFFFFFFF );
	tv_y+=15;
	pDrawPort->PutTextEx( _S(2621, "수 있으며, 모든 유저에 대해서 1시간 간격으로 추첨을 통하여 "), 
					m_nPosX + SELECTSERVER_TITLE_TEXT_OFFSETX, tv_y , 0xFFFFFFFF );
	tv_y+=15;
	pDrawPort->PutTextEx( _S(2622, "문스톤 10개를 드리는 이벤트 입니다."), 
					m_nPosX + SELECTSERVER_TITLE_TEXT_OFFSETX, tv_y , 0xFFFFFFFF );
#endif
	// ----------------------------------------------------------------<<
	
	// Flush all render text queue
	pDrawPort->EndTextEx();
}
예제 #15
0
// ----------------------------------------------------------------------------
// Name : !!RenderMasterStone()
// Desc :
// ----------------------------------------------------------------------------
void CUIMixNew::RenderMasterStone()
{
	CDrawPort* pDrawPort = CUIManager::getSingleton()->GetDrawPort();

	// Set mix texture
	pDrawPort->InitTextureData( m_ptdBaseTexture );

	// Add render regions
	int	nX, nY ,i;
	// Background
	// Top
	nX = m_nPosX + m_nWidth;
	nY = m_nPosY + 26;
	pDrawPort->AddTexture( m_nPosX, m_nPosY, nX, nY,
										m_rtTop.U0, m_rtTop.V0, m_rtTop.U1, m_rtTop.V1,
										0xFFFFFFFF );

	// Middle 1
	pDrawPort->AddTexture( m_nPosX, nY, nX, nY + m_nTextRegionHeight,
										m_rtMiddle1.U0, m_rtMiddle1.V0, m_rtMiddle1.U1, m_rtMiddle1.V1,
										0xFFFFFFFF );

	// Middle 2
	pDrawPort->AddTexture( m_nPosX+ 10, nY + 65  , nX-10,nY + m_nTextRegionHeight - 35,
										m_rtMiddle2.U0, m_rtMiddle2.V0, m_rtMiddle2.U1, m_rtMiddle2.V1,
										0xFFFFFFFF );

	// Bottom
	nY = m_nPosY + m_nHeight - 7;
	pDrawPort->AddTexture( m_nPosX, nY, nX, m_nPosY + m_nHeight,
										m_rtBottom.U0, m_rtBottom.V0, m_rtBottom.U1, m_rtBottom.V1,
										0xFFFFFFFF );

	for ( i = 0; i < MIXNEW_ITEM_SLOT_COUNT; i++ )
	{
		// Slot item region
		pDrawPort->AddTexture( m_nPosX + m_rcItemSlot[i].Left, m_nPosY + m_rcItemSlot[i].Top,
											m_nPosX + m_rcItemSlot[i].Right, m_nPosY + m_rcItemSlot[i].Bottom,
											m_rtItemSlot.U0, m_rtItemSlot.V0, m_rtItemSlot.U1, m_rtItemSlot.V1,
											0xFFFFFFFF );
	}

	// Close button
	m_btnClose.Render();

	// OK button
	m_btnOK.SetText(_S(5434,"업그레이드"));
	m_btnOK.Render();

	// Cancel button
	m_btnCancel.Render();

	// Render all elements
	pDrawPort->FlushRenderingQueue();

	// Item
	for ( i = 0; i < MIXNEW_ITEM_SLOT_COUNT; i++ )
	{
		if (m_pIconsSlot[i]->IsEmpty() == false)
		{
			m_pIconsSlot[i]->Render(pDrawPort);
			pDrawPort->FlushBtnRenderingQueue( UBET_ITEM );
		}
	}
	// Text in title
	pDrawPort->PutTextEx( _S( 5433, "마스터 스톤" ), m_nPosX + MIXNEW_TITLE_TEXT_OFFSETX,			
										m_nPosY + MIXNEW_TITLE_TEXT_OFFSETY, 0xFFFFFFFF );

	nX = m_nPosX + MIXNEW_DESC_TEXT_SX;
	nY = m_nPosY + MIXNEW_DESC_TEXT_SY + 20;
	COLOR tv_col;
	for( int iDesc = 0; iDesc < m_nStringCount; iDesc++ )
	{
		if(iDesc == 6) tv_col = 0xC87238FF; 
		else tv_col = 0xC5C5C5FF;
			pDrawPort->PutTextEx( m_strMixDesc[iDesc], nX , nY, tv_col );
		nY += _pUIFontTexMgr->GetLineHeight();
	}

	m_strItemSlot[0] = _S( 5433, "마스터 스톤");
	m_strItemSlot[1] = _S( 2736, "장비 아이템");
	int tv_size =  _pUIFontTexMgr->GetFontSpacing() + _pUIFontTexMgr->GetFontWidth();
	pDrawPort->PutTextEx( m_strItemSlot[0], 
		m_nPosX + 62 - m_strItemSlot[0].Length()* tv_size/2 , m_nPosY + MIXNEW_ITEM_SLOT_SIZE*2 + 5, 0x929090FF );
	pDrawPort->PutTextEx( m_strItemSlot[1], 
		m_nPosX + 152 - m_strItemSlot[1].Length()* tv_size/2 , m_nPosY + MIXNEW_ITEM_SLOT_SIZE*2 +5, 0x929090FF );
	
	// Flush all render text queue
	pDrawPort->EndTextEx();
}
예제 #16
0
// ------------------------------------------------------------------------------
// Name : Render
// Desc :
// ------------------------------------------------------------------------------
void CUIPetItemMix::Render()
{
	CDrawPort* pDrawPort = CUIManager::getSingleton()->GetDrawPort();

	// Set skill learn texture
	pDrawPort->InitTextureData( m_ptdBaseTexture );

// Add render regions -----------------------------------------------------------------------------------------------
	// Background up
	pDrawPort->AddTexture( m_nPosX, m_nPosY, m_nPosX + m_nWidth, m_nPosY + PROCESS_TOP_HEIGHT,
										m_rtBackgroundTop.U0, m_rtBackgroundTop.V0, m_rtBackgroundTop.U1, m_rtBackgroundTop.V1,
										0xFFFFFFFF );

	// Background down 
	pDrawPort->AddTexture( m_nPosX, m_nPosY+PROCESS_TOP_HEIGHT, m_nPosX + m_nWidth, m_nPosY + m_nHeight,
										m_rtBackgroundBtm.U0, m_rtBackgroundBtm.V0, m_rtBackgroundBtm.U1, m_rtBackgroundBtm.V1,
										0xFFFFFFFF );

	// Render Title Text
	pDrawPort->PutTextEx( _S( 2459, "제작" ) , m_nPosX + PROCESS_TITLE_TEXT_OFFSETX,				
										m_nPosY + PROCESS_TITLE_TEXT_OFFSETY );

	// Render Process Type
	if( m_nPetType == DRAGON_WEAPON )
		pDrawPort->PutTextExCX( _S( 2460, "드래곤 웨폰 제작" ), m_nPosX + 106, m_nPosY + 35, COLOR_TITLE );
	else if( m_nPetType == KNIGHT_AMOR )
		pDrawPort->PutTextExCX( _S( 2461, "나이트 메어 방어구 제작" ), m_nPosX + 106, m_nPosY + 35, COLOR_TITLE );

	// Process Item Scroll bar
	m_sbProcessItem.Render();

	// List box of Need Item Desc
	m_lbPreconditionDesc.Render();

	// Close button
	m_btnClose.Render();
	
	// Process button ( A, B )
	if( m_nPetType == DRAGON_WEAPON )
		m_btnOK[0].Render();
	else if( m_nPetType == KNIGHT_AMOR )
	{
		m_btnOK[1].Render();
		m_btnOK[2].Render();
	}

	// Cancel button
	m_btnCancel.Render();

	pDrawPort->FlushRenderingQueue();


	// Render Process Item
	CTString m_strShortDesc;
	int	nX = SLEARN_SLOT_SX;
	int	nY = SLEARN_SLOT_SY;

	int	iEnd = m_sbProcessItem.GetScrollPos() + PRODUCT_SLOT_ROW;
	if( iEnd > m_vecIcons.size() )
		iEnd = m_vecIcons.size();

	for ( int i = m_sbProcessItem.GetScrollPos(); i < iEnd; i++ )
	{
		if( !m_vecIcons[i]->IsEmpty() )
		{
			// render Item
			m_vecIcons[i]->SetPos ( nX, nY );
			m_vecIcons[i]->Render(pDrawPort);
			
			
			// render Item desc 
			CItemData* pItemData = _pNetwork->GetItemData ( m_vecIcons[i]->getIndex() );
			const char* szItemName = _pNetwork->GetItemName ( m_vecIcons[i]->getIndex() );
			
			pDrawPort->PutTextExCX( CTString ( szItemName ), m_nPosX + 122, m_nPosY + nY + 8, 0xC3C3C3ff );
												
			nY += SLEARN_SLOT_OFFSETY;
		}
	}
	pDrawPort->FlushBtnRenderingQueue( UBET_ITEM );

	// Flush all render text queue
	pDrawPort->EndTextEx();

	pDrawPort->InitTextureData( m_ptdBaseTexture );

	nX = SLEARN_SLOT_SX;
	nY = SLEARN_SLOT_SY;

	// render sel outline
	if ( m_nSelectProcessItem != -1 )
	{
		int BoxX, BoxY;
		
		int nOffset = m_nSelectProcessItem - m_sbProcessItem.GetScrollPos();

		if ( nOffset >= 0 && nOffset < PROCESS_SLOT_ROW )
		{
			BoxX = m_nPosX + nX -1 ; 
			BoxY = m_nPosY + nY + ( SLEARN_SLOT_OFFSETY *  nOffset ) -1;

			
			pDrawPort->AddTexture( BoxX, BoxY,	BoxX + 34, BoxY + 34,
											m_rtSelOutline.U0, m_rtSelOutline.V0, m_rtSelOutline.U1, m_rtSelOutline.V1,
											0xffffffff );
		}
	}
	pDrawPort->FlushRenderingQueue();
}