fruit-popper/FRUITPOP.PAS

120 lines
2.3 KiB
Plaintext
Raw Normal View History

{$A+,B-,E+,F-,G+,I-,N+,P-,Q-,R-,S-,T-,V-,X+}
program FruitPopper;
uses GDGfx, GDKeybrd, GDTimer, GDEvents, FixedP, Math, MathFP, Toolbox,
Assets, Entities, Maps, Draw, Shared,
MainMenu, LevelSel, FruitSel, Match, Results, Help;
procedure FatalExit(message : string);
begin
CloseEvents;
CloseTimer;
CloseKeyboard;
CloseGraphics;
WriteLn('Fatal error. Exiting.');
if length(message) > 0 then
WriteLn('Cause: ', message);
Halt(1);
end;
procedure LoadEverything;
var
s : string[32];
begin
UseLayer(SCREEN_LAYER);
s := 'Loading 1/4 ...';
Cls(0);
DrawString(100, 96, 15, s);
if LoadFont('dp.fnt', @fnt) <> FontOk then
FatalExit('Failed loading font dp.fnt');
s := 'Loading 2/4 ...';
Cls(0);
DrawString(100, 96, 15, s);
if LoadFont('chunky.fnt', @chunkyFnt) <> FontOk then
FatalExit('Failed loading font chunky.fnt');
s := 'Loading 3/4 ...';
Cls(0);
DrawString(100, 96, 15, s);
if (not LoadTilesAndSprites('tiles.lbm')) then
FatalExit('Failed loading graphics tiles.lbm');
s := 'Loading 4/4 ...';
Cls(0);
DrawString(100, 96, 15, s);
if (not LoadImages('images.lbm')) then
FatalExit('Failed loading images images.lbm');
FadeOut;
Cls(0);
SetPalette(@pal);
end;
procedure DoIntro;
begin
UseLayer(SCREEN_LAYER);
UseFont(@fnt);
Cls(0);
BlackOutPalette;
WaitForTime(500);
DrawString(50, 96, 15, '... a GDR 4x4x4 Challenge Entry ...');
FadeIn;
WaitForTime(2000);
FadeOut;
WaitForTime(500);
Cls(0);
DrawString(50, 96, 15, '... created despite much slacking ...');
FadeIn;
WaitForTime(2000);
FadeOut;
WaitForTime(500);
Cls(0);
end;
begin
Randomize;
InitGraphics(2);
InitKeyboard;
InitTimer(TIMER_FREQ);
InitTrigTablesFP;
LoadEverything;
DoIntro;
currentGameState := StateMainMenu;
while currentGameState <> StateQuit do begin
case currentGameState of
StateMainMenu: DoMainMenu;
StateLevelSelect: DoLevelSelect;
StateFruitSelect: DoFruitSelect;
StateHelp: DoHelp;
StateMatch: begin
StartMatch;
MainLoop;
end;
StateResults: DoResults;
end;
end;
CloseEvents;
CloseTimer;
CloseKeyboard;
CloseGraphics;
end.