📄 myimage.cpp
字号:
// MyImage.cpp : implementation file
//
#include "stdafx.h"
#include "MyShell.h"
#include "MyImage.h"
#include "MyShellDlg.h"
#include "Hero.h"
#include "3DGameMap.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMyImage
CMyImage::CMyImage()
{
m_bImageLoad = false ;
m_bMouseMove = false ;
m_uFrame = 0 ;
m_ShowRect.left = 0 ;
m_ShowRect.top = 0 ;
m_nImageTypeID = 0 ;
m_dwImageID = 0 ;
m_bImgZoom = false ;
m_nCurMoney = 0 ;
m_btMilNum = 0 ;
m_btThoNum = 0 ;
m_btHunNum = 0 ;
m_btGoldStar = 0 ;
m_btSillerStar = 0 ;
m_btCopperStar = 0 ;
m_nPosition = 0 ;
}
CMyImage::~CMyImage()
{
}
BEGIN_MESSAGE_MAP(CMyImage, CButton)
//{{AFX_MSG_MAP(CMyImage)
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_RBUTTONDOWN()
ON_WM_LBUTTONDBLCLK()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMyImage message handlers
BOOL CMyImage::Init(int xPos, int yPos, char *ImageID, BYTE btItemType, int nItemPos )
{
CRect rect ;
CMyImage::GetWindowRect ( rect ) ;
m_IntPoint.x = rect.left - xPos ;
m_IntPoint.y = rect.top - yPos ;
m_nWidth = rect.Width() ;
m_nHeight = rect.Height() ;
m_btItemType = btItemType ;
switch ( btItemType )
{
case NORMAL_IMAGE:
strcpy ( m_strAni, g_strControlAni ) ;
m_nItemPos = nItemPos ;
break ;
case ITEM_IMAGE:
m_nItemPos = nItemPos ;
break ;
case BG_IMAGE:
strcpy ( m_strAni, g_strControlAni ) ;
m_nItemPos = nItemPos ;
break ;
case SKILL_IMAGE:
strcpy( m_strAni, g_strMagicAni ) ;
break ;
case NPCITEM_IMAGE:
m_nItemPos = nItemPos ;
break ;
case BOOTHITEM_IMAGE:
strcpy(m_strAni, "ani/ItemMinIcon.Ani");
break;
default:
break ;
}
if ( ImageID != NULL )
{
m_bImageLoad = true ;
CMySize Size = { 0, 0 } ;
if ( m_btItemType != ITEM_IMAGE && m_btItemType != NPCITEM_IMAGE )
{
strcpy ( m_strImageID, ImageID ) ;
CAni* pSizeAni = g_objGameDataSet.GetDataAni ( ( char * )m_strAni, ImageID, EXIGENCE_IMMEDIATE ) ;
if ( pSizeAni != NULL )
Size = pSizeAni->GetSize ( m_uFrame ) ;
else
return false;
m_ShowRect.right = Size.iWidth ;
m_ShowRect.bottom = Size.iHeight ;
}
}
return true ;
}
BOOL CMyImage::InsertImage(char *ImageID, DWORD dwImageID, int nImageTypeID, BOOL bImgZoom )
{
m_bImageLoad = true ;
m_bImgZoom = bImgZoom ;
m_dwImageID = dwImageID ;
m_nImageTypeID = nImageTypeID ;
CMySize Size = { 0, 0 } ;
switch ( m_btItemType )
{
case ITEM_IMAGE:
break ;
case MEDAL_IMAGE:
break ;
case FACE_IMAGE:
break ;
case NPCITEM_IMAGE:
break ;
case EMBLEM_IMAGE:
break ;
case PETFACE_IMAGE:
break;
case SMALLPETFACE_IMAGE:
break;
default:
{
strcpy ( m_strImageID, ImageID ) ;
CAni* pSizeAni = g_objGameDataSet.GetDataAni ( ( char * )m_strAni, ImageID, EXIGENCE_IMMEDIATE ) ;
if ( pSizeAni != NULL )
Size = pSizeAni->GetSize ( m_uFrame ) ;
else
return false ;
m_ShowRect.right = Size.iWidth ;
m_ShowRect.bottom = Size.iHeight ;
}
break ;
}
return true ;
}
void CMyImage::RemoveImage()
{
m_bImageLoad = false ;
}
void CMyImage::Show(int x, int y)
{
m_Point = CPoint ( x + m_IntPoint.x, y + m_IntPoint.y ) ;
if ( m_bMouseMove && ( m_btItemType == ITEM_IMAGE || m_btItemType == NPCITEM_IMAGE || m_btItemType == BOOTHITEM_IMAGE ) )
{
CAni* ShowAni = g_objGameDataSet.GetDataAni ( ( char * )g_strControlAni, "Image2", EXIGENCE_IMMEDIATE ) ;
if ( ShowAni != NULL )
{
RECT rect = { 0,
0,
32,
32 } ;
ShowAni->ShowEx( 0,
m_Point.x,
m_Point.y,
&rect,
m_nWidth,
m_nHeight ) ;
if (!m_bImageLoad && m_nPosition !=0
&& m_nPosition != DLG_IMPROVE
&& m_nPosition != DLG_IDENTIFY
&& m_nPosition != DLG_ADDAUCITEM
&& m_nPosition != DLG_AUCTION
&& m_btItemType == ITEM_IMAGE)
{
CMySize FontSize;
CMyBitmap::GetFontSize(FontSize);
g_objGameDataSet.ShowInfoBack(m_Point.x - 5 - FontSize.iWidth + 10, m_Point.y - FontSize.iHeight - 17,
strlen(g_objGameDataSet.GetStr( 10530 + m_nPosition ))*FontSize.iWidth + 10,
13 + 10) ;
CMyBitmap::ShowString( m_Point.x - FontSize.iWidth + 10,
m_Point.y - FontSize.iHeight - 12,
0xffffff,
g_objGameDataSet.GetStr( 10530 + m_nPosition ) ) ;
}
}
}
if ( m_bImageLoad )
{
// show effect
ShowItemEffect();
switch ( m_btItemType )
{
case ITEM_IMAGE:
{
CItem *pItem = g_objHero.GetItem( m_dwImageID, false ) ;
if ( pItem != NULL )
{
BOOL bScale = true ;
if ( m_bImgZoom )
{
bScale = false ;
}
if ( m_bMouseMove )
{
pItem->ShowMiniItem( m_Point.x ,
m_Point.y,bScale);
}
else
{
pItem->ShowMiniItem( m_Point.x,
m_Point.y,bScale);
}
}
}
break ;
case NPCITEM_IMAGE:
{
CItem *pItem = g_objHero.m_objPlayerDummy.GetEquipment( m_nPosition ) ;
if ( pItem != NULL )
{
BOOL bScale = true ;
if ( m_bImgZoom )
{
bScale = false ;
}
if ( m_bMouseMove )
{
pItem->ShowMiniItem( m_Point.x,
m_Point.y,bScale);
}
else
{
pItem->ShowMiniItem( m_Point.x,
m_Point.y,bScale );
}
}
}
break ;
case PETFACE_IMAGE:
{
CAni *pAni = g_objGameDataSet.GetPetFaceIcon(m_nImageTypeID, EXIGENCE_IMMEDIATE ) ;
if ( pAni != NULL )
{
if ( m_bImgZoom )
{
pAni->ShowEx( 0,
m_Point.x,
m_Point.y,
CRect(0,0,128,128),
m_nWidth,m_nHeight) ;
}
else
{
pAni->ShowEx( 1,
m_Point.x,
m_Point.y,
CRect(0,0,128,128),
m_nWidth,m_nHeight) ;
}
}
}
break;
case SMALLPETFACE_IMAGE:
{
CAni *pAni = g_objGameDataSet.GetPetFaceIcon(m_nImageTypeID, EXIGENCE_IMMEDIATE ) ;
if ( pAni != NULL )
{
if ( m_bImgZoom )
{
pAni->Show( 2,
m_Point.x,
m_Point.y ) ;
}
else
{
pAni->Show( 3,
m_Point.x,
m_Point.y ) ;
}
}
CItem* pPet = g_objHero.GetItem (m_dwImageID);
if (pPet)
{
char strLev[16];
sprintf(strLev,"%d",pPet->GetAmountLimit ());
CMyBitmap::ShowString (m_Point.x,m_Point.y,0xffffff,strLev);
}
}
break;
case FACE_IMAGE:
{
CAni *pAni = g_objGameDataSet.GetPlayerFaceIcon( m_dwImageID, m_nImageTypeID, EXIGENCE_IMMEDIATE ) ;
if ( pAni != NULL )
{
if ( m_bImgZoom )
{
pAni->ShowEx( 0,
m_Point.x,
m_Point.y,
CRect(0,0,128,128),
m_nWidth,m_nHeight) ;
}
else
{
pAni->Show( 1,
m_Point.x,
m_Point.y ) ;
}
}
}
break ;
case EMBLEM_IMAGE:
{
CAni *pAni = g_objGameDataSet.GetEmblemIcon( m_dwImageID, EXIGENCE_IMMEDIATE ) ;
pAni->Show( 0,
m_Point.x,
m_Point.y ) ;
}
break ;
case MEDAL_IMAGE:
{
CAni *pAni = g_objGameDataSet.GetMedal( m_dwImageID, EXIGENCE_IMMEDIATE ) ;
if ( pAni != NULL )
{
if ( m_bImgZoom )
{
pAni->Show( 0,
m_Point.x,
m_Point.y ) ;
}
else
{
pAni->Show( 1,
m_Point.x,
m_Point.y ) ;
}
}
}
break ;
case SKILL_IMAGE:
{
CAni* ShowAni = g_objGameDataSet.GetDataAni ( ( char * ) m_strAni,
m_strImageID,
EXIGENCE_IMMEDIATE ) ;
if ( ShowAni != NULL )
{
if ( !m_bImgZoom )
{
ShowAni->Show ( m_uFrame,
m_Point.x,
m_Point.y ) ;
}
else
{
RECT rect = { 0, 0, 50, 50 } ;
ShowAni->ShowEx( m_uFrame,
m_Point.x,
m_Point.y,
&rect,
32,
32 ) ;
}
if (!m_nImageTypeID)
{
CMyBitmap::ShowBlock(m_Point.x,m_Point.y,m_Point.x+36,m_Point.y+36,0xac000000);
}
}
}
break ;
case BOOTHITEM_IMAGE:
{
CAni* ShowAni = g_objGameDataSet.GetDataAni ( ( char * ) m_strAni,
m_strImageID,
EXIGENCE_IMMEDIATE ) ;
if ( ShowAni != NULL )
{
if (!m_bImgZoom )
ShowAni->Show ( m_uFrame,
m_Point.x,
m_Point.y ) ;
else
ShowAni->ShowEx ( m_uFrame,
m_Point.x,
m_Point.y,
m_ShowRect,
m_nWidth,
m_nHeight ) ;
}
}
break;
default:
{
CAni* ShowAni = g_objGameDataSet.GetDataAni ( ( char * ) m_strAni,
m_strImageID,
EXIGENCE_IMMEDIATE ) ;
if ( ShowAni != NULL )
{
if ( m_btItemType == BG_IMAGE )
ShowAni->Show ( m_uFrame,
m_Point.x,
m_Point.y ) ;
else
ShowAni->ShowEx ( m_uFrame,
m_Point.x,
m_Point.y,
m_ShowRect,
m_nWidth,
m_nHeight ) ;
}
}
break ;
}
}
this->MouseMoveText () ;
}
void CMyImage::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your code to draw the specified item
}
BOOL CMyImage::GetImageLoadState()
{
return m_bImageLoad ;
}
char * CMyImage::GetImageID()
{
return m_strImageID ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -