
	if(Index == 0 || Mob[Index].Target.X == 0)
		return;

	if (!IsWorldCoordInBounds(static_cast<int>(posX), static_cast<int>(posY)))
	{
		if (Index > 0 && Index < MAX_PLAYER)
			RescueInvalidPosition(Index, "GridMulticast_dest_oob");
		return;
	}
	
	CMob *mob = (CMob*)&Mob[Index];

	if (!IsWorldCoordInBounds(mob->Target.X, mob->Target.Y))
	{
		if (Index > 0 && Index < MAX_PLAYER)
			RescueInvalidPosition(Index, "GridMulticast_src_oob");
		return;
	}

	INT32 mobId = g_pMobGrid[mob->Target.Y][mob->Target.X];

	if(mobId == Index && mobId != 0)
		g_pMobGrid[mob->Target.Y][mob->Target.X] = 0;

	if (g_pMobGrid[posY][posX] != Index && g_pMobGrid[posY][posX] != 0)
