📄 guilddialog.cpp
字号:
// GuildDialog.cpp: implementation of the CGuildDialog class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "GuildDialog.h"
#include "./Interface/cWindowManager.h"
#include "./interface/cStatic.h"
#include "./interface/cComboBox.h"
#include "./interface/cListDialog.h"
#include "./interface/cPushupButton.h"
#include "WindowIDEnum.h"
#include "ObjectManager.h"
#include "GuildManager.h"
#include "ChatManager.h"
#include "../Interface/cResourceManager.h"
#include "cMsgBox.h"
#include "Guild.h"
#include "../Input/Mouse.h"
#include "GameIn.h"
#include "GuildRankDialog.h"
#include "GuildNickNameDialog.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CGuildDialog::CGuildDialog()
{
m_type = WT_GUILDDLG;
m_SelectedNum = -1;
m_CurGuildMode = -1;
}
CGuildDialog::~CGuildDialog()
{
for(int n=0;n<eMaxFunc;++n)
{
m_GuildFuncCtrlArray[n].RemoveAll();
}
for(n=0; n<eGuildMode_Max; ++n)
{
m_GuildModeArray[n].RemoveAll();
}
}
void CGuildDialog::Linking()
{
m_pGuildName = (cStatic*)GetWindowForID(GD_NAME);
m_pGuildLvl = (cStatic*)GetWindowForID(GD_LEVEL);
m_pMasterName = (cStatic*)GetWindowForID(GD_MASTER);
m_pMemberNum = (cStatic*)GetWindowForID(GD_MEMBERNUM);
m_pLocation = (cStatic*)GetWindowForID(GD_LOCATION);
m_pListDlg = (cListDialog*)GetWindowForID(GD_MEMBERLIST);
m_pListDlg->SetHeight(158);
for(int i=0; i<2; ++i)
m_pGuildPushupBtn[i] = (cPushupButton*)GetWindowForID(GD_MEMBERINFOPUSHUPBTN+i);
for(i=0; i<10; ++i)
{
m_GuildModeArray[eGuildMode_GuildInfo].AddTail((cStatic*)GetWindowForID(GD_NAME+i));
}
for(i=0; i<12; ++i)
{
m_GuildModeArray[eGuildMode_Func].AddTail((cButton*)GetWindowForID(GD_BANMEMBER+i));
}
for(i=0; i<7; ++i)
m_GuildFuncCtrlArray[eInvailedFunc].AddTail((cButton*)GetWindowForID(GD_INVITEUNION+i));
m_pBanMemberBtn = (cButton*)GetWindowForID(GD_BANMEMBER);
m_pGiveMemberNickBtn = (cButton*)GetWindowForID(GD_GIVEMEMBERNICK);
m_pGiveMemberRankBtn = (cButton*)GetWindowForID(GD_GIVEMEMBERRANK);
m_pInviteMemberBtn = (cButton*)GetWindowForID(GD_INVITEMEMBER);
m_pInviteUnionBtn = (cButton*)GetWindowForID(GD_INVITEUNION);
m_pSecedeBtn = (cButton*)GetWindowForID(GD_SECEDE);
m_GuildFuncCtrlArray[eMasterFunc].AddTail(m_pInviteUnionBtn);
m_GuildFuncCtrlArray[eMasterFunc].AddTail(m_pGiveMemberRankBtn);
m_GuildFuncCtrlArray[eMasterFunc].AddTail(m_pGiveMemberNickBtn);
m_GuildFuncCtrlArray[eMasterFunc].AddTail(m_pBanMemberBtn);
m_GuildFuncCtrlArray[eViceMasterFunc].AddTail(m_pInviteMemberBtn);
m_GuildFuncCtrlArray[eMemberFunc].AddTail(m_pSecedeBtn);
}
void CGuildDialog::SetInfo(char* guildname, BYTE guildlvl, char* mastername, BYTE membernum, BYTE location)
{
m_pGuildName->SetStaticText(guildname);
m_pGuildLvl->SetStaticValue(guildlvl);
}
void CGuildDialog::DeleteMemberAll()
{
m_pListDlg->RemoveAll();
}
void CGuildDialog::ResetMemberInfo(char* Name, BYTE Rank, LEVELTYPE lvl, DWORD MemberIdx)
{
char buf[64] = {" ",};
char rank[8] = {0,};
int namelen;
int ranklen;
char membername[MAX_NAME_LENGTH+1];
char memberrank[7];
SafeStrCpy(membername, Name, MAX_NAME_LENGTH+1);
namelen = strlen(Name);
for(int i=namelen; i<MAX_NAME_LENGTH; ++i)
membername[i] = 0x20;
SafeStrCpy(memberrank, GUILDMGR->GetRankName(Rank), 7);
ranklen = strlen(memberrank);
for(i=ranklen; i<6; ++i)
memberrank[i] = 0x20;
sprintf(buf, "%s %10s %4d", membername, memberrank, lvl);
m_pListDlg->AddItem(buf, 0xffffffff);
}
void CGuildDialog::SetGuildInfo(char* GuildName, char* MasterName, char* MapName, BYTE GuildLevel, BYTE MemberNum)
{
m_pGuildName->SetStaticText(GuildName);
m_pGuildLvl->SetStaticValue(GuildLevel);
m_pMasterName->SetStaticText(MasterName);
m_pMemberNum->SetStaticValue(MemberNum);
m_pLocation->SetStaticText(MapName);
}
void CGuildDialog::SetActive(BOOL val)
{
if(val == TRUE)
{
ShowGuildMode(eGuildMode_GuildInfo);
}
if(val == FALSE)
{
cMsgBox* pSece = (cMsgBox*)WINDOWMGR->GetWindowForID(MBI_GUILD_SECEDE);
if(pSece)
WINDOWMGR->AddListDestroyWindow( pSece );
cMsgBox* pBan = (cMsgBox*)WINDOWMGR->GetWindowForID(MBI_GUILD_BAN);
if(pBan)
WINDOWMGR->AddListDestroyWindow( pBan );
if(GAMEIN->GetGuildRankDlg()->IsActive() == TRUE)
GAMEIN->GetGuildRankDlg()->SetActive(FALSE);
// if(GAMEIN->GetGuildNickNameDlg()->IsActive() == TRUE)
// GAMEIN->GetGuildNickNameDlg()->SetActive(FALSE);
}
cDialog::SetActive(val);
}
void CGuildDialog::RefreshGuildInfo(CGuild* pGuild)
{
m_pGuildName->SetStaticText(pGuild->GetGuildName());
m_pGuildLvl->SetStaticValue(pGuild->GetLevel());
m_pMasterName->SetStaticText(pGuild->GetMasterName());
m_pMemberNum->SetStaticValue(pGuild->GetMemberNum());
m_pLocation->SetStaticText(GetMapName(pGuild->GetLocation()));
}
DWORD CGuildDialog::ActionEvent(CMouse* mouseInfo)
{
DWORD we = WE_NULL;
if( !m_bActive ) return we;
we = cDialog::ActionEvent(mouseInfo);
if(m_pListDlg->PtIdxInRow(mouseInfo->GetMouseX(),mouseInfo->GetMouseY()) != -1)
{
if(we & WE_LBTNCLICK && ( WINDOWMGR->IsMouseDownUsed() == FALSE) )
{
int Idx = m_pListDlg->GetCurSelectedRowIdx();
if(Idx != -1)
{
m_SelectedNum = Idx;
// GUILDMGR->SetSelec]tedMemberID();
if(GAMEIN->GetGuildRankDlg()->IsActive())
GAMEIN->GetGuildRankDlg()->RefreshName();
}
}
}
return we;
}
int CGuildDialog::GetSelectedColumn()
{
return m_SelectedNum;
}
void CGuildDialog::ShowGuildMode(BYTE ShowMode)
{
SetGuildPushupBtn(ShowMode);
if(m_CurGuildMode == ShowMode)
return;
if(m_CurGuildMode != -1)
{
ClearDisableBtn();
SetActiveGuildMode(m_CurGuildMode ,FALSE);
}
SetActiveGuildMode(ShowMode,TRUE);
m_CurGuildMode = ShowMode;
SetDisableFuncBtn(HERO->GetGuildMemberRank());
}
void CGuildDialog::SetActiveGuildMode(int showmode,BOOL bActive)
{
PTRLISTSEARCHSTART(m_GuildModeArray[showmode],cWindow*,pWin)
pWin->SetActive(bActive);
PTRLISTSEARCHEND
}
void CGuildDialog::SetGuildPushupBtn(BYTE ShowMode)
{
if((ShowMode < 0) || (ShowMode > 2))
{
ASSERT(0);
return;
}
for(int i=0; i<2; ++i)
m_pGuildPushupBtn[i]->SetPush(FALSE);
m_pGuildPushupBtn[ShowMode]->SetPush(TRUE);
}
void CGuildDialog::ClearDisableBtn()
{
PTRLISTSEARCHSTART(m_GuildModeArray[eGuildMode_Func],cWindow*,pWin)
pWin->SetDisable(FALSE);
PTRLISTSEARCHEND
}
void CGuildDialog::SetDisableFuncBtn(BYTE Rank)
{
int i = 0;
switch(Rank)
{
case GUILD_MASTER: i = eInvailedFunc; break;
case GUILD_VICEMASTER: i = eMasterFunc; break;
case GUILD_SENIOR: i = eViceMasterFunc; break;
case GUILD_MEMBER: i = eSeniorFunc; break;
}
for(int j=0; j<i; ++j)
{
PTRLISTSEARCHSTART(m_GuildFuncCtrlArray[j],cWindow*,pWin)
pWin->SetDisable(FALSE);
PTRLISTSEARCHEND
}
for(j=i; j<eMaxFunc; ++j)
{
PTRLISTSEARCHSTART(m_GuildFuncCtrlArray[j],cWindow*,pWin)
pWin->SetDisable(TRUE);
PTRLISTSEARCHEND
}
if(Rank == GUILD_MASTER)
{
m_pSecedeBtn->SetDisable(TRUE);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -