Files
Sun1602/Client/GameClient/Interface/ChaosSystem/ChaosSystemMan.h
T
2022-10-26 12:25:11 +08:00

130 lines
4.5 KiB
C++

#pragma once
#ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND
#include "uiBaseMan.h"
class uiChaosZoneBattle;
class uiChaosZoneRankBattle;
class uiChaosZoneSSQ;
class uiChaosZoneArena;
class uiChaosZonePVP;
class uiChaosZoneHistory;
class uiChaosZoneInfo;
class uiChaosZoneResurrection;
class uiChaosZonePassword;
class uiChaosZoneResult;
class uiChaosZoneTimer;
#ifdef _NA_006800_20130703_BATTLE_GROUND_VOTE_SYSTEM
class uiChaosZoneVote;
class uiChaosZoneVoteResult;
#endif //_NA_006800_20130703_BATTLE_GROUND_VOTE_SYSTEM
#ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH
class uiChaosZoneGoldRush;
#endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH
struct IM_CHAOS_SYSTEM_MANAGER
{
static const DWORD CHAOSZONE_BATTLE;
#ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH
static const DWORD CHAOSZONE_GOLDRUSH;
#else
static const DWORD CHAOSZONE_RANK_BATTLE;
#endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH
static const DWORD CHAOSZONE_ARENA;
static const DWORD CHAOSZONE_SSQ;
static const DWORD CHAOSZONE_PVP;
static const DWORD CHAOSZONE_HISTORY;
static const DWORD CHAOSZONE_INFO;
static const DWORD UI_END; //여기까지 메인ui 탭 개수
static const DWORD BATTLE_GROUND_RESURRECTION_POPUP;
static const DWORD CHAOSZONE_PASSWORD;
static const DWORD CHAOSZONE_RESULT;
static const DWORD CHAOSZONE_TIMER;
#ifdef _NA_006800_20130703_BATTLE_GROUND_VOTE_SYSTEM
static const DWORD CHAOSZONE_VOTE;
static const DWORD CHAOSZONE_VOTE_RESULT;
#endif //_NA_006800_20130703_BATTLE_GROUND_VOTE_SYSTEM
#ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH
static const DWORD CHAOSZONE_WIDE_INFO;
#endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH
};
class uiChaosSystemMan : public uiBaseMan
{
public:
enum ePacketPending
{
ePKBOOL_BATTLEGROUND_BASE = 0,
ePKBOOL_BATTLEGROUND_RESERVATION_SYN,
ePKBOOL_BATTLEGROUND_RESERVATION_CANCLE_SYN,
ePKBOOL_BATTLEGROUND_GET_OPEN_TIME_SYN,
#ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH
ePKBOOL_GOLDRUSH_BASE,
ePKBOOL_GOLDRUSH_RESERVATION_SYN,
ePKBOOL_GOLDRUSH_RESERVATION_CANCLE_SYN,
ePKBOOL_GOLDRUSH_GET_OPEN_TIME_SYN, // 이게 왜 있지?
#endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH
#ifdef _NA_008679_20160202_REWORK_BATTLEGROUND
ePKBOOL_BATTLE_GROUND_RESERVATION_COUNT_SYN,
#endif //_NA_008679_20160202_REWORK_BATTLEGROUND
ePKBOOL_BATTLEGROUND_MAX,
};
public:
uiChaosSystemMan(InterfaceManager *ui_manager_ptr);
virtual ~uiChaosSystemMan();
virtual void OnInitialize();
virtual void OnRelease();
virtual void Process(DWORD tick_count);
virtual void OnReset();
virtual void NetworkProc(MSG_BASE* recv_packet);
virtual void NetworkProcWorld(MSG_BASE* recv_packet);
virtual void InitPKBooleans();
void ShowChaosZone(DWORD chaos_window_id, bool is_show);
void OpenChaosZone(DWORD tab_index, bool value);
static void HotKeyToggleChaoszoneDialog();
void ToggleChaoszoneDialog(bool is_force_close = false);
void WaitGague(bool is_show, int second = 5, bool is_ban = false);
void Unlocks();
#ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH
DWORD get_pending_dialog_id();
#endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH
#ifdef _NA_008679_20160202_REWORK_BATTLEGROUND
RECT GetUIPosition() { return window_position_; }
void SetUIPosition(RECT rect) { window_position_ = rect; }
#endif //_NA_008679_20160202_REWORK_BATTLEGROUND
private:
uiChaosZoneBattle* ui_chaoszone_battle_;
uiChaosZoneRankBattle* ui_chaoszone_rank_battle_;
uiChaosZoneSSQ* ui_chaoszone_ssq_;
uiChaosZoneArena* ui_chaoszone_arena_;
uiChaosZonePVP* ui_chaoszone_pvp_;
uiChaosZoneHistory* ui_chaoszone_history_;
uiChaosZoneInfo* ui_chaoszone_info_;
uiChaosZoneResurrection* ui_chaoszone_resurrection_;
uiChaosZonePassword* ui_chaoszone_password_;
uiChaosZoneResult* ui_chaoszone_result_;
uiChaosZoneTimer* ui_chaoszone_timer_;
#ifdef _NA_006800_20130703_BATTLE_GROUND_VOTE_SYSTEM
uiChaosZoneVote* ui_chaoszone_vote_;
uiChaosZoneVoteResult* ui_chaoszone_vote_result_;
#endif //_NA_006800_20130703_BATTLE_GROUND_VOTE_SYSTEM
#ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH
uiChaosZoneGoldRush* ui_chaoszone_goldrush_;
#endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH
RECT window_position_;
DWORD chaos_system_windows_size_;
DWORD last_window_id_;
CTimerSimple wait_timer_; // 로딩 전 캐스팅 타이머
int wait_second_;
bool is_ban_cast_; // 로딩 전 캐스팅이 추방 캐스팅인지 (기본은 입장)
};
#endif//_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND