1 line
8.0 KiB
C
Executable File
1 line
8.0 KiB
C
Executable File
/*============================================================*/
|
||
/*============================================================*/
|
||
/*== ==*/
|
||
/*== Menu Routines ==*/
|
||
/*== ==*/
|
||
/*== (menu handling routines) ==*/
|
||
/*== ==*/
|
||
/*============================================================*/
|
||
/*============================================================*/
|
||
|
||
|
||
/*======================================================== Includes */
|
||
|
||
#include "Globals.h"
|
||
#include "UnivUtilities.h"
|
||
#include "Menu.h"
|
||
#include "IdleRoutines.h"
|
||
#include "About.h"
|
||
#include "PlayUtils.h"
|
||
#include "TeamSetUp.h"
|
||
#include "MainWindow.h"
|
||
#include "ConfigureSound.h"
|
||
#include "PlayerStats.h"
|
||
#include "AnimCursor.h"
|
||
#include "Show_help.h"
|
||
#include "Balloons.h"
|
||
|
||
|
||
/*======================================================== Variables */
|
||
|
||
MenuHandle appleMenuH, fileMenuH, gameMenuH, optionsMenuH;
|
||
|
||
|
||
/*======================================================== Functions */
|
||
/*======================================================== CheckGameMenu */
|
||
|
||
void CheckGameMenu (void)
|
||
|
||
{
|
||
short i;
|
||
|
||
for (i = iPracticeBoardin; i <= iTournament; i++)
|
||
CheckItem(gameMenuH, i, FALSE);
|
||
#if kDemoVersion
|
||
CheckItem(gameMenuH, iStandardGame, TRUE);
|
||
DisableItem(gameMenuH, iPracticeBoardin);
|
||
DisableItem(gameMenuH, iPracticeScoring);
|
||
DisableItem(gameMenuH, iTournament);
|
||
#else
|
||
CheckItem(gameMenuH, iPracticeBoardin + whichGame - 1, TRUE);
|
||
#endif
|
||
}
|
||
|
||
|
||
/*======================================================== SetMBarToPlaying */
|
||
|
||
void SetMBarToPlaying (void)
|
||
|
||
{
|
||
DisableItem(fileMenuH, iNewGame);
|
||
EnableItem(fileMenuH, iResumeGame);
|
||
EnableItem(fileMenuH, iEndGame);
|
||
|
||
DisableItem(gameMenuH, iTeamsSetUp);
|
||
DisableItem(gameMenuH, iChooseLeague);
|
||
DisableItem(gameMenuH, iPracticeBoardin);
|
||
DisableItem(gameMenuH, iPracticeScoring);
|
||
DisableItem(gameMenuH, iStandardGame);
|
||
DisableItem(gameMenuH, iTournament);
|
||
}
|
||
|
||
|
||
/*======================================================== SetMBarToIdle */
|
||
|
||
void SetMBarToIdle (void)
|
||
|
||
{
|
||
EnableItem(fileMenuH, iNewGame);
|
||
DisableItem(fileMenuH, iResumeGame);
|
||
DisableItem(fileMenuH, iEndGame);
|
||
|
||
EnableItem(gameMenuH, iTeamsSetUp);
|
||
EnableItem(gameMenuH, iChooseLeague);
|
||
if (!netOnly)
|
||
{
|
||
#if kDemoVersion
|
||
DisableItem(gameMenuH, iPracticeBoardin);
|
||
DisableItem(gameMenuH, iPracticeScoring);
|
||
DisableItem(gameMenuH, iTournament);
|
||
#else
|
||
EnableItem(gameMenuH, iPracticeBoardin);
|
||
EnableItem(gameMenuH, iPracticeScoring);
|
||
EnableItem(gameMenuH, iTournament);
|
||
#endif
|
||
}
|
||
EnableItem(gameMenuH, iStandardGame);
|
||
}
|
||
|
||
|
||
/*======================================================== ValidateMenuBar */
|
||
|
||
void ValidateMenuBar (void)
|
||
|
||
{
|
||
Str255 miscString;
|
||
|
||
if (netOnly)
|
||
{
|
||
DisableItem(gameMenuH, iPracticeBoardin);
|
||
DisableItem(gameMenuH, iPracticeScoring);
|
||
DisableItem(gameMenuH, iTournament);
|
||
GetIndString(miscString, rMiscStrings, 19);
|
||
if (miscString[0] == 0)
|
||
PasStringCopy((StringPtr)"\pMake Net-Only<6C>", (StringPtr)miscString);
|
||
SetItem(optionsMenuH, iConvert, miscString);
|
||
}
|
||
else
|
||
{
|
||
#if kDemoVersion
|
||
DisableItem(gameMenuH, iPracticeBoardin);
|
||
DisableItem(gameMenuH, iPracticeScoring);
|
||
DisableItem(gameMenuH, iTournament);
|
||
DisableItem(optionsMenuH, iConvert);
|
||
#else
|
||
EnableItem(gameMenuH, iPracticeBoardin);
|
||
EnableItem(gameMenuH, iPracticeScoring);
|
||
EnableItem(gameMenuH, iTournament);
|
||
#endif
|
||
GetIndString(miscString, rMiscStrings, 20);
|
||
if (miscString[0] == 0)
|
||
PasStringCopy((StringPtr)"\pValidate Pararena<6E>", (StringPtr)miscString);
|
||
SetItem(optionsMenuH, iConvert, miscString);
|
||
}
|
||
}
|
||
|
||
|
||
/*======================================================== DoAppleMenu */
|
||
|
||
void DoAppleMenu (short theItem)
|
||
|
||
{
|
||
Str255 daName;
|
||
GrafPtr wasPort;
|
||
short daNumber;
|
||
|
||
switch (theItem)
|
||
{
|
||
case iAboutItem:
|
||
DoAbout();
|
||
break;
|
||
default:
|
||
GetItem(appleMenuH, theItem, daName);
|
||
GetPort(&wasPort);
|
||
daNumber = OpenDeskAcc(daName);
|
||
SetPort((GrafPtr)wasPort);
|
||
break;
|
||
}
|
||
}
|
||
|
||
|
||
/*======================================================== DoFileMenu */
|
||
|
||
void DoFileMenu (short theItem)
|
||
|
||
{
|
||
switch (theItem)
|
||
{
|
||
case iNewGame:
|
||
DoNew();
|
||
break;
|
||
case iResumeGame:
|
||
pausing = FALSE;
|
||
break;
|
||
case iEndGame:
|
||
DoEndGame();
|
||
break;
|
||
case iQuit:
|
||
quitting = TRUE;
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
|
||
/*======================================================== DoGameMenu */
|
||
|
||
void DoGameMenu (short theItem)
|
||
|
||
{
|
||
short i;
|
||
Boolean sheSaid;
|
||
|
||
switch (theItem)
|
||
{
|
||
case iTeamsSetUp:
|
||
sheSaid = DoTeamsSetUp();
|
||
if (sheSaid)
|
||
{
|
||
WhosOnFirst();
|
||
UpdateGoalPicts(TRUE);
|
||
}
|
||
break;
|
||
case iChooseLeague:
|
||
sheSaid = ConfigureLeague();
|
||
if (sheSaid)
|
||
{
|
||
WhosOnFirst();
|
||
UpdateGoalPicts(TRUE);
|
||
}
|
||
break;
|
||
case iPracticeBoardin:
|
||
whichGame = kPracticeBoardin;
|
||
break;
|
||
case iPracticeScoring:
|
||
whichGame = kPracticeScoring;
|
||
break;
|
||
case iStandardGame:
|
||
whichGame = kStandardGame;
|
||
break;
|
||
case iTournament:
|
||
whichGame = kTournament;
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
|
||
if ((theItem >= iPracticeBoardin) && (theItem <= iTournament))
|
||
{
|
||
#if kDemoVersion
|
||
whichGame = kStandardGame;
|
||
#endif
|
||
CheckGameMenu();
|
||
}
|
||
}
|
||
|
||
|
||
/*======================================================== DoOptionsMenu */
|
||
|
||
void DoOptionsMenu (short theItem)
|
||
|
||
{
|
||
Boolean sheSaid;
|
||
|
||
switch (theItem)
|
||
{
|
||
case iInstantReplay:
|
||
sheSaid = ConfigureInstantReplay();
|
||
break;
|
||
case iSound:
|
||
sheSaid = DoConfigureSound();
|
||
break;
|
||
case iNames:
|
||
sheSaid = ConfigureNames();
|
||
break;
|
||
case iPreferences:
|
||
sheSaid = ConfigurePreferences();
|
||
break;
|
||
case iPlayersStats:
|
||
sheSaid = DoPlayerStats();
|
||
break;
|
||
case iRecords:
|
||
sheSaid = DisplayRecords();
|
||
break;
|
||
case iMemory:
|
||
sheSaid = DisplayMemory();
|
||
break;
|
||
case iConvert:
|
||
sheSaid = ConvertPararena();
|
||
if (sheSaid)
|
||
{
|
||
ValidateMenuBar();
|
||
CheckGameMenu();
|
||
}
|
||
break;
|
||
case iHelp:
|
||
Show_help(rHelpDialogID, (StringPtr)"\pParaHelp", rHelpBasePictID,
|
||
(StringPtr)"\pPararena Help", (StringPtr)"\p");
|
||
InitCursor();
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
|
||
/*======================================================== DoMenuChoice */
|
||
|
||
void DoMenuChoice (long menuChoice)
|
||
|
||
{
|
||
short theMenu, theItem;
|
||
|
||
if (menuChoice != 0)
|
||
{
|
||
theMenu = HiWrd(menuChoice);
|
||
theItem = LoWrd(menuChoice);
|
||
switch (theMenu)
|
||
{
|
||
case rAppleMenuID:
|
||
DoAppleMenu(theItem);
|
||
break;
|
||
case rFileMenuID:
|
||
DoFileMenu(theItem);
|
||
break;
|
||
case rGameMenuID:
|
||
DoGameMenu(theItem);
|
||
break;
|
||
case rOptionsMenuID:
|
||
DoOptionsMenu(theItem);
|
||
break;
|
||
case kHMHelpMenuID:
|
||
if (theItem == system7HelpItem)
|
||
{
|
||
Show_help(rHelpDialogID, (StringPtr)"\pParaHelp", rHelpBasePictID,
|
||
(StringPtr)"\pPararena Help", (StringPtr)"\p");
|
||
InitCursor();
|
||
}
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
HiliteMenu(0);
|
||
}
|
||
}
|
||
|
||
|
||
/*======================================================== MenuBarInit */
|
||
|
||
void MenuBarInit (void)
|
||
|
||
{
|
||
Str255 miscString, longHelpString;
|
||
MenuHandle tempMenu;
|
||
OSErr theErr;
|
||
short whichItem;
|
||
|
||
SpinCursor(7);
|
||
|
||
appleMenuH = GetMenu(rAppleMenuID);
|
||
AddResMenu(appleMenuH, 'DRVR');
|
||
InsertMenu(appleMenuH, 0);
|
||
|
||
fileMenuH = GetMenu(rFileMenuID);
|
||
InsertMenu(fileMenuH, 0);
|
||
|
||
gameMenuH = GetMenu(rGameMenuID);
|
||
InsertMenu(gameMenuH, 0);
|
||
whichItem = whichGame + iPracticeBoardin - 1;
|
||
CheckItem(gameMenuH, whichItem, TRUE);
|
||
|
||
GetIndString(miscString, rMiscStrings, 17);
|
||
if (miscString[0] == 0)
|
||
PasStringCopy((StringPtr)"\pHelp<EFBFBD>", (StringPtr)miscString);
|
||
|
||
GetIndString(longHelpString, rMiscStrings, 18);
|
||
if (longHelpString[0] == 0)
|
||
PasStringCopy((StringPtr)"\pPararena Help<6C>", (StringPtr)longHelpString);
|
||
|
||
optionsMenuH = GetMenu(rOptionsMenuID);
|
||
InsertMenu(optionsMenuH, 0);
|
||
if (thisMac.hasSystem7)
|
||
{
|
||
theErr = HMGetHelpMenuHandle(&tempMenu);
|
||
if ((theErr == noErr) && (tempMenu != kNilPointer))
|
||
{
|
||
AppendMenu(tempMenu, longHelpString);
|
||
system7HelpItem = CountMItems(tempMenu);
|
||
}
|
||
else
|
||
{
|
||
AppendMenu(optionsMenuH, miscString);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
AppendMenu(optionsMenuH, miscString);
|
||
}
|
||
|
||
ValidateMenuBar();
|
||
|
||
DrawMenuBar();
|
||
}
|
||
|
||
|