home *** CD-ROM | disk | FTP | other *** search
- /*
- * 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);
- }
- }
-