⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 streetstalltitletip.cpp

📁 墨香最新私服
💻 CPP
字号:
#include "stdafx.h"
#include "StreetStallTitleTip.h"
#include "./interface/cFont.h"

#define BALLOON_BORDER		10

CStreetStallTitleTip::CStreetStallTitleTip()
{
	m_fgColor	= RGB_HALF(0,200,0);
	m_TitleLen	= 0;
	m_lTall		= 0;
	m_wFontIdx	= 0;
	m_bActive	= TRUE;
	m_bShow		= FALSE;
}

CStreetStallTitleTip::~CStreetStallTitleTip()
{

}
/*
void CStreetStallTitleTip::SetTitle(char * szTitle)
{
	if( szTitle == NULL )	return;
	if( *szTitle == 0 )		return;

//	m_TitleLen = strlen( szTitle );
//	ASSERTMSG(m_TitleLen < 39, "object name is very long");
//	strncpy( m_sztitle, szTitle, m_TitleLen+1 );
	SafeStrCpy( m_sztitle, szTitle, MAX_STREETSTALL_TITLELEN );
	m_TitleLen = strlen( m_sztitle );
	int strPixelLen = CFONT_OBJ->GetTextExtentEx(m_wFontIdx, m_sztitle, m_TitleLen);
	SetPosX(-strPixelLen/2);

	cBalloonOutline::SetBalloonSize(strPixelLen+8, 30);
}
*/
void CStreetStallTitleTip::SetTitle(char * szTitle)
{
	if( szTitle == NULL )	return;
	if( *szTitle == 0 )		return;

	int nLen = strlen( szTitle );
	if( nLen >= MAX_STREETSTALL_TITLELEN ) return;

//	char buf[128];
	int nCpyNum = 0;

	m_nLineNum = 0;

	while( nLen > SS_TITLE_LENGTH )
	{
		if( ( szTitle + SS_TITLE_LENGTH ) != CharNext( CharPrev( szTitle, szTitle + SS_TITLE_LENGTH ) ) )
			nCpyNum = SS_TITLE_LENGTH - 1;
		else
			nCpyNum = SS_TITLE_LENGTH;

		strncpy( m_szChatMsg[m_nLineNum], szTitle, nCpyNum );
		m_szChatMsg[m_nLineNum][nCpyNum] = 0;

		m_ChatMsgLen[m_nLineNum] = nCpyNum;

		nLen -= nCpyNum;
		szTitle += nCpyNum;
		if( *szTitle == ' ' ) ++szTitle;	//扼牢 霉臂磊啊 胶其捞胶啊 酒聪档废...

		if( ++m_nLineNum >= SS_TITLE_LENGTH-1 ) break;
	}

	if( nLen > 0 && m_nLineNum < SS_TITLE_LINE )
	{
		strncpy( m_szChatMsg[m_nLineNum], szTitle, SS_TITLE_LENGTH );
		m_szChatMsg[m_nLineNum][SS_TITLE_LENGTH] = 0;
		if( nLen > SS_TITLE_LENGTH )
			m_ChatMsgLen[m_nLineNum] = nCpyNum;
		else
			m_ChatMsgLen[m_nLineNum] = nLen;
		++m_nLineNum;
	}

	int strPixelLen = CFONT_OBJ->GetTextExtentEx(m_wFontIdx, m_szChatMsg[0], m_ChatMsgLen[0]);
	SetPosX(-strPixelLen/2);

	cBalloonOutline::SetBalloonSize(strPixelLen+8, 30, m_nLineNum);
}
/*
BOOL CStreetStallTitleTip::Render(LONG absX, LONG absY)
{
	if(!m_bActive)	return FALSE;
	if(!m_bShow)	return FALSE;
	
	cBalloonOutline::RenderOutline( float(absX+m_lPosX), float(absY+m_lTall-17), float(absX), 17);

	// 咆胶飘
	RECT rect = {(long)(absX + m_lPosX+BALLOON_BORDER), (long)(absY + m_lTall+BALLOON_BORDER-17), 1, 1};
	if( *m_sztitle != 0 )
	{
		CFONT_OBJ->RenderFont(m_wFontIdx, m_sztitle, m_TitleLen, &rect, RGBA_MERGE( RGB_HALF(70,70,70), 255 ));
	}

	return TRUE;
}
*/

BOOL CStreetStallTitleTip::Render(LONG absX, LONG absY)
{
	if(!m_bActive) return FALSE;

/*	
	if( m_dwStartTime + m_dwDisappearTime > gCurTime )
	{
		m_bShow = TRUE;
	}
	else
	{
		m_dwStartTime = m_dwDisappearTime = 0;
		InitChatMsg();
		m_bShow = FALSE;
	}
*/
	if(!m_bShow) return FALSE;

	if( m_nLineNum == 0 ) return FALSE;

	LONG lLineHeight = 15;
	LONG lMiddleTotalHeight = 2 + lLineHeight * m_nLineNum;
	LONG lPosX = absX + m_lPosX;
	LONG lPosY = absY + m_lTall - lMiddleTotalHeight - 10;	//2 = linespace , 10 = tail height

	// RaMa - 04.11.29  ->盲泼苞 畴痢惑篮 捞 窃荐甫 荤侩茄促.
	cBalloonOutline::RenderOutlineSimple( (float)lPosX, (float)lPosY, (float)absX, lMiddleTotalHeight );
//	cBalloonOutline::RenderOutline( (float)lPosX, (float)lPosY, (float)absX, lMiddleTotalHeight );


	// 咆胶飘
	RECT rect;
	for( int i = 0 ; i < m_nLineNum ; ++i )
	{
		if( m_szChatMsg[i][0] != 0 )
		{
			SetRect( &rect, (long)(lPosX + BALLOON_BORDER),
							(long)(lPosY + BALLOON_BORDER + lLineHeight * i ), 1, 1 );
			CFONT_OBJ->RenderFont(m_wFontIdx, m_szChatMsg[i], m_ChatMsgLen[i], &rect, RGBA_MERGE( /*m_fgColor,*/RGB_HALF(70,70,70), 255 ) );
		}	
	}

//	RECT rect = {(long)(absX + m_lPosX + BALLOON_BORDER), (long)(absY + m_lTall + BALLOON_BORDER), 1, 1};
//	if( *m_szChatMsg != 0 )
//	{
//		CFONT_OBJ->RenderFont(m_wFontIdx, m_szChatMsg, m_ChatMsgLen, &rect, RGBA_MERGE( RGB_HALF(70,70,70), 255 ));
//		//CFONT_OBJ->RenderFont(m_wFontIdx, m_szChatMsg, m_ChatMsgLen, &rect, RGBA_MERGE( m_fgColor, 255 ));
//	}

	return TRUE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -