#pragma once //#include "SUIWnd.h" // 2011.09.02 - servantes class KUIControlStatic; class KUIControlScrollBase; #define PART_SLOT_COUNT 4 class SUIDungeonStoneWnd : public SUIWnd { // 2011.09.09 - servantes struct DungeonInfo { DungeonInfo() { nDugeonID = nLv = nSiegeCnt = UserCnt = nApplicationCnt = nRate = 0; bAlliance = false; } int nDugeonID; // 던전번호 int nApplicationCnt; // 레이드 참여한 길드 숫자 int nRate; // 세율 std::string strGuild; // 소유길드 이름 std::string strMaster; // 소유길드 마스터 이름 bool bAlliance; // 소유길드 연합여부 int UserCnt; // 소유길드 인원 std::string strDungeonName; // 던전이름 int nLv; // 던전레벨 int nSiegeCnt; // 시즈인원 int nRaidCnt; // 2011.11.15 레이드 인원 - prodongi }; // 2011.09.09 - servantes struct Raid { Raid( std::string _strGuildName , std::string _strMasterName , int _nMasterLv , int _nUserCnt , int _nTime ) : strGuildName ( _strGuildName ) , strMasterName ( _strMasterName ) , nMasterLv ( _nMasterLv ) , nUserCnt ( _nUserCnt ) , nTime ( _nTime ) { } std::string strGuildName; std::string strMasterName; int nMasterLv; int nUserCnt; // 길드원 int nTime; // 시간 }; enum { STATUS_IDLE, STATUS_RAID, STATUS_REST_BEFORE_SIEGE, STATUS_SIEGE, STATUS_REST_AFTER_SIEGE }; // STATUS_IDLE 은 사용하지 않음.. public: SUIDungeonStoneWnd( SGameManager* pGameManager ) : SUIWnd( pGameManager ), m_nListCnt(0) {}; virtual ~SUIDungeonStoneWnd(); virtual bool InitControls( KPoint kPos ); virtual bool InitData( bool bReload = false ); virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam ); virtual void ProcMsgAtStatic( SGameMessage* pMsg ); virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true ); protected: void SetDungeonInfoCaption(DungeonInfo dungeon); std::string GetListCaption(Raid raid); std::string GetTimeString( float f_Time ); void SetDungeonInfo(struct SMSG_NPC_DIALOG* pNPCDlgMsg); void SetRaidList(struct SMSG_NPC_DIALOG* pNPCDlgMsg); void SetControlButton(struct SMSG_NPC_DIALOG* pNPCDlgMsg); void UpdateStoneInfo(); void SortRaidList(); void GetStringList( std::vector& rStrList, std::string Text ); std::string GetDungeonRank(int nLv); void ClearList(); void ClearDungeonInfo(); int GetLocalFlag(); /// 2011.12.15 m_vecRaidList.nTime 데이타로 1순위 마크들을 show/hide 시킨다 - prodongi void refreshFirstRankMarks(int index); private: enum { MAX_SHOW_LIST = 4 }; /// 2011.10.13 화면에 보여지는 최대 공대 개수 int m_nListCnt; DungeonInfo m_sDungeonInfo; std::vector m_vecRaidList; std::string m_strHanDle[3]; // 2011.09.02 - servantes virtual void OnDeviceLost(); void refreshInitImg(); void refreshCardImg(); void insert_string_staticcontrol(const char* ptr_control_name, const char* ptr_option, const char* ptr_content); void visible_staticcontrol(const char* ptr_control_name, bool bShow); // 던전 정보 void insert_dungeon_info_help_title(); // 2011.09.07 - servantes void insert_dungeon_info_title(); void insert_dungeon_title(int id_string); void insert_dungeon_title(const char* ptr_dungeon_name); void insert_dungeon_grade_title(); void insert_dungeon_grade(int id_level); void insert_seize_apply_level_title(); void insert_seize_apply_level(int id_level); void insert_seize_member_count_title(); void insert_seize_member_count(int id_member_count); void insert_raid_member_count_title(); void insert_raid_member_count(int id_member_count); void insert_tax_rate_title(); void insert_tax_rate(float rate); void insert_dungeon_boss_title(); void insert_dungeon_boss(int id_name_boss, int id_name_boss2); // 던전 소유 길드 정보 void insert_own_guild_info_title(); void insert_own_guild(const char* ptr_guild_name); void insert_guild_boss_name_title(); void insert_guild_boss_name(const char* ptr_boss_name); void insert_alliance_guild_title(int id_string); void insert_alliance_guild(const char* ptr_guild_name); void insert_guild_member_title(int id_string); void insert_guild_member(int count_member); // 레이드 현황 void insert_raid_situation_title(); void insert_raid_help_title(); void insert_raid_help2_title(); // 2011.09.15 - servantes // 레이드 현황 정보 void raid_slot_active(int count_slot); void raid_slot_visible(int id_slot, bool bShow); void raid_slot_insert_info(int id_slot, Raid* ptr_raid_info); // 리더(길드장,연합길드장)마크 표시 void visible_leader_mark(bool bShow); // 2011.09.09 - servantes : 리더마크 표시 // 1번슬롯 표시 void visible_1st_slot_select(bool bShow); // 2011.09.09 - servantes : 1번슬롯 표시 /// 2012.01.11 레이드/시즈 진행 상황 void setStatus(int status); K3DTextureSPtr m_spTexture; std::string m_strIllustImg; KUIControlScrollBase* m_pScrollBar; KUIControlStatic* m_pSlot_leader_mark; // 2011.09.09 - servantes : 리더마크 KUIControlStatic* m_pSlot_select; // 2011.09.09 - servantes : 1번슬롯 표시 KUIControlStatic* m_pSlot_number_title[PART_SLOT_COUNT]; KUIControlStatic* m_pSlot_guildName[PART_SLOT_COUNT]; KUIControlStatic* m_pSlot_timeAttack_title[PART_SLOT_COUNT]; KUIControlStatic* m_pSlot_timeAttack[PART_SLOT_COUNT]; KUIControlStatic* m_pSlot_guildMemberCount_title[PART_SLOT_COUNT]; KUIControlStatic* m_pSlot_guildMemberCount[PART_SLOT_COUNT]; KUIControlStatic* m_pSlot_guildBossName_title[PART_SLOT_COUNT]; KUIControlStatic* m_pSlot_guildBossName[PART_SLOT_COUNT]; KUIControlStatic* m_pSlot_bg[PART_SLOT_COUNT]; };