197 lines
5.1 KiB
C++
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
|