grim/gigamole

Make this compatible with qb64
default tip
13 months ago, Gary Kramlich
ed69802d944c
Make this compatible with qb64

I did this awhile ago, but never committed it.
'****************************Declare Functions*******************************
DECLARE FUNCTION RandInt! (num1!, num2!)
DECLARE FUNCTION SaveClose! ()
'*******************************Declare Subs*********************************
DECLARE SUB McMole (snd!)
DECLARE SUB CenterT (Text$, y!, clr!)
DECLARE SUB Dead (xists!)
DECLARE SUB CheckBounds (Variable!)
DECLARE SUB RestorePalette ()
DECLARE SUB knife ()
DECLARE SUB debug (Happy!, Awake!, bo!, Hungry!, Mad!, Ill!, broom!, Od!, Drunk!)
DECLARE SUB IncrementVariable (ticks!, Variable!, value!, increment!, index!)
DECLARE SUB DecrementVariable (ticks!, Variable!, value!, decrement!, index!)
DECLARE SUB CheckProblems (Variable!, value!, problem!, probstr$)
DECLARE SUB Speak (times!, delay!)
DECLARE SUB KillDataFile (xists!)
DECLARE SUB Refresh (x!, y!, sl!)
DECLARE SUB Save (new!, snd!, Happy!, Awake!, bo!, Hungry!, Mad!, sick!, broom!, Od!, Drunk!, months!, weeks!, days!, autosave!, AnimateMenu!)
DECLARE SUB MainMenu (sel!, sl$)
DECLARE SUB grimstext (line$, clr1!, clr2!, clr3!, x!, y!)
DECLARE SUB center (line$, y!, clr!)
DECLARE SUB Slow (delay!)
DECLARE SUB anti ()
DECLARE SUB grim ()
DECLARE SUB WIN (snd!)
DECLARE SUB seizure ()
DECLARE SUB help ()
DECLARE SUB juggle (sl!)
DECLARE SUB beer (snd!)
DECLARE SUB OverDose (snd!, sl!)
DECLARE SUB heartattack (snd!)
DECLARE SUB weed (snd!)
DECLARE SUB bathroom (snd!)
DECLARE SUB doctor (snd!)
DECLARE SUB z1 ()
DECLARE SUB z2 ()
DECLARE SUB food (snd!)
DECLARE SUB pun (snd!)
DECLARE SUB Face (x!, y!)
DECLARE SUB shower ()
DECLARE SUB omouth ()
DECLARE SUB cmouth ()
DECLARE SUB eopen (ex!, ey!)
DECLARE SUB eclose (ex!, ey!)
DECLARE SUB UpdateMenu ()
Common Shared AnimateMenu, MenuTimer, MenuColor
Const sclr = 11, oclr = 1
Const True = 1, False = 0
Const PI = 3.141593
Cls
'CenterT "Despite the long wait this is not the final version.", 1, 7
'CenterT "Yes, I know, I've been working on this forever, but I want", 2, 7
'CenterT "it to be perfect! And by that I mean no bugs and no glitches.", 3, 7
'CenterT "So by playing this early version you agree that if you find", 5, 7
'CenterT "anything that seems wrong, or something does not work, that", 6, 7
'CenterT "you'll let me know! Call me if you know my number or else", 7, 7
'CenterT "E-Mail Me : " + Chr$(34) + "GRiMofMS@AOL.COM" + Chr$(34), 9, 7
'CenterT "Trust me, this game is well worth the wait! And the sequel,", 11, 7
'CenterT "Opps, I shouldn't have said that... But anyways, it's going", 12, 7
'CenterT "to be much better and if all goes according to plan, the user", 13, 7
'CenterT "will be able to create their own animation sequences for the", 14, 7
'CenterT "game! Not to mention everything else I have planned.", 15, 7
'CenterT "But I bet No one will ever read to this far, so I'm gunna make", 17, 7
'CenterT "you wait at 10 seconds before this screen will dispear!", 18, 7
'CenterT "Aren't I a little shit!?!", 20, 7
'Color 31, 7
'Locate 22, 38: Print "Wait"
't = Timer
'Keys$ = ""
'Do While Timer - t < 10
' Key$ = InKey$
' If Len(Key$) Then Keys$ = Keys$ + UCase$(Key$)
' If Keys$ = "OK" Then Exit Do
'Loop
'Color 0, 0
'CenterT " Ok ", 22, 7
'While InKey$ = ""
'Wend
AnimateMenu = False
MenuColor = 4
Type Save
new As Integer: snd As Integer: Awake As Integer: happ As Integer: body As Integer
hung As Integer: madd As Integer: sikk As Integer: room As Integer: Od As Integer
Drunk As Integer: months As Integer: weeks As Integer: days As Integer: autosave As Integer
AnimateMenu As Integer
End Type
Dim Shared Game As Save
Dim Shared problem$(6)
Dim Shared oprob(6)
Dim Shared cprob(6)
Dim Shared DebugMenu$(11)
Dim Shared Variable(10)
For i = 0 To 6
oprob(i) = Timer
Next
Open "GIGAMOLE.DAT" For Binary As #1
Get #1, , Game
new = Game.new: snd = Game.snd: Happy = Game.happ: Awake = Game.Awake
bo = Game.body: Hungry = Game.hung: Mad = Game.madd: sick = Game.sikk
broom = Game.room: Od = Game.Od: Drunk = Game.Drunk: months = Game.months
weeks = Game.weeks: days = Game.days: autosave = Game.autosave: AnimateMenu = Game.AnimateMenu
Close #1
If new = 0 Then
new = 1: snd = 1: Happy = 90: Awake = 100: bo = 0: Hungry = 10: Mad = 5
sick = 0: broom = 0: Od = 0: Drunk = 0: months = 0
weeks = 0: days = 0: autosave = 1: AnimateMenu = False
End If
'**************************Start of title screen*****************************
RestorePalette
Cls 0
Screen 7
Palette sclr, MenuColor
grim
anti
Cls
'***************************Start of actual game*****************************
Game:
Randomize Timer
Cls
st = 0: ss = 0: sel = 1: eye = 0: Mole = 0: xists = 0: sl = 0: eye = 1
ed = Timer: md = Timer: dm = Timer: d = Timer: problem = 0: cheat$ = ""
MenuTimer = Timer
MoleColor = 6
If autosave = 0 Then
AutoSaveDelay = Timer
End If
Refresh 0, 0, sl
Do
If Mad = 100 Then
seizure
Dead xists
End If
If Drunk >= 85 Then
heartattack snd!
Dead xists
End If
If Od >= 85 Then
OverDose snd!, sl
Dead xists
End If
If Happy <= 10 Then
knife
Dead xists
End If
'*************************Check for Problems*****************************
CheckProblems broom, 60, problem, "Bathroom"
CheckProblems Ill, 35, problem, "Ill"
CheckProblems bo, 55, problem, "Stinks"
CheckProblems Mad, 55, problem, "Mad"
CheckProblems Hungry, 45, problem, "Hungry"
CheckProblems (-1 * Awake), (-1 * 40), problem, "Tired"
CheckProblems (-1 * Happy), (-1 * 30), problem, "Sad"
If problem = 0 Then
problem$(0) = "None"
End If
'*************************increment variables****************************
IncrementVariable ticks, broom, 45, 10, 0
IncrementVariable ticks, sick, 45, 5, 1
DecrementVariable ticks, Awake, 30, 5, 2
IncrementVariable ticks, Hungry, 30, 30, 3
DecrementVariable ticks, Mad, 30, 5, 4
IncrementVariable ticks, bo, 20, 10, 5
Select Case Int(2 * Rnd(1))
Case 0: DecrementVariable ticks, Happy, 10, 3, 6
Case 1: IncrementVariable ticks, Happy, 10, 3, 6
End Select
If bo > 90 And s / 10 = Int(s / 10) Then
Happy = Happy - 1: CheckBounds Happy
End If
For fp = 0 To 5
cprob(fp) = Timer
Next
'%%%%%%%%%%%%%%%%%%%%End of Incrementing Variables%%%%%%%%%%%%%%%%%%%%%%%
If AnimateMenu = False And MenuColor <> 4 Then
Palette sclr, 4
End If
UpdateMenu
If autosave = 0 And Timer - AutoSaveDelay > 60 Then
Save new, snd, Happy, Awake, bo, Hungry, Mad, sick, broom, Od, Drunk, months, weeks, days, autosave, AnimateMenu
center "Auto save in progress", 2, 7
Slow .5
center "", 2, 0
AutoSaveDelay = Timer
End If
If Awake = 0 Then sl = 1
If sl = 0 And ss = 0 Then
eclose 0, 0
st = Timer
ss = 1
End If
If Timer - d > 10 Then
ticks = ticks + 1
days = days + 1
If days = 7 Then
days = 0
weeks = weeks + 1
End If
If weeks = 4 Then
weeks = 0
months = months + 1
End If
d = Timer
End If
'**************************Manip time and date***************************
nosec$ = Left$(Time$, 5)
If Val(Left$(nosec$, 2)) > 12 Then
nosec$ = Str$(Val((Left$(nosec$, 2))) - 12) + Right$(nosec$, 3) + " PM"
Else
nosec$ = nosec$ + " AM"
End If
If Val(Left$(nosec$, 2)) = 0 Then
nosec$ = "12" + Right$(nosec$, Len(nosec$) - 2)
End If
noyear$ = Date$
noyear$ = Left$(noyear$, 2) + "/" + Left$(Right$(noyear$, 7), 2) + "/"
noyear$ = noyear$ + Right$(Date$, 2)
'**************************Visual Problems****************************
Select Case Mad
Case Is >= 90: Palette 14, 12
Case Is < 90: Palette 14, 14
End Select
Select Case snd
Case 0: snd$ = "Off"
Case 1: snd$ = "On "
End Select
Select Case autosave
Case 0: autosave$ = "On "
Case 1: autosave$ = "Off"
End Select
center ": " + snd$ + " Auto-Save: " + autosave$, 19, 3
If months = 12 Then
WIN snd!
KillDataFile xists
End
End If
'*****************************Main Screen*******************************
grimstext "giga mole!", 1, 4, 2, 15, 1
Select Case sl
Case 0: sl$ = "Sleep"
Case 1: sl$ = "Wake "
End Select
MainMenu sel, sl$
'*****************************animate mole*******************************
Select Case Mole
Case 1:
If Timer - dm > 1 Then
Circle (111, 68), 3, 14: Circle (111, 68), 2, MoleColor: Paint (111, 68), MoleColor, MoleColor
Mole = 0: dm = Timer
End If
Case 0:
If Timer - dm > 1 Then
Circle (111, 68), 3, MoleColor: Mole = 1: dm = Timer
End If
End Select
'****************************Eye Animation*******************************
Select Case eye
Case 0:
If Timer - ed > .5 And sl = 0 Then
eopen 0, 0: eye = 1: ed = Timer
ElseIf Timer - ed > .5 And sl = 1 Then
Call z1: eye = 1: ed = Timer: eclose 0, 0
End If
Case 1:
If Timer - ed > 2 And sl = 0 Then
eclose 0, 0: eye = 0: ed = Timer
ElseIf Timer - ed > .5 And sl = 1 Then
Call z2: eye = 0: ed = Timer: eclose 0, 0
End If
End Select
Key$ = InKey$
Select Case Key$
Case Chr$(0) + "D"
If sel = 7 Then debug Happy, Awake, bo, Hungry, Mad, Ill, broom, Od, Drunk
Case Chr$(0) + ";" 'F1
help
Refresh 0, 0, sl
Case Chr$(0) + "<" 'F2
Select Case snd
Case 0: snd = 1: Sound 200, .5
Case 1: snd = 0
End Select
Case Chr$(0) + "=" 'F3
center "Saving game...", 2, 7
Save new, snd, Happy, Awake, bo, Hungry, Mad, sick, broom, Od, Drunk, months, weeks, days, autosave, AnimateMenu
center "", 2, 0
Case Chr$(0) + ">" 'F4
Select Case autosave
Case 0: autosave = 1
Case 1: autosave = 0: AutoSaveDelay = Timer
End Select
Case Chr$(0) + "?" 'F5
If AnimateMenu = True Then
AnimateMenu = False
ElseIf AnimateMenu = False Then
AnimateMenu = True
End If
Case Chr$(0) + "K":
Select Case sel
Case 1, 4, 7: sel = sel + 2
Case Else: sel = sel - 1
End Select
Case Chr$(0) + "M":
Select Case sel
Case 3, 6, 9: sel = sel - 2
Case Else: sel = sel + 1
End Select
Case Chr$(0) + "P":
Select Case sel
Case 7, 8, 9: sel = sel - 6
Case Else: sel = sel + 3
End Select
Case Chr$(0) + "H":
Select Case sel
Case 1, 2, 3: sel = sel + 6
Case Else: sel = sel - 3
End Select
Case Chr$(13), Chr$(32):
If sel = 1 Then
If sl = 0 Then
juggle sl
eopen 0, 0
Happy = Happy + 25: CheckBounds Happy
Mad = Mad - 10: CheckBounds Mad
Awake = Awake + 5: CheckBounds Awake
End If
End If
If sel = 2 Then
If Hungry > 20 And sl = 0 Then
McMole snd!
Refresh 0, 0, sl
Hungry = Hungry - 30: CheckBounds Hungry
ElseIf Hungry <= 20 Then
Locate 2, 14: Print "I'm not hungry"
Speak 2, .5
Slow 1
Locate 2, 14: Print " "
End If
End If
If sel = 3 Then
If sl = 0 Then
sl = 1
eclose 0, 0
ElseIf sl = 1 Then
sl = 0
Awake = Awake + Int(Timer - ss)
CheckBounds Awake
eopen 0, 0
End If
End If
If sel = 4 Then
If sl = 0 Then
If broom < 60 Then
Locate 2, 11: Print "I don't have to go"
Slow 1
Locate 2, 11: Print " "
ElseIf broom >= 60 Then
broom = broom - 25
bathroom snd!
Face 0, 0
End If
End If
End If
If sel = 5 Then
If bo >= 50 And sl = 0 Then
shower
bo = bo - 50
If bo < 0 Then bo = 0
Face 0, 0
center "All clean!", 2, 3
Slow 1
center "", 2, 0
ElseIf bo < 50 And sl = 0 Then
eopen 0, 0
Locate 2, 9: Print "I don't want to shower"
Speak 3, .25
Slow 1
Locate 2, 9: Print " "
End If
End If
If sel = 6 Then
If sl = 0 Then
If Ill > 35 Then
doctor snd!
Face 0, 0
Ill = Ill - 50
CheckBounds Ill
ElseIf Ill <= 35 Then
Locate 2, 4: Print "I don't want to go to the doctor"
Speak 3, .25
Locate 2, 4: Print " "
End If
End If
End If
If sel = 7 Then
Cls 0
Color 7
Locate 25, 14: Print "Press [ESC] to continue..."
grimstext "Giga mole status", 1, 4, 2, 12, 1
Color 1
Locate 3, 14: Print "Age: "
Color 4
Select Case months
Case 1: months$ = "month"
Case Else: months$ = "months"
End Select
Locate 4, 15: Print months; months$
Select Case weeks
Case 1: weeks$ = "week"
Case Else: weeks$ = "weeks"
End Select
Locate 5, 15: Print weeks; weeks$
Select Case days
Case 1: days$ = "day"
Case Else: days$ = "days"
End Select
Locate 6, 15: Print days; days$
Color 1
Locate 8, 14: Print "Current Problems:"
Color 4
For p = 0 To problem
Locate p + 9, 15: Print problem$(p)
Next
statsdelay = Timer: sttsdly = 0
Do While InKey$ <> Chr$(27)
Select Case sttsdly
Case 0:
If Timer - statsdelay > 1 Then
grimstext "Giga mole status", 4, 2, 1, 12, 1
statsdelay = Timer: sttsdly = 1
End If
Case 1:
If Timer - statsdelay > 1 Then
grimstext "Giga mole status", 2, 1, 4, 12, 1
statsdelay = Timer: sttsdly = 2
End If
Case 2:
If Timer - statsdelay > 1 Then
grimstext "Giga mole status", 1, 4, 2, 12, 1
statsdelay = Timer: sttsdly = 0
End If
End Select
Loop
Cls 0
Refresh 0, 0, sl
End If
If sel = 8 Then
help
Refresh 0, 0, sl
End If
If sel = 9 Then
eopen 0, 0
Select Case SaveClose
Case 0:
center "", 2, 0
grimstext "Goodbye!", 1, 4, 2, 16, 2
Cls 0: RestorePalette
End
Case 1:
center "", 2, 0
Save new, snd, Happy, Awake, bo, Hungry, Mad, sick, broom, Od, Drunk, months, weeks, days, autosave, AnimateMenu
grimstext "Goodbye!", 1, 4, 2, 16, 2
Cls 0: RestorePalette
End
Case -1:
center "", 2, 0
End Select
End If
Case "!" TO "~":
cheat$ = cheat$ + UCase$(Key$)
End Select
If Right$(cheat$, 4) = "WEED" Then
weed snd!
Cls
Paint (1, 1), 2, 2
Face 0, 0
Od = Od + 10: CheckBounds Od
Happy = Happy + 50: CheckBounds Happy
Hungry = Hungry + 25: CheckBounds Hungry
cheat$ = ""
End If
If Right$(cheat$, 4) = "BEER" Then
beer snd!
Drunk = Drunk + 15: CheckBounds Drunk
Face 0, 0
cheat$ = ""
End If
If Right$(cheat$, 7) = "REFRESH" Then
Cls 0
Refresh 0, 0, sl
cheat$ = ""
End If
If Right$(cheat$, 4) = "TIME" Then
center "It is" + nosec$, 2, 3
Speak 2, .5
Slow .25
center "", 2, 0
cheat$ = ""
End If
If Right$(cheat$, 4) = "DATE" Then
center "It is " + noyear$, 2, 3
Speak 2, .5
Slow .25
center "", 2, 0
cheat$ = ""
End If
If Right$(cheat$, 3) = "VER" Or Right$(cheat$, 7) = "VERSION" Then
center "Your playing ver 0.9B", 2, 11
Speak 2, .5
Slow .25
center "", 2, 0
cheat$ = ""
End If
If Right$(cheat$, 6) = "PUNISH" Then
If sl = 0 Then
pun snd
Refresh 0, 0, sl
Mad = Mad + 25: CheckBounds Mad
Happy = Happy - 10: CheckBounds Happy
center "Why did you hit me?!?", 2, 3
Speak 3, .25
center "", 2, 0
cheat$ = ""
End If
End If
Loop
'********************************Music Subs**********************************
inagoddadavida:
If snd = 1 Then Play "mbt60o2d8d8f16e16o1c16o2d8o3msa8g#8g8mno2f16"
Return
creditsmusic:
If snd = 1 Then Play "mb t80 l8 o4 bdc o5 gad o4 ebg o3 acb"
Return
'********************************Menu Data***********************************
menus:
Data 20,8,Play,20,18,Feed,20,28,
Data 21,8,Bathroom,21,18,Shower,21,28,Doctor
Data 22,8,Stats,22,18,Help,22,28,Exit
DebugMenuCommands:
Data Happiness,Awake,Body Odor,Hungry,Mad,Ill,Bathroom,Overdose,Drunk
Data Exit
Sub anti
Dim RemoveY(66)
For i = 1 To 66
RemoveY(i) = i
Next
For t = 0 To Int(10 * Rnd(1)) + 1
For i = 1 To 66
switch = Int(66 * Rnd(1)) + 1
temp = RemoveY(i)
RemoveY(i) = RemoveY(switch)
RemoveY(switch) = temp
Next
Next
Cls 0
Color 7: center "ANDERS", 13, 15
Color 15: center "Anti Anders Inc.", 19, 15
Circle (160, 100), 30, 4: Circle (160, 100), 38, 4: Paint (125, 100), 4, 4
Line (180, 80)-(130, 118), 4: Line (190, 82)-(140, 120), 4: Paint (160, 100), 4, 4
Slow 2
i = 1
While i < 67
Line (122, RemoveY(i) + 67)-(198, RemoveY(i) + 67), 0
RemoveY(i) = 0
Sound Int(200 * Rnd(1)) + 40 + RemoveY(i), .5
If InKey$ <> InKey$ Then Exit Sub
i = i + 1
Wend
Slow .1
End Sub
Sub bathroom (snd)
For i = 0 To 15
Circle (100, 60 + i), 50 - i, 7, , , 1 / 8
Next
Line (60, 15)-(140, 60), 7, BF
Circle (100, 60), 50, 8, , , 1 / 8
Paint (100, 60), 7, 8
Circle (100, 60), 30, 8, , , 1 / 12
Paint (100, 60), 0, 8
Line (69, 75)-(131, 110), 7, B
Paint (100, 80), 7, 7
Circle (100, 75), 36, 8, 180 * (3.14 / 180), , 1 / 8
Circle (75, 21), 4, 8
Paint (75, 21), 8, 8
Line (77, 18)-(62, 20), 8, BF
Circle (62, 25), 15, 8, 10 * (3.14 / 180), 90 * (3.14 / 180), 1 / 4
Line (69, 21)-(70, 21), 8
For ha = 0 To 2
Slow 1
If snd = 1 Then Sound 40, 5 * ((ha + 1) / 2)
Next
Line (50, 10)-(150, 110), 2, BF
End Sub
Sub beer (snd)
Line (65, 30)-(135, 110), 2, BF
For B = 49 To 71
Circle (100, B), 12, 8, , , 1 / 4
Next
For B = 50 To 70
Circle (100, B), 10, 7, , , 1 / 4
Next
For B = 49 To 50
Circle (100, B), 12, 8, , , 1 / 4
Next
Circle (112, 62), 4, 8, 270 * (3.14 / 180), 90 * (3.14 / 180)
Circle (112, 62), 5, 8, 270 * (3.14 / 180), 90 * (3.14 / 180)
Circle (112, 62), 10, 8, 270 * (3.14 / 180), 90 * (3.14 / 180)
Circle (112, 62), 11, 8, 270 * (3.14 / 180), 90 * (3.14 / 180)
Paint (120, 62), 7, 8
Paint (100, 50), 7, 8
Paint (100, 60), 6, 8
Line (90, 55)-(110, 55), 8
Paint (90, 53), 7, 8
For y = 55 To 70
For x = 90 To 110
PSet (x, y), 7
Next
If snd = 1 Then Sound 100, .5
Slow .5
Next
End Sub
Sub center (line$, y, clr)
If clr = 0 Then
Locate y, 1: Print " "
End If
Color clr
Locate y, (21 - Int(Len(line$) / 2)): Print line$
End Sub
Sub CenterT (Text$, y!, clr!)
If clr = 0 Then
Locate y, 1: Print " "
End If
x = 40 - Int(Len(Text$) / 2)
Color clr
Locate y, x: Print Text$
End Sub
Sub CheckBounds (Variable)
If Variable > 100 Then Variable = 100
If Variable < 0 Then Variable = 0
End Sub
Sub CheckProblems (Variable, value, problem, probstr$)
If Variable >= value Then
q = 0
Do
If problem$(q) = probstr$ Then
Exit Do
ElseIf q = problem Then
If problem$(q) = "None" Then
problem$(q) = ""
End If
problem = problem + 1
problem$(q) = probstr$
Exit Do
End If
q = q + 1
If q = 7 Then Exit Do
Loop
ElseIf Variable < value Then
q = 0
Do
If problem$(q) = probstr$ Then
For L = q To problem
problem$(L) = problem$(L + 1)
Next
problem = problem - 1
Exit Do
End If
If q = problem Then Exit Do
q = q + 1
If q = 7 Then Exit Do
Loop
End If
End Sub
Sub cmouth
Circle (100, 75), 10, 4, , , 1 / 4
Paint (100, 75), 12, 4
Line (90, 75)-(110, 75), 4
End Sub
Sub Dead (xists)
If xists = 0 Then
Kill "GiGaMole.dat"
End If
Slow 2
End
End Sub
Sub debug (Happy, Awake, bo, Hungry, Mad, Ill, broom, Od, Drunk)
Restore DebugMenuCommands
For i = 1 To 10
Read DebugMenu$(i)
Next
Cls 0
dbug = 1
Variable(1) = Happy: Variable(2) = Awake: Variable(3) = bo
Variable(4) = Hungry: Variable(5) = Mad: Variable(6) = Ill
Variable(7) = broom: Variable(8) = Od: Variable(9) = Drunk
Do
For i = 1 To 10
If dbug = i Then Color 4 Else Color 1
If i < 10 Then
Locate i, 1: Print DebugMenu$(i)
Locate i, 10: Print RTrim$(Str$(Variable(i))); "% "
ElseIf i = 10 Then
Locate i + 1, 1: Print DebugMenu$(i)
End If
Next
Select Case InKey$
Case Chr$(0) + "Q"
If dbug < 10 Then
Variable(dbug) = Variable(dbug) - 10
If Variable(dbug) < 0 Then Variable(dbug) = 100
End If
Case Chr$(0) + "I"
If dbug < 10 Then
Variable(dbug) = Variable(dbug) + 10
If Variable(dbug) > 100 Then Variable(dbug) = 0
End If
Case Chr$(0) + "K"
If dbug < 10 Then
Variable(dbug) = Variable(dbug) - 1
If Variable(dbug) < 0 Then Variable(dbug) = 100
ElseIf dbug = 10 Then
Exit Do
End If
Case Chr$(0) + "M", Chr$(13), Chr$(32)
If dbug < 10 Then
Variable(dbug) = Variable(dbug) + 1
If Variable(dbug) > 100 Then Variable(dbug) = 0
ElseIf dbug = 10 Then
Exit Do
End If
Case Chr$(0) + "P"
dbug = dbug + 1
If dbug = 11 Then dbug = 1
Case Chr$(0) + "H"
dbug = dbug - 1
If dbug = 0 Then dbug = 10
End Select
Loop
Cls 0
cheat$ = ""
Refresh 0, 0, sl
Happy = Variable(1): Awake = Variable(2): bo = Variable(3)
Hungry = Variable(4): Mad = Variable(5): Ill = Variable(6)
broom = Variable(7): Od = Variable(8): Drunk = Variable(9)
End Sub
Sub DecrementVariable (ticks, Variable, value, decrement, index)
If ticks / value = Int(ticks / value) Then
If ticks <> 0 Then
If cprob(index) - value > oprob(index) Then
Variable = Variable - decrement
If Variable < 0 Then Variable = 0
oprob(index) = Timer
End If
End If
End If
End Sub
Sub doctor (snd)
Line (50, 20)-(150, 100), 2, BF
Line (85, 70)-(90, 67), 8
Line (85, 70)-(90, 73), 8
Line (81, 70)-(85, 70), 8
Line (90, 67)-(90, 73), 8
Paint (87, 70), 8, 8
Line (91, 67)-(110, 73), 7, B
Line (111, 69)-(118, 71), 7, BF
Line (119, 67)-(122, 73), 7, BF
Line (109, 67)-(110, 73), 7, BF
Paint (100, 70), 14, 7
Slow .5
Line (111, 67)-(122, 73), 2, BF
Line (100, 68)-(110, 72), 2, BF
Line (100, 68)-(103, 72), 7, BF
Line (104, 69)-(115, 71), 7, BF
Line (110, 67)-(110, 73), 7
Line (116, 67)-(119, 73), 7, BF
If snd = 1 Then Sound 80, .5
Slow .5
Line (92, 68)-(109, 72), 2, BF
Line (95, 69)-(110, 71), 7, BF
Line (112, 67)-(119, 73), 2, BF
Line (112, 67)-(115, 73), 7, BF
Line (93, 68)-(95, 72), 7, BF
Line (92, 68)-(92, 72), 14
If snd = 1 Then Sound 80, .5
Slow 1
End Sub
Sub eclose (ex, ey)
Paint (90 + ex, 50 + ey), 14, 6
Paint (110 + ex, 50 + ey), 14, 6
Line (85 + ex, 50 + ey)-(95 + ex, 50 + ey), 6
Line (105 + ex, 50 + ey)-(115 + ex, 50 + ey), 6
End Sub
Sub eopen (ex, ey)
Paint (90 + ex, 50 + ey), 14, 14
Paint (110 + ex, 50 + ey), 14, 14
Circle (90 + ex, 50 + ey), 5, 6, , , 1 / 2
Circle (110 + ex, 50 + ey), 5, 6, , , 1 / 2
Paint (110 + ex, 50 + ey), 15, 6
Paint (90 + ex, 50 + ey), 15, 6
Circle (90 + ex, 50 + ey), 2, 0, , , 1 / 2
Circle (110 + ex, 50 + ey), 2, 0, , , 1 / 2
Paint (90 + ex, 50 + ey), 0, 0
Paint (110 + ex, 50 + ey), 0, 0
End Sub
Sub Face (x, y)
Circle (100 + x, 60 + y), 27, 8, 0 * (3.14 / 180), 180 * (3.14 / 180), 1
Line (73 + x, 60 + y)-(80 + x, 76 + y), 8
Line (120 + x, 76 + y)-(127 + x, 60 + y), 8
Line (80 + x, 76 + y)-(120 + x, 76 + y), 8
Paint (100 + x, 55 + y), 8, 8
Circle (115 + x, 85 + y), 7, 8, , , 2
Paint (115 + x, 85 + y), 8, 8
Circle (100 + x, 60 + y), 25, 14, , , 1
Paint (100 + x, 60 + y), 14, 14
Circle (90 + x, 50 + y), 5, 6, , , 1 / 2
Circle (110 + x, 50 + y), 5, 6, , , 1 / 2
Circle (100 + x, 65 + y), 3, 6, 180 * (3.14 / 180), 360 * (3.14 / 180)
Circle (96 + x, 64 + y), 1, 6, 90 * (3.14 / 180), 270 * (3.14 / 180)
Circle (104 + x, 64 + y), 1, 6, 270 * (3.14 / 180), 90 * (3.14 / 180)
Line (102 + x, 54 + y)-(103 + x, 61 + y), 6
Line (98 + x, 57 + y)-(97 + x, 60 + y), 6
Circle (100 + x, 75 + y), 10, 4, , , 1 / 4
Paint (100 + x, 75 + y), 12, 4
Line (90 + x, 75 + y)-(110 + x, 75 + y), 4
Circle (111 + x, 68 + y), 2, 6
Paint (111 + x, 68 + y), 6, 6
Circle (123 + x, 60 + y), 4, 6, 210 * (3.14 / 180), 150 * (3.14 / 180), 5
Circle (77 + x, 60 + y), 4, 6, 30 * (3.14 / 180), 330 * (3.14 / 180), 5
If sl = 1 Then
eclose x, y
ElseIf sl = 0 Then
eopen x, y
End If
End Sub
Sub food (snd)
For i = 1 To 4
omouth
If snd = 1 Then Sound 60, .5
Slow .5
cmouth
If snd = 1 Then Sound 65, .5
Slow .5
Next
End Sub
Sub grim
x = 85
Dim RemoveX(102)
For i = 1 To 102
RemoveX(i) = i
Next
For t = 0 To Int(10 * Rnd(1)) + 1
For i = 1 To 102
switch = Int(66 * Rnd(1)) + 1
temp = RemoveX(i)
RemoveX(i) = RemoveX(switch)
RemoveX(switch) = temp
Next
Next
Color 14: Locate 15, 11: Print "(c) 1999 ";
grimstext "mysticsoft", 1, 4, 2, 19, 15
grimstext "written by grim", 1, 4, 2, 13, 5
Line (29 + x, 44)-(121 + x, 44), 15: Line (29 + x, 44)-(29 + x, 95), 15
Line (29 + x, 96)-(121 + x, 96), 7: Line (121 + x, 45)-(121 + x, 96), 7
Line (30 + x, 45)-(120 + x, 95), 2, BF: Line (60 + x, 60)-(50 + x, 50), 1
Line (50 + x, 50)-(35 + x, 75), 1: Line (35 + x, 75)-(50 + x, 90), 1
Line (50 + x, 90)-(60 + x, 75), 1: Line (60 + x, 75)-(50 + x, 75), 1
Line (70 + x, 50)-(70 + x, 90), 1: Line (70 + x, 50)-(85 + x, 63), 1
Line (85 + x, 63)-(70 + x, 76), 1: Line (70 + x, 76)-(85 + x, 90), 1
Line (90 + x, 60)-(90 + x, 65), 4: Line (90 + x, 70)-(90 + x, 90), 4
Line (95 + x, 50)-(95 + x, 90), 1: Line (95 + x, 50)-(105 + x, 75), 1
Line (105 + x, 75)-(115 + x, 50), 1: Line (115 + x, 50)-(115 + x, 90), 1
Slow 2
i = 0
While i < 103
Line (RemoveX(i) + x + 28, 44)-(RemoveX(i) + x + 28, 96), 0
Sound Int(100 * Rnd(1)) + 40 + RemoveX(i) + 100, .5
If InKey$ <> "" Then Exit Sub
i = i + 1
Wend
Slow .001
End Sub
Sub grimstext (line$, clr1, clr2, clr3, x, y)
tmpline$ = UCase$(line$)
For tmp = 1 To Len(tmpline$)
Select Case Right$((Left$(tmpline$, tmp)), 1)
Case "A", "E", "I", "O", "U":
Color clr2
Locate y, tmp + x: Print LCase$(Right$((Left$(tmpline$, tmp)), 1))
Case "B", "C", "D", "F", "G", "H", "J", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "V", "W", "X", "Y", "Z", "_":
Color clr1
Locate y, tmp + x: Print Right$((Left$(tmpline$, tmp)), 1)
Case Else
Color clr3
Locate y, tmp + x: Print Right$((Left$(tmpline$, tmp)), 1)
End Select
Next
End Sub
Sub heartattack (snd)
For x = 1 To 40
For y = 19 To 23
Locate y, x: Print " "
Next
Next
Line (65, 30)-(135, 110), 2, BF
Circle (80, 40), 20, 4, 0 * (3.14 / 180), 220 * (3.14 / 180)
Circle (120, 40), 20, 4, 320 * (3.14 / 180), 180 * (3.14 / 180)
Line (65, 51)-(100, 80), 4
Line (135, 51)-(100, 80), 4
Paint (100, 70), 4, 4
For i = 0 To 45
Circle (100, 50), i, 2
If snd = 1 Then Sound 40 + i, .5
Slow .05
Next
For i = 1 To 50
Sound 60, .5
Next
center "Giga Mole had a heart attack", 20, 4
center "because he drank too much", 21, 4
center "You lose!!", 22, 4
End Sub
Sub help
helpfilp = 0
flipdelay = Timer
Cls 0
Color 7
Print "��������������������������������������͸"
Print "� �"
grimstext "gigamole help", 1, 4, 2, 13, 2
Color 7
Print "��������������������������������������Ĵ"
Print "�Menu: �"
Print "�Play Play a game �"
Print "�Feed Feed him �"
Print "�Sleep/Wake Make him sleep/wake �"
Print "�Bathroom He goes to the bathroom�"
Print "�Shower Make him take a shower �"
Print "�Doctor Take him to the doctor �"
Print "�Stats Shows how you're doing �"
Print "�Exit Quits GiGaMoLe �"
Print "��������������������������������������Ĵ"
Print "�Other: �"
Print "�F1 Display this screen �"
Print "�F2 Toggles Sound �"
Print "�F3 Save your game �"
Print "�F4 Toggles Auto-Save �"
Print "�F5 Toggles Menu Cursor �"
Print "��������������������������������������Ĵ"
Print "� [ESC] EXITS�"
Print "����������������������������������������"
Do While InKey$ <> Chr$(27)
If Timer - flipdelay > 1 Then
Select Case helpflip
Case 0:
grimstext "gigamole help", 1, 4, 2, 13, 2
Case 1:
grimstext "gigamole help", 4, 2, 1, 13, 2
Case 2:
grimstext "gigamole help", 2, 1, 4, 13, 2
End Select
helpflip = helpflip + 1
If helpflip = 3 Then helpflip = 0
flipdelay = Timer
End If
Loop
Cls 0
End Sub
Sub IncrementVariable (ticks, Variable, value, increment, index)
If ticks / value = Int(ticks / value) Then
If ticks <> 0 Then
If cprob(index) - value > oprob(index) Then
Variable = Variable + increment
If Variable > 100 Then Variable = 100
oprob(index) = Timer
End If
End If
End If
End Sub
Sub juggle (sl)
Circle (111, 68), 3, 14: Paint (111, 68), 14, 14
Const xc = .5: Const ll = 39: Const lt = 76: Const rl = 139: Const rt = 76
Dim mx(2), my(2), h(30), x(2), d(2)
Circle (50, 80), 10, 14, 0, 180 * (3.14 / 180), 1 / 3
Circle (50, 80), 10, 14, 180 * (3.14 / 180), 360 * (3.14 / 180), 1 / 2
Circle (150, 80), 10, 14, 0, 180 * (3.14 / 180), 1 / 3
Circle (150, 80), 10, 14, 180 * (3.14 / 180), 360 * (3.14 / 180), 1 / 2
Paint (50, 80), 14, 14: Paint (150, 80), 14, 14
For L = 44 To 56 Step 4
Line (L, 77)-(L, 80), 7
Line (200 - L, 77)-(200 - L, 80), 7
Next
Get (139, 76)-(161, 85), h()
mx(0) = 150: my(0) = 73: mx(1) = 100: my(1) = 3: mx(2) = 50: my(2) = 73
x(0) = 7.75: x(1) = 0: x(2) = -6.5: d(0) = 1: d(1) = 1: d(2) = 0
ed = Timer: ee = 0: stal = Timer
While Timer - stal < 10
If Timer - ed > 2 And ee = 0 Then
ee = 1: eclose 0, 0: ed = Timer
ElseIf Timer - ed > .5 And ee = 1 Then
ee = 0: eopen 0, 0: ed = Timer
End If
For moles = 0 To 2
Circle (mx(moles), my(moles)), 3, 2
Paint (mx(moles), my(moles) - 1), 2, 2
If x(moles) <= -7.75 And d(moles) = 1 Then
d(moles) = 0: x(moles) = -6.5
ElseIf x(moles) >= 6.5 And d(moles) = 0 Then
d(moles) = 1: x(moles) = 7.75
End If
If d(moles) = 1 Then
x(moles) = x(moles) - xc
ElseIf d(moles) = 0 Then
x(moles) = x(moles) + xc
End If
If d(moles) = 1 Then
mx(moles) = (x(moles) * 7) + 100: my(moles) = (x(moles) ^ 2) + 20
ElseIf d(moles) = 0 Then
mx(moles) = (x(moles) * 8.25) + 100: my(moles) = -1 * (x(moles) ^ 2) + 121
End If
Circle (mx(moles), my(moles)), 3, 6: Paint (mx(moles), my(moles) - 1), 6, 6
Next
Put (ll, lt), h(), PSet: Put (rl, rt), h(), PSet
Slow .005
Wend
Refresh 0, 0, sl
End Sub
Sub KillDataFile (xists)
If xists = 0 Then
Kill "GiGaMole.dat"
End If
End Sub
Sub knife
Cls 0
View (60, 20)-(260, 140), 2, 1
Line (101, 30)-(101, 65), 8
Circle (100, 65), 35, 8, 90 * (3.14 / 180), 180 * (3.14 / 180), 7
Line (95, 65)-(101, 65), 8
Paint (98, 40), 8, 8
Line (93, 66)-(103, 66), 0
Line (96, 67)-(100, 80), 0, BF
PSet (99, 32), 4
PSet (100, 34), 4
PSet (100, 36), 4
Line (98, 38)-(98, 40), 4
Line (97, 42)-(99, 43), 4, BF
PSet (100, 44), 4
center "GiGa MoLe Got depressed", 20, 4
center "and killed himself", 21, 4
For i = 100 To 50 Step -10
Sound i, 1
Slow .05
Next
End Sub
Sub MainMenu (sel, sl$)
Restore menus
For i = 1 To 9
Read y, x, Selection$
If sel = i Then Color sclr Else Color oclr
If i = 3 Then Selection$ = sl$
Locate y, x: Print Selection$; " "
Next
End Sub
Sub McMole (snd)
Line (65, 30)-(135, 110), 2, BF
'Line (98, 106)-(102, 200), 0, BF
Line (50, 90)-(150, 90), 12
Line (150, 90)-(140, 105), 12
Line (140, 105)-(60, 105), 12
Line (60, 105)-(50, 90), 12
Color 12
Locate 15, 18
Print "McMole"
Paint (100, 94), 4, 12
Palette 12, 14
Line (50, 90)-(150, 90), 4
Line (150, 90)-(140, 105), 4
Line (140, 105)-(60, 105), 4
Line (60, 105)-(50, 90), 4
Paint (103, 96), 4, 12
Paint (119, 95), 4, 12
Circle (76, 75), 47, 14, 0, 180 * (PI / 180), 2
Circle (124, 75), 47, 14, 0, 180 * (PI / 180), 2
Line (51, 76)-(51, 89), 14
Line (149, 76)-(149, 89), 14
Circle (76, 75), 35, 14, 0, 180 * (PI / 180), 2
Circle (124, 75), 35, 14, 0, 180 * (PI / 180), 2
Line (95, 60)-(105, 75), 14, BF
Line (57, 76)-(57, 89), 14
Line (143, 76)-(143, 89), 14
Line (57, 89)-(51, 89), 14
Line (143, 89)-(149, 89), 14
Paint (146, 88), 14, 14
Paint (54, 88), 14, 14
If snd = 1 Then
For i = 1 To 4
Sound 60, .5
Slow .5
Sound 65, .5
Slow .5
Next
Else
Slow 4
End If
RestorePalette
End Sub
Sub omouth
Paint (100, 75), 14, 14
Circle (100, 75), 10, 4, , , 1 / 4
Paint (100, 75), 0, 4
End Sub
Sub OverDose (snd, sl)
Randomize Timer
center "", 20, 0
center "", 21, 0
center "", 22, 0
center "Looks like he had a little", 20, 1
center "more then he could handel!", 21, 1
center "You lose!", 22, 1
Refresh 0, 0, sl
a = Timer
Do Until Timer - a > 10
For i = 0 To 15
Palette i, RandInt(16, 0)
If snd = 1 Then Sound Int(1000 * Rnd(1)) + 1000, .5
Next
Slow .05
Loop
Cls
RestorePalette
End Sub
Sub pun (snd)
center "Ouch! Quit that", 2, 1
Paint (1, 1), 1, 1
Line (0, 15)-(25, 0), 4
Line (25, 0)-(50, 15), 4
Line (50, 15)-(75, 0), 4
Line (75, 0)-(100, 15), 4
Line (100, 15)-(125, 0), 4
Line (125, 0)-(150, 15), 4
Line (150, 15)-(175, 0), 4
Line (175, 0)-(200, 15), 4
Line (200, 15)-(175, 30), 4
Line (175, 30)-(200, 45), 4
Line (200, 45)-(175, 60), 4
Line (175, 60)-(200, 75), 4
Line (200, 75)-(175, 90), 4
Line (175, 90)-(200, 105), 4
Line (200, 105)-(175, 120), 4
Line (175, 120)-(150, 105), 4
Line (150, 105)-(125, 120), 4
Line (125, 120)-(100, 105), 4
Line (100, 105)-(75, 120), 4
Line (75, 120)-(50, 105), 4
Line (50, 105)-(25, 120), 4
Line (25, 120)-(0, 105), 4
Line (0, 105)-(25, 90), 4
Line (25, 90)-(0, 75), 4
Line (0, 75)-(25, 60), 4
Line (25, 60)-(0, 45), 4
Line (0, 45)-(25, 30), 4
Line (25, 30)-(0, 15), 4
Paint (100, 60), 14, 4
Line (40, 30)-(70, 55), 1, B
Line (45, 35)-(65, 50), 1, B
Paint (41, 31), 1, 1
Line (40, 56)-(45, 85), 1, B
Paint (41, 57), 1, 1
Line (75, 30)-(105, 85), 1, B
Line (80, 35)-(100, 80), 1, B
Paint (76, 31), 1, 1
Line (110, 30)-(120, 85), 1
Line (120, 85)-(125, 85), 1
Line (125, 85)-(140, 60), 1
Line (140, 60)-(155, 85), 1
Line (155, 85)-(160, 85), 1
Line (160, 85)-(170, 30), 1
Line (170, 30)-(165, 30), 1
Line (165, 30)-(155, 70), 1
Line (155, 70)-(145, 50), 1
Line (145, 50)-(135, 50), 1
Line (135, 50)-(125, 70), 1
Line (125, 70)-(115, 30), 1
Line (115, 30)-(110, 30), 1
Paint (112, 33), 1, 1
For i = 125 To 75 Step -5
If snd = 1 Then Sound i, .5
Next
Slow 1
For i = 100 To 0 Step -2
Line (i, 0)-(i, 120), 2
Line (200 - i, 0)-(200 - i, 120), 2
If i / 5 = Int(i / 5) And i <> 0 Then
If snd = 1 Then Sound 225 + i, .5
End If
Next
For i = 99 To 1 Step -2
Line (i, 0)-(i, 120), 2
Line (200 - i, 0)-(200 - i, 120), 2
If i / 5 = Int(i / 5) And i <> 0 Then
If snd = 1 Then Sound 125 + i, .5
End If
Next
center " ", 2, 1
End Sub
Function RandInt (num1, num2)
RandInt = Int(num1 * Rnd(1)) + num2
End Function
Sub Refresh (x, y, sl)
View (60, 20)-(260, 140), 2, 1
Face x, y
Select Case sl
Case 0: eopen 0, 0
Case 1: eclose 0, 0
End Select
End Sub
Sub RestorePalette
For i = 0 To 15
If i <> 11 Then Palette i, i
Next
End Sub
Sub Save (new, snd, Happy, Awake, bo, Hungry, Mad, sick, broom, Od, Drunk, months, weeks, days, autosave, AnimateMenu)
Open "GIGAMOLE.DAT" For Binary As #1
Game.new = new: Game.snd = snd: Game.happ = Happy: Game.Awake = Awake
Game.body = bo: Game.hung = Hungry: Game.madd = Mad: Game.sikk = sick
Game.room = broom: Game.Od = Od: Game.Drunk = Drunk:
Game.days = days: Game.weeks = weeks: Game.months = months
Game.autosave = autosave: Game.AnimateMenu = AnimateMenu
Put #1, , Game
Close #1
End Sub
Function SaveClose
center "Save game before exiting? [Y,N,C]", 2, 7
Do
Select Case InKey$
Case "Y", "y": SaveClose = 1: Exit Do
Case "N", "n": SaveClose = 0: Exit Do
Case "C", "c": SaveClose = -1: Exit Do
End Select
Loop
End Function
Sub seizure
Dim FaceA(900)
sl = 1: MoreX = 0
Refresh 0, 0, sl
Get (65, 30)-(135, 110), FaceA()
For i = 1 To 5
For LessX = MoreX To -5 Step -1
Put (LessX + 65, 30), FaceA(), PSet
Next
Slow .05
For MoreX = LessX To 5 Step 1
Put (MoreX + 65, 30), FaceA(), PSet
Next
Slow .05
Next
center "GiGaMoLe had a seizure", 20, 4
center "because he got to mad!", 21, 4
center "You Lose!", 22, 4
End Sub
Sub shower
Dim sx(50)
Dim sy(50)
For i = 55 To 100
If i / 10 = Int(i / 10) Then sc = 0 Else sc = 3
Line (i, 30)-(i, 95), sc
Line (200 - i, 30)-(200 - i, 95), sc
Slow .04
Next
For i = 1 To 50
sx(i) = Int(90 * Rnd(1)) + 55
sy(i) = Int(20 * Rnd(1)) + 10
Next
sd = Timer
Do Until Timer - sd > 10
For i = 1 To 50
If sy(i) < 29 Then
If Point(sx(i), sy(i)) = 1 Then
PSet (sx(i), sy(i)), 2
End If
sy(i) = sy(i) + 1
PSet (sx(i), sy(i)), 1
ElseIf sy(i) = 29 Then
PSet (sx(i), sy(i)), 2
sx(i) = Int(90 * Rnd(1)) + 55
sy(i) = Int(20 * Rnd(1)) + 10
End If
Next
i = 0
Slow .04
Loop
Line (55, 10)-(145, 29), 2, BF
Line (55, 30)-(145, 95), 2, BF
End Sub
Sub Slow (delay)
d = Timer
While Timer - d < delay: Wend
End Sub
Sub Speak (times, delay)
For i = 1 To times
omouth
Slow delay
cmouth
Slow delay
Next
End Sub
Sub UpdateMenu
If AnimateMenu = True And Timer - MenuTimer > .05 Then
Select Case MenuColor
Case 4: NMC = 2
Case 2: NMC = 14
Case 14: NMC = 9
Case 9: NMC = 4
End Select
Palette sclr, NMC
MenuColor = NMC
MenuTimer = Timer
End If
End Sub
Sub weed (snd)
Rem nd = 1 THEN PLAY ON
final = 100
Dim sx(final), sy(final), sz(final)
Line (65, 30)-(135, 110), 2, BF
Circle (100, 80), 10, 4, 120 * (3.14 / 180), 60 * (3.14 / 180), 1 / 3
Line (95, 50)-(105, 80), 4, B
Paint (94, 80), 12, 4
Paint (96, 51), 12, 4
pipe = 0: w1 = 103: w2 = 70
Circle (102, 71), 3, 4
For bowl = 0 To 9.5 Step .5
Circle (w1, w2), 4, 4: w1 = w1 + .5: w2 = w2 - .5
Next
w1 = 103: w2 = 70
Do Until pipe = 9
Circle (w1, w2), 3, 12: w1 = w1 + .5: w2 = w2 - .5: pipe = pipe + .5
Loop
Circle (112.5, 59.5), 3, 4: Paint (114, 61), 0, 4
For s = 0 To final
sx(s) = Int(10 * Rnd(1)) + 95: sy(s) = Int(6 * Rnd(1)) + 43: sz(s) = Int(10 * Rnd(1)) + 1
Next
Rem If snd = 1 Then
Rem On Play(4) GOTO inagoddadavida:
Rem : Play "mbt60o2d8d8f16e16o1c16o2d8o3msa8g#8g8mno2f16"
Rem End If
d = Timer
Do Until Timer - d > 20
For a = 0 To final
Select Case Point(sx(a), sy(a))
Case 8: PSet (sx(a), sy(a)), 2
End Select
Select Case sx(a)
Case Is <= 0, Is >= 200:
sx(a) = Int(10 * Rnd(1)) + 95: sy(a) = Int(6 * Rnd(1)) + 43
Case Is < 100: sx(a) = sx(a) - 1 'sz(a)
Case Is >= 100: sx(a) = sx(a) + 1 ' sz(a)
End Select
If sy(a) <= 0 Then
sx(a) = Int(10 * Rnd(1)) + 95: sy(a) = Int(6 * Rnd(1)) + 43
End If
sy(a) = sy(a) - sz(a) / (5 * Rnd(1) + (10 * Rnd(1))):
PSet (sx(a), sy(a)), 8
Next
Loop
If snd = 1 Then
Play "mbo2d8"
Rem OFF
End If
End Sub
Sub WIN (snd)
View Screen(0, 0)-(319, 199)
Cls
Face 60, 38
eopen 60, 38
Rem If snd = 1 Then
Rem Rem PLAY ON
Rem On Play(4) GOSUB creditsmusic
Rem Play "mb t80 l8 o4 bdc o5 gad o4 ebg o3 acb"
Rem End If
Color 1
center "Winner!!", 2, 0
center "There are many cheats", 5, 12
center "Type stuff during the game", 6, 12
center "to find them!", 7, 12
Slow 5
Cls 0
center "Giga Mole by GRiM", 12, 15
Slow 5
Cls
center "Written by Gary Kramlich", 12, 15
Slow 5
Cls
center "Special Thanks to Mr. Anders", 12, 15
center "With out you, there wouldn't", 13, 15
center "be a GiGa MoLe! -Gary!", 14, 15
Slow 5
If snd = 1 Then Play "o2 e1"
End Sub
Sub z1
Circle (135, 35), 10, 7
Paint (135, 35), 7, 7
Line (130, 30)-(140, 30), 0
Line (140, 30)-(130, 40), 0
Line (130, 40)-(140, 40), 0
Slow .5
Circle (135, 35), 10, 2
Paint (135, 33), 2, 2
End Sub
Sub z2
Circle (152, 12), 7, 7
Paint (152, 11), 7, 7
Line (150, 10)-(155, 10), 0
Line (155, 10)-(150, 15), 0
Line (150, 15)-(155, 15), 0
Slow .5
Circle (152, 12), 7, 2
Paint (152, 11), 2, 2
End Sub