⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mugongdialog_backup.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 2 页
字号:
			if(m_pMugongDlg1_1->AddIcon(pos, (cIcon *)mugong))
				return ;
			else
				return ;
		}
		break;
	default:
		return ;
	}
}


MLOC CMugongDialog::ConvAbs2Rel(POSTYPE abs_pos/*abs pos*/)
{
	if(MUGONG_STARTPOSITION <= abs_pos && abs_pos < MUGONG_ENDPOSITION)
	{
		return WINDOW_STD;
	}
	else if(MUGONG1_2_STARTPOSITION <= abs_pos && abs_pos < MUGONG1_2_ENDPOSITION)
	{
		return WINDOW_EXTEND;
	}
	else if(MUGONG1_1_STARTPOSITION <= abs_pos && abs_pos < MUGONG1_1_ENDPOSITION)
	{
		return WINDOW_DOWN;
	}
	
	return WINDOW_ERR;
}
BOOL CMugongDialog::DeleteMugong(POSTYPE pos/*abs pos*/, CMugongBase ** mugong)
{
	switch(ConvAbs2Rel(pos))
	{
	case WINDOW_STD:
		{
			pos -= MUGONG_STARTPOSITION;
			if(DeleteIcon(pos, (cIcon **)mugong))
			{
				if(pos == MUGONG_POSITION)
				{
					MUGONGBASE * mugongBase = (*mugong)->GetMugongBase();
					pWearedMugongInfo[0][MGI_NAME]->SetStaticText("");
					pWearedMugongInfo[0][MGI_ATTR]->SetStaticText("");
					pWearedMugongInfo[0][MGI_TYPE]->SetStaticText("");
					pWearedMugongInfo[0][MGI_KIND]->SetStaticText("");
					pWearedMugongInfo[0][MGI_SUNG]->SetStaticText("");
					pWearedMugongInfo[0][MGI_EXPPOINT]->SetStaticText("");
				}
				(*mugong)->SetWeared(0);
				return TRUE;
			}
			else
				return FALSE;
		}
		break;
	case WINDOW_EXTEND:
		{
			pos -= MUGONG1_2_STARTPOSITION;
			if(m_pMugongDlg1_2->DeleteIcon(pos, (cIcon **)mugong))
			{
				(*mugong)->SetWeared(0);
				return TRUE;
			}
			else
				return FALSE;
		}
		break;
	case WINDOW_DOWN:
		{
			pos -= MUGONG1_1_STARTPOSITION;
			if(m_pMugongDlg1_1->DeleteIcon(pos, (cIcon **)mugong))
			{
				(*mugong)->SetWeared(0);
				return TRUE;
			}
			else
				return FALSE;
		}
		break;
	default:
		return FALSE;
	}
	
}
BOOL CMugongDialog::FakeMoveIcon(LONG mouseX, LONG mouseY, cIcon * icon)
{
	ASSERT(icon);

	if(icon->GetType() == WT_ITEM)
		FakeAddItem(mouseX, mouseY, (CItem *)icon);
	else if(icon->GetType() == WT_MUGONG)
		FakeMoveMugong(mouseX, mouseY, (CMugongBase *)icon);
	return FALSE;
}

