1545 lines
59 KiB
C++
1545 lines
59 KiB
C++
#include "SunClientPrecompiledHeader.h"
|
|
#ifdef _NA_003923_20120222_GUILD_RENEWAL_UI_RENEWAL
|
|
#include "GuildSystem/uiGuildInstitution.h"
|
|
#include "GuildSystem/uiGuildInfo.h"
|
|
#include "GuildSystem/GuildSystemFunction.h"
|
|
#include "GuildSystem/GuildSystemData.h"
|
|
#include "InterfaceManager.h"
|
|
#include "GlobalFunc.h"
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
#include "GuildSystem/GuildSystemData.h"
|
|
#include "GuildSystem/GuildSystemPacketFunction.h"
|
|
#include "GuildFacilityImageParser.h"
|
|
#include "Mouse.h"
|
|
#include "uiToolTipMan/uiToolTipMan.h"
|
|
#include "GuildFacilityInfoParser.h"
|
|
#include "Hero.h"
|
|
#include "SCSlotContainer.h"
|
|
#include "OptionListParser.h"
|
|
#include "ItemInfoParser.h"
|
|
#include "SkillInfoParser.h"
|
|
#include "SkillTextInfoParser.h"
|
|
#include "StateInfoParser.h"
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
|
|
const DWORD uiGuildInstitution::kDialog_ID = StrToWzID("7343");
|
|
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
WzID uiGuildInstitution::wz_id_[kControl_Size] =
|
|
{
|
|
StrToWzID("C000"),
|
|
StrToWzID("C001"),
|
|
StrToWzID("C003"),
|
|
StrToWzID("C004"),
|
|
StrToWzID("C002"),
|
|
|
|
StrToWzID("B001"),
|
|
StrToWzID("B002"),
|
|
StrToWzID("B005"),
|
|
StrToWzID("B000"),
|
|
StrToWzID("B004"),
|
|
StrToWzID("B007"),
|
|
|
|
StrToWzID("I000"),
|
|
StrToWzID("I001"),
|
|
StrToWzID("I002"),
|
|
|
|
StrToWzID("I003"),
|
|
StrToWzID("I004"),
|
|
StrToWzID("I005"),
|
|
|
|
StrToWzID("S000"),
|
|
|
|
StrToWzID("L000"),
|
|
StrToWzID("L004"),
|
|
StrToWzID("L005"),
|
|
|
|
StrToWzID("L001"),
|
|
StrToWzID("L002"),
|
|
StrToWzID("L003"),
|
|
|
|
StrToWzID("P012"),
|
|
StrToWzID("P015"),
|
|
StrToWzID("P016"),
|
|
|
|
StrToWzID("V000"),
|
|
};
|
|
#else
|
|
const DWORD kInstitutionNumber = 5;
|
|
const DWORD kInstitutionDescriptionCode[kInstitutionNumber] = {
|
|
7324,
|
|
7325,
|
|
7326,
|
|
7327,
|
|
7328};
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
const int kImageWidth = 107;
|
|
const int kImageHeight = 60;
|
|
|
|
uiGuildInstitution::uiGuildInstitution( InterfaceManager* ui_manager )
|
|
{
|
|
institution_image_handle() = INVALID_HANDLE_VALUE;
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
tooltip_manager_ptr_ = NULL;
|
|
mouse_over_pos_ = kControl_Size;
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
}
|
|
|
|
uiGuildInstitution::~uiGuildInstitution()
|
|
{
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
if (institution_image_handle_ != INVALID_HANDLE_VALUE)
|
|
{
|
|
g_pSunRenderer->x_pManagerTexture->DestroyTexture(institution_image_handle_);
|
|
institution_image_handle_ = INVALID_HANDLE_VALUE;
|
|
}
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
}
|
|
|
|
void uiGuildInstitution::Init( CDrawBase* draw_base )
|
|
{
|
|
uiBase::Init(draw_base);
|
|
|
|
RegisterControlPosition(StrToWzID("C000"), kControl_CheckBT_C000);
|
|
RegisterControlPosition(StrToWzID("C001"), kControl_CheckBT_C001);
|
|
RegisterControlPosition(StrToWzID("C002"), kControl_CheckBT_C002);
|
|
RegisterControlPosition(StrToWzID("C003"), kControl_CheckBT_C003);
|
|
RegisterControlPosition(StrToWzID("C004"), kControl_CheckBT_C004);
|
|
#ifdef _NA_008334_20150608_SONNENSCHEIN
|
|
RegisterControlPosition(StrToWzID("C005"), kControl_CheckBT_C005);
|
|
#endif //_NA_008334_20150608_SONNENSCHEIN
|
|
RegisterControlPosition(StrToWzID("B001"), kControl_Button_B001);
|
|
RegisterControlPosition(StrToWzID("B000"), kControl_Button_B000);
|
|
RegisterControlPosition(StrToWzID("B002"), kControl_Button_B002);
|
|
RegisterControlPosition(StrToWzID("B004"), kControl_Button_B004);
|
|
RegisterControlPosition(StrToWzID("B005"), kControl_Button_B005);
|
|
RegisterControlPosition(StrToWzID("B007"), kControl_Button_B007);
|
|
RegisterControlPosition(StrToWzID("S000"), kControl_Text_S000);
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
#else
|
|
RegisterControlPosition(StrToWzID("S002"), kControl_Text_S002);
|
|
RegisterControlPosition(StrToWzID("S003"), kControl_Text_S003);
|
|
RegisterControlPosition(StrToWzID("S004"), kControl_Text_S004);
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
RegisterControlPosition(StrToWzID("L001"), kControl_List_L001);
|
|
RegisterControlPosition(StrToWzID("L002"), kControl_List_L002);
|
|
RegisterControlPosition(StrToWzID("L003"), kControl_List_L003);
|
|
RegisterControlPosition(StrToWzID("V000"), kControl_VScroll_V000);
|
|
RegisterControlPosition(StrToWzID("P012"), kControl_Picture_P012);
|
|
RegisterControlPosition(StrToWzID("P015"), kControl_Picture_P015);
|
|
RegisterControlPosition(StrToWzID("P016"), kControl_Picture_P016);
|
|
RegisterControlPosition(StrToWzID("I000"), kControl_TextImage_I000);
|
|
RegisterControlPosition(StrToWzID("I001"), kControl_TextImage_I001);
|
|
RegisterControlPosition(StrToWzID("I002"), kControl_TextImage_I002);
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
RegisterControlPosition(StrToWzID("I003"), kControl_TextImage_I003);
|
|
RegisterControlPosition(StrToWzID("I004"), kControl_TextImage_I004);
|
|
RegisterControlPosition(StrToWzID("I005"), kControl_TextImage_I005);
|
|
RegisterControlPosition(StrToWzID("L000"), kControl_List_L000);
|
|
RegisterControlPosition(StrToWzID("L004"), kControl_List_L004);
|
|
RegisterControlPosition(StrToWzID("L005"), kControl_List_L005);
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
|
|
CCtrlVScrollWZ* scroll_control =
|
|
static_cast<CCtrlVScrollWZ*>(GetControlWZ_byPosition(kControl_VScroll_V000));
|
|
if (scroll_control != NULL)
|
|
{
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
HASH_TABLE_GUILD_FACILITY_IMAGE_INFO* hash_table =
|
|
GuildFacilityImageParser::Instance()->GetHashTable();
|
|
guild_facility_max_size_ = hash_table->size();
|
|
|
|
int max_range = guild_facility_max_size_ - kListNumber;
|
|
#else
|
|
int max_range = (kInstitutionNumber - kListNumber);
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
max_range = max(max_range, 0);
|
|
scroll_control->SetScrollRangeWZ(0, max_range);
|
|
scroll_control->SetScrollPosWZ(0);
|
|
scroll_control->SetChangeSizeThumb(33);
|
|
}
|
|
|
|
institution_image_handle() = g_pSunRenderer->x_pManagerTexture->LoadTexture(
|
|
"Data\\Interface\\all_split01.tga",
|
|
TLS_ORIGINAL_SIZE | TLS_NO_MIPMAP | TLS_NO_MULTITHREAD);
|
|
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
tooltip_manager_ptr_ = GET_DIALOG_MANAGER(uiToolTipMan, UIMAN_TOOLTIP);
|
|
assert(tooltip_manager_ptr_);
|
|
mouse_over_pos_ = kControl_Size;
|
|
|
|
for (DWORD index = 0; index < kListNumber; ++index)
|
|
{
|
|
CCtrlListWZ* list_control_ptr =
|
|
static_cast<CCtrlListWZ*>(GetControlWZ_byPosition(kControl_List_L000 + index));
|
|
if (list_control_ptr)
|
|
{
|
|
list_control_ptr->SetSellHeight(13);
|
|
list_control_ptr->SetColorSelBar(RGBA(150, 10, 10, 125));
|
|
list_control_ptr->SetDiscardMessage(true);
|
|
}
|
|
list_control_ptr =
|
|
static_cast<CCtrlListWZ*>(GetControlWZ_byPosition(kControl_List_L001 + index));
|
|
if (list_control_ptr)
|
|
{
|
|
list_control_ptr->SetSellHeight(13);
|
|
list_control_ptr->SetColorSelBar(RGBA(150, 10, 10, 125));
|
|
list_control_ptr->SetDiscardMessage(true);
|
|
}
|
|
}
|
|
|
|
CControlWZ* institution_control = NULL;
|
|
for (DWORD index = 0; index < kListNumber; ++index)
|
|
{
|
|
// 일반효과
|
|
institution_control = GetControlWZ_byPosition(kControl_TextImage_I000 + index);
|
|
if (institution_control != NULL)
|
|
{
|
|
// 7138 : 일반효과
|
|
institution_control->SetTextID(7138);
|
|
}
|
|
// 특수효과
|
|
institution_control = GetControlWZ_byPosition(kControl_TextImage_I003 + index);
|
|
if (institution_control != NULL)
|
|
{
|
|
// 7140 : 특수효과
|
|
institution_control->SetTextID(7140);
|
|
}
|
|
}
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
}
|
|
|
|
void uiGuildInstitution::Release()
|
|
{
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
tooltip_manager_ptr_ = NULL;
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
}
|
|
|
|
void uiGuildInstitution::MessageProc( SI_MESSAGE* message )
|
|
{
|
|
if (IsLock())
|
|
return;
|
|
|
|
if (GetMan() == NULL)
|
|
return;
|
|
|
|
switch (message->eResultMsg)
|
|
{
|
|
case RT_MSG_LBUTTONCLICK:
|
|
OnLButtonClick(message);
|
|
break;
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
case RT_MSG_MOUSEOVER:
|
|
{
|
|
OnMouseOver(message);
|
|
}
|
|
break;
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
case RT_MSG_SB_LINETOP:
|
|
case RT_MSG_SB_PAGETOP:
|
|
OnVScrollUp(message);
|
|
break;
|
|
case RT_MSG_SB_LINEBOTTOM:
|
|
case RT_MSG_SB_PAGEBOTTOM:
|
|
OnVScrollDown(message);
|
|
break;
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
case RT_MSG_SB_THUMBTRACK: // 썸을 드래그 하고 있다.
|
|
case RT_MSG_SB_THUMBPOSITION: // 썸을 드래그 한 후 마우스를 놓았다.
|
|
case RT_MSG_SB_ENDSCROLL: // 스크롤이 종료 되었다.
|
|
{
|
|
UpdateAll();
|
|
}
|
|
break;
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
default:
|
|
SolarDialog::MessageProc(message);
|
|
break;
|
|
}
|
|
}
|
|
|
|
bool uiGuildInstitution::OnLButtonClick( SI_MESSAGE* message )
|
|
{
|
|
bool result = true;
|
|
DWORD control_position = GetControlPosition_byID(message->dwCtrlID);
|
|
switch (control_position)
|
|
{
|
|
case kControl_CheckBT_C000:
|
|
case kControl_CheckBT_C001:
|
|
case kControl_CheckBT_C002:
|
|
case kControl_CheckBT_C003:
|
|
case kControl_CheckBT_C004:
|
|
#ifdef _NA_008334_20150608_SONNENSCHEIN
|
|
case kControl_CheckBT_C005:
|
|
#endif //_NA_008334_20150608_SONNENSCHEIN
|
|
{
|
|
uiGuildInfo* ui_guild_info = GET_CAST_DIALOG(uiGuildInfo, uiGuildInfo::kDialog_ID);
|
|
if (ui_guild_info != NULL)
|
|
{
|
|
ui_guild_info->tab_button_controller().OnClickTab(
|
|
control_position - kControl_CheckBT_C000);
|
|
}
|
|
RefreshTab();
|
|
}
|
|
case kControl_Button_B001:
|
|
case kControl_Button_B000:
|
|
case kControl_Button_B002:
|
|
case kControl_Button_B004:
|
|
case kControl_Button_B005:
|
|
case kControl_Button_B007:
|
|
{
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
ProcessButtonClick(control_position);
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
}
|
|
break;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
void uiGuildInstitution::ProcessButtonClick( const DWORD& control_position )
|
|
{
|
|
int scroll_position = 0;
|
|
CCtrlVScrollWZ* scroll_control =
|
|
static_cast<CCtrlVScrollWZ*>(GetControlWZ_byPosition(kControl_VScroll_V000));
|
|
if (scroll_control == NULL)
|
|
{
|
|
return;
|
|
}
|
|
|
|
scroll_position = scroll_control->GetScrollPosWZ();
|
|
CCtrlButtonWZ* institution_control = NULL;
|
|
for (DWORD index = 0; index < kListNumber; ++index)
|
|
{
|
|
if (control_position == (kControl_Button_B001 + index))
|
|
{
|
|
// 업그레이드 버튼
|
|
BASE_GuildFacilityImageInfo* info_ptr =
|
|
GuildFacilityImageParser::Instance()->GetGuildFacilityImageInfo(scroll_position + index + 1);
|
|
|
|
GuildSystem::GuildSystemData::GuildFacilityInfoForClient facility_info;
|
|
if (info_ptr &&
|
|
GuildSystem::GetGuildSystemData().get_guild_facility_info((FCODE)info_ptr->index_, facility_info))
|
|
{
|
|
AskFacilityUpgrade(facility_info.facility_code_);
|
|
}
|
|
}
|
|
if (control_position == (kControl_Button_B000 + index))
|
|
{
|
|
// 활성화 버튼
|
|
BASE_GuildFacilityImageInfo* info_ptr =
|
|
GuildFacilityImageParser::Instance()->GetGuildFacilityImageInfo(scroll_position + index + 1);
|
|
|
|
GuildSystem::GuildSystemData::GuildFacilityInfoForClient facility_info;
|
|
if (info_ptr &&
|
|
GuildSystem::GetGuildSystemData().get_guild_facility_info((FCODE)info_ptr->index_, facility_info))
|
|
{
|
|
AskFacilityActive(facility_info.facility_code_, facility_info.facility_level_);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
|
|
bool uiGuildInstitution::OnVScrollUp( SI_MESSAGE* message )
|
|
{
|
|
CCtrlVScrollWZ* scroll_control =
|
|
static_cast<CCtrlVScrollWZ*>(GetControlWZ_byPosition(kControl_VScroll_V000));
|
|
if (scroll_control != NULL)
|
|
{
|
|
int range_min = 0;
|
|
int range_max = 0;
|
|
int currenct_position = scroll_control->GetScrollPosWZ();
|
|
scroll_control->GetScrollRangeWZ(&range_min, &range_max);
|
|
--currenct_position;
|
|
currenct_position = max(currenct_position, 0);
|
|
currenct_position = min(currenct_position, range_max);
|
|
scroll_control->SetScrollPosWZ(currenct_position);
|
|
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
UpdateAll();
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
bool uiGuildInstitution::OnVScrollDown( SI_MESSAGE* message )
|
|
{
|
|
CCtrlVScrollWZ* scroll_control =
|
|
static_cast<CCtrlVScrollWZ*>(GetControlWZ_byPosition(kControl_VScroll_V000));
|
|
if (scroll_control != NULL)
|
|
{
|
|
int range_min = 0;
|
|
int range_max = 0;
|
|
int currenct_position = scroll_control->GetScrollPosWZ();
|
|
scroll_control->GetScrollRangeWZ(&range_min, &range_max);
|
|
++currenct_position;
|
|
currenct_position = max(currenct_position, 0);
|
|
currenct_position = min(currenct_position, range_max);
|
|
scroll_control->SetScrollPosWZ(currenct_position);
|
|
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
UpdateAll();
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
void uiGuildInstitution::OnShowWindow( BOOL is_show )
|
|
{
|
|
if (is_show == TRUE)
|
|
{
|
|
RefreshTab();
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
mouse_over_pos_ = kControl_Size;
|
|
UpdateAll();
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
|
|
}
|
|
else
|
|
{
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
mouse_over_pos_ = kControl_Size;
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
}
|
|
}
|
|
|
|
void uiGuildInstitution::OnUpdateSolarDialog()
|
|
{
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
UpdateWheelScroll();
|
|
UpdateActiveButtonState();
|
|
#else
|
|
UpdateInstitutionInfo();
|
|
UpdateButtonState();
|
|
UpdateWheelScroll();
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
}
|
|
|
|
void uiGuildInstitution::OnRenderSolarDialog()
|
|
{
|
|
// 시설 이미지 출력
|
|
int scroll_position = 0;
|
|
CCtrlVScrollWZ* scroll_control =
|
|
static_cast<CCtrlVScrollWZ*>(GetControlWZ_byPosition(kControl_VScroll_V000));
|
|
if (scroll_control != NULL)
|
|
{
|
|
scroll_position = scroll_control->GetScrollPosWZ();
|
|
}
|
|
|
|
CControlWZ* picture_control = NULL;
|
|
for (DWORD index = 0; index < kListNumber; ++index)
|
|
{
|
|
picture_control = GetControlWZ_byPosition(kControl_Picture_P012 + index);
|
|
if (picture_control != NULL)
|
|
{
|
|
RECT control_rect = picture_control->GetSizeRect();
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
BASE_GuildFacilityImageInfo* info_ptr =
|
|
GuildFacilityImageParser::Instance()->GetGuildFacilityImageInfo(scroll_position + index + 1);
|
|
if (info_ptr == NULL)
|
|
continue;
|
|
g_pSunRenderer->RenderTexture(
|
|
institution_image_handle(),
|
|
static_cast<float>(control_rect.left),
|
|
static_cast<float>(control_rect.top),
|
|
static_cast<float>(control_rect.right - control_rect.left),
|
|
static_cast<float>(control_rect.bottom - control_rect.top),
|
|
static_cast<float>(info_ptr->x_),
|
|
static_cast<float>(info_ptr->y_),
|
|
static_cast<float>(info_ptr->width_),
|
|
static_cast<float>(info_ptr->height_));
|
|
#else
|
|
g_pSunRenderer->RenderTexture(
|
|
institution_image_handle(),
|
|
static_cast<float>(control_rect.left),
|
|
static_cast<float>(control_rect.top),
|
|
static_cast<float>(control_rect.right - control_rect.left),
|
|
static_cast<float>(control_rect.bottom - control_rect.top),
|
|
0.0f,
|
|
static_cast<float>(kImageHeight * (scroll_position + index)),
|
|
static_cast<float>(kImageWidth),
|
|
static_cast<float>(kImageHeight));
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
}
|
|
}
|
|
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
if (tooltip_manager_ptr_ == NULL)
|
|
{
|
|
return;
|
|
}
|
|
|
|
RenderTooltip(scroll_position); // 툴팁 출력
|
|
#else
|
|
// // [GUILD_RENEWAL] 길드리뉴얼 2차 - 시설 비활성 음영이미지
|
|
CControlWZ* image_control = GetControlWZ(StrToWzID("P006"));
|
|
if (image_control != NULL)
|
|
{
|
|
RECT control_rect = image_control->GetSizeRect();
|
|
g_InterfaceManager.RenderRect(control_rect, WzColor_RGBA(0, 0, 0, 125));
|
|
}
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
}
|
|
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
void uiGuildInstitution::RenderTooltip( const int& scroll_position )
|
|
{
|
|
// 툴팁 계산을 위해서
|
|
int iMouseX = Mouse::Instance()->GetMouseX();
|
|
int iMouseY = Mouse::Instance()->GetMouseY();
|
|
CControlWZ* control_ptr = NULL;
|
|
for (DWORD index = 0; index < kListNumber; ++index)
|
|
{
|
|
control_ptr = GetControlWZ_byPosition(kControl_Text_S000);
|
|
if (control_ptr)
|
|
{
|
|
RECT control_rect = control_ptr->GetSizeRect();
|
|
if (control_rect.left <= iMouseX && control_rect.right >= iMouseX
|
|
&& control_rect.top <= iMouseY && control_rect.bottom >= iMouseY)
|
|
{
|
|
ProcessGuildPointTooltip();
|
|
break;
|
|
}
|
|
}
|
|
control_ptr = GetControlWZ_byPosition(kControl_Picture_P012 + index);
|
|
if (control_ptr != NULL)
|
|
{
|
|
RECT control_rect = control_ptr->GetSizeRect();
|
|
if (control_rect.left <= iMouseX && control_rect.right >= iMouseX
|
|
&& control_rect.top <= iMouseY && control_rect.bottom >= iMouseY)
|
|
{
|
|
ProcessTooltip(scroll_position + index + 1, TOOLTIP_TYPE_IMAGE);
|
|
break;
|
|
}
|
|
}
|
|
control_ptr = GetControlWZ_byPosition(kControl_TextImage_I000 + index);
|
|
if (control_ptr)
|
|
{
|
|
RECT control_rect = control_ptr->GetSizeRect();
|
|
if (control_rect.left <= iMouseX && control_rect.right >= iMouseX
|
|
&& control_rect.top <= iMouseY && control_rect.bottom >= iMouseY)
|
|
{
|
|
ProcessTooltip(scroll_position + index + 1, TOOLTIP_TYPE_NORMAL_EFFECT);
|
|
break;
|
|
}
|
|
}
|
|
control_ptr = GetControlWZ_byPosition(kControl_TextImage_I003 + index);
|
|
if (control_ptr)
|
|
{
|
|
RECT control_rect = control_ptr->GetSizeRect();
|
|
if (control_rect.left <= iMouseX && control_rect.right >= iMouseX
|
|
&& control_rect.top <= iMouseY && control_rect.bottom >= iMouseY)
|
|
{
|
|
ProcessTooltip(scroll_position + index + 1, TOOLTIP_TYPE_SPECIAL_EFFECT);
|
|
break;
|
|
}
|
|
}
|
|
control_ptr = GetControlWZ_byPosition(kControl_Button_B001 + index); // 업그레이드 버튼
|
|
if (control_ptr)
|
|
{
|
|
RECT control_rect = control_ptr->GetSizeRect();
|
|
if (control_rect.left <= iMouseX && control_rect.right >= iMouseX
|
|
&& control_rect.top <= iMouseY && control_rect.bottom >= iMouseY)
|
|
{
|
|
ProcessTooltip(scroll_position + index + 1, TOOLTIP_TYPE_UPGRADE);
|
|
break;
|
|
}
|
|
}
|
|
control_ptr = GetControlWZ_byPosition(kControl_Button_B000 + index); // 활성화 버튼
|
|
if (control_ptr)
|
|
{
|
|
RECT control_rect = control_ptr->GetSizeRect();
|
|
if (control_rect.left <= iMouseX && control_rect.right >= iMouseX
|
|
&& control_rect.top <= iMouseY && control_rect.bottom >= iMouseY)
|
|
{
|
|
ProcessTooltip(scroll_position + index + 1, TOOLTIP_TYPE_ACTIVE);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void uiGuildInstitution::UpdateFacilityListInfo()
|
|
{
|
|
int scroll_position = 0;
|
|
CCtrlVScrollWZ* scroll_control =
|
|
static_cast<CCtrlVScrollWZ*>(GetControlWZ_byPosition(kControl_VScroll_V000));
|
|
if (scroll_control != NULL)
|
|
{
|
|
scroll_position = scroll_control->GetScrollPosWZ();
|
|
}
|
|
|
|
// 리스트 업데이트
|
|
for (DWORD index = 0; index < kListNumber; ++index)
|
|
{
|
|
TCHAR temp_message[INTERFACE_STRING_LENGTH] = {0, };
|
|
CCtrlListWZ* list_control_ptr =
|
|
static_cast<CCtrlListWZ*>(GetControlWZ_byPosition(kControl_List_L000 + index));
|
|
if (list_control_ptr)
|
|
{
|
|
list_control_ptr->DeleteItemAll();
|
|
for (DWORD i = 0; i < 5; ++i)
|
|
{
|
|
BASE_GuildFacilityImageInfo* info_ptr =
|
|
GuildFacilityImageParser::Instance()->GetGuildFacilityImageInfo(scroll_position + index + 1);
|
|
|
|
GuildSystem::GuildSystemData::GuildFacilityInfoForClient facility_info;
|
|
|
|
if (info_ptr == NULL)
|
|
continue;
|
|
|
|
if (!(GuildSystem::GetGuildSystemData().get_guild_facility_info((FCODE)info_ptr->index_, facility_info)))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
const FACILITY_INFO* facility_parser_info =
|
|
GuildFacilityInfoParser::Instance()->GetGuildFacilityInfo(facility_info.facility_code_, i + 1);
|
|
if (facility_parser_info == NULL)
|
|
continue;
|
|
|
|
BASE_OptionList* option_list = OptionListParser::Instance()->GetOptionList(facility_parser_info->passive_option.option_type);
|
|
if (option_list == NULL)
|
|
continue;
|
|
|
|
int list_index = list_control_ptr->InsertItemBack();
|
|
TCHAR level_string[INTERFACE_STRING_LENGTH] = {0, };
|
|
TCHAR format_string[INTERFACE_STRING_LENGTH] = {0, };
|
|
TCHAR option_string[INTERFACE_STRING_LENGTH] = {0, };
|
|
TCHAR option_result[INTERFACE_STRING_LENGTH] = {0, };
|
|
// 7118 : Lv%s : %s
|
|
g_InterfaceManager.GetInterfaceString(7118, format_string);
|
|
g_InterfaceManager.GetInterfaceString(option_list->mdwNameCode, option_string);
|
|
if (facility_parser_info->passive_option.option_value_type == 1) // 수치
|
|
Snprintf(option_result, INTERFACE_STRING_LENGTH, "%s %+d", option_string, facility_parser_info->passive_option.option_value);
|
|
if (facility_parser_info->passive_option.option_value_type == 2 || facility_parser_info->passive_option.option_value_type == 5) // 비율
|
|
Snprintf(option_result, INTERFACE_STRING_LENGTH, "%s %+d%%", option_string, facility_parser_info->passive_option.option_value / 10);
|
|
|
|
Snprintf(level_string, INTERFACE_STRING_LENGTH, "%d", facility_parser_info->facility_level);
|
|
Snprintf(temp_message, INTERFACE_STRING_LENGTH, format_string, level_string, option_result);
|
|
|
|
if (facility_info.facility_level_ == list_index+1)
|
|
{
|
|
list_control_ptr->SetItemWZ(list_index,
|
|
0,
|
|
temp_message,
|
|
StrToWzID("st11"),
|
|
DT_CENTER | DT_VCENTER,
|
|
RGBA(0, 0, 0, 0),
|
|
RGBA(255, 255, 0, 255),
|
|
RGBA(255, 255, 255, 255));
|
|
}
|
|
else
|
|
{
|
|
list_control_ptr->SetItemWZ(list_index,
|
|
0,
|
|
temp_message,
|
|
StrToWzID("st11"),
|
|
DT_CENTER | DT_VCENTER,
|
|
RGBA(0, 0, 0, 0),
|
|
RGBA(128, 128, 128, 100),
|
|
RGBA(255, 255, 255, 255));
|
|
}
|
|
}
|
|
}
|
|
list_control_ptr =
|
|
static_cast<CCtrlListWZ*>(GetControlWZ_byPosition(kControl_List_L001 + index));
|
|
if (list_control_ptr)
|
|
{
|
|
list_control_ptr->DeleteItemAll();
|
|
for (DWORD i = 0; i < 5; ++i)
|
|
{
|
|
BASE_GuildFacilityImageInfo* info_ptr =
|
|
GuildFacilityImageParser::Instance()->GetGuildFacilityImageInfo(scroll_position + index + 1);
|
|
|
|
GuildSystem::GuildSystemData::GuildFacilityInfoForClient facility_info;
|
|
|
|
if (info_ptr == NULL)
|
|
continue;
|
|
|
|
if (!(GuildSystem::GetGuildSystemData().get_guild_facility_info((FCODE)info_ptr->index_, facility_info)))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
const FACILITY_INFO* facility_parser_info =
|
|
GuildFacilityInfoParser::Instance()->GetGuildFacilityInfo(facility_info.facility_code_, i + 1);
|
|
if (facility_parser_info == NULL)
|
|
continue;
|
|
|
|
SkillScriptInfo* skill_info_ptr = SkillInfoParser::Instance()->GetSkillInfo(facility_parser_info->active_option.active_skill_code);
|
|
|
|
if (skill_info_ptr == NULL)
|
|
continue;
|
|
|
|
BASE_ABILITYINFO* ability_info = NULL;
|
|
ability_info = skill_info_ptr->GetAbilityInfoByIndex(0);
|
|
|
|
if (ability_info == NULL)
|
|
continue;
|
|
|
|
TCHAR level_string[INTERFACE_STRING_LENGTH] = {0, };
|
|
TCHAR format_string[INTERFACE_STRING_LENGTH] = {0, };
|
|
TCHAR option_string[INTERFACE_STRING_LENGTH] = {0, };
|
|
TCHAR option_result[INTERFACE_STRING_LENGTH] = {0, };
|
|
// 7118 : Lv%s : %s
|
|
g_InterfaceManager.GetInterfaceString(7118, format_string);
|
|
BASE_SkillTextInfo* skill_text_info = SkillTextInfoParser::Instance()->GetSkillTextInfo(skill_info_ptr->m_dwSkillDesccode);
|
|
if (skill_text_info == NULL)
|
|
continue;
|
|
g_InterfaceManager.GetInterfaceString(skill_text_info->m_dw_DescCode, option_string);
|
|
switch (ability_info->m_iParam[0])
|
|
{
|
|
case VALUE_TYPE_VALUE:
|
|
{
|
|
// 그냥 수치
|
|
Snprintf(option_result, INTERFACE_STRING_LENGTH, "%s %+d", option_string, ability_info->m_iParam[1]);
|
|
}
|
|
break;
|
|
case VALUE_TYPE_PERCENT_PER_CUR:
|
|
{
|
|
Snprintf(option_result, INTERFACE_STRING_LENGTH, "%s %+d%%", option_string, (int)(ability_info->m_iParam[1] / 10.0f));
|
|
}
|
|
break;
|
|
case VALUE_TYPE_PERCENT_PER_MAX:
|
|
{
|
|
Snprintf(option_result, INTERFACE_STRING_LENGTH, "%s %+d%%", option_string, (int)(ability_info->m_iParam[1] / 10.0f));
|
|
}
|
|
break;
|
|
case VALUE_TYPE_RATIO_VALUE:
|
|
{
|
|
Snprintf(option_result, INTERFACE_STRING_LENGTH, "%s %+d%%", option_string, (int)(ability_info->m_iParam[1] / 10.0f));
|
|
}
|
|
}
|
|
|
|
Snprintf(level_string, INTERFACE_STRING_LENGTH, "%d", facility_parser_info->facility_level);
|
|
Snprintf(temp_message, INTERFACE_STRING_LENGTH, format_string, level_string, option_result);
|
|
|
|
int list_index = list_control_ptr->InsertItemBack();
|
|
if (facility_info.facility_level_ == list_index+1
|
|
&& facility_info.facility_active_ == true)
|
|
{
|
|
list_control_ptr->SetItemWZ(list_index,
|
|
0,
|
|
temp_message,
|
|
StrToWzID("st11"),
|
|
DT_CENTER | DT_VCENTER,
|
|
RGBA(0, 0, 0, 0),
|
|
RGBA(255, 255, 0, 255),
|
|
RGBA(255, 255, 255, 255));
|
|
}
|
|
else
|
|
{
|
|
list_control_ptr->SetItemWZ(list_index,
|
|
0,
|
|
temp_message,
|
|
StrToWzID("st11"),
|
|
DT_CENTER | DT_VCENTER,
|
|
RGBA(0, 0, 0, 0),
|
|
RGBA(128, 128, 128, 100),
|
|
RGBA(255, 255, 255, 255));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
|
|
void uiGuildInstitution::UpdateInstitutionInfo()
|
|
{
|
|
TCHAR info_string[INTERFACE_STRING_LENGTH] = {'\0', };
|
|
// 현재 길드 포인트
|
|
CCtrlStaticWZ* guild_point = static_cast<CCtrlStaticWZ*>(GetControlWZ_byPosition(kControl_Text_S000));
|
|
if (guild_point != NULL)
|
|
{
|
|
TCHAR guild_point_value[INTERFACE_STRING_LENGTH] = {'\0', };
|
|
_itot(GuildSystem::GetGuildSystemData().GetGuildInfo().m_GuildGP, guild_point_value, 10);
|
|
g_InterfaceManager.GetInterfaceStringFormat(
|
|
info_string,
|
|
INTERFACE_STRING_LENGTH - 1,
|
|
2303,
|
|
guild_point_value);
|
|
guild_point->SetTextWZ(info_string);
|
|
}
|
|
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
#else
|
|
int scroll_position = 0;
|
|
CCtrlVScrollWZ* scroll_control =
|
|
static_cast<CCtrlVScrollWZ*>(GetControlWZ_byPosition(kControl_VScroll_V000));
|
|
if (scroll_control != NULL)
|
|
{
|
|
scroll_position = scroll_control->GetScrollPosWZ();
|
|
}
|
|
|
|
CControlWZ* institution_control = NULL;
|
|
for (DWORD index = 0; index < kListNumber; ++index)
|
|
{
|
|
// 시설명
|
|
institution_control = GetControlWZ_byPosition(kControl_TextImage_I000 + index);
|
|
if (institution_control != NULL)
|
|
{
|
|
DWORD string_code = GuildSystem::Function::GetInstitutionNameCode(scroll_position + index);
|
|
institution_control->SetTextID(string_code);
|
|
}
|
|
|
|
// 시설 설명
|
|
institution_control = GetControlWZ_byPosition(kControl_Text_S002 + index);
|
|
if (institution_control != NULL)
|
|
{
|
|
institution_control->SetTextID(kInstitutionDescriptionCode[scroll_position + index]);
|
|
institution_control->SetStyle(DT_LEFT | DT_TOP | DT_WORDBREAK);
|
|
}
|
|
}
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
}
|
|
|
|
void uiGuildInstitution::UpdateButtonState()
|
|
{
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
int scroll_position = 0;
|
|
CCtrlVScrollWZ* scroll_control =
|
|
static_cast<CCtrlVScrollWZ*>(GetControlWZ_byPosition(kControl_VScroll_V000));
|
|
if (scroll_control == NULL)
|
|
{
|
|
return;
|
|
}
|
|
scroll_position = scroll_control->GetScrollPosWZ();
|
|
int guild_point = GuildSystem::GetGuildSystemData().GetGuildInfo().m_GuildGP;
|
|
// 업그레이드 버튼 활성화 비활성화 체크
|
|
for (DWORD index = 0; index < kListNumber; ++index)
|
|
{
|
|
// 업그레이드 버튼
|
|
CControlWZ* control_ptr =
|
|
GetControlWZ_byPosition(kControl_Button_B001 + index);
|
|
if (control_ptr)
|
|
{
|
|
BASE_GuildFacilityImageInfo* info_ptr =
|
|
GuildFacilityImageParser::Instance()->GetGuildFacilityImageInfo(scroll_position + index + 1);
|
|
|
|
GuildSystem::GuildSystemData::GuildFacilityInfoForClient facility_info;
|
|
if (info_ptr &&
|
|
GuildSystem::GetGuildSystemData().get_guild_facility_info((FCODE)info_ptr->index_, facility_info))
|
|
{
|
|
const FACILITY_INFO* facility_parser_info =
|
|
GuildFacilityInfoParser::Instance()->GetGuildFacilityInfo(facility_info.facility_code_, facility_info.facility_level_ + 1);
|
|
if (facility_parser_info == NULL)
|
|
{
|
|
GlobalFunc::EnableControl(control_ptr, false);
|
|
|
|
continue;
|
|
}
|
|
|
|
if (facility_info.facility_level_ >= kMaxFacilityLevel)
|
|
{
|
|
GlobalFunc::EnableControl(control_ptr, false);
|
|
}
|
|
else
|
|
{
|
|
bool is_possible = false;
|
|
switch (facility_parser_info->upgrade_type)
|
|
{
|
|
case FUI_ONLY_GUILDPOINT: // 길드포인트로만 업그레이드
|
|
{
|
|
if (guild_point >= (int)facility_parser_info->upgrade_guild_point)
|
|
is_possible = true;
|
|
}
|
|
break;
|
|
case FUI_ONLY_ITEM: // 아이템만 사용함
|
|
{
|
|
is_possible = HaveItem(facility_parser_info->upgrade_item_code);
|
|
}
|
|
break;
|
|
case FUI_GUILDPOINTANDITEM: // 길드포인트, 아이템 둘다 사용
|
|
{
|
|
bool is_have_item = HaveItem(facility_parser_info->upgrade_item_code);
|
|
if (guild_point >= (int)facility_parser_info->upgrade_guild_point &&
|
|
is_have_item == true)
|
|
{
|
|
is_possible = true;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
|
|
GlobalFunc::EnableControl(control_ptr, is_possible);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
GlobalFunc::EnableControl(control_ptr, false);
|
|
}
|
|
}
|
|
}
|
|
#else
|
|
// [GUILD_RENEWAL] 길드리뉴얼 2차
|
|
CCtrlButtonWZ* button_control = NULL;
|
|
|
|
for (DWORD position = kControl_Button_B001; position < (kControl_Button_B007 + 1); ++position)
|
|
{
|
|
button_control = static_cast<CCtrlButtonWZ*>(GetControlWZ_byPosition(position));
|
|
if (button_control == NULL)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
GlobalFunc::EnableControl(button_control, false);
|
|
}
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
}
|
|
|
|
void uiGuildInstitution::UpdateWheelScroll()
|
|
{
|
|
CControlWZ* wheel_rect_control = GetControlWZ(StrToWzID("P006"));
|
|
if (wheel_rect_control == NULL)
|
|
{
|
|
return;
|
|
}
|
|
|
|
RECT wheel_rect = wheel_rect_control->GetSizeRect();
|
|
switch (GetMouseWheelStatus(&wheel_rect))
|
|
{
|
|
case MOUSE_WHEEL_UP:
|
|
OnVScrollUp(NULL);
|
|
break;
|
|
case MOUSE_WHEEL_DOWN:
|
|
OnVScrollDown(NULL);
|
|
break;
|
|
}
|
|
}
|
|
|
|
void uiGuildInstitution::RefreshTab()
|
|
{
|
|
CCtrlButtonCheckWZ* check_button = NULL;
|
|
for (int position = kControl_CheckBT_C000; position < (kControl_CheckBT_C002 + 1); ++position)
|
|
{
|
|
check_button =
|
|
static_cast<CCtrlButtonCheckWZ*>(GetControlWZ(GetControlID_byPosition(position)));
|
|
if (check_button == NULL)
|
|
{
|
|
continue;
|
|
}
|
|
check_button->SetCheckState((position == kControl_CheckBT_C003) ? (true) : (false));
|
|
}
|
|
}
|
|
|
|
#ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
void uiGuildInstitution::ProcessTooltip( const int& facility_order, const FACILITY_TOOLTIP_TYPE& type )
|
|
{
|
|
BASE_GuildFacilityImageInfo* facility_image_info
|
|
= GuildFacilityImageParser::Instance()->GetGuildFacilityImageInfo(facility_order);
|
|
if (facility_image_info == NULL)
|
|
{
|
|
return;
|
|
}
|
|
|
|
int facility_name = 0;
|
|
int facility_explanation = 0;
|
|
switch (type)
|
|
{
|
|
case TOOLTIP_TYPE_NONE:
|
|
{
|
|
// no operation
|
|
return;
|
|
}
|
|
break;
|
|
case TOOLTIP_TYPE_IMAGE:
|
|
{
|
|
facility_name = facility_image_info->facility_name_code_;
|
|
facility_explanation = facility_image_info->facility_explanation_code_;
|
|
ProcessResultTooltip(facility_name, facility_explanation);
|
|
}
|
|
break;
|
|
case TOOLTIP_TYPE_NORMAL_EFFECT:
|
|
{
|
|
// 7138 : 일반효과
|
|
facility_name = 7138;
|
|
// 7139 : 시설을 업그레이드 하면 모든 길드원이 해당 효과를 받을 수 있습니다.
|
|
facility_explanation = 7139;
|
|
ProcessResultTooltip(facility_name, facility_explanation);
|
|
}
|
|
break;
|
|
case TOOLTIP_TYPE_SPECIAL_EFFECT:
|
|
{
|
|
// 7140 : 특수효과
|
|
facility_name = 7140;
|
|
// 7141 : 업그레이드 된 시설을 활성화 하면 모든 길드원이 해당 효과를 받을 수 있습니다.
|
|
facility_explanation = 7141;
|
|
ProcessResultTooltip(facility_name, facility_explanation);
|
|
}
|
|
break;
|
|
case TOOLTIP_TYPE_UPGRADE:
|
|
{
|
|
facility_name = facility_image_info->facility_name_code_;
|
|
facility_explanation = facility_image_info->facility_explanation_code_;
|
|
ProcessResultTooltip(facility_name, facility_explanation, facility_order, TOOLTIP_TYPE_UPGRADE);
|
|
}
|
|
break;
|
|
case TOOLTIP_TYPE_ACTIVE:
|
|
{
|
|
facility_name = facility_image_info->facility_name_code_;
|
|
facility_explanation = facility_image_info->facility_explanation_code_;
|
|
ProcessResultTooltip(facility_name, facility_explanation, facility_order, TOOLTIP_TYPE_ACTIVE);
|
|
}
|
|
break;
|
|
}
|
|
tooltip_manager_ptr_->SetTooltipDialogID(GetDialogKey());
|
|
}
|
|
|
|
void uiGuildInstitution::ProcessGuildPointTooltip()
|
|
{
|
|
TCHAR result_message[INTERFACE_STRING_LENGTH] = {0, };
|
|
|
|
// 7127 : 길드 포인트는 길드가 레벨업을 할 때마다 1포인트씩 획득할 수 있습니다.
|
|
g_InterfaceManager.GetInterfaceString(7127, result_message);
|
|
tooltip_manager_ptr_->InitTooltip();
|
|
tooltip_manager_ptr_->RegisterTooltip(result_message,
|
|
-1,
|
|
22,
|
|
StrToWzID("s210"),
|
|
WzColor_RGBA(255, 255, 255, 255),
|
|
TOOLTIP_BG_WZCOLOR,
|
|
c_dwTOOLTIP_EXTRA_INFO_DT_LEFT);
|
|
|
|
tooltip_manager_ptr_->AddEmptyLineForTooltip();
|
|
|
|
tooltip_manager_ptr_->SetTooltipDialogID(GetDialogKey());
|
|
|
|
}
|
|
|
|
void uiGuildInstitution::ProcessResultTooltip( const int& facility_name_index, const int& facility_explanation_index )
|
|
{
|
|
TCHAR facility_effect_name[INTERFACE_STRING_LENGTH] = {0, };
|
|
TCHAR facility_effect_explanation[INTERFACE_STRING_LENGTH] = {0, };
|
|
|
|
// 이름
|
|
g_InterfaceManager.GetInterfaceString(facility_name_index, facility_effect_name);
|
|
// 설명
|
|
g_InterfaceManager.GetInterfaceString(facility_explanation_index, facility_effect_explanation);
|
|
|
|
tooltip_manager_ptr_->InitTooltip();
|
|
|
|
// 효과 이름
|
|
tooltip_manager_ptr_->RegisterTooltip(facility_effect_name,
|
|
-1,
|
|
22,
|
|
StrToWzID("s210"),
|
|
WzColor_RGBA(217, 117, 0, 255),
|
|
TOOLTIP_BG_WZCOLOR,
|
|
c_dwTOOLTIP_EXTRA_INFO_DT_LEFT);
|
|
|
|
tooltip_manager_ptr_->AddEmptyLineForTooltip();
|
|
|
|
// 효과 설명
|
|
tooltip_manager_ptr_->RegisterTooltip(facility_effect_explanation,
|
|
-1,
|
|
22,
|
|
StrToWzID("s210"),
|
|
WzColor_RGBA(255, 255, 255, 255),
|
|
TOOLTIP_BG_WZCOLOR,
|
|
c_dwTOOLTIP_EXTRA_INFO_DT_LEFT);
|
|
}
|
|
|
|
void uiGuildInstitution::ProcessResultTooltip( const int& facility_name_index, const int& facility_explanation_index, const int& facility_order, const FACILITY_TOOLTIP_TYPE& type )
|
|
{
|
|
TCHAR facility_effect_name[INTERFACE_STRING_LENGTH] = {0, };
|
|
TCHAR facility_effect_explanation[INTERFACE_STRING_LENGTH] = {0, };
|
|
|
|
// 이름
|
|
g_InterfaceManager.GetInterfaceString(facility_name_index, facility_effect_name);
|
|
// 설명
|
|
g_InterfaceManager.GetInterfaceString(facility_explanation_index, facility_effect_explanation);
|
|
|
|
tooltip_manager_ptr_->InitTooltip();
|
|
|
|
// 효과 이름
|
|
tooltip_manager_ptr_->RegisterTooltip(facility_effect_name,
|
|
-1,
|
|
22,
|
|
StrToWzID("s210"),
|
|
WzColor_RGBA(217, 117, 0, 255),
|
|
TOOLTIP_BG_WZCOLOR,
|
|
c_dwTOOLTIP_EXTRA_INFO_DT_LEFT);
|
|
|
|
tooltip_manager_ptr_->AddEmptyLineForTooltip();
|
|
|
|
// 효과 설명
|
|
tooltip_manager_ptr_->RegisterTooltip(facility_effect_explanation,
|
|
-1,
|
|
22,
|
|
StrToWzID("s210"),
|
|
WzColor_RGBA(255, 255, 255, 255),
|
|
TOOLTIP_BG_WZCOLOR,
|
|
c_dwTOOLTIP_EXTRA_INFO_DT_LEFT);
|
|
|
|
BASE_GuildFacilityImageInfo* facility_image_info
|
|
= GuildFacilityImageParser::Instance()->GetGuildFacilityImageInfo(facility_order);
|
|
if (facility_image_info == NULL)
|
|
return;
|
|
|
|
GuildSystem::GuildSystemData::GuildFacilityInfoForClient facility_info;
|
|
if (!(GuildSystem::GetGuildSystemData().get_guild_facility_info((FCODE)facility_image_info->index_, facility_info)))
|
|
return;
|
|
|
|
int current_facility_level = facility_info.facility_level_;
|
|
|
|
tooltip_manager_ptr_->AddEmptyLineForTooltip();
|
|
|
|
TCHAR format_string[INTERFACE_STRING_LENGTH] = {0, };
|
|
TCHAR guild_point_value[INTERFACE_STRING_LENGTH] = {0, };
|
|
if (type == TOOLTIP_TYPE_UPGRADE)
|
|
{
|
|
const FACILITY_INFO* facility_parser_info =
|
|
GuildFacilityInfoParser::Instance()->GetGuildFacilityInfo((FCODE)facility_image_info->index_, (FLEVEL)current_facility_level + 1);
|
|
if (facility_parser_info == NULL)
|
|
return;
|
|
_itot(facility_parser_info->upgrade_guild_point, guild_point_value, 10);
|
|
TCHAR condition_string[INTERFACE_STRING_LENGTH] = {0, };
|
|
|
|
// 7119 : 업그레이드 필요조건
|
|
g_InterfaceManager.GetInterfaceString(7119, condition_string);
|
|
tooltip_manager_ptr_->RegisterTooltip(condition_string,
|
|
-1,
|
|
22,
|
|
StrToWzID("s210"),
|
|
WzColor_RGBA(217, 117, 0, 255),
|
|
TOOLTIP_BG_WZCOLOR,
|
|
c_dwTOOLTIP_EXTRA_INFO_DT_LEFT);
|
|
|
|
int current_guild_point = GuildSystem::GetGuildSystemData().GetGuildInfo().m_GuildGP;
|
|
switch (facility_parser_info->upgrade_type)
|
|
{
|
|
case FUI_ONLY_GUILDPOINT:
|
|
{
|
|
// 7120 : 길드포인트 : %s
|
|
g_InterfaceManager.GetInterfaceString(7120, format_string);
|
|
Snprintf(condition_string, INTERFACE_STRING_LENGTH, format_string, guild_point_value);
|
|
tooltip_manager_ptr_->RegisterTooltip(condition_string,
|
|
-1,
|
|
22,
|
|
StrToWzID("s210"),
|
|
//WzColor_RGBA(255, 255, 255, 255),
|
|
current_guild_point >= (int)facility_parser_info->upgrade_guild_point ? WzColor_RGBA(0, 255, 0, 255) : WzColor_RGBA(128, 128, 128, 100),
|
|
TOOLTIP_BG_WZCOLOR,
|
|
c_dwTOOLTIP_EXTRA_INFO_DT_LEFT);
|
|
}
|
|
break;
|
|
case FUI_ONLY_ITEM:
|
|
{
|
|
TCHAR item_name[MAX_ITEMNAME_LENGTH] = {0, };
|
|
TCHAR num_string[INTERFACE_STRING_LENGTH] = {0, };
|
|
g_InterfaceManager.GetItemName(facility_parser_info->upgrade_item_code, item_name);
|
|
// 7121 : 필요아이템 : %s(%s)
|
|
g_InterfaceManager.GetInterfaceString(7121, format_string);
|
|
Snprintf(num_string, INTERFACE_STRING_LENGTH, "%d/%d", HaveItemNum(facility_parser_info->upgrade_item_code), facility_parser_info->upgrade_item_num);
|
|
Snprintf(condition_string, INTERFACE_STRING_LENGTH, format_string, item_name, num_string);
|
|
tooltip_manager_ptr_->RegisterTooltip(condition_string,
|
|
-1,
|
|
22,
|
|
StrToWzID("s210"),
|
|
HaveItemNum(facility_parser_info->upgrade_item_code) >= facility_parser_info->upgrade_item_num ? WzColor_RGBA(0, 255, 0, 255) : WzColor_RGBA(128, 128, 128, 100),
|
|
TOOLTIP_BG_WZCOLOR,
|
|
c_dwTOOLTIP_EXTRA_INFO_DT_LEFT);
|
|
}
|
|
break;
|
|
case FUI_GUILDPOINTANDITEM:
|
|
{
|
|
// 7120 : 길드포인트 : %s
|
|
g_InterfaceManager.GetInterfaceString(7120, format_string);
|
|
Snprintf(condition_string, INTERFACE_STRING_LENGTH, format_string, guild_point_value);
|
|
tooltip_manager_ptr_->RegisterTooltip(condition_string,
|
|
-1,
|
|
22,
|
|
StrToWzID("s210"),
|
|
current_guild_point >= (int)facility_parser_info->upgrade_guild_point ? WzColor_RGBA(0, 255, 0, 255) : WzColor_RGBA(128, 128, 128, 100),
|
|
TOOLTIP_BG_WZCOLOR,
|
|
c_dwTOOLTIP_EXTRA_INFO_DT_LEFT);
|
|
|
|
TCHAR item_name[MAX_ITEMNAME_LENGTH] = {0, };
|
|
TCHAR num_string[INTERFACE_STRING_LENGTH] = {0, };
|
|
g_InterfaceManager.GetItemName(facility_parser_info->upgrade_item_code, item_name);
|
|
// 7121 : 필요아이템 : %s(%s)
|
|
g_InterfaceManager.GetInterfaceString(7121, format_string);
|
|
Snprintf(num_string, INTERFACE_STRING_LENGTH, "%d/%d", HaveItemNum(facility_parser_info->upgrade_item_code), facility_parser_info->upgrade_item_num);
|
|
Snprintf(condition_string, INTERFACE_STRING_LENGTH, format_string, item_name, num_string);
|
|
tooltip_manager_ptr_->RegisterTooltip(condition_string,
|
|
-1,
|
|
22,
|
|
StrToWzID("s210"),
|
|
HaveItemNum(facility_parser_info->upgrade_item_code) >= facility_parser_info->upgrade_item_num ? WzColor_RGBA(0, 255, 0, 255) : WzColor_RGBA(128, 128, 128, 100),
|
|
TOOLTIP_BG_WZCOLOR,
|
|
c_dwTOOLTIP_EXTRA_INFO_DT_LEFT);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
else if (type == TOOLTIP_TYPE_ACTIVE)
|
|
{
|
|
BASE_GuildFacilityImageInfo* facility_image_info
|
|
= GuildFacilityImageParser::Instance()->GetGuildFacilityImageInfo(facility_order);
|
|
if (facility_image_info == NULL)
|
|
return;
|
|
|
|
GuildSystem::GuildSystemData::GuildFacilityInfoForClient facility_info;
|
|
if (!(GuildSystem::GetGuildSystemData().get_guild_facility_info((FCODE)facility_image_info->index_, facility_info)))
|
|
return;
|
|
|
|
int current_facility_level = facility_info.facility_level_;
|
|
if (current_facility_level <= 0)
|
|
current_facility_level = GetCurrentFacilityActiveLevel(facility_info.facility_code_);
|
|
|
|
const FACILITY_INFO* facility_parser_info =
|
|
GuildFacilityInfoParser::Instance()->GetGuildFacilityInfo((FCODE)facility_image_info->index_, (FLEVEL)current_facility_level);
|
|
TCHAR condition_string[INTERFACE_STRING_LENGTH] = {0, };
|
|
if (facility_parser_info == NULL)
|
|
return;
|
|
|
|
TCHAR num_string[INTERFACE_STRING_LENGTH] = {0, };
|
|
FCODE current_active_level = GetCurrentFacilityActiveLevel((FCODE)facility_parser_info->facility_code);
|
|
if (current_active_level > 0)
|
|
{
|
|
TCHAR format_string[INTERFACE_STRING_LENGTH] = {0, };
|
|
// 7126 : 길드시설 %s레벨이 활성화 중입니다.
|
|
g_InterfaceManager.GetInterfaceString(7126, format_string);
|
|
Snprintf(num_string, INTERFACE_STRING_LENGTH, "%d", current_active_level);
|
|
Snprintf(condition_string, INTERFACE_STRING_LENGTH, format_string, num_string);
|
|
tooltip_manager_ptr_->RegisterTooltip(condition_string,
|
|
-1,
|
|
22,
|
|
StrToWzID("s210"),
|
|
WzColor_RGBA(0, 255, 0, 255),
|
|
TOOLTIP_BG_WZCOLOR,
|
|
c_dwTOOLTIP_EXTRA_INFO_DT_LEFT);
|
|
}
|
|
else
|
|
{
|
|
// 7122 : 활성화 필요조건
|
|
g_InterfaceManager.GetInterfaceString(7122, condition_string);
|
|
tooltip_manager_ptr_->RegisterTooltip(condition_string,
|
|
-1,
|
|
22,
|
|
StrToWzID("s210"),
|
|
WzColor_RGBA(217, 117, 0, 255),
|
|
TOOLTIP_BG_WZCOLOR,
|
|
c_dwTOOLTIP_EXTRA_INFO_DT_LEFT);
|
|
|
|
TCHAR item_name[MAX_ITEMNAME_LENGTH] = {0, };
|
|
g_InterfaceManager.GetItemName(facility_parser_info->active_option.active_item_code, item_name);
|
|
// 7121 : 필요아이템 : %s(%s)
|
|
g_InterfaceManager.GetInterfaceString(7121, format_string);
|
|
Snprintf(num_string, INTERFACE_STRING_LENGTH, "%d/%d",
|
|
HaveItemNum(facility_parser_info->active_option.active_item_code),
|
|
facility_parser_info->active_option.active_item_count);
|
|
Snprintf(condition_string, INTERFACE_STRING_LENGTH, format_string, item_name, num_string);
|
|
tooltip_manager_ptr_->RegisterTooltip(condition_string,
|
|
-1,
|
|
22,
|
|
StrToWzID("s210"),
|
|
HaveItemNum(facility_parser_info->active_option.active_item_code) >=
|
|
facility_parser_info->active_option.active_item_count ? WzColor_RGBA(0, 255, 0, 255) : WzColor_RGBA(128, 128, 128, 100),
|
|
TOOLTIP_BG_WZCOLOR,
|
|
c_dwTOOLTIP_EXTRA_INFO_DT_LEFT);
|
|
}
|
|
}
|
|
}
|
|
|
|
bool uiGuildInstitution::OnMouseOver( SI_MESSAGE* message )
|
|
{
|
|
switch( message->eResultMsg )
|
|
{
|
|
case RT_MSG_MOUSEOVER:
|
|
{
|
|
POSTYPE pos = getCtrlIDToPos( message->dwCtrlID );
|
|
|
|
if ( pos >= kControl_CheckBT_C000 && pos < kControl_Size )
|
|
{
|
|
mouse_over_pos_ = pos;
|
|
}
|
|
else
|
|
{
|
|
mouse_over_pos_ = kControl_Size;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
void uiGuildInstitution::AskFacilityUpgrade(const DWORD& facility_code)
|
|
{
|
|
uiSystemMan* ui_system_manager_ptr = GET_DIALOG_MANAGER(uiSystemMan, UIMAN_SYSTEM);
|
|
if (ui_system_manager_ptr)
|
|
{
|
|
TCHAR result_message[INTERFACE_STRING_LENGTH] = {0, };
|
|
// 7108 : 해당 시설을 업그레이드 하시겠습니까?
|
|
g_InterfaceManager.GetInterfaceString(7108, result_message);
|
|
ui_system_manager_ptr->Sys_SystemMessage(result_message,
|
|
NULL,
|
|
GuildSystem::Function::Callback_GuildFacilityUpgrade,
|
|
uiSystemMessage::kConfirm_Type,
|
|
true,
|
|
0,
|
|
100,
|
|
155536,
|
|
155537,
|
|
facility_code
|
|
);
|
|
}
|
|
}
|
|
|
|
void uiGuildInstitution::AskFacilityActive( const DWORD& facility_code, const DWORD& facility_level )
|
|
{
|
|
const FACILITY_INFO* facility_parser_info =
|
|
GuildFacilityInfoParser::Instance()->GetGuildFacilityInfo((FCODE)facility_code, (FLEVEL)facility_level);
|
|
if (facility_parser_info == NULL)
|
|
return;
|
|
|
|
const BASE_ITEMINFO* item_info = ItemInfoParser::Instance()->GetItemInfo(facility_parser_info->active_option.active_item_code);
|
|
if (item_info == NULL)
|
|
return;
|
|
|
|
uiSystemMan* ui_system_manager_ptr = GET_DIALOG_MANAGER(uiSystemMan, UIMAN_SYSTEM);
|
|
if (ui_system_manager_ptr)
|
|
{
|
|
TCHAR result_message[INTERFACE_STRING_LENGTH] = {0, };
|
|
TCHAR format_string[INTERFACE_STRING_LENGTH] = {0, };
|
|
TCHAR item_name[INTERFACE_STRING_LENGTH] = {0, };
|
|
// 7112 : 해당 시설을 활성화 하기 위해서는 %s 아이템이 필요합니다.\n시설 활성화를 진행 하시겠습니까?
|
|
g_InterfaceManager.GetInterfaceString(7112, format_string);
|
|
g_InterfaceManager.GetItemName( facility_parser_info->active_option.active_item_code, item_name, INTERFACE_STRING_LENGTH );
|
|
Snprintf(result_message, INTERFACE_STRING_LENGTH, format_string, item_name);
|
|
ui_system_manager_ptr->Sys_SystemMessage(result_message,
|
|
NULL,
|
|
GuildSystem::Function::Callback_GuildFacilityActive,
|
|
uiSystemMessage::kConfirm_Type,
|
|
true,
|
|
0,
|
|
100,
|
|
155536,
|
|
155537,
|
|
facility_code
|
|
);
|
|
}
|
|
}
|
|
|
|
bool uiGuildInstitution::HaveItem( const CODETYPE& item_code )
|
|
{
|
|
SCSlotContainer* container_ptr = g_pHero->GetSlotContainer(SI_INVENTORY);
|
|
POSTYPE start = 0;
|
|
POSTYPE total = 0;
|
|
if (container_ptr)
|
|
{
|
|
total = container_ptr->GetMaxSlotNum();
|
|
}
|
|
|
|
BOOL bVal = FALSE;
|
|
|
|
for (POSTYPE i = start; i < total; ++i)
|
|
{
|
|
if ( !container_ptr->IsEmpty(i) )
|
|
{
|
|
SCSlot& slot = container_ptr->GetSlot(i);
|
|
BASE_ITEMINFO* item_info = ItemInfoParser::Instance()->GetItemInfo( slot.GetCode() );
|
|
if(item_info)
|
|
{
|
|
if(item_info->m_Code == item_code)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
void uiGuildInstitution::UpdateAll()
|
|
{
|
|
UpdateInstitutionInfo();
|
|
UpdateButtonState();
|
|
UpdateFacilityListInfo();
|
|
}
|
|
|
|
DWORD uiGuildInstitution::HaveItemNum( const CODETYPE& item_code )
|
|
{
|
|
DWORD item_num = 0;
|
|
SCSlotContainer* container_ptr = g_pHero->GetSlotContainer(SI_INVENTORY);
|
|
POSTYPE start = 0;
|
|
POSTYPE total = 0;
|
|
if (container_ptr)
|
|
{
|
|
total = container_ptr->GetMaxSlotNum();
|
|
}
|
|
|
|
for (POSTYPE i = start; i < total; ++i)
|
|
{
|
|
if ( !container_ptr->IsEmpty(i) )
|
|
{
|
|
SCSlot& slot = container_ptr->GetSlot(i);
|
|
BASE_ITEMINFO* item_info = ItemInfoParser::Instance()->GetItemInfo( slot.GetCode() );
|
|
if(item_info)
|
|
{
|
|
if(item_info->m_Code == item_code)
|
|
{
|
|
item_num += slot.GetNum();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return item_num;
|
|
}
|
|
|
|
void uiGuildInstitution::UpdateActiveButtonState()
|
|
{
|
|
int scroll_position = 0;
|
|
CCtrlVScrollWZ* scroll_control =
|
|
static_cast<CCtrlVScrollWZ*>(GetControlWZ_byPosition(kControl_VScroll_V000));
|
|
if (scroll_control == NULL)
|
|
{
|
|
return;
|
|
}
|
|
scroll_position = scroll_control->GetScrollPosWZ();
|
|
|
|
for (DWORD index = 0; index < kListNumber; ++index)
|
|
{
|
|
// 활성화 버튼
|
|
CCtrlButtonWZ* control_ptr =
|
|
static_cast<CCtrlButtonWZ*>(GetControlWZ_byPosition(kControl_Button_B000 + index));
|
|
if (control_ptr)
|
|
{
|
|
// 2305 : 활성화
|
|
control_ptr->SetTextID(2305);
|
|
control_ptr->SetDiscardMessage(false);
|
|
GlobalFunc::EnableControl(control_ptr, true);
|
|
|
|
BASE_GuildFacilityImageInfo* info_ptr =
|
|
GuildFacilityImageParser::Instance()->GetGuildFacilityImageInfo(scroll_position + index + 1);
|
|
|
|
GuildSystem::GuildSystemData::GuildFacilityInfoForClient facility_info;
|
|
if (info_ptr &&
|
|
GuildSystem::GetGuildSystemData().get_guild_facility_info((FCODE)info_ptr->index_, facility_info))
|
|
{
|
|
bool zero_level_and_active = false;
|
|
FLEVEL current_active_level = GetCurrentFacilityActiveLevel((FCODE)info_ptr->index_);
|
|
if (current_active_level > 0 && facility_info.facility_level_ <= 0)
|
|
{
|
|
zero_level_and_active = true;
|
|
}
|
|
const FACILITY_INFO* facility_parser_info = NULL;
|
|
if (zero_level_and_active)
|
|
{
|
|
facility_parser_info = GuildFacilityInfoParser::Instance()->GetGuildFacilityInfo(facility_info.facility_code_, current_active_level);
|
|
}
|
|
else
|
|
{
|
|
facility_parser_info = GuildFacilityInfoParser::Instance()->GetGuildFacilityInfo(facility_info.facility_code_, facility_info.facility_level_);
|
|
}
|
|
|
|
if (facility_parser_info == NULL)
|
|
{
|
|
GlobalFunc::EnableControl(control_ptr, false);
|
|
continue;
|
|
}
|
|
|
|
SkillScriptInfo* skill_info_ptr =
|
|
SkillInfoParser::Instance()->GetSkillInfo(facility_parser_info->active_option.active_skill_code);
|
|
if (skill_info_ptr == NULL)
|
|
{
|
|
GlobalFunc::EnableControl(control_ptr, false);
|
|
continue;
|
|
}
|
|
|
|
BASE_ABILITYINFO* ability_info = NULL;
|
|
ability_info = skill_info_ptr->GetAbilityInfoByIndex(0);
|
|
if (ability_info == NULL)
|
|
{
|
|
GlobalFunc::EnableControl(control_ptr, false);
|
|
continue;
|
|
}
|
|
|
|
// 일단 현재 활성화 중인 상태에 대한 체크로 시간을 셋팅한다.
|
|
SKILL_EFFECT* skill_effect_ptr = g_pHero->FindSkillEffect((eCHAR_STATE_TYPE)ability_info->m_wStateID);
|
|
if (skill_effect_ptr)
|
|
{
|
|
GuildSystem::GetGuildSystemData().set_element_guild_facility_active(facility_info.facility_code_, true);
|
|
TCHAR time_string[INTERFACE_STRING_LENGTH] = {0, };
|
|
if(skill_effect_ptr->iRemainTime > 0)
|
|
{
|
|
int sec, min, hr;
|
|
|
|
sec = skill_effect_ptr->iRemainTime / 1000;
|
|
min = sec / 60;
|
|
sec = sec % 60;
|
|
|
|
hr = min / 60;
|
|
min = min % 60;
|
|
|
|
Snprintf(time_string, INTERFACE_STRING_LENGTH, "%02d:%02d:%02d", hr, min, sec);
|
|
control_ptr->SetTextWZ(time_string);
|
|
}
|
|
else
|
|
{
|
|
Snprintf(time_string, INTERFACE_STRING_LENGTH, "%02d:%02d:%02d", 0, 0, 0);
|
|
control_ptr->SetTextWZ(time_string);
|
|
}
|
|
//GlobalFunc::EnableControl(control_ptr, true);
|
|
control_ptr->SetDiscardMessage(true);
|
|
}
|
|
else if ( facility_info.facility_level_ > 0)
|
|
{
|
|
GuildSystem::GetGuildSystemData().set_element_guild_facility_active(facility_info.facility_code_, false);
|
|
}
|
|
else
|
|
{
|
|
GuildSystem::GetGuildSystemData().set_element_guild_facility_active(facility_info.facility_code_, false);
|
|
GlobalFunc::EnableControl(control_ptr, false);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
GlobalFunc::EnableControl(control_ptr, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
FLEVEL uiGuildInstitution::GetCurrentFacilityActiveLevel(const FCODE& facility_index)
|
|
{
|
|
FLEVEL current_active_level = 0;
|
|
for (BYTE active_level = 1; active_level <= 5; ++active_level)
|
|
{
|
|
const FACILITY_INFO* facility_parser_info = GuildFacilityInfoParser::Instance()->GetGuildFacilityInfo(facility_index, active_level);
|
|
if (facility_parser_info == NULL)
|
|
continue;
|
|
|
|
SkillScriptInfo* skill_info_ptr =
|
|
SkillInfoParser::Instance()->GetSkillInfo(facility_parser_info->active_option.active_skill_code);
|
|
if (skill_info_ptr == NULL)
|
|
continue;
|
|
|
|
BASE_ABILITYINFO* ability_info = NULL;
|
|
ability_info = skill_info_ptr->GetAbilityInfoByIndex(0);
|
|
if (ability_info == NULL)
|
|
continue;
|
|
|
|
SKILL_EFFECT* skill_effect_ptr = g_pHero->FindSkillEffect((eCHAR_STATE_TYPE)ability_info->m_wStateID);
|
|
if (skill_effect_ptr == NULL)
|
|
continue;
|
|
if (skill_effect_ptr->dwSkillID == facility_parser_info->active_option.active_skill_code)
|
|
{
|
|
current_active_level = active_level;
|
|
break;
|
|
}
|
|
}
|
|
|
|
return current_active_level;
|
|
}
|
|
#endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION
|
|
#endif //_NA_003923_20120222_GUILD_RENEWAL_UI_RENEWAL
|