Files
2022-10-26 12:25:11 +08:00

197 lines
5.1 KiB
C++

#include "SunClientPrecompiledHeader.h"
#ifdef _YJ_FISHING_SYSTEM_000933
#include "InterfaceManager.h"
#include "uiFishingAction/uiFishingAction.h"
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
WzID uiFishingAction::m_wzID[eDIALOG_FISHING_ACTION_MAX] =
{
StrToWzID("B001"),// eDIALOG_FISHING_ACTION_EXIT_BTN,
StrToWzID("PI00"),// eDIALOG_FISHING_ACTION_GAuGE_RECT_PIC,
StrToWzID("ST00"),// eDIALOG_FISHING_ACTION_RESULT_TEXT,
};
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
uiFishingAction::uiFishingAction(InterfaceManager * pUIMan) : uiBase(pUIMan)
{
m_pctrlGaugeRectPic = NULL;
m_pctrlResultText = NULL;
m_bShow = FALSE;
m_fGaugeSize = 0.f;
m_hGaugeTexture = g_pSunRenderer->x_pManagerTexture->LoadTexture( "Data\\Interface\\etc\\FishingWindow_Loding_bar.tga" ,TLS_ORIGINAL_SIZE | TLS_NO_MIPMAP | TLS_NO_MULTITHREAD);
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
uiFishingAction::~uiFishingAction()
{
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
void uiFishingAction::Init(CDrawBase* pDrawBase)
{
uiBase::Init(pDrawBase);
m_bShow = FALSE;
InitControl();
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
void uiFishingAction::Release()
{
if( m_hGaugeTexture != INVALID_HANDLE_VALUE )
{
g_pSunRenderer->x_pManagerTexture->DestroyTexture( m_hGaugeTexture );
m_hGaugeTexture = INVALID_HANDLE_VALUE;
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
void uiFishingAction::OnUpdateSolarDialog()
{
if( ! m_bShow )
{
ShowDialog(FALSE);
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
void uiFishingAction::OnRenderSolarDialog()
{
if(m_hGaugeTexture && m_pctrlGaugeRectPic)
{
RECT rtGauge = m_pctrlGaugeRectPic->GetSizeRect();
float fSrcX = 199.f;
float fSrcY = 14.f;
float fDstX = (float)(m_DwRealGauge * fSrcX) / 1000.f;
float fDstY = 14.f;
g_pSunRenderer->RenderTexture(m_hGaugeTexture, (float)rtGauge.left, (float)rtGauge.top, fDstX, fDstY, 0, 0, fSrcX, fSrcY );
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
void uiFishingAction::SetTimer(DWORD dwTime)
{
m_dwGaugeSpeed = dwTime;
m_dwTempGauge = 0;
m_DwRealGauge = 0;
m_dwOldTime = 0;
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
void uiFishingAction::Process(DWORD dwTick)
{
DWORD dwCurTime = timeGetTime();
float fTemp = 0.f;
if(0 == m_dwOldTime)
m_dwOldTime = dwCurTime;
if(m_dwOldTime < dwCurTime)
{
fTemp = ((float)(dwCurTime - m_dwOldTime)/10.f);
}
m_dwOldTime = dwCurTime;
m_dwTempGauge += (DWORD)(m_dwGaugeSpeed * fTemp);
if(2000 > m_dwTempGauge)
{
if(1000 > m_dwTempGauge)
{
m_DwRealGauge += (DWORD)(m_dwGaugeSpeed * fTemp);
}
else
{
if((DWORD)(m_dwGaugeSpeed * fTemp) < m_DwRealGauge)
m_DwRealGauge -= (DWORD)(m_dwGaugeSpeed * fTemp);
}
}
else
{
m_dwTempGauge = 0;
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
void uiFishingAction::OnShowWindow(BOOL val)
{
if( val )
{
m_bShow = TRUE;
}
else
{
m_bShow = FALSE;
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
void uiFishingAction::MessageProc(SI_MESSAGE * pMessage)
{
switch ( pMessage->eResultMsg )
{
case RT_MSG_LBUTTONCLICK:
{
switch ( getControlIDToPos( pMessage->dwCtrlID ) )
{
case eDIALOG_FISHING_ACTION_EXIT_BTN:
{
OnShowWindow(FALSE);
}
break;
case eDIALOG_FISHING_ACTION_GAUGE_RECT_PIC:
{
}
break;
case eDIALOG_FISHING_ACTION_RESULT_TEXT:
{
}
break;
}
}
break;
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
void uiFishingAction::InitControl()
{
m_pctrlResultText = (CCtrlStaticWZ*)getControl(eDIALOG_FISHING_ACTION_RESULT_TEXT);
assert(m_pctrlResultText);
if(m_pctrlResultText)
{
m_pctrlResultText->SetTextWZ("");
}
m_pctrlGaugeRectPic = (CCtrlPictureWZ*)getControl(eDIALOG_FISHING_ACTION_GAUGE_RECT_PIC);
assert(m_pctrlGaugeRectPic);
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
#endif //_YJ_FISHING_SYSTEM_000933