[Back to MISC SWAG index] [Back to Main SWAG index] [Original]
{
======================================
The SUPER Advanced LawnMower Simulator
(C) 1994 Scott Tunstall
Original AMIGA Idea by Team 7.5
--------------------------------------
Just for a laugh... go mow the lawn! Includes probably the EASIEST
control method ever. And what's more the 2 player sequel has been
posted as well!!! Take a LOOK at the QUALITY! :)
Up till June 15th 1996 you can contact me at: CG93SAT@IBMRISC.DCT.AC.UK
No queries about lawnmowers please.
Command line params: The path to where your CGA.BGI is stored
will do nicely. If no params are passed C:\tp7\BGI is used as default.
Obviously your BGI may not be there!!!!
}
Uses Graph, Crt;
{$r-,v-,s-}
Procedure MowTheLawn;
Var Sprite: array[1..16] of string [16];
SpriteLine: string[16];
Pixel: byte;
PathToDriver: string[80];
GraphicsDriver: integer;
GraphicsMode: integer;
X,Y: byte;
SpriteMemNeeded: word;
SpritePointer: pointer;
GrassX: word;
GrassY: word;
LawnMowerX: integer;
LawnMowerY: integer;
RealX: integer;
Begin
sprite[1] :='0000000000111100';
sprite[2] :='0000000011111100';
sprite[3] :='0000000000111100';
sprite[4] :='0000000000111100';
sprite[5] :='0000000001111100';
sprite[6] :='0000000011111100';
sprite[7] :='0000000110111100';
sprite[8] :='0000001100111100';
sprite[9] :='0000011000111100';
sprite[10]:='0000110001100110';
sprite[11]:='0001110001100110';
sprite[12]:='0011110011000110';
sprite[13]:='0011110011000110';
sprite[14]:='0111110011000110';
sprite[15]:='0011110111001110';
sprite[16]:='0000000000000000';
GraphicsDriver:=CGA;
GraphicsMode:=CGAC0;
{
CHANGE THE PATHTODRIVER VARIABLE
}
If ParamCount <>0 Then
PathToDriver:=ParamStr(1)
Else
PathToDriver:='C:\TP7\BGI';
InitGraph(GraphicsDriver, GraphicsMode,PathToDriver);
If GraphResult = grOk Then
Begin
For y:=1 to 15 do
For x:=1 to 15 do
Begin
SpriteLine:=sprite[y];
Pixel:=Ord(SpriteLine[x])-48;
If Pixel = 0 Then
PutPixel(x,y,0)
else
PutPixel(x,y,3);
End;
SpriteMemNeeded:=ImageSize(1,1,16,16);
GetMem(SpritePointer,SpriteMemNeeded);
GetImage(1,1,16,16,SpritePointer^);
{
O.K. Now clear the screen!
}
SetGraphMode(CGAC0);
SetColor(2);
MoveTo(160,0);
LineTo(120,30);
LineTo(200,30);
LineTo(160,0);
MoveTo(120,30);
LineTo(120,71);
LineTo(200,71);
LineTo(200,30);
Rectangle(130,34,150,54);
Rectangle(190,34,170,54);
{
Draw the sun
}
SetColor(3);
Circle(60,20,15);
{
And now the grass !
}
SetColor(1);
GrassY:=72;
Repeat
GrassX:=0;
Repeat
OutTextXY(GrassX,GrassY,'±');
Inc(GrassX,8);
Until (GrassX >= GetMaxX);
Inc(GrassY,8);
Until (GrassY >= 200);
{
Now lets kick ass with the LawnMower Man!
}
{Position the man}
LawnMowerY:=72;
Repeat
LawnMowerX:=(GetMaxX-15);
Repeat
PutImage(LawnMowerX,LawnMowerY,SpritePointer^,AndPut);
PutImage(LawnMowerX,LawnMowerY,SpritePointer^,OrPut);
Repeat
Sound (120);
Delay(50);
NoSound;
Until keypressed;
Memw[$40:$1a]:=Memw[$40:$1c];
PutImage(LawnMowerX,LawnMowerY,SpritePointer^,XorPut);
Dec(LawnMowerX, 4);
RealX:=LawnMowerX+4;
Until (RealX = 0);
Inc(LawnMowerY,16);
Until LawnMowerY >= 192;
FreeMem(SpritePointer,SpriteMemNeeded);
End
Else
Begin
TextMode(CO80);
Writeln('Cannot use the required BGI file (CGA.BGI) !');
Writeln;
Writeln('This can be corrected, however. What you do is');
Writeln('run this program passing the PATH where CGA.BGI');
Writeln('resides as a program parameter, for example:');
Writeln;
Writeln('MOWLAWN C:\TP7\BGI <- TP7\BGI dir is DEFAULT!');
Writeln;
Writeln('I recommend that you create a batch file that');
Writeln('automatically passes this parameter..');
Writeln;
Halt;
End;
End;
Procedure IntroduceMe;
Var DoItAgain: boolean;
Choice: char;
Begin
TextMode(CO40);
Repeat
DoItAgain:=False;
TextBackground(Green);
TextColor(White);
ClrScr;
Gotoxy(6,1);
Write('ADVANCED LAWNMOWER SIMULATOR');
Gotoxy(9,2);
Write('THE HOT, SEXY SEQUEL !');
Gotoxy(5,7);
Write('Programming by: Scott Tunstall');
Gotoxy(5,11);
TextColor(Red);
Write('Please select your lawn mower:');
GotoXY(5,13);
Write('1: The Tunstall - ''O'' - Matic');
GotoXY(5,15);
Write('2: The Ramsay Virgin Mower 2000');
GotoxY(5,17);
Write('3: The Lay - Z Langa Lawn Cutter');
GotoXY(5,19);
Write('4: The Bassett Lawn Buster');
GotoXY(2,23);
TextColor(Blue);
Write('WARNING! Extended playing of this game');
GotoXY(2,24);
Write('can make you irresistible to women !');
memw[$40:$1a]:=memw[$40:$1c];
Choice:= Readkey;
Randomize;
If Random(1)=1 Then
Begin
ClrScr;
TextColor(Red);
GotoXY(4,12);
Write('I am sorry, but that mower is out');
GotoXY(4,13);
Write('of order.');
Delay(3000);
DoItAgain:=true;
End;
Until DoItAgain = False;
End;
Procedure RudeComment;
var Message: string[40];
XPos: byte;
Begin
TextMode(CO40);
TextColor(White);
textBackground(Blue);
ClrScr;
Case Random(10) of
0: Message:='A job well done, son. Here''s 50p';
1: Message:='Son, My gran could cut better !';
2: Message:='Does your maw know you''re here ?';
3: Message:='Do you drink meths at all ?';
4: Message:='Come in and meet my daughter, son!';
5: Message:='What kind of grass cutting is that ?';
6: Message:='Do you do hair dressing, young man ?';
7: Message:='You haven''t even cut half the lawn !';
8: Message:='Do you want to see my puppies ?';
9: Message:='That was the shittest cut I''ve seen !';
10: Message:='I bet you drink Carling Black Label !';
End;
XPos:= (40 - Length(Message)) shr 1;
gotoXY(XPos,12);
Write(Message);
Delay(3000);
End;
Procedure YouShouldntSeeThis; Assembler;
Asm
JMP @SoapyBubble
@SoapyBubble:
End;
Begin
Randomize;
Repeat
YouShouldntSeeThis;
IntroduceMe;
MowTheLawn;
RudeComment;
Until False;
End.
[Back to MISC SWAG index] [Back to Main SWAG index] [Original]