home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
056.lha
/
Four
/
menu.c
< prev
next >
Wrap
C/C++ Source or Header
|
1986-11-20
|
5KB
|
154 lines
/* four in a row's structures */
/* menu and item definitions */
#define PROJECT 0
#define GAME 1
#define ABOUT 0
#define QUIT 1
#define NEWGAME 0
#define PLAYER2 1
#define FIRSTPLAYER 2
#define INSTRUCTIONS 3
void set_itext(), init_itexts(), set_item(), init_items();
void set_menu(), init_menus();
struct IntuiText m1_text1, m1_text2,
m2_text1, m2_text2a, m2_text2b, m2_text3a,
m2_text3b, m2_text4,
instr1, instr2, instr3, instr4, instr5, instr6,
about1, about2, about3, about4, about5, about6, about7,
address1, address2, address3, address4, address5,
positive, negative;
struct MenuItem m1_item1, m1_item2,
m2_item1, m2_item2, m2_item3, m2_item4;
struct Menu menu1, menu2;
/* intuitext structures and routines for menus */
void set_itext(intuitext, pen, left, top, text, next)
struct IntuiText *intuitext, *next;
UBYTE pen, *text;
SHORT left, top;
{
intuitext-> FrontPen = pen;
intuitext-> BackPen = 1;
intuitext-> DrawMode = JAM1;
intuitext-> LeftEdge = left;
intuitext-> TopEdge = top;
intuitext-> ITextFont = NULL;
intuitext-> IText = text;
intuitext-> NextText = next;
return;
}
void init_itexts()
{
set_itext(&m1_text1, 3, 8, 1, "About", NULL);
set_itext(&m1_text2, 3, 8, 1, "Quit", NULL);
set_itext(&m2_text1, 3, 8, 1, "New Game", NULL);
set_itext(&m2_text2a, 3, 8, 1, "One Player", NULL);
set_itext(&m2_text2b, 3, 8, 1, "Two Players", NULL);
set_itext(&m2_text3a, 3, 8, 1, "I Am First", NULL);
set_itext(&m2_text3b, 3, 8, 1, "You're First", NULL);
set_itext(&m2_text4, 3, 8, 1, "Instructions", NULL);
set_itext(&instr6, 3, 8, 54, "(no pun intended)", NULL);
set_itext(&instr5, 3, 8, 44, "plays with brown beads.", &instr6);
set_itext(&instr4, 3, 8, 34, "on the poles. The computer", &instr5);
set_itext(&instr3, 3, 8, 24, "horizontally by stacking them", &instr4);
set_itext(&instr2, 3, 8, 14, "vertically, diagonally, or", &instr3);
set_itext(&instr1, 3, 8, 04, "Get four beads in a row", &instr2);
set_itext(&address5, 3, 8, 154, "Chico #: (916)343-6676", NULL);
set_itext(&address4, 3, 8, 144, " Chico, CA 95926", &address5);
set_itext(&address3, 3, 8, 134, " or 634 W. 2nd Ave. #2", &address4);
set_itext(&address2, 3, 8, 114, " Modesto, CA 95350", &address3);
set_itext(&address1, 3, 8, 104, "U.Snail: 1125 Ulrich Ave.", &address2);
set_itext(&about7, 3, 8, 89, "Comments welcome:", &address1);
set_itext(&about6, 3, 13, 69, "money; it's Public Domain.", &about7);
set_itext(&about5, 3, 13, 59, "not for commercial use or", &about6);
set_itext(&about4, 3, 13, 49, "distribute this program, but", &about5);
set_itext(&about3, 3, 13, 39, "Feel free to copy and", &about4);
set_itext(&about2, 3, 8, 24, "Copyright (C) 1987 by Pery Pearson", &about3);
set_itext(&about1, 2, 24, 4, "Four in a Row V1.0 08/14/87", &about2);
set_itext(&positive, 2, 6, 4, "Gotcha", NULL);
set_itext(&negative, 2, 7, 4, "Hmm...", NULL);
return;
}
/* menu item structures */
void set_item(item, n, l, t, w, h, f)
struct MenuItem *item, *n;
SHORT l, t, w, h;
APTR f;
{
item-> NextItem = n;
item-> LeftEdge = l;
item-> TopEdge = t;
item-> Width = w;
item-> Height = h;
item-> Flags = ITEMTEXT | HIGHCOMP | ITEMENABLED;
item-> MutualExclude = NULL;
item-> ItemFill = f;
item-> SelectFill = NULL;
item-> Command = NULL;
item-> SubItem = NULL;
return;
}
void init_items()
{
set_item(&m1_item2, NULL, 0, 10, 9*8, 10, (APTR)&m1_text2);
set_item(&m1_item1, &m1_item2, 0, 0, 9*8, 10, (APTR)&m1_text1);
set_item(&m2_item4, NULL, 0, 30, 14*8, 10, (APTR)&m2_text4);
set_item(&m2_item3, &m2_item4, 0, 20, 14*8, 10, (APTR)&m2_text3b);
set_item(&m2_item2, &m2_item3, 0, 10, 14*8, 10, (APTR)&m2_text2a);
set_item(&m2_item1, &m2_item2, 0, 0, 14*8, 10, (APTR)&m2_text1);
return;
}
/* menu structures and routines */
void set_menu(menu, next, l, t, w, h, name, f)
struct Menu *menu, *next;
SHORT l, t, w, h;
BYTE *name;
struct MenuItem *f;
{
menu-> NextMenu = next;
menu-> LeftEdge = l;
menu-> TopEdge = t;
menu-> Width = w;
menu-> Height = h;
menu-> Flags = MENUENABLED;
menu-> MenuName = name;
menu-> FirstItem = f;
return;
}
void init_menus()
{
init_itexts();
init_items();
set_menu(&menu2, NULL, 14*8, 0, 14*8, 10, " Game ", &m2_item1);
set_menu(&menu1, &menu2, 2*8, 0, 9*8, 10, " Project ", &m1_item1);
return;
}