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

167 lines
5.9 KiB
C++

#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<std::string>& 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<Raid> 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];
};