private void HandlePopup()
 {
     if (m_buySellPopupSessionId == m_popupGui.GetSessionId())
     {
         if (m_invalidPos != m_buySellPos && m_popupGui.m_saidYesFlag)
         {
             m_sendDragPos            = m_buySellPos;
             m_sendDropPos            = Vector3.one * 252f;
             m_buySellPos             = m_invalidPos;
             m_popupGui.m_saidYesFlag = false;
         }
         if (m_popupGui.IsActive() && (!m_inventory.IsVisible() || !m_inventory.IsShopActive()))
         {
             m_popupGui.ShowGui(false, string.Empty);
         }
     }
     else if (m_repairPopupSessionId == m_popupGui.GetSessionId())
     {
         if (m_popupGui.m_saidYesFlag)
         {
             m_client.SendSpecialRequest(eSpecialRequest.repairItem);
             m_popupGui.m_saidYesFlag = false;
         }
     }
     else if (m_missionPopupSessionId == m_popupGui.GetSessionId() && m_popupGui.m_saidYesFlag)
     {
         m_client.SendSpecialRequest(eSpecialRequest.acceptMission);
         m_popupGui.m_saidYesFlag = false;
     }
     if (m_popupGui.IsActive() && m_isMoving)
     {
         m_popupGui.ShowGui(false, string.Empty);
     }
 }
	private bool DisplayMessage(eMsg a_msg)
	{
		bool flag = false;
		int a_prio = 100;
		Vector3 pos = m_client.GetPos();
		switch (a_msg)
		{
		case eMsg.eEatFood:
			flag = (m_inventoryGui.IsVisible() && m_inventoryGui.HasFood());
			break;
		case eMsg.eBuildBuilding:
			flag = (m_inventoryGui.IsVisible() && m_inventoryGui.HasBuilding());
			break;
		case eMsg.eBuildBuilding2:
		{
			int num;
			if (!m_inventoryGui.IsVisible())
			{
				ItemDef itemDef = Items.GetItemDef(m_client.GetHandItem());
				num = ((itemDef.buildingIndex > 0) ? 1 : 0);
			}
			else
			{
				num = 0;
			}
			flag = ((byte)num != 0);
			break;
		}
		case eMsg.eShovel:
			flag = (m_inventoryGui.IsVisible() && m_inventoryGui.HasItemType(109));
			break;
		case eMsg.eStarving:
			flag = (0f == m_client.GetEnergy());
			a_prio = 110;
			break;
		case eMsg.ePickupItem:
		{
			RemoteItem nearestItem = m_client.GetNearestItem(pos);
			flag = (null != nearestItem && 25f > (nearestItem.transform.position - pos).sqrMagnitude);
			break;
		}
		case eMsg.eGatherResource:
		{
			RemoteBuilding nearestResource = m_client.GetNearestResource(pos);
			flag = (null != nearestResource && 25f > (nearestResource.transform.position - pos).sqrMagnitude);
			break;
		}
		case eMsg.eAttackEnemy:
		{
			RemoteCharacter nearestNpc = m_client.GetNearestNpc(pos);
			flag = (null != nearestNpc && 36f > (nearestNpc.transform.position - pos).sqrMagnitude);
			break;
		}
		case eMsg.eDriveCar:
		{
			RemoteCharacter nearestCharacter2 = m_client.GetNearestCharacter(pos, true);
			flag = (null != nearestCharacter2 && 36f > (nearestCharacter2.transform.position - pos).sqrMagnitude);
			break;
		}
		case eMsg.eChat:
		case eMsg.ePlayerProfile:
		{
			RemoteCharacter nearestCharacter = m_client.GetNearestCharacter(pos);
			flag = (null != nearestCharacter && 49f > (nearestCharacter.transform.position - pos).sqrMagnitude);
			break;
		}
		}
		if (flag)
		{
			m_msgBar.DisplayMessage(LNG.Get("TUTORIAL_MESSAGE_" + (int)a_msg), a_prio);
		}
		return flag;
	}