107 lines
3.0 KiB
C++
107 lines
3.0 KiB
C++
//////////////////////////////////////////////////////////////////////////
|
|
// Name : SUIAwakening.h
|
|
// Desc : 각성
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
#pragma once
|
|
|
|
//#include "SUIWnd.h" // UI 공통 클래스
|
|
#include "SInventoryMgr.h"
|
|
#include "SUIDisplayInfo.h"
|
|
|
|
|
|
const DWORD TIME_WNDCLOSE = 1500;
|
|
const DWORD TIME_BOUNCE = 1000; // 5개 Wnd Total.
|
|
const DWORD TIME_INTERVAL_SLOT = 150;
|
|
const DWORD TIME_BOUNCE_GAP = 500;
|
|
const BYTE COUNT_OPTION = 5;
|
|
const float BOUNCE_ACCEL = 2.0f;
|
|
|
|
const char arOptionNameWnd[COUNT_OPTION][3][16] = { { "outframe_01","text_bg_01", "text_point_01" },
|
|
{ "outframe_02","text_bg_02", "text_point_02" },
|
|
{ "outframe_03","text_bg_03", "text_point_03" },
|
|
{ "outframe_04","text_bg_04", "text_point_04" },
|
|
{ "outframe_05","text_bg_05", "text_point_05" } };
|
|
|
|
|
|
const char c_szStartEffectAniName[16] = "start_ani_01";
|
|
const char c_szEndEffectAniName[16] = "end_ani_01";
|
|
|
|
|
|
enum eAWAKENINGSTATUS{
|
|
STATUS_NORMAL,
|
|
STATUS_ING_AWAKENING, // 각성중..
|
|
STATUS_ING_UNAWAKENING, // 각성 봉인중..
|
|
STATUS_COMPLETE // 완료
|
|
};
|
|
|
|
enum eSLOTSTATUS {
|
|
SLOT_STATUS_NORMAL,
|
|
SLOT_STATUS_START,
|
|
SLOT_STATUS_END
|
|
};
|
|
|
|
typedef struct {
|
|
DWORD dwOption;
|
|
int nValue;
|
|
DWORD dwTime;
|
|
DWORD dwPreTime;
|
|
BYTE nStatus; // 0:처음 1: 움직이는중 2:완료
|
|
} tagOption;
|
|
|
|
|
|
class SUIAwakeningWnd : public SUIWnd
|
|
{
|
|
public:
|
|
|
|
SUIAwakeningWnd( SGameManager * pGameManager, SUIDisplayInfo* pDisplayInfo );
|
|
virtual ~SUIAwakeningWnd();
|
|
|
|
virtual SUIWnd* CreateWnd( const char* szFile, KUIWndManager* pWndManager, KPoint kPos, int nWindowID );
|
|
virtual void Render( KViewportObject *viewport,bool isFront );
|
|
|
|
virtual bool InitControls( KPoint kPos );
|
|
virtual bool InitData( bool bReload = false );
|
|
void InitShowOptionWnd();
|
|
void InitSlotOptionAndTime();
|
|
void InitSlotBounceStartPosition();
|
|
|
|
virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true );
|
|
|
|
virtual void ProcMsgAtStatic( SGameMessage* pMsg );
|
|
|
|
void SetSlotOptionAndTime(SInventorySlot* pSlot, DWORD dwTime);
|
|
void SetSlotBounceStartPosition(int nOffSet);
|
|
void SetCaptionByResult();
|
|
void SetCaptionOptionName(int nIndex, DWORD dwOption);
|
|
void SetCaptionOptionValue(int nIndex, DWORD dwOption, int nValue);
|
|
void SetBounce(DWORD dwTime);
|
|
void SetStatus(eAWAKENINGSTATUS Status);
|
|
void SetShowSlot(int nSlot, bool bShow);
|
|
|
|
virtual void Process(DWORD dwTime);
|
|
void ProcBounceEffectWnd(DWORD dwTime);
|
|
void ProcSetBounceSlots(DWORD dwTime);
|
|
|
|
private:
|
|
|
|
SUIDisplayInfo* m_pDisplayInfo;
|
|
|
|
tagOption m_stOption[COUNT_OPTION];
|
|
|
|
DWORD m_dwPastTime;
|
|
DWORD m_dwStartTime;
|
|
|
|
int m_nOriginPosition[3]; // 결과적으로 Control이 있어야 되는 위치.
|
|
int m_nBounceStartPosition; // 위에서 떨어질 위치.
|
|
int m_nBounceBottomPosition; // 다시 위로 팅겨져야 되는 위치.
|
|
|
|
float nSlotSpeed;
|
|
|
|
DWORD dwDownTime;
|
|
DWORD dwUpTime;
|
|
|
|
bool bAwaken; // 각성 / 궁극강화
|
|
|
|
};
|