void CMugongDialog::FakeAddItem(LONG mouseX, LONG mouseY, CItem * pItem)
{
	// 绢恫 公傍氓捞衬?公傍, 郴傍, 版傍
	if(pItem->GetItemKind() != eMUGONG_ITEM) return;
	BYTE type = GetItemKindDetail(pItem->GetItemIdx());
	switch(type)
	{
	case eMUGONGBOOK:
	case eNAEGONGBOOK:
	case eKYUNGGONGBOOK:
		break;
	default:
		return;
	}
	

	WORD ToPos=0;
	if(!GetPositionForXYRef(mouseX,mouseY, ToPos))		// 例措困摹 逞绢 咳
	{
		 if(!GetBlankPositionRef(type, ToPos))
			 return;
	}

	// 函券 啊瓷茄啊?? 炼扒,力茄 眉农, 饭骇, 流诀, 己??
	if(!CanBeMoved(pItem, ToPos))  return ;


	MSG_MUGONG_ADD msg;
	msg.Category = MP_MUGONG;
	msg.Protocol = MP_MUGONG_ADD_SYN;
	msg.dwObjectID = HEROID;
	msg.FromTableIdx = eItemTable_Inventory;
	msg.ToTableIdx = eItemTable_Mugong;
	msg.FromAbsPosition = pItem->GetPosition();
	msg.ToAbsPosition = ToPos;

	NETWORK->Send(&msg,sizeof(msg));
	SetDisable(TRUE);
}
void CMugongDialog::FakeMoveMugong(LONG mouseX, LONG mouseY, CMugongBase * icon)
{
	WORD ToPos=0;
	if(!GetPositionForXYRef(mouseX,mouseY, ToPos))		// 例措困摹 逞绢 咳
			return;
	//if(!IsAddMugong(ToPos)) return;
	if(!CanBeMoved(icon, ToPos))  return ;

	// 公傍,郴傍,版傍
	CMugongBase * pMugong = (CMugongBase *)icon;
	//------------------------------------
	MSG_MUGONG_MOVEINFO msg;
	msg.Category = MP_MUGONG;
	msg.Protocol = MP_MUGONG_MOVE_SYN;
	msg.dwObjectID = HEROID;
	//------------------------------------
	msg.dwMugongDBIdx	= pMugong->GetDBIdx();
	msg.wToPosition		= ToPos;									//例措 困摹肺 back
	msg.wFromPosition	= pMugong->GetPosition();					//例措 困摹肺 back
	
	if(msg.wFromPosition == msg.wToPosition)
		return ;
	NETWORK->Send(&msg,sizeof(msg));
	SetDisable(TRUE);
}



void CMugongDialog::MoveMugong(POSTYPE ToPos/*abs pos*/, POSTYPE FromPos/*abs pos*/)
{
	CMugongBase * FromMugong = NULL;
	CMugongBase * ToMugong = NULL;
	DeleteMugong(FromPos, &FromMugong);
	DeleteMugong(ToPos, &ToMugong);

	if(FromMugong)
	{
		FromMugong->SetPosition(ToPos);
		AddMugong(ToPos, FromMugong);
	}
	
	if(ToMugong)
	{
		ToMugong->SetPosition(FromPos);
		AddMugong(FromPos, ToMugong);
	}
	
}

BOOL CMugongDialog::GetPositionForXYRef(LONG x, LONG y, POSTYPE& pos)
{
	WORD position=0;
	if(cIconDialog::GetPositionForXYRef(x,y,position))
	{
		// 扁夯(1) 公傍困摹
		pos = position+MUGONG_STARTPOSITION;								// 例措 困摹肺 官厕
		return TRUE;
	}
	if(m_pMugongDlg1_2->IsActive() && m_pMugongDlg1_2->GetPositionForXYRef(x,y,position))
	{
		pos = position+MUGONG1_2_STARTPOSITION;								// 例措 困摹肺 官厕
		return TRUE;
	}
	if(m_pMugongDlg1_2->IsActive() && m_pMugongDlg1_1->GetPositionForXYRef(x,y,position))
	{
		pos = position+MUGONG1_1_STARTPOSITION;								// 例措 困摹肺 官厕
		return TRUE;
	}
	
	return FALSE;
}

void CMugongDialog::FakeDeleteMugong(POSTYPE absPos)
{
	MSG_MUGONG_REM_SYN msg;
	msg.Category = MP_MUGONG;
	msg.Protocol = MP_MUGONG_REM_SYN;
	msg.dwObjectID = HEROID;
	msg.wTableIdx = eItemTable_Mugong;
	msg.AbsPosition = absPos;

	NETWORK->Send(&msg,sizeof(msg));
	SetDisable(TRUE);
}



