Beispiel #1
0
void CWndShopCtrl::OnDraw(C2DRender* p2DRender) 
{
	CPoint pt( 3, 3 );
	CRect rect = GetClientRect();

	for( int i = 0; i < MAX_CART; i++ )
	{
		int x = i % 6;
		int y = i / 6;		
		CItemBase* pItemBase = m_pItemElem[ i ];
		if( pItemBase )
		{
			if( ((CItemElem*)pItemBase)->IsFlag( CItemElem::expired ) )
				pItemBase->GetTexture()->Render2( p2DRender, CPoint( x * 35, y * 35 ), D3DCOLOR_ARGB( 255, 255, 100, 100 ) );
			else
				pItemBase->GetTexture()->Render( p2DRender, CPoint( x * 35, y * 35 ) );
			
			CRect rectHittest = CRect( x * 35, y * 35 + 3, x * 35 + 35, y * 35 + 35 + 3);
			CPoint point = GetMousePoint();
			if( rectHittest.PtInRect( point ) )
			{
				CPoint point2 = point;
				ClientToScreen( &point2 );
				ClientToScreen( &rectHittest );

				g_WndMng.PutToolTip_Item( pItemBase, point2, &rectHittest );
			}

			CItemElem* pItemElem = (CItemElem*)pItemBase;
			if( pItemElem->GetProp()->dwPackMax > 1 )
			{
				//short n	= m_nBuy[i];
				//if( IsUsingItem( pItemBase ) )
				//	n = pItemBase->GetExtra();																		
				short m_nItemNum	= pItemElem->m_nItemNum;
				if( pItemElem->GetExtra() > 0 )
				    m_nItemNum	-= (short)pItemElem->GetExtra();

				TCHAR szTemp[ 35 ];
				_stprintf( szTemp, "%d", m_nItemNum );
				//_stprintf( szTemp, "%d", n );
			    CD3DFont* pOldFont = p2DRender->GetFont();//adeilson
		        p2DRender->SetFont( CWndBase::m_Theme.m_pFontWndNewTitle );
				CSize size = m_p2DRender->m_pFont->GetTextExtent( szTemp );
				m_p2DRender->TextOut( x * 35 + 35 - size.cx, y * 35 + 35 - size.cy, szTemp, 0xFF000000 );
				m_p2DRender->TextOut( x * 35 + 34 - size.cx, y * 35 + 34 - size.cy, szTemp, 0xFF85FF8A );
				p2DRender->SetFont( pOldFont );

				//_stprintf( szTemp, "%d", n );
				//CSize size = p2DRender->m_pFont->GetTextExtent( szTemp );
				//p2DRender->TextOut( x * 35 + 35 - size.cx, y * 35 + 35 - size.cy, szTemp, 0xff1010ff );
			}
		}
	}
}
Beispiel #2
0
BOOL CWndSummonAngel::OnDropIcon( LPSHORTCUT pShortcut, CPoint point )
{
	int isValid = ITEM_INVALID;
	CItemElem* pItemElem  = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId );
	if( m_nSelecCtrl > -1 && !m_MatDie[m_nSelecCtrl].isUse)
	{
		if( m_nSelecCtrl < 10 && (pItemElem->GetProp()->dwID == II_GEN_MAT_ORICHALCUM01 || pItemElem->GetProp()->dwID == II_GEN_MAT_ORICHALCUM01_1))
		{
			if( pItemElem->m_nItemNum > pItemElem->GetExtra() )
				isValid = ITEM_VALID;
			else
				isValid = ITEM_MAX_OVERFLOW;
		}
		else if( m_nSelecCtrl > 9 && m_nSelecCtrl < 20 && (pItemElem->GetProp()->dwID == II_GEN_MAT_MOONSTONE || pItemElem->GetProp()->dwID == II_GEN_MAT_MOONSTONE_1))
		{
			if( pItemElem->m_nItemNum > pItemElem->GetExtra() )
				isValid = ITEM_VALID;
			else
				isValid = ITEM_MAX_OVERFLOW;
		}

	}	
	switch (isValid)
	{
		case ITEM_VALID:
			{
				SetDie(pItemElem);
				break;					
			}
		case ITEM_MAX_OVERFLOW:
			{
				// Max overflow Error Msg.
				g_WndMng.OpenMessageBox( prj.GetText( TID_GAME_SUMMONANGEL_ERROR1 ) );
				break;
			}
		case ITEM_INVALID:
			{
				// Invalid Item Error Msg.
				break;
			}
	}
	return TRUE;
}
int CWndGuildMeritCtrl::GetTotalCount()
{
	int nCount = 0;
	CItemElem* pItemElem = NULL;
	
	for( int i=0; i<(int)( m_pItemContainer.size() ); i++ )
	{
		pItemElem = (CItemElem*)m_pItemContainer[i];		
		if( pItemElem )
			nCount += pItemElem->GetExtra();
	}

	return nCount;
}