void
NetGameClient::DoNavData(NetMsg* msg)
{
	if (!msg) return;

	NetNavData nav_data;
	nav_data.Unpack(msg->Data());

	Element* elem = sim->FindElement(nav_data.GetElem());
	Ship*    ship = FindShipByObjID(nav_data.GetObjID());

	if (elem) {
		if (nav_data.IsAdd()) {
			Instruction* navpt = new(__FILE__,__LINE__) Instruction(*nav_data.GetNavPoint());
			Instruction* after = 0;
			int          index = nav_data.GetIndex();

			if (index >= 0 && index < elem->GetFlightPlan().size())
			after = elem->GetFlightPlan().at(index);

			elem->AddNavPoint(navpt, after, false);
		}

		else {
			Instruction* navpt = nav_data.GetNavPoint();
			Instruction* exist = 0;
			int          index = nav_data.GetIndex();

			if (navpt && index >= 0 && index < elem->GetFlightPlan().size()) {
				exist = elem->GetFlightPlan().at(index);

				*exist = *navpt;
			}
		}
	}
}