home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d2xx
/
d229
/
drawmap.lha
/
DrawMap
/
drawmap.h
< prev
next >
Wrap
C/C++ Source or Header
|
1989-07-20
|
7KB
|
173 lines
/* File drawmap.h */
#define MAX(a,b) ((a)>=(b) ? (a) : (b))
#define ABS(a) ((a)>=0 ? (a) : (-(a)))
#define WC WINDOWCLOSE
#define WDP WINDOWDEPTH
#define NORMALFLAGS (WC | WDP)
#define IDCMPFLAGS (CLOSEWINDOW | MOUSEBUTTONS)
#define WWIDTH 640 /* window width (pixels) */
#define WHEIGHT 400 /* window height (pixels) */
#define VMODE (HIRES | LACE) /* view mode */
#define CENTERX WWIDTH/2 /* place origin at center of */
#define CENTERY (WHEIGHT-10)/2 /* window */
#define NUMPTS 2100 /* max. no. points per area */
#define MAXVAL 17718 /* number of words in map */
#define HFACTOR (WWIDTH/360.) /* horizontal scale (pix/deg) */
#define VFACTOR ((WHEIGHT-10.)/180.) /* vertical scale (pix/deg) */
#define M_VFACTOR ((WHEIGHT-10.)/4.87) /* vertical scale for Mercator */
/* map (+/- 80 degrees lat.) */
#define ASP_RAT ((640./400.)*(188./260.)) /* screen aspect ratio */
/* (max width / max hgt) */
#define VRADIUS 160 /* vertical radius of ellipse */
/* (pixels) */
#define HRADIUS (short)(ASP_RAT * VRADIUS+0.5) /* horiz. radius (pix) */
#define FILL 1 /* fill area outlines */
#define NOFILL 0 /* don't fill area outlines */
#define OK 1 /* result flags */
#define NOT_OK 0
#define BLUE 0L /* workbench colors */
#define WHITE 1L
#define BLACK 2L
#define ORANGE 3L
UWORD mapcolors[] = {
0x006b, 0x0fff, 0x0000, 0x0f90, /* blue, white, black, orange */
0x0f90, 0x0fff, 0x0000, 0x006b, /* orange, white, black, blue */
0x006b, 0x0fff, 0x0000, 0x0caf, /* blue, white, black, violet */
0x0caf, 0x0fff, 0x0000, 0x006b, /* violet, white, black, blue */
0x006b, 0x0fff, 0x0000, 0x00f0, /* blue, white, black, green */
0x00f0, 0x0fff, 0x0000, 0x006b, /* green, white, black, blue */
0x006b, 0x0fff, 0x0000, 0x0ff0, /* blue, white, black, yellow */
0x0ff0, 0x0fff, 0x0000, 0x006b /* yellow, white, black, blue */
};
int num_colors = sizeof(mapcolors)/2; /* number of colors in color table */
#define MAXRIM 50 /* max # pairs of rim points */
#define GLOBE_FILL_MIN 5 /* min # points in area to be */
/* color-filled on globe */
#define RE 6378.165 /* radius of Earth (kilometers) */
#define VIEW_HEIGHT 300. /* height above Earth to view */
/* globe (km) */
#define MIN_HEIGHT 10. /* minimum view height (km) */
double view_height, eta, etap, facp; /* declare global constants */
double pi = 3.141592653589793;
double rad, pi2, twopi;
/* region numbers for lakes */
int lakes[] = { 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156 };
int num_lakes = sizeof(lakes) / sizeof(int);
char fontname[] = "topaz.font"; /* screen font name */
struct TextAttr mapfont = { /* screen font */
(STRPTR) &fontname, 8, 0, 0
};
struct NewScreen mapscreen = {
0, /* left edge of screen */
0, /* top edge of screen */
WWIDTH, WHEIGHT, /* width, height of screen */
2, /* 4 colors */
1, 0, /* detail pen, block pen */
VMODE, /* view mode */
CUSTOMSCREEN, /* type of screen */
&mapfont, /* screen font */
"Map Screen", /* screen title */
NULL,
NULL
};
struct NewWindow mapWindow = {
0, /* LeftEdge for window measured
in pixels, at the current
horizontal resolution, from the
leftmost edge of the Screen */
0, /* TopEdge for window is measured
in lines from the top of the
current Screen. */
WWIDTH, WHEIGHT, /* Width, Height of this window */
0, /* DetailPen - what pen number is
to be used to draw the borders
of the window */
1, /* BlockPen - what pen number is
to be used to draw system
generated window gadgets */
/* (for DetailPen and BlockPen,
the value of -1 says
"use the default value") */
IDCMPFLAGS, /* IDCMP Flags */
SMART_REFRESH | ACTIVATE | NORMALFLAGS | GIMMEZEROZERO | RMBTRAP |
BORDERLESS | REPORTMOUSE,
/* Window Flags */
NULL, /* FirstGadget */
NULL, /* CheckMark */
"Map Window", /* Window title */
NULL, /* Pointer to Screen if not
workbench */
NULL, /* Pointer to BitMap if a
SUPERBITMAP window */
10, 10, /* minimum width, minimum height */
WWIDTH, WHEIGHT, /* maximum width, maximum height */
CUSTOMSCREEN
};
UWORD arrow_data[] = {
0x0000, 0x0000,
0xf000, 0x0000,
0xc000, 0x0000,
0xa000, 0x0000,
0x9000, 0x0000,
0x0800, 0x0000,
0x0400, 0x0000,
0x0200, 0x0000,
0x0000, 0x0000
};
int arrow_x_offset = -1; /* mouse pointer = thin arrow */
int arrow_y_offset = 0;
int arrow_size = sizeof(arrow_data);
UWORD cross_data[] = {
0x0000, 0x0000,
0x0400, 0x0000,
0x0400, 0x0000,
0x0400, 0x0000,
0x0400, 0x0000,
0x0000, 0x0000,
0xf1e0, 0x0000,
0x0000, 0x0000,
0x0400, 0x0000,
0x0400, 0x0000,
0x0400, 0x0000,
0x0400, 0x0000,
0x0000, 0x0000
};
int cross_x_offset = -6; /* mouse pointer = cross */
int cross_y_offset = -1;
int cross_size = sizeof(cross_data);