// 泅犁 荐访吝牢 公傍狼 沥焊甫 掘扁 困秦 : 烙矫
void CMugongDialog::GetMugong(POSTYPE relPos, CMugongBase * mugongOut)
{
	*mugongOut = *(CMugongBase * )GetIconForIdx(relPos);
}
CMugongBase * CMugongDialog::GetMugongAbs(POSTYPE abs_Pos)
{
	//*mugongOut = *(CMugongBase * )GetIconForIdx(relPos);
	switch(ConvAbs2Rel(abs_Pos))
	{
	case WINDOW_STD:
		{
			return (CMugongBase *)GetIconForIdx(abs_Pos-MUGONG_STARTPOSITION);
		}
		break;
	case WINDOW_EXTEND:
		{
			return (CMugongBase *)m_pMugongDlg1_2->GetIconForIdx(abs_Pos-MUGONG1_2_STARTPOSITION);
		}
		break;
	case WINDOW_DOWN:
		{
			return (CMugongBase *)m_pMugongDlg1_1->GetIconForIdx(abs_Pos-MUGONG1_1_STARTPOSITION);
		}
		break;
	default:
		{
			ASSERT(0);
		}
	}
	return NULL;

}

void CMugongDialog::SetMugongSung(BYTE mugongType, WORD sung)
{
	ASSERT(mugongType < ALL);

	
	WORD relPos = 0;
	switch(mugongType)
	{
	case MUGONG:
		relPos = MUGONG_POSITION;
		break;
	case NAEGONG:
		relPos = NAEGONG_POSITION;
		break;
	case KYUNGGONG:
		relPos = KYUNGGONG_POSITION;
		break;
	default:
		{
			ASSERT(0);
		}
	}
	CMugongBase * mugongOut = NULL;
	mugongOut = (CMugongBase *)GetIconForIdx(relPos);
	if(mugongOut->GetDBIdx() > 0) 
		mugongOut->SetSung(sung);

	// 牢磐其捞胶
	// 公傍 芒狼 己钎矫 
	// 公傍 芒狼 版氰摹 max 霸捞瘤 setting
	pWearedMugongInfo[mugongType][MGI_SUNG]->SetStaticValue(sung);
}

void CMugongDialog::SetMugongExpPoint(BYTE mugongType, EXPTYPE expPoint)
{
	ASSERT(mugongType < ALL);

	WORD relPos = 0;
	switch(mugongType)
	{
	case MUGONG:
		relPos = MUGONG_POSITION;
		break;
	case NAEGONG:
		relPos = NAEGONG_POSITION;
		break;
	case KYUNGGONG:
		relPos = KYUNGGONG_POSITION;
		break;
	default:
		{
			ASSERT(0);
		}
	}

	CMugongBase * mugongOut = NULL;
	mugongOut = (CMugongBase *)GetIconForIdx(relPos);
	if(mugongOut->GetDBIdx() > 0) 
		mugongOut->SetExpPoint(expPoint);

	//YH2DO
	//common_mugong * pInfo = GAMERESRCMNGR->GetMugongInfo(mugongOut->GetMugongIdx());
	char buf[20];
	wsprintf(buf, "%d/%d", expPoint, 0);//pInfo->experiance_numeric[mugongOut->GetSung()-1]);

	// 牢磐其捞胶
	// 公傍 芒狼 版氰摹 霸捞瘤 刘啊
	pWearedMugongInfo[mugongType][MGI_EXPPOINT]->SetStaticText(buf);
}

BOOL CMugongDialog::CanBeMoved(cIcon * pIcon, POSTYPE abs_pos)
{
	ASSERT(pIcon);
	if(MUGONG_STARTPOSITION > abs_pos && abs_pos >= MUGONG_ENDPOSITION) return FALSE;

	switch(pIcon->GetType())
	{
	case WT_MUGONG:
		{
			// 公傍 捞悼 : 蜡瓤茄 困摹牢瘤 眉农
			CMugongBase * pMugong = (CMugongBase *)pIcon;

		}
		break;
	case WT_ITEM:
		{
			// 公傍 殿废
			CItem * pItem = (CItem *)pIcon;
			return ITEMMGR->CanConvert(pItem->GetItemIdx());
		}
		break;
	default:
		{
			ASSERT(0);
		}
	}

	return FALSE;
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -