Files
Leviathan/Client/Game/game/Interface/WorldMap/SUIWorldDetailMapWnd.h
T
2026-06-01 12:46:52 +02:00

73 lines
2.6 KiB
C++

/// 2010.11.17 - prodongi
#ifndef _SUIWorldDetailMapWnd_h_
#define _SUIWorldDetailMapWnd_h_
//#include "SUIWnd.h"
#include "SNPCResourceDB.h"
//#include "Util.h"
#include "SUIWorldMapWnd.h" /// 2011.07.21 - prodongi
typedef std::vector<SNpcResourceDB::NPCRenderInfo> vecNpcInfo;
typedef std::vector<SUIWorldMapWnd::sDungeonGateInfo> vecDungeonGateInfo; /// 2011.07.21 - prodongi
class SUIWorldDetailMapWnd : public SUIWnd
{
public:
SUIWorldDetailMapWnd( SGameManager* pGameManager );
virtual ~SUIWorldDetailMapWnd();
virtual bool SUIWorldDetailMapWnd::InitData( bool bReload );
virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam );
virtual void ProcMsgAtStatic( SGameMessage* pMsg );
void Process(DWORD dwTime, DWORD elapsedtime);
void createNpc(vecNpcInfo const& npcList);
void createDungeonGate(vecDungeonGateInfo const& dungeonGateList); /// 2011.07.21 - prodongi
void setType(int type) { m_type = type; }
void setWorldRect(KRect const& worldRect) { m_worldRect = worldRect; }
bool isClosed() const { return m_isClosed; }
void setIndex(int index) { m_index = index; } /// 2011.06.02 - prodongi
void beginAlpha();
void endAlpha();
void setPlayerRotation(float radian); /// 2011.03.14 - prodongi
//void refreshNpcPos(KRect const& offset); /// 2011.03.15 test 코드, 혹시 몰르니 남겨둔다 - prodongi
/// 2011.08.30 - prodongi
void convertWorldToUiPos(KPoint const& worldPos, KPoint& uiPos);
/// 2011.10.28 디테일 맵의 npc 아이콘은 완료 아이콘으로 바꾼다. - prodongi
void changeNpcIconToFinish(std::vector<int> const& changeList);
/// 2011.10.28 디테일 맵의 npc 아이콘은 원래의 아이콘으로 복구한다. - prodongi
void restoreNpcIconToOriginal(std::vector<int> const& restoreList);
protected:
void procNpcPeriodic();
void buttonClick(LPCSTR lpszControlID, DWORD lparam, DWORD wparam);
void setPlayerWorldPos(int worldX, int worldY);
void refreshPlayerPos();
void setWorldToUiPos(KPoint const& worldPos, KPoint const& uiBasisPos, KUIWnd* wnd);
void checkVisibleIsInRegionPlayer(); /// 2011.03.14 플레이어 컨트롤이 유효한 영역에 있는지 검사 - prodongi
int calcFieldIndex(); /// 2011.06.02 - prodongi
void MoveWorld(KPoint uiPos);
public:
enum { FIELD, VILLAGE, TOWN };
protected:
KUIWnd* m_playerWnd;
KUIWnd* m_rtWorldWnd;
KPoint m_playerWorldPos;
int m_type;
int m_index; /// 2011.06.02 - prodongi
KRect m_worldRect;
vecNpcInfo m_npcList;
sUpdateTime<float> m_updateAlpha;
bool m_isClosed;
float m_playerRadian;
KRect m_oriWorldRect;
bool m_bPointSign;
DWORD m_dwPlayerPointTime;
};
#endif