home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_disks
/
300-399
/
ff343.lzh
/
SnakePit
/
SnakePitSrc.lzh
/
Snake_Main.c
< prev
next >
Wrap
C/C++ Source or Header
|
1988-07-04
|
3KB
|
121 lines
/*
* MKSoft SnakePit Copyright (c) 1988 by Michael Sinz
*
* MAIN program...
*/
#include "Snake.h"
struct MsgPort *Timer;
struct timerequest Time_Req;
VOID MyMain()
{
register struct IntuiMessage *msg;
register USHORT menu;
register struct MenuItem *TEMP;
register short EXIT=TRUE;
short Screens_Changed=FALSE;
short Scores_Changed=FALSE;
short Keys_Changed=FALSE;
short UserSpeed=4;
short Sound=TRUE;
short Drums=TRUE;
if (Timer=CreatePort("MKSoft SnakePit Timer",NULL))
{
if (!OpenDevice(TIMERNAME,UNIT_VBLANK,&Time_Req,NULL))
{
Time_Req.tr_node.io_Message.mn_ReplyPort=Timer;
Time_Req.tr_node.io_Command=TR_ADDREQUEST;
Time_Req.tr_node.io_Flags=0;
Time_Req.tr_node.io_Error=0;
if (OpenMyWindow())
{
ShowWait();
UpDate_Status(0,0L,0);
DrawImage(MyWindow->RPort,&Splash,0L,0L);
SetUp_For_Save();
while(EXIT)
{
ClearPointer(MyWindow);
Sound_Play(6,10000,80);
WaitPort(MyWindow->UserPort);
ShowWait();
while (msg=(struct IntuiMessage *)GetMsg(MyWindow->UserPort))
{
menu=msg->Code;
if (msg->Class==MENUPICK) while(menu!=MENUNULL)
{
switch (MENUNUM(menu))
{
case 0: switch (ITEMNUM(menu))
{
case 0: Play_Game(UserSpeed);
Scores_Changed=TRUE;
break;
case 1: ClearPointer(MyWindow);
Request_SelectKeys();
Keys_Changed=TRUE;
break;
case 2: Edit_Screens();
Screens_Changed=TRUE;
break;
case 3: if (Drums)
{
Stop_This_Channel(0);
Drums=FALSE;
}
else
{
Start_This_Channel(0);
Drums=TRUE;
}
break;
case 4: if (Sound)
{
Stop_This_Channel(0);
Stop_This_Channel(1);
Stop_This_Channel(2);
Stop_This_Channel(3);
Sound=FALSE;
Drums=FALSE;
}
else
{
Start_This_Channel(0);
Start_This_Channel(1);
Start_This_Channel(2);
Start_This_Channel(3);
Sound=TRUE;
Drums=TRUE;
}
break;
case 5: EXIT=FALSE;
break;
case 6: ClearPointer(MyWindow);
Request_HighScores(0L);
break;
}
break;
case 1: UserSpeed=ITEMNUM(menu)+1;
break;
}
Show_Title();
if (TEMP=ItemAddress(MyWindow->MenuStrip,(long)menu)) menu=TEMP->NextSelect;
}
ReplyMsg(msg);
}
DrawImage(MyWindow->RPort,&Splash,0L,0L);
}
ShowWait();
Save_It_Now(Screens_Changed,Scores_Changed,Keys_Changed);
CloseMyWindow();
}
CloseDevice(&Time_Req);
}
DeletePort(Timer);
}
}