//------------------------------------------------------------------------------ // PartyMemberOptionDialog.cpp // (C) 2005 ckbang //------------------------------------------------------------------------------ #include "SunClientPrecompiledHeader.h" #include "SceneBase.h" #include "BattleScene.h" #include "InterfaceManager.h" #include ".\PartyMemberOptionDialog.h" #include #include #include "Party.h" #include "Hero.h" WzID PartyMemberOptionDialog::m_wzId[DIALOG_MAX] = { StrToWzID("B999"), StrToWzID("B001"), StrToWzID("B002"), StrToWzID("B003"), StrToWzID("B004"), StrToWzID("B005"), StrToWzID("B006"), StrToWzID("B007"), }; //------------------------------------------------------------------------------ /** */ PartyMemberOptionDialog::PartyMemberOptionDialog() { this->Clear(); } //------------------------------------------------------------------------------ /** */ PartyMemberOptionDialog::~PartyMemberOptionDialog() { } //------------------------------------------------------------------------------ /** */ VOID PartyMemberOptionDialog::Init( CDrawBase * pDrawBase ) { } //------------------------------------------------------------------------------ /** */ void PartyMemberOptionDialog::showWindow( BOOL val ) { if (val) { SolarDialog* dlg = g_InterfaceManager.GetDialog((InterfaceManager::eDIALOG_ID)(g_Party.GetStartPartyDialog() + this->m_iIdx)); RECT rc; dlg->GetDialogWZ()->GetClientRect(&rc); GetDialogWZ()->MoveWindowWZ( rc.right, rc.top ); } else { _asm nop; } } //------------------------------------------------------------------------------ /** */ VOID PartyMemberOptionDialog::MessageProc( SI_MESSAGE * pMessage ) { TCHAR szMessage[INTERFACE_STRING_LENGTH]; switch( pMessage->eResultMsg ) { case RT_MSG_LBUTTONCLICK: { switch( getCtrlIDToPos( pMessage->dwCtrlID ) ) { case DIALOG_EXIT: { g_InterfaceManager.ShowDialog( (InterfaceManager::eDIALOG_ID)(InterfaceManager::DIALOG_PARTYOPTION0 + this->m_iIdx), FALSE ); } break; // ÇØÃ¼ case DIALOG_PARTY_DESTROY: { if (g_Party.actDestroyParty()) g_InterfaceManager.ShowDialog( (InterfaceManager::eDIALOG_ID)(InterfaceManager::DIALOG_PARTYOPTION0 + this->m_iIdx), FALSE ); } break; // ÃÊ´ë case DIALOG_INVITE: { //g_Party.Invite(NULL); // äÆÃâ¿¡ '/ÃÊ´ë ¾ÆÀ̵ð' ¸í·É¾î¸¦ »ç¿ëÇϼ¼¿ä. g_InterfaceManager.GetInterfaceString( eST_INVITE_COMMAND_HELP, szMessage, INTERFACE_STRING_LENGTH ); g_Party.Notice( szMessage ); } break; // Å»Åð case DIALOG_LEAVE: { if (g_pHero && g_pHero->GetObjectKey() == this->m_dwObjKey) { if (g_Party.actLeave()) g_InterfaceManager.ShowDialog( (InterfaceManager::eDIALOG_ID)(InterfaceManager::DIALOG_PARTYOPTION0 + this->m_iIdx), FALSE ); } else { // Å»Åð´Â º»Àο¡°Ô¸¸ °¡´ÉÇÕ´Ï´Ù. °­Á¦ Å»Å𸦠Çϼ¼¿ä. -0- g_InterfaceManager.GetInterfaceString( eST_PARTY_LEAVE_HELP, szMessage, INTERFACE_STRING_LENGTH ); g_Party.Notice( szMessage ); } } break; // °­Á¦ Å»Åð case DIALOG_FORCE_LEAVE: { if (g_pHero && g_pHero->GetObjectKey() != this->m_dwObjKey) { if (g_Party.actForcedExplusion(this->m_dwObjKey)) g_InterfaceManager.ShowDialog( (InterfaceManager::eDIALOG_ID)(InterfaceManager::DIALOG_PARTYOPTION0 + this->m_iIdx), FALSE ); } else { // °­Á¦ Å»Åð´Â ŸÀο¡°Ô¸¸ °¡´ÉÇÕ´Ï´Ù. Å»Å𸦠Çϼ¼¿ä. -0- g_InterfaceManager.GetInterfaceString( eST_PARTY_FORCED_EXPULSION_HELP, szMessage, INTERFACE_STRING_LENGTH ); g_Party.Notice( szMessage ); } } break; // ¹æÀå À§ÀÓ case DIALOG_MIGRATION_LEADER: { if (g_Party.actMigration(this->m_dwObjKey)) g_InterfaceManager.ShowDialog( (InterfaceManager::eDIALOG_ID)(InterfaceManager::DIALOG_PARTYOPTION0 + this->m_iIdx), FALSE ); } break; // ¹öÇÁ Á¤º¸ ON/OFF case DIALOG_BUFF_INFO: { g_Party.actToggleShowBuffInfo(); } break; // ºÐ¹è ¹æ½Ä ¼³Á¤ case DIALOG_ITEM_SHARE_SETTING: { // ºÎ»çÀå´Ô Áö½Ã: ºÐ¹è ¹æ½Ä ±â´É±¸Çö »èÁ¦µÊ } break; } } break; } } //------------------------------------------------------------------------------ /** */ POSTYPE PartyMemberOptionDialog::getCtrlIDToPos( WzID wzId ) { for( POSTYPE i = 0 ; i < DIALOG_MAX ; ++i ) { if( m_wzId[i] == wzId ) { return i; } } return DIALOG_MAX; } //------------------------------------------------------------------------------ /** */ CControlWZ * PartyMemberOptionDialog::getControl( POSTYPE AtPos ) { ASSERT( AtPos < DIALOG_MAX ); return GetControlWZ( m_wzId[AtPos] ); }