mirror of
https://github.com/softdorothy/Glypha3.git
synced 2025-03-12 05:30:03 +00:00
Written in C for the Macintosh in the 1990’s, this is a shareware arcade-style game. There is both a 68K and Power-PC project file (I forget what IDE they were for) and the resource file for both (.rsrc).
1 line
3.4 KiB
C
Executable File
1 line
3.4 KiB
C
Executable File
|
|
//============================================================================
|
|
//----------------------------------------------------------------------------
|
|
// Glypha III 1.0.1
|
|
// by Scheherazade
|
|
//----------------------------------------------------------------------------
|
|
//============================================================================
|
|
|
|
// Here is the "main" file for Glypha. Here is where the game begins and ends.
|
|
// Also included are the preference calls.
|
|
|
|
#include "Externs.h"
|
|
#include <Sound.h>
|
|
|
|
|
|
#define kPrefsVersion 0x0001
|
|
|
|
|
|
void ReadInPrefs (void);
|
|
void WriteOutPrefs (void);
|
|
void main (void);
|
|
|
|
|
|
prefsInfo thePrefs;
|
|
short wasVolume;
|
|
|
|
extern Boolean quitting, playing, pausing, evenFrame;
|
|
|
|
|
|
//============================================================== Functions
|
|
//-------------------------------------------------------------- ReadInPrefs
|
|
|
|
// This function loads up the preferences. If the preferences
|
|
// aren't found, all settings are set to their defaults.
|
|
|
|
void ReadInPrefs (void)
|
|
{
|
|
short i;
|
|
// Call LoadPrefs() function - returns TRUE if it worked.
|
|
if (LoadPrefs(&thePrefs, kPrefsVersion))
|
|
SetSoundVol(thePrefs.wasVolume);
|
|
else // If LoadPrefs() failed, set defaults.
|
|
{
|
|
thePrefs.prefVersion = kPrefsVersion; // version of prefs
|
|
thePrefs.filler = 0; // just padding
|
|
PasStringCopy("\pYour Name", thePrefs.highName); // last highscores name
|
|
for (i = 0; i < 10; i++) // loop through scores
|
|
{
|
|
PasStringCopy("\pNemo", thePrefs.highNames[i]); // put "Nemo" in name
|
|
thePrefs.highScores[i] = 0L; // set highscore to 0
|
|
thePrefs.highLevel[i] = 0; // level attained = 0
|
|
}
|
|
GetSoundVol(&thePrefs.wasVolume);
|
|
}
|
|
// Get sound volume so we can restore it.
|
|
GetSoundVol(&wasVolume);
|
|
}
|
|
|
|
//-------------------------------------------------------------- WriteOutPrefs
|
|
|
|
// This function writes out the preferences to disk and restores
|
|
// the sound volume to its setting before Glypha was launched.
|
|
|
|
void WriteOutPrefs (void)
|
|
{
|
|
if (!SavePrefs(&thePrefs, kPrefsVersion))
|
|
SysBeep(1);
|
|
SetSoundVol(wasVolume);
|
|
}
|
|
|
|
//-------------------------------------------------------------- main
|
|
|
|
// This is the main function. Every C program has one of these.
|
|
// First it initializes our program and then falls into a loop
|
|
// until the user chooses to quit. At that point, it cleans up
|
|
// and exits.
|
|
|
|
void main (void)
|
|
{
|
|
long tickWait;
|
|
|
|
ToolBoxInit(); // Call function that initializes the ToolBox managers.
|
|
CheckEnvirons(); // Check the Mac we're on to see if we can run.
|
|
OpenMainWindow(); // Open up the main window - it will fill the monitor.
|
|
InitVariables(); // Initialize Glypha's variables.
|
|
InitSound(); // Create sound channels and load up sounds.
|
|
InitMenubar(); // Set up the game's menubar.
|
|
ReadInPrefs(); // Load up the preferences.
|
|
|
|
do // Here begins the main loop.
|
|
{
|
|
HandleEvent(); // Check for events.
|
|
if ((playing) && (!pausing))
|
|
PlayGame(); // If user began game, drop in game loop. (play mode)
|
|
else // If no game, animate the screen. (idle mode)
|
|
{
|
|
tickWait = TickCount() + 2L;
|
|
evenFrame = !evenFrame;
|
|
DrawTorches(); // Flicker torches.
|
|
CopyAllRects(); // Refresh screen.
|
|
do // Wait for 2 Ticks to pass to keep fast Macs at bay.
|
|
{
|
|
}
|
|
while (TickCount() < tickWait);
|
|
}
|
|
}
|
|
while (!quitting);
|
|
|
|
KillSound(); // Dispose of sound channels.
|
|
ShutItDown(); // Dispose of other structures.
|
|
WriteOutPrefs(); // Save preferences to disk.
|
|
}
|
|
|