/// 2011.10.12 - prodongi #include "stdafx.h" #include "SUIRaidSiegeProgressSiegeWnd.h" #include "SUIRaidSiegeStatusWnd.h" #include "SGameManager.h" #include "SGameOption.h" #include "KUIControlGauge.h" #include "KUIControlStatic.h" #include "SUIDefine.h" #include "SMessengerMgr.h" SUIRaidSiegeProgressSiegeWnd::SUIRaidSiegeProgressSiegeWnd(SGameManager* pGameManager) : SUIRaidSiegeProgressBaseWnd(pGameManager) { } SUIRaidSiegeProgressSiegeWnd::~SUIRaidSiegeProgressSiegeWnd() { } void SUIRaidSiegeProgressSiegeWnd::PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam ) { switch (nMessage) { case KUI_MESSAGE::KGENWND_MOVE: { LimitMoveWnd(); } break; } SUIWnd::PumpUpMessage(lpszControlID, nMessage, lparam, wparam); } void SUIRaidSiegeProgressSiegeWnd::OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd ) { } bool SUIRaidSiegeProgressSiegeWnd::InitControls( KPoint kPos ) { SetCustomMovingRect(GetRect()); addOpacityList(); m_gaugeDefenseHp = dynamicCast(GetChild("gauge_01")); m_gaugeOffenseHp = dynamicCast(GetChild("gauge_02")); m_defenseName = dynamicCast(GetChild("member_text_01")); m_offenseName = dynamicCast(GetChild("member_text_02")); if (m_gaugeDefenseHp) { m_gaugeDefenseHp->SetMax(100); } if (m_gaugeOffenseHp) { m_gaugeOffenseHp->SetMax(100); } return true; } void SUIRaidSiegeProgressSiegeWnd::addOpacityList() { m_opacityChecker.addChild(this, "titlebar"); m_opacityChecker.addChild(this, "titlebar_deco"); m_opacityChecker.addChild(this, "outframe_01"); m_opacityChecker.addChild(this, "outframe_02"); m_opacityChecker.addChild(this, "titlebar_text"); m_opacityChecker.addChild(this, "text_01"); m_opacityChecker.addChild(this, "member_text_01"); m_opacityChecker.addChild(this, "text_05"); m_opacityChecker.addChild(this, "member_text_02"); } void SUIRaidSiegeProgressSiegeWnd::start(int defenseHp, int offenseHp, int ownerType) { setOwnerType(defenseHp, offenseHp, ownerType); m_gaugeDefenseHp->SetGauge(defenseHp, 0); m_gaugeOffenseHp->SetGauge(offenseHp, 0); } void SUIRaidSiegeProgressSiegeWnd::initialize() { m_ownerType = -1; m_time = 0; m_opponentName.clear(); setGuildName(m_offenseName, ""); setGuildName(m_defenseName, ""); } void SUIRaidSiegeProgressSiegeWnd::setOpponentName(char const* opponentName) { setOpponentName(m_ownerType, opponentName); } void SUIRaidSiegeProgressSiegeWnd::setOpponentName(int ownerType, char const* opponentName) { char const* myGuildName = m_GuildMgr.GetGuildName(); m_opponentName = opponentName; if (OFFENSE == ownerType) { setGuildName(m_offenseName, myGuildName); setGuildName(m_defenseName, opponentName); } else { setGuildName(m_offenseName, opponentName); setGuildName(m_defenseName, myGuildName); } } void SUIRaidSiegeProgressSiegeWnd::setGuildName(KUIControlStatic* nameCtrl, char const* guildName) { std::string name; XStringUtil::Format(name, "%s", guildName); nameCtrl->SetCaption(name.c_str()); } void SUIRaidSiegeProgressSiegeWnd::Process(DWORD dwTime) { SUIWnd::Process(dwTime); DWORD elapsedtime = 0; if (m_time) elapsedtime = dwTime - m_time; m_time = dwTime; m_opacityChecker.update(elapsedtime, m_mouseX, m_mouseY, this); } void SUIRaidSiegeProgressSiegeWnd::setOwnerType(int defenseHp, int offenseHp, int ownerType) { if (-1 != m_ownerType) { /// 공수 교대 ‰瑛?때 if (m_ownerType != ownerType) { changeOwner(ownerType); } } m_ownerType = ownerType; if (OFFENSE == m_ownerType) { // 게이지 남은 양에 따라 텍스처 바꿔줌 // 2012.02.03 - servantes setHPGaugeTexture( offenseHp, m_gaugeOffenseHp, 11 ); m_gaugeDefenseHp->SetBack(c_szDEF_SPR_NAME, "common_gauge_titanium_monster_middle"); } else { m_gaugeOffenseHp->SetBack(c_szDEF_SPR_NAME, "common_gauge_titanium_monster_middle"); // 게이지 남은 양에 따라 텍스처 바꿔줌 // 2012.02.03 - servantes setHPGaugeTexture( offenseHp, m_gaugeDefenseHp, 11 ); } } void SUIRaidSiegeProgressSiegeWnd::changeOwner(int newOwnerType) { SUIRaidSiegeStatusWnd* parent = dynamicCast(GetParent()); if (!parent) return ; parent->changeSiegeOwner(newOwnerType); setOpponentName(newOwnerType, m_opponentName.c_str()); }