From decwrl!uunet!allbery Sun Mar 25 18:41:56 PST 1990
Article 1431 of comp.sources.misc:
Path: decwrl!uunet!allbery
From: ccount@ATHENA.MIT.EDU
Newsgroups: comp.sources.misc
Subject: v11i056: starchart 3.2 Part 28/32
Message-ID: <82348@uunet.UU.NET>
Date: 26 Mar 90 00:01:27 GMT
Sender: allbery@uunet.UU.NET
Lines: 1881
Approved: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)

Posting-number: Volume 11, Issue 56
Submitted-by: ccount@ATHENA.MIT.EDU
Archive-name: starchart/part28

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 28 (of 32)."
# Contents:  starchart/starimages.c
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'starchart/starimages.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'starchart/starimages.c'\"
else
echo shar: Extracting \"'starchart/starimages.c'\" \(37431 characters\)
sed "s/^X//" >'starchart/starimages.c' <<'END_OF_FILE'
X/*
X** This file defines the star and planet images for vector type devices.
X** All vector formed images are here (for tektronix, hp series and laserjet)
X**
X** Original images by Alan W. Paeth, dynamic 'star compilation' and
X** cluster/galaxy images added by (pl) 15-Mar-87
X**
X** New images added by Steve Kennedy 31-Dec-87 and 1989
X**
X** Modified for 3.0 by Craig Counterman Jan, 1989
X *
X * Copyright (c) 1990 by Steve Kennedy and Craig Counterman.
X * All rights reserved.
X *
X * This software may be redistributed freely, not sold.
X * This copyright notice and disclaimer of warranty must remain
X *    unchanged. 
X *
X * No representation is made about the suitability of this
X * software for any purpose.  It is provided "as is" without express or
X * implied warranty, to the extent permitted by applicable law.
X *
X */
X
Xstatic char rcsid[]="$Header: starimages.c,v 2.11 90/03/10 15:34:34 ccount Exp $";
X
X#include <stdio.h>
X#include <math.h>
X#ifndef SYSV
X#include <strings.h>
X#else
X#include <string.h>
X#endif
X
X#include "star3.h"
X
X
X#define IMAROWS		20
X#define IMACOLS		20		/* both should be more than plenty */
X#define ENDCOORD	32767		/* should be out of offset range */
X#define MIN_MAG		(-1.5)		/* all magnitude below become this */
X#define MAX_MAG		(10.0)		/* all magnitude above become this */
X
X/* Externs */
Xextern int g_argc;
Xextern char **g_argv;
X
Xextern char *title;	/* Title of page */
X
Xextern mapwindow *mapwin[MAXWINDOWS];
Xextern int numwins;
X
Xextern int cur_function;
Xextern int cur_map_type;
Xextern int cur_map_tag;
Xextern char *cur_tag_field;
X
X
X/* Defined in lower level routines */
X
X/* Point sizes for font calls */
Xextern int titlesize;
Xextern int subtlsize;
Xextern int namesize;
Xextern int lblsize;
Xextern int magsize;
X
X/* Fonts for font calls */
Xextern int namefnt;
Xextern int lblfnt;
Xextern int magfnt;
Xextern int titlefnt;
Xextern int subtlfnt;
X
X/* externs for labels */
Xextern int x_nameoffset, y_nameoffset;
Xextern int x_lbloffset, y_lbloffset;
Xextern int x_magoffset, y_magoffset;
X
X/* externs for legend: variables of positioning are here */
Xextern int l_til;
Xextern int l_stil;
X
Xextern int l_lmar1;
Xextern int l_lmar2;
Xextern int l_ltext;
Xextern int l_rmar1;
Xextern int l_rmar2;
Xextern int l_rtext;
X
Xextern int l_line1;
Xextern int l_line2;
Xextern int l_line3;
Xextern int l_line4;
Xextern int l_line5;
Xextern int l_line6;
X
X
X/*** begin star definition ***/
X
X/*
X * Star Images
X */
X
Xchar	*S1[] = {
X    "*",
X    NULL
X    };  /* area = 1 */
X
X/* inner circle, r = 1 */
Xchar	*S2[] = {
X    "**",
X    "**",
X    NULL
X    };	/* area = 4 */
X
X/* outer circle, r = 1 */
Xchar	*S3[] = {
X    " * ",
X    "***",
X    " * ",
X    NULL
X    };	/* area = 5 */
X
Xchar	*S3a[] = {
X    "***",
X    "***",
X    "***",
X    NULL
X    };	/* area = 9 */
X
X/* inner circle, r = 2 */
Xchar	*S4[] = {
X    " ** ",
X    "****",
X    "****",
X    " ** ",
X    NULL
X    };	/* area = 12 */
X
Xchar	*S4a[] = {
X    "  *  ",
X    " *** ",
X    "*****",
X    " *** ",
X    "  *  ",
X    NULL
X    };	/* area = 13 */
X
X/* outer circle, r = 2 */
Xchar	*S5[] = {
X    " *** ",
X    "*****",
X    "*****",
X    "*****",
X    " *** ",
X    NULL
X    };	/* area = 21 */
X
X/* inner circle, r = 3 */
Xchar	*S6[] = {
X    " **** ",
X    "******",
X    "******",
X    "******",
X    "******",
X    " **** ",
X    NULL
X    };	/* area = 32 */
X
X/* outer circle, r = 3 */
Xchar	*S7[] = {
X    "  ***  ",
X    " ***** ",
X    "*******",
X    "*******",
X    "*******",
X    " ***** ",
X    "  ***  ",
X    NULL
X    };	/* area = 37 */
X
X/* inner circle, r = 4 */
Xchar	*S8[] = {
X    "  ****  ",
X    " ****** ",
X    "********",
X    "********",
X    "********",
X    "********",
X    " ****** ",
X    "  ****  ",
X    NULL
X    };	/* area = 52 */
X
X/* outer circle, r = 4 */
Xchar	*S9[] = {
X    "   ***   ",
X    " ******* ",
X    " ******* ",
X    "*********",
X    "*********",
X    "*********",
X    " ******* ",
X    " ******* ",
X    "   ***   ",
X    NULL
X    };	/* area = 61 */
X
X/* inner circle, r = 5 */
Xchar	*S10[] = {
X    "   ****   ",
X    "  ******  ",
X    " ******** ",
X    "**********",
X    "**********",
X    "**********",
X    "**********",
X    " ******** ",
X    "  ******  ",
X    "   ****   ",
X    NULL
X    };	/* area = 76 */
X
X/* outer circle, r = 5 */
Xchar	*S11[] = {
X    "   *****   ",
X    "  *******  ",
X    " ********* ",
X    "***********",
X    "***********",
X    "***********",
X    "***********",
X    "***********",
X    " ********* ",
X    "  *******  ",
X    "   *****   ",
X    NULL
X    };	/* area = 97 */
X
X/* inner circle, r = 6 */
Xchar	*S12[] = {
X    "    ****    ",
X    "  ********  ",
X    " ********** ",
X    " ********** ",
X    "************",
X    "************",
X    "************",
X    "************",
X    " ********** ",
X    " ********** ",
X    "  ********  ",
X    "    ****    ",
X    NULL
X    };	/* area = 112 */
X
X/* outer circle, r = 6 */
Xchar	*S13[] = {
X    "    *****    ",
X    "  *********  ",
X    " *********** ",
X    " *********** ",
X    "*************",
X    "*************",
X    "*************",
X    "*************",
X    "*************",
X    " *********** ",
X    " *********** ",
X    "  *********  ",
X    "    *****    ",
X    NULL
X    };	/* area = 129 */
X
X/* inner circle, r = 7 */
Xchar	*S14[] = {
X    "    ******    ",
X    "   ********   ",
X    "  **********  ",
X    " ************ ",
X    "**************",
X    "**************",
X    "**************",
X    "**************",
X    "**************",
X    "**************",
X    " ************ ",
X    "  **********  ",
X    "   ********   ",
X    "    ******    ",
X    NULL
X    };	/* area = 156 */
X
X/* outer circle, r = 7 */
Xchar	*S15[] = {
X    "     *****     ",
X    "   *********   ",
X    "  ***********  ",
X    " ************* ",
X    " ************* ",
X    "***************",
X    "***************",
X    "***************",
X    "***************",
X    "***************",
X    " ************* ",
X    " ************* ",
X    "  ***********  ",
X    "   *********   ",
X    "     *****     ",
X    NULL
X    };	/* area = 177 */
X
X/* inner circle, r = 8 */
Xchar	*S16[] = {
X    "     ******     ",
X    "   **********   ",
X    "  ************  ",
X    " ************** ",
X    " ************** ",
X    "****************",
X    "****************",
X    "****************",
X    "****************",
X    "****************",
X    "****************",
X    " ************** ",
X    " ************** ",
X    "  ************  ",
X    "   **********   ",
X    "     ******     ",
X    NULL
X    };	/* area = 208 */
X
X/* outer circle, r = 8 */
Xchar	*S17[] = {
X    "      *****      ",
X    "    *********    ",
X    "   ***********   ",
X    "  *************  ",
X    " *************** ",
X    " *************** ",
X    "*****************",
X    "*****************",
X    "*****************",
X    "*****************",
X    "*****************",
X    " *************** ",
X    " *************** ",
X    "  *************  ",
X    "   ***********   ",
X    "    *********    ",
X    "      *****      ",
X    NULL
X    };	/* area = 221 */
X
X/* inner circle, r = 9 */
Xchar	*S18[] = {
X    "      ******      ",
X    "    **********    ",
X    "   ************   ",
X    "  **************  ",
X    " **************** ",
X    " **************** ",
X    "******************",
X    "******************",
X    "******************",
X    "******************",
X    "******************",
X    "******************",
X    " **************** ",
X    " **************** ",
X    "  **************  ",
X    "   ************   ",
X    "    **********    ",
X    "      ******      ",
X    NULL
X    };	/* area = 256 */
X
X/* outer circle, r = 9 */
Xchar	*S19[] = {
X    "       *****       ",
X    "     *********     ",
X    "   *************   ",
X    "  ***************  ",
X    "  ***************  ",
X    " ***************** ",
X    " ***************** ",
X    "*******************",
X    "*******************",
X    "*******************",
X    "*******************",
X    "*******************",
X    " ***************** ",
X    " ***************** ",
X    "  ***************  ",
X    "  ***************  ",
X    "   *************   ",
X    "     *********     ",
X    "       *****       ",
X    NULL
X    };	/* area = 277 */
X
X/* inner circle, r = 10 */
Xchar	*S20[] = {
X    "       ******       ",
X    "     **********     ",
X    "    ************    ",
X    "   **************   ",
X    "  ****************  ",
X    " ****************** ",
X    " ****************** ",
X    "********************",
X    "********************",
X    "********************",
X    "********************",
X    "********************",
X    "********************",
X    " ****************** ",
X    " ****************** ",
X    "  ****************  ",
X    "   **************   ",
X    "    ************    ",
X    "     **********     ",
X    "       ******       ",
X    NULL
X    };	/* area = 308 */
X
X/* outer circle, r = 10 */
Xchar	*S21[] = {
X    "       *******       ",
X    "     ***********     ",
X    "    *************    ",
X    "   ***************   ",
X    "  *****************  ",
X    " ******************* ",
X    " ******************* ",
X    "*********************",
X    "*********************",
X    "*********************",
X    "*********************",
X    "*********************",
X    "*********************",
X    "*********************",
X    " ******************* ",
X    " ******************* ",
X    "  *****************  ",
X    "   ***************   ",
X    "    *************    ",
X    "     ***********     ",
X    "       *******       ",
X    NULL
X    };	/* area = 349 */
X
X/* inner circle, r = 11 */
Xchar	*S22[] = {
X    "        ******        ",
X    "      **********      ",
X    "    **************    ",
X    "   ****************   ",
X    "  ******************  ",
X    "  ******************  ",
X    " ******************** ",
X    " ******************** ",
X    "**********************",
X    "**********************",
X    "**********************",
X    "**********************",
X    "**********************",
X    "**********************",
X    " ******************** ",
X    " ******************** ",
X    "  ******************  ",
X    "  ******************  ",
X    "   ****************   ",
X    "    **************    ",
X    "      **********      ",
X    "        ******        ",
X    NULL
X    };	/* area = 376 */
X
X/* outer circle, r = 11 */
Xchar	*S23[] = {
X    "        *******        ",
X    "      ***********      ",
X    "     *************     ",
X    "   *****************   ",
X    "   *****************   ",
X    "  *******************  ",
X    " ********************* ",
X    " ********************* ",
X    "***********************",
X    "***********************",
X    "***********************",
X    "***********************",
X    "***********************",
X    "***********************",
X    "***********************",
X    " ********************* ",
X    " ********************* ",
X    "  *******************  ",
X    "   *****************   ",
X    "   *****************   ",
X    "     *************     ",
X    "      ***********      ",
X    "        *******        ",
X    NULL
X    };	/* area = 413 */
X
X/* inner circle, r = 12 */
Xchar	*S24[] = {
X    "         ******         ",
X    "      ************      ",
X    "     **************     ",
X    "    ****************    ",
X    "   ******************   ",
X    "  ********************  ",
X    " ********************** ",
X    " ********************** ",
X    " ********************** ",
X    "************************",
X    "************************",
X    "************************",
X    "************************",
X    "************************",
X    "************************",
X    " ********************** ",
X    " ********************** ",
X    " ********************** ",
X    "  ********************  ",
X    "   ******************   ",
X    "    ****************    ",
X    "     **************     ",
X    "      ************      ",
X    "         ******         ",
X    NULL
X    };	/* area = 448 */
X
X/* outer circle, r = 12 */
Xchar	*S25[] = {
X    "         *******         ",
X    "       ***********       ",
X    "     ***************     ",
X    "    *****************    ",
X    "   *******************   ",
X    "  *********************  ",
X    "  *********************  ",
X    " *********************** ",
X    " *********************** ",
X    "*************************",
X    "*************************",
X    "*************************",
X    "*************************",
X    "*************************",
X    "*************************",
X    "*************************",
X    " *********************** ",
X    " *********************** ",
X    "  *********************  ",
X    "  *********************  ",
X    "   *******************   ",
X    "    *****************    ",
X    "     ***************     ",
X    "       ***********       ",
X    "         *******         ",
X    NULL
X    };	/* area = 489 */
X
X/* inner circle, r = 13 */
Xchar	*S26[] = {
X    "         ********         ",
X    "       ************       ",
X    "     ****************     ",
X    "    ******************    ",
X    "   ********************   ",
X    "  **********************  ",
X    "  **********************  ",
X    " ************************ ",
X    " ************************ ",
X    "**************************",
X    "**************************",
X    "**************************",
X    "**************************",
X    "**************************",
X    "**************************",
X    "**************************",
X    "**************************",
X    " ************************ ",
X    " ************************ ",
X    "  **********************  ",
X    "  **********************  ",
X    "   ********************   ",
X    "    ******************    ",
X    "     ****************     ",
X    "       ************       ",
X    "         ********         ",
X    NULL
X    };	/* area = 540 */
X
X/* outer circle, r = 13 */
Xchar	*S27[] = {
X    "          *******          ",
X    "       *************       ",
X    "      ***************      ",
X    "     *****************     ",
X    "    *******************    ",
X    "   *********************   ",
X    "  ***********************  ",
X    " ************************* ",
X    " ************************* ",
X    " ************************* ",
X    "***************************",
X    "***************************",
X    "***************************",
X    "***************************",
X    "***************************",
X    "***************************",
X    "***************************",
X    " ************************* ",
X    " ************************* ",
X    " ************************* ",
X    "  ***********************  ",
X    "   *********************   ",
X    "    *******************    ",
X    "     *****************     ",
X    "      ***************      ",
X    "       *************       ",
X    "          *******          ",
X    NULL
X    };	/* area = 569 */
X
X/* inner circle, r = 14 */
Xchar	*S28[] = {
X    "          ********          ",
X    "        ************        ",
X    "      ****************      ",
X    "     ******************     ",
X    "    ********************    ",
X    "   **********************   ",
X    "  ************************  ",
X    "  ************************  ",
X    " ************************** ",
X    " ************************** ",
X    "****************************",
X    "****************************",
X    "****************************",
X    "****************************",
X    "****************************",
X    "****************************",
X    "****************************",
X    "****************************",
X    " ************************** ",
X    " ************************** ",
X    "  ************************  ",
X    "  ************************  ",
X    "   **********************   ",
X    "    ********************    ",
X    "     ******************     ",
X    "      ****************      ",
X    "        ************        ",
X    "          ********          ",
X    NULL
X    };	/* area = 616 */
X
X/* outer circle, r = 14 */
Xchar	*S29[] = {
X    "           *******           ",
X    "        *************        ",
X    "       ***************       ",
X    "     *******************     ",
X    "    *********************    ",
X    "   ***********************   ",
X    "   ***********************   ",
X    "  *************************  ",
X    " *************************** ",
X    " *************************** ",
X    " *************************** ",
X    "*****************************",
X    "*****************************",
X    "*****************************",
X    "*****************************",
X    "*****************************",
X    "*****************************",
X    "*****************************",
X    " *************************** ",
X    " *************************** ",
X    " *************************** ",
X    "  *************************  ",
X    "   ***********************   ",
X    "   ***********************   ",
X    "    *********************    ",
X    "     *******************     ",
X    "       ***************       ",
X    "        *************        ",
X    "           *******           ",
X    NULL
X    };	/* area = 657 */
X
X/*
X * list of images in order of decreasing size
X */
Xchar	**star_image_tab[] = {
X    S1, S2, S3, S3a, S4, S4a, S5, S6, S7, S8, S9, S10,
X    S11, S12, S13, S14, S15, S16, S17, S18, S19, S20,
X    S21, S22, S23, S24, S25, S26, S27, S28, S29
X    };
X
X/*
X * pointer to "compiled" version of each image
X */
X#define N_IMAGES	(sizeof star_image_tab /sizeof (char **))
Xint	*star_def_tab[N_IMAGES];
X
X/*
X * table which converts from star magnitude to an index into star_def_tab.
X *
X * table entry 0 corresponds to magnitude -1.5 and so on up to
X * magnitude 10.0 increments of 0.1 magnitude.
X */
X#ifdef BIG_STARS
Xshort star_mag_to_image[] = {
X	30, /* -1.5 */
X	30, /* -1.4 */
X	30, /* -1.3 */
X	30, /* -1.2 */
X	30, /* -1.1 */
X	30, /* -1.0 */
X	30, /* -0.9 */
X	30, /* -0.8 */
X	29, /* -0.7 */
X	28, /* -0.6 */
X	27, /* -0.5 */
X	26, /* -0.4 */
X	26, /* -0.3 */
X	25, /* -0.2 */
X	24, /* -0.1 */
X	23, /* 0.0 */
X	22, /* 0.1 */
X	22, /* 0.2 */
X	21, /* 0.3 */
X	20, /* 0.4 */
X	20, /* 0.5 */
X	19, /* 0.6 */
X	18, /* 0.7 */
X	18, /* 0.8 */
X	17, /* 0.9 */
X	16, /* 1.0 */
X	16, /* 1.1 */
X	16, /* 1.2 */
X	15, /* 1.3 */
X	15, /* 1.4 */
X	14, /* 1.5 */
X	14, /* 1.6 */
X	13, /* 1.7 */
X	13, /* 1.8 */
X	12, /* 1.9 */
X	12, /* 2.0 */
X	12, /* 2.1 */
X	11, /* 2.2 */
X	11, /* 2.3 */
X	11, /* 2.4 */
X	10, /* 2.5 */
X	10, /* 2.6 */
X	10, /* 2.7 */
X	9, /* 2.8 */
X	9, /* 2.9 */
X	9, /* 3.0 */
X	9, /* 3.1 */
X	8, /* 3.2 */
X	8, /* 3.3 */
X	8, /* 3.4 */
X	7, /* 3.5 */
X	7, /* 3.6 */
X	7, /* 3.7 */
X	7, /* 3.8 */
X	6, /* 3.9 */
X	6, /* 4.0 */
X	6, /* 4.1 */
X	6, /* 4.2 */
X	6, /* 4.3 */
X	6, /* 4.4 */
X	6, /* 4.5 */
X	5, /* 4.6 */
X	5, /* 4.7 */
X	5, /* 4.8 */
X	5, /* 4.9 */
X	4, /* 5.0 */
X	4, /* 5.1 */
X	3, /* 5.2 */
X	3, /* 5.3 */
X	3, /* 5.4 */
X	3, /* 5.5 */
X	3, /* 5.6 */
X	3, /* 5.7 */
X	3, /* 5.8 */
X	2, /* 5.9 */
X	2, /* 6.0 */
X	2, /* 6.1 */
X	2, /* 6.2 */
X	2, /* 6.3 */
X	2, /* 6.4 */
X	1, /* 6.5 */
X	1, /* 6.6 */
X	1, /* 6.7 */
X	1, /* 6.8 */
X	1, /* 6.9 */
X	1, /* 7.0 */
X	1, /* 7.1 */
X	1, /* 7.2 */
X	0, /* 7.3 */
X	0, /* 7.4 */
X	0, /* 7.5 */
X	0, /* 7.6 */
X	0, /* 7.7 */
X	0, /* 7.8 */
X	0, /* 7.9 */
X	0, /* 8.0 */
X	0, /* 8.1 */
X	0, /* 8.2 */
X	0, /* 8.3 */
X	0, /* 8.4 */
X	0, /* 8.5 */
X	0, /* 8.6 */
X	0, /* 8.7 */
X	0, /* 8.8 */
X	0, /* 8.9 */
X	0, /* 9.0 */
X	0, /* 9.1 */
X	0, /* 9.2 */
X	0, /* 9.3 */
X	0, /* 9.4 */
X	0, /* 9.5 */
X	0, /* 9.6 */
X	0, /* 9.7 */
X	0, /* 9.8 */
X	0, /* 9.9 */
X	0, /* 10.0 */
X};
X#else
Xshort star_mag_to_image[] = {
X	8, /* -1.5 */
X	8, /* -1.4 */
X	8, /* -1.3 */
X	8, /* -1.2 */
X	8, /* -1.1 */
X	8, /* -1.0 */
X	8, /* -0.9 */
X	8, /* -0.8 */
X	8, /* -0.7 */
X	8, /* -0.6 */
X	8, /* -0.5 */
X	8, /* -0.4 */
X	8, /* -0.3 */
X	8, /* -0.2 */
X	8, /* -0.1 */
X	8, /* 0.0 */
X	8, /* 0.1 */
X	8, /* 0.2 */
X	8, /* 0.3 */
X	8, /* 0.4 */
X	7, /* 0.5 */
X	7, /* 0.6 */
X	7, /* 0.7 */
X	7, /* 0.8 */
X	7, /* 0.9 */
X	7, /* 1.0 */
X	7, /* 1.1 */
X	7, /* 1.2 */
X	7, /* 1.3 */
X	7, /* 1.4 */
X	6, /* 1.5 */
X	6, /* 1.6 */
X	6, /* 1.7 */
X	6, /* 1.8 */
X	6, /* 1.9 */
X	6, /* 2.0 */
X	6, /* 2.1 */
X	6, /* 2.2 */
X	6, /* 2.3 */
X	6, /* 2.4 */
X	5, /* 2.5 */
X	5, /* 2.6 */
X	5, /* 2.7 */
X	5, /* 2.8 */
X	5, /* 2.9 */
X	5, /* 3.0 */
X	5, /* 3.1 */
X	5, /* 3.2 */
X	5, /* 3.3 */
X	5, /* 3.4 */
X	4, /* 3.5 */
X	4, /* 3.6 */
X	4, /* 3.7 */
X	4, /* 3.8 */
X	4, /* 3.9 */
X	4, /* 4.0 */
X	4, /* 4.1 */
X	4, /* 4.2 */
X	4, /* 4.3 */
X	4, /* 4.4 */
X	3, /* 4.5 */
X	3, /* 4.6 */
X	3, /* 4.7 */
X	3, /* 4.8 */
X	3, /* 4.9 */
X	3, /* 5.0 */
X	3, /* 5.1 */
X	3, /* 5.2 */
X	3, /* 5.3 */
X	3, /* 5.4 */
X	2, /* 5.5 */
X	2, /* 5.6 */
X	2, /* 5.7 */
X	2, /* 5.8 */
X	2, /* 5.9 */
X	2, /* 6.0 */
X	2, /* 6.1 */
X	2, /* 6.2 */
X	2, /* 6.3 */
X	2, /* 6.4 */
X	1, /* 6.5 */
X	1, /* 6.6 */
X	1, /* 6.7 */
X	1, /* 6.8 */
X	1, /* 6.9 */
X	1, /* 7.0 */
X	1, /* 7.1 */
X	1, /* 7.2 */
X	1, /* 7.3 */
X	1, /* 7.4 */
X	0, /* 7.5 */
X	0, /* 7.6 */
X	0, /* 7.7 */
X	0, /* 7.8 */
X	0, /* 7.9 */
X	0, /* 8.0 */
X	0, /* 8.1 */
X	0, /* 8.2 */
X	0, /* 8.3 */
X	0, /* 8.4 */
X	0, /* 8.5 */
X	0, /* 8.6 */
X	0, /* 8.7 */
X	0, /* 8.8 */
X	0, /* 8.9 */
X	0, /* 9.0 */
X	0, /* 9.1 */
X	0, /* 9.2 */
X	0, /* 9.3 */
X	0, /* 9.4 */
X	0, /* 9.5 */
X	0, /* 9.6 */
X	0, /* 9.7 */
X	0, /* 9.8 */
X	0, /* 9.9 */
X	0, /* 10.0 */
X};
X#endif
X
X/*** end of star definition ***/
X
X/* Planetary images */
X
Xchar	*Sun[] = {
X    "         ",
X    "         ",
X    "   ***   ",
X    "  *   *  ",
X    "  * * *  ",
X    "  *   *  ",
X    "   ***   ",
X    "         ",
X    "         ",
X    NULL
X    };
X
Xchar	*Luna[] = {
X    "  **     ",
X    "   **    ",
X    "    **   ",
X    "    * *  ",
X    "    * *  ",
X    "    * *  ",
X    "    **   ",
X    "   **    ",
X    "  **     ",
X    NULL
X    };
X
Xchar	*Mercury[] = {
X    "  *   *  ",
X    "   ***   ",
X    "  *   *  ",
X    "  *   *  ",
X    "  *   *  ",
X    "   ***   ",
X    "    *    ",
X    "   ***   ",
X    "    *    ",
X    NULL
X    };
X
Xchar	*Venus[] = {
X    "         ",
X    "   ***   ",
X    "  *   *  ",
X    "  *   *  ",
X    "  *   *  ",
X    "   ***   ",
X    "    *    ",
X    "   ***   ",
X    "    *    ",
X    NULL
X    };
X
Xchar	*Mars[] = {
X    "         ",
X    "    ***  ",
X    "     **  ",
X    "    * *  ",
X    "    *    ",
X    "   ***   ",
X    "  *   *  ",
X    "  *   *  ",
X    "   ***   ",
X    NULL
X    };
X
Xchar	*Jupiter[] = {
X    "   *     ",
X    "  * * *  ",
X    "    * *  ",
X    "    * *  ",
X    "   *  *  ",
X    "   *  *  ",
X    "   ****  ",
X    "      *  ",
X    "         ",
X    NULL
X    };
X
Xchar	*Saturn[] = {
X    "         ",
X    "  ***    ",
X    "   *     ",
X    "   *     ",
X    "   ***   ",
X    "   *  *  ",
X    "   * *   ",
X    "   * *   ",
X    "      *  ",
X    NULL
X    };
X
Xchar	*Uranus[] = {
X    "    *    ",
X    "   ***   ",
X    "  * * *  ",
X    "    *    ",
X    "   ***   ",
X    "  *   *  ",
X    "  * * *  ",
X    "  *   *  ",
X    "   ***   ",
X    NULL
X    };
X
Xchar	*Neptune[] = {
X    "  * * *  ",
X    "  * * *  ",
X    "  * * *  ",
X    "  * * *  ",
X    "   ***   ",
X    "    *    ",
X    "   ***   ",
X    "    *    ",
X    "         ",
X    NULL
X    };
X
Xchar	*Pluto[] = {
X    "         ",
X    "  ****   ",
X    "  *   *  ",
X    "  *   *  ",
X    "  ****   ",
X    "  *      ",
X    "  *****  ",
X    "         ",
X    NULL
X    };
X
Xchar	*Comet[] = {
X    "      * *",
X    "     * * ",
X    "  ***    ",
X    " **** * *",
X    " ***** * ",
X    "  ***    ",
X    "     * * ",
X    "      * *",
X    NULL
X    };
X
Xchar	*Aster[] = {
X    "*       *",
X    " *     * ",
X    "  * * *  ",
X    "   ***   ",
X    "   ***   ",
X    "  * * *  ",
X    " *     * ",
X    "*       *",
X    NULL
X    };
X
X/* Galaxy images */
X
Xchar	*Gal_E[] = {
X    "***   ",
X    "****  ",
X    "***** ",
X    " *****",
X    "  ****",
X    "   ***",
X    NULL
X    };
X
Xchar	*Gal_S[] = {
X    " ***  ",
X    "*   * ",
X    "  **  ",
X    " **** ",
X    "  **  ",
X    " *   *",
X    "  *** ",
X    NULL
X    };
X
X/* Cluster images */
X
Xchar	*Clu_G[] = {
X    "   *   ",
X    " *   * ",
X    "   *   ",
X    "* *** *",
X    "   *   ",
X    " *   * ",
X    "   *   ",
X    NULL
X    };
X
Xchar	*Clu_O[] = {
X    "   *   ",
X    " *   * ",
X    "       ",
X    "*     *",
X    "       ",
X    " *   * ",
X    "   *   ",
X    NULL
X    };
X
X/* Nebula images */
X
Xchar	*Neb_D[] = {
X    "  *  ",
X    " * * ",
X    "*   *",
X    " * * ",
X    "  *  ",
X    NULL
X    };
X
Xchar	*Neb_P[] = {
X    "   ***",
X    "  *  *",
X    " *   *",
X    "*   * ",
X    "*  *  ",
X    "***   ",
X    NULL
X    };
X
X/* Other images */
X
Xchar	*Unk_U[] = {
X    " *** ",
X    "*   *",
X    "   **",
X    "  *  ",
X    "  *  ",
X    "     ",
X    "  *  ",
X    NULL
X    };
X
Xchar	*Other_O[] = {
X    "* * * ",
X    " * * *",
X    "* * * ",
X    " * * *",
X    "* * * ",
X    " * * *",
X    NULL
X    };
X
Xchar *calloc();
X
X/**********************************************************************
X**
X** cimage:
X**
X** Parameters:
X**	image		char ** pointer to ascii reprentation of images
X**
X** Function:
X**	'compiles' star image data for drawlen from char pointers given
X**	this method simplifies the creation and updating of images.
X**	The lengths of rows of images MUST be equal !!
X**
X** Returns:
X**	NULL when ptr != NULL, pointer to allocated vector defining
X**	drawlen information and ending to ENDCOORD value when ptr == NULL
X**
X** History:
X**
X**	Modified from cstar by Steve Kennedy 3/1/89
X** 
X*/
Xint *
Xcimage(image)
Xchar **image;
X{
X	int n;				/* number of lines gathered */
X	int len;			/* longest line found */
X	int cx, cy;			/* center points */
X	char *ptr;
X	char **rptr;
X	int *retarea;
X	int i,j, x, s, l;
X	
X
X	n = 0;
X	len = 0;
X	for (rptr = image; *rptr != NULL; ++rptr, ++n)
X	{
X	    cx = strlen (*rptr);		/* get max len */
X	    if  (cx > len) len = cx;
X	}
X
X	/*
X	** start 'compilation'
X	*/
X	cy = n / 2;				/* align */
X	cx = len / 2;
X
X	/*
X	** allocate offset area
X	*/
X	retarea = (int *) calloc 
X		((unsigned)(len * n * (n / 2 + 1) * 3 + 1), sizeof (int));
X	if  (retarea == NULL) {
X		perror ("Memory allocation failed");
X		exit (2);
X	}
X	/*
X	** fill return area
X	*/
X	j = 0;
X	for (i = 0; i < n; i++) {
X		l = 0;  s = 0;  x = 0;
X		ptr = image [i];
X		while (*ptr) {
X			if  (*ptr == ' ') {
X				if  (l) { /* flush */
X					retarea [j++] = s - cx;
X/*					retarea [j++] = i - cy;*/
X					retarea [j++] = cy - i;
X					retarea [j++] = l;
X							
X					l = 0;
X				}
X			}
X			else {
X				if  (l)
X					l++;
X				else {
X					s = x;
X					l = 1;
X				}
X			}
X			ptr++;
X			x++;
X		} /* while */
X		if  (l) { /* flush */
X			retarea [j++] = s - cx;
X/*			retarea [j++] = i - cy;*/
X			retarea [j++] = cy - i;
X			retarea [j++] = l;
X		}
X	} /* for */
X	n = 0;
X	retarea [j] = ENDCOORD;
X	return retarea;
X} /* cimage */
X
X
X/* Interface Function */
X/* Draw object at x, y.  properties set by other parameters */
Xdrawobj(x, y, mag, type, color_str, label_field, con_str, obj_name,
X	comment_str, file_line,
X	draw_glyph, draw_text, use_lbl, use_name, use_mag)
X
X     int x, y;
X     double mag;	/* Magnitude of object */
X     char *type;	/* 2 chars, object code and subcode */
X     char *color_str;	/* 2 chars, spectral type for stars, 
X			   color code otherwise */
X     char *label_field;	/* 2 chars, Bayer or flamsteed for stars,
X			   size in seconds for nebulae and
X			   planets */
X     char *con_str;	/* 3 chars, the constellation the object is in */
X     char *obj_name;	/* Name of object */
X     char *comment_str;	/* Comment field */
X     char *file_line;	/* The full line from the file,
X			   containing the above if it is in
X			   standard format */
X     int draw_glyph;	/* Draw object symbol */
X     int draw_text;	/* Draw text */
X     int use_lbl;	/* Label object with the label_field string */
X     int use_name;	/* Label object with the obj_name string */
X     int use_mag;	/* Label object with a 2 or 3 character string
X			   containing the magnitude * 10 without
X			   decimal point */
X{
X  char magstr[10];
X
X/*fprintf(stderr, "%d %d %f <%s> <%s> <%s> <%s> <%s> <%s> <%s>\n", x, y, mag,
X	type, color_str, label_field, con_str, obj_name, comment_str,
X	file_line);*/
X
X  if (draw_glyph)
X    switch(type[0]) {
X    case 'S':	drawStar(x,y,mag,type[1],color_str);
X      break;
X    case 'P':	drawPlan(x,y,mag,type[1],color_str, size_obj(label_field),
X			 comment_str);
X      break;
X    case 'N':	drawNebu(x,y,mag,type[1],color_str, size_obj(label_field));
X      break;
X    case 'G':	drawGalx(x,y,mag,type[1],color_str, size_obj(label_field));
X      break;
X    case 'C':	drawClus(x,y,mag,type[1],color_str, size_obj(label_field));
X      break;
X    case 'U':
X      drawUnknown(x,y,mag,type[1],color_str, size_obj(label_field));
X      break;
X    case 'O':
X      drawOther(x,y,mag,type[1],color_str, size_obj(label_field));
X      break;
X    case 'V':
X    case 'A':
X    case 'I':
X      break;
X    case '#':
X    default:
X      break;
X    };
X
X
X/*
X * use name or label
X */
X  if (draw_text) {
X    if (type[0] == 'I')
X      D_color(color_str);
X    else
X      D_color("  ");
X
X    if (use_name && obj_name[0]) {
X      D_fontsize(namesize, namefnt);
X      D_text(x+x_nameoffset, y+y_nameoffset, obj_name, FALSE);
X    } else if (use_lbl &&
X	       ((label_field[0] != ' ') || (label_field[1] != ' '))) {
X      D_fontsize(lblsize, lblfnt);
X      D_text(x+x_lbloffset, y+y_lbloffset, label_field, TRUE);
X    }
X/* If you want to mag label other objects, change this */
X    if (use_mag && (type[0] == 'S')) {
X      sprintf(magstr, "%02d", (int)(mag*10.0+0.5));
X      D_fontsize(magsize, magfnt);
X      D_text(x+x_magoffset, y+y_magoffset, magstr, FALSE);
X    }
X  }
X}
X
XdrawStar (x, y, mag, type, color)
X     int x, y;
X     double mag;
X     char type, *color;
X{
X    int		*coord;
X    int		i;
X    int		i_mag;
X    int		maxlen;
X
X
X    if (mag < MIN_MAG)
X    {
X	mag = MIN_MAG;
X    }
X    else if (mag > MAX_MAG)
X    {
X	mag = MAX_MAG;
X    }
X    mag += 1.5;
X
X    i_mag = star_mag_to_image[(int) (mag*10.0 + 0.5)];
X
X    D_color(color);
X    switch (type)
X	{
X    case 'S':
X    default:
X	if (star_def_tab[i_mag] == NULL)
X	{
X	    star_def_tab[i_mag] = cimage(star_image_tab[i_mag]);
X	}
X	coord = star_def_tab[i_mag];
X	break;
X	}
X
X    i = 0;
X    maxlen = 0;
X    while (coord [i] != ENDCOORD)
X    {
X	drawlen (x, y, coord [i], coord [i+1], coord [i+2]);
X#ifdef NOTYET
X	if (type == 'D' && coord [i+2] > maxlen)
X	{
X	    maxlen = coord [i + 2];
X	    dx = coord [i];
X	}
X#endif
X	i += 3;
X    }
X#ifdef NOTYET
X    if (type == 'D' && maxlen >= 5)
X    {
X	fprintf(stderr, "(%d,%d) dx=%d, dy=%d, len=%d\n",
X	    x, y, dx, 0, maxlen);
X	drawlen(x, y, dx - 2, 0, maxlen + 4);
X    }
X#endif
X
X    D_color(" ");
X}
X
X
XdrawPlan(x, y, mag, pcode, color, plansize, comment_str)
X     int x,y;
X     double mag;
X     char pcode, *color;
X     long plansize;
X     char *comment_str;
X{
X  static int def[128], *coord[128];
X#define MOONR	5
X#define DTR(x)	((x)*.0174532925199)
X  static char	moon[2*MOONR+1][2*MOONR+2];
X  int	*tcoord;
X  int i;
X
X    D_color(color);
X  if (!def[pcode]) {
X    def[pcode] = 1;
X    switch (pcode) {
X    case 'S':
X      tcoord = cimage(Sun);
X      break;
X    case 'L':
X      tcoord = cimage(Luna);
X      break;
X    case 'M':
X      tcoord = cimage(Mercury);
X      break;
X    case 'V':
X      tcoord = cimage(Venus);
X      break;
X    case 'm':
X      tcoord = cimage(Mars);
X      break;
X    case 'J':
X      tcoord = cimage(Jupiter);
X      break;
X    case 's':
X      tcoord = cimage(Saturn);
X      break;
X    case 'U':
X      tcoord = cimage(Uranus);
X      break;
X    case 'N':
X      tcoord = cimage(Neptune);
X      break;
X    case 'P':
X      tcoord = cimage(Pluto);
X      break;
X    case 'C':
X      tcoord = cimage(Comet);
X      break;
X    case 'A':
X      tcoord = cimage(Aster);
X      break;
X    default:
X      tcoord = cimage(Unk_U);
X      break;
X    }
X    coord[pcode] = tcoord;
X  }
X
X  i = 0;
X  while (coord[pcode][i] != ENDCOORD) {
X    drawlen (x, y, coord[pcode][i], coord[pcode][i+1],
X	     coord[pcode][i+2]);
X    i += 3;
X  }
X    D_color(" ");
X}
X
X
XdrawGalx(x, y, mag, type, color, nebsize)
Xint x, y;
Xdouble mag;
Xchar type, *color;
Xlong nebsize;		/* -1 should give default size */
X{
X	static int defSpiral, *coordSpiral;
X	static int defEll, *coordEll;
X	int	*coord;
X	int i;
X
X    D_color(color);
X	switch (type)
X	    {
X	case 'S':
X	default:
X	    if  (!defSpiral) {
X		defSpiral = 1;
X		coordSpiral = cimage(Gal_S);
X		}
X	    coord = coordSpiral;
X	    break;
X	case 'E':
X	    if (!defEll) {
X		defEll = 1;
X		coordEll = cimage(Gal_E);
X		}
X	    coord = coordEll;
X	    break;
X	    }
X
X	i = 0;
X	while (coord [i] != ENDCOORD) {
X		drawlen (x, y, coord [i], coord [i+1], coord [i+2]);
X		i += 3;
X	}
X    D_color(" ");
X}
X
XdrawClus(x, y, mag, type, color, nebsize)
Xint x, y;
Xdouble mag;
Xchar type, *color;
Xlong nebsize;		/* -1 should give default size */
X{
X	static int defGlob, *coordGlob;
X	static int defOpen, *coordOpen;
X	int	*coord;
X	int i;
X
X    D_color(color);
X	switch (type)
X	    {
X	case 'G':
X	    if (!defGlob) {
X		defGlob = 1;
X		coordGlob = cimage(Clu_G);
X		}
X	    coord = coordGlob;
X	    break;
X	case 'O':
X	default:
X	    if  (! defOpen) {
X		defOpen = 1;
X		coordOpen = cimage(Clu_O);
X		}
X	    coord = coordOpen;
X	    break;
X	    }
X
X	i = 0;
X	while (coord [i] != ENDCOORD) {
X		drawlen (x, y, coord [i], coord [i+1], coord [i+2]);
X		i += 3;
X	}
X    D_color(" ");
X}
X
XdrawNebu(x, y, mag, type, color, nebsize)
Xint x, y;
Xdouble mag;
Xchar type, *color;
Xlong nebsize;		/* -1 should give default size */
X{
X	static int defDiff, *coordDiff;
X	static int defPlan, *coordPlan;
X	int	*coord;
X	int i;
X
X    D_color(color);
X	switch (type)
X	    {
X	case 'P':
X	    if  (!defPlan) {
X		defPlan = 1;
X		coordPlan = cimage(Neb_P);
X		}
X	    coord = coordPlan;
X	    break;
X	default:
X	case 'D':
X	    if (!defDiff) {
X		defDiff = 1;
X		coordDiff = cimage(Neb_D);
X		}
X	    coord = coordDiff;
X	    break;
X	    }
X
X	i = 0;
X	while (coord [i] != ENDCOORD) {
X		drawlen (x, y, coord [i], coord [i+1], coord [i+2]);
X		i += 3;
X	}
X    D_color(" ");
X}
X
XdrawUnknown(x, y, mag, type, color, nebsize)
Xint x, y;
Xdouble mag;
Xchar type, *color;
Xlong nebsize;		/* -1 should give default size */
X{
X	static int defUnk, *coordUnk;
X	int	*coord;
X	int i;
X
X    D_color(color);
X	switch (type)
X	    {
X	    case ' ':
X	default:
X	    if (!defUnk) {
X		defUnk = 1;
X		coordUnk = cimage(Unk_U);
X		}
X	    coord = coordUnk;
X	    break;
X	    }
X
X	i = 0;
X	while (coord [i] != ENDCOORD) {
X		drawlen (x, y, coord [i], coord [i+1], coord [i+2]);
X		i += 3;
X	}
X    D_color(" ");
X}
X
XdrawOther(x, y, mag, type, color, nebsize)
Xint x, y;
Xdouble mag;
Xchar type, *color;
Xlong nebsize;		/* -1 should give default size */
X{
X	static int defOthr_O, *coordOthr_O;
X	int	*coord;
X	int i;
X
X    D_color(color);
X	switch (type)
X	    {
X	    case ' ':
X	default:
X	    if (!defOthr_O) {
X		defOthr_O = 1;
X		coordOthr_O = cimage(Other_O);
X		}
X	    coord = coordOthr_O;
X	    break;
X	    }
X
X	i = 0;
X	while (coord [i] != ENDCOORD) {
X		drawlen (x, y, coord [i], coord [i+1], coord [i+2]);
X		i += 3;
X	}
X    D_color(" ");
X}
X
X
X#ifdef AREAS
X/* Functions for areas, drawn as lines for now */
Xstatic struct {int x,y;} areapts[1000];
Xstatic int nareapts;
X/* Move to (x, y) to begin an area */
XD_areamove(x, y)
X     int x, y;
X{
X  nareapts = 0;
X  areapts[nareapts].x = x;
X  areapts[nareapts].y = y;
X  nareapts++;
X}
X
X/* Add a segment to the area border */
XD_areaadd(x, y)
X     int x, y;
X{
X  areapts[nareapts].x = x;
X  areapts[nareapts].y = y;
X  nareapts++;
X}
X
X/* Fill the area, after adding the last segment */
XD_areafill(x, y)
X     int x, y;
X{
X  int i;
X
X  areapts[nareapts].x = x;
X  areapts[nareapts].y = y;
X  nareapts++;
X
X
X  D_move(areapts[0].x, areapts[0].y);
X
X  for (i = 1; i < nareapts; i++)
X    D_draw(areapts[i].x, areapts[i].y);
X}
X#endif
X
X
X
X
X/* Note externs which are used */
X
Xchartlegend(win)
X     mapwindow *win;
X{
X  char ras[20], dls[20], outstr[40];
X  if (!title[0]) title = "LEGEND";
X  rastr(ras, win->racen);
X  declstr(dls, win->dlcen);
X
X  if (win->map_type != FULLPAGEMAP) {
X    sprintf(outstr, "(%s,%s lim: %2.1f)", ras, dls, win->maglim);
X    D_fontsize(titlesize, titlefnt); D_text(l_lmar1, l_til, title, FALSE);
X    D_fontsize(subtlsize, subtlfnt); D_text(l_lmar1, l_stil, outstr, FALSE);
X    
X    drawStar(l_lmar2, l_line1, 0.0, 'S', "  ");
X    D_fontsize(namesize, namefnt);
X    D_text(l_ltext, l_line1,"<0.5", FALSE);
X    if (win->maglim >= 0.5)
X      {
X	drawStar(l_rmar2, l_line1, 1.0, 'S', "  ");
X	D_fontsize(namesize, namefnt);
X	D_text( l_rtext, l_line1,"<1.5", FALSE);
X      }
X    if (win->maglim >= 1.5)
X      {
X	drawStar(l_lmar2, l_line2, 2.0, 'S', "  ");
X	D_fontsize(namesize, namefnt);
X	D_text(l_ltext, l_line2,"<2.5", FALSE);
X      }
X    if (win->maglim >= 2.5)
X      {
X	drawStar(l_rmar2, l_line2, 3.0, 'S', "  ");
X	D_fontsize(namesize, namefnt);
X	D_text(l_rtext, l_line2,"<3.5", FALSE);
X      }
X    if (win->maglim >= 3.5)
X      {
X	drawStar(l_lmar2, l_line3, 4.0, 'S', "  ");
X	D_fontsize(namesize, namefnt);
X	D_text(l_ltext, l_line3,"<4.5", FALSE);
X      }
X    if (win->maglim > 4.5)
X      {
X	drawStar(l_rmar2, l_line3, 5.0, 'S', "  ");
X	D_fontsize(namesize, namefnt);
X	D_text(l_rtext, l_line3,">4.5", FALSE);
X      }
X    
X    D_fontsize(namesize, namefnt);
X    D_text(l_ltext,l_line4,"double", FALSE);
X    drawStar(l_lmar2,l_line4,2.0, 'D', "  ");
X    D_fontsize(namesize, namefnt);
X    D_text(l_rtext,l_line4,"variable",FALSE);
X    drawStar(l_rmar2,l_line4,2.0, 'V', "  ");
X
X    D_fontsize(namesize, namefnt);
X    D_text(l_ltext,l_line5,"planet", FALSE);
X    drawPlan(l_lmar2,l_line5,1.0, ' ', "  ", (long) -1, "");
X
X    D_fontsize(namesize, namefnt);
X    D_text(l_rtext,l_line5,"galaxy", FALSE);
X    drawGalx(l_rmar2,l_line5,1.0, 'E', "  ", (long) -1);
X    drawGalx(l_rmar1,l_line5,1.0, 'S', "  ", (long) -1);
X
X    D_fontsize(namesize, namefnt);
X    D_text(l_ltext,l_line6,"nebula", FALSE);
X    drawNebu(l_lmar2,l_line6,1.0, 'D', "  ", (long) -1);
X    drawNebu( l_lmar1,l_line6,1.0, 'P', "  ", (long) -1);
X
X    D_fontsize(namesize, namefnt);
X    D_text(l_rtext,l_line6,"cluster", FALSE);
X    drawClus(l_rmar2,l_line6,1.0, 'O', "  ", (long) -1);
X    drawClus(l_rmar1,l_line6,1.0, 'G', "  ", (long) -1);
X  } else {
X    D_fontsize(namesize, namefnt);
X
X    sprintf(outstr, "%s: %s,%s lim: %2.1f", title, ras, dls, win->maglim);
X    D_text(15, 15, outstr, FALSE);
X  }
X}
X
X
X
END_OF_FILE
if test 37431 -ne `wc -c <'starchart/starimages.c'`; then
    echo shar: \"'starchart/starimages.c'\" unpacked with wrong size!
fi
# end of 'starchart/starimages.c'
fi
echo shar: End of archive 28 \(of 32\).
cp /dev/null ark28isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 32 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0


