mirror of
https://github.com/jonthysell/MacLO.git
synced 2024-06-01 20:41:28 +00:00
Factored out GameWindow, added error alert dialogs, simplified stdbool.h
This commit is contained in:
parent
b51cf36f80
commit
6184d31e6a
|
@ -16,7 +16,7 @@ extern const uint16_t PerfectScore;
|
||||||
|
|
||||||
typedef struct GameEngine
|
typedef struct GameEngine
|
||||||
{
|
{
|
||||||
int8_t Level;
|
int8_t Level;
|
||||||
uint32_t Lights;
|
uint32_t Lights;
|
||||||
uint16_t Par;
|
uint16_t Par;
|
||||||
uint16_t Moves;
|
uint16_t Moves;
|
||||||
|
|
29
src/GameWindow.c
Normal file
29
src/GameWindow.c
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
// Copyright (c) Jon Thysell <http://jonthysell.com>
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
|
#include "GameWindow.h"
|
||||||
|
|
||||||
|
void GameWindow_Init(GameWindow *gameWindow)
|
||||||
|
{
|
||||||
|
if (gameWindow->Window != nil)
|
||||||
|
{
|
||||||
|
ShowError("\pGameWindow already initialized!", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
gameWindow->Window = GetNewWindow(kBaseResID, nil, kMoveToFront);
|
||||||
|
|
||||||
|
if (gameWindow->Window == nil)
|
||||||
|
{
|
||||||
|
ShowError("\pGameWindow resource WIND kBaseResID missing!", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
CenterWindow(gameWindow->Window);
|
||||||
|
|
||||||
|
ShowWindow(gameWindow->Window);
|
||||||
|
SetPort(gameWindow->Window);
|
||||||
|
|
||||||
|
MoveTo(10, 20);
|
||||||
|
DrawString("\pHello MacLO");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
16
src/GameWindow.h
Normal file
16
src/GameWindow.h
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
// Copyright (c) Jon Thysell <http://jonthysell.com>
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
|
#ifndef GAMEWINDOW_H
|
||||||
|
#define GAMEWINDOW_H
|
||||||
|
|
||||||
|
#include "MacCommon.h"
|
||||||
|
|
||||||
|
typedef struct GameWindow
|
||||||
|
{
|
||||||
|
WindowPtr Window;
|
||||||
|
} GameWindow;
|
||||||
|
|
||||||
|
void GameWindow_Init(GameWindow *gameWindow);
|
||||||
|
|
||||||
|
#endif
|
26
src/MacCommon.c
Normal file
26
src/MacCommon.c
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
// Copyright (c) Jon Thysell <http://jonthysell.com>
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
|
#include "MacCommon.h"
|
||||||
|
|
||||||
|
void CenterWindow(WindowPtr window)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Boolean IsCompactDisplay()
|
||||||
|
{
|
||||||
|
return screenBits.bounds.right == 512
|
||||||
|
&& screenBits.bounds.bottom == 342;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ShowError(Str255 message, Boolean isFatal)
|
||||||
|
{
|
||||||
|
ParamText(message, kEmptyString, kEmptyString, kEmptyString);
|
||||||
|
StopAlert(kErrorAlertID, kNilFilterProc);
|
||||||
|
|
||||||
|
if (isFatal)
|
||||||
|
{
|
||||||
|
ExitToShell();
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,7 +4,16 @@
|
||||||
#ifndef MACCOMMON_H
|
#ifndef MACCOMMON_H
|
||||||
#define MACCOMMON_H
|
#define MACCOMMON_H
|
||||||
|
|
||||||
#define kBaseResID 128
|
#define kBaseResID 128
|
||||||
#define kMoveToFront (WindowPtr)-1L
|
#define kMoveToFront (WindowPtr)-1L
|
||||||
|
|
||||||
|
#define kEmptyString "\p"
|
||||||
|
#define kNilFilterProc nil
|
||||||
|
|
||||||
|
#define kErrorAlertID kBaseResID
|
||||||
|
|
||||||
|
void CenterWindow(WindowPtr window);
|
||||||
|
Boolean IsCompactDisplay();
|
||||||
|
void ShowError(Str255 message, Boolean isFatal);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
26
src/MacLO.c
26
src/MacLO.c
|
@ -1,10 +1,12 @@
|
||||||
// Copyright (c) Jon Thysell <http://jonthysell.com>
|
// Copyright (c) Jon Thysell <http://jonthysell.com>
|
||||||
// Licensed under the MIT License.
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
#include "MacCommon.h"
|
#include "GameWindow.h"
|
||||||
#include "MacLO.h"
|
#include "MacLO.h"
|
||||||
|
|
||||||
void InitToolBox()
|
GameWindow gGameWindow;
|
||||||
|
|
||||||
|
void MacLO_InitToolBox()
|
||||||
{
|
{
|
||||||
InitGraf(&thePort);
|
InitGraf(&thePort);
|
||||||
InitFonts();
|
InitFonts();
|
||||||
|
@ -16,26 +18,12 @@ void InitToolBox()
|
||||||
InitCursor();
|
InitCursor();
|
||||||
}
|
}
|
||||||
|
|
||||||
void InitMainWindow()
|
void MacLO_InitWindows()
|
||||||
{
|
{
|
||||||
WindowPtr window;
|
GameWindow_Init(&gGameWindow);
|
||||||
|
|
||||||
window = GetNewWindow(kBaseResID, nil, kMoveToFront);
|
|
||||||
|
|
||||||
if (window == nil)
|
|
||||||
{
|
|
||||||
SysBeep(0);
|
|
||||||
ExitToShell();
|
|
||||||
}
|
|
||||||
|
|
||||||
ShowWindow(window);
|
|
||||||
SetPort(window);
|
|
||||||
|
|
||||||
MoveTo(30, 50);
|
|
||||||
DrawString("\pHello MacLO");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProcessEvents()
|
void MacLO_MainLoop()
|
||||||
{
|
{
|
||||||
while (!Button()) { }
|
while (!Button()) { }
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
#ifndef MACLO_H
|
#ifndef MACLO_H
|
||||||
#define MACLO_H
|
#define MACLO_H
|
||||||
|
|
||||||
void InitToolBox();
|
void MacLO_InitToolBox();
|
||||||
void InitMainWindow();
|
void MacLO_InitWindows();
|
||||||
void ProcessEvents();
|
void MacLO_MainLoop();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
BIN
src/MacLO.pi.bin
BIN
src/MacLO.pi.bin
Binary file not shown.
Binary file not shown.
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
void main(void)
|
void main(void)
|
||||||
{
|
{
|
||||||
InitToolBox();
|
MacLO_InitToolBox();
|
||||||
InitMainWindow();
|
MacLO_InitWindows();
|
||||||
ProcessEvents();
|
MacLO_MainLoop();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,10 +4,6 @@
|
||||||
#ifndef STDBOOL_H
|
#ifndef STDBOOL_H
|
||||||
#define STDBOOL_H
|
#define STDBOOL_H
|
||||||
|
|
||||||
#ifndef true
|
typedef Boolean bool;
|
||||||
typedef char bool;
|
|
||||||
#define true 1
|
|
||||||
#define false 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue
Block a user