-
Notifications
You must be signed in to change notification settings - Fork 0
/
SPHMENU.BAS
180 lines (150 loc) · 4.07 KB
/
SPHMENU.BAS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
'revision 2.1
DECLARE SUB switchsound ()
DECLARE SUB laybombs ()
DECLARE SUB ChoseSoGo ()
DECLARE SUB usemenu ()
DECLARE SUB refreshmenubox ()
DECLARE SUB refreshmenu ()
DECLARE SUB intro ()
DECLARE SUB delaye ()
Dim Shared tone
Dim Shared menuitem$(1 To 3)
Dim Shared seltext As Integer
Dim Shared sound$
Open "qjak.ini" For Input As #1
Line Input #1, progdir$
Close
For charnow = 1 To Len(progdir$)
If Mid$(progdir$, charnow, 1) = "=" Then GoTo SPLITHERE
Next charnow
SPLITHERE:
progdir$ = Right$(progdir$, Len(progdir$) - (charnow)) 'this is correct since STARTS at right
ChDir (progdir$)
Open "bsound.dat" For Input As #1
Line Input #1, sound$
Close
Cls
'colors #16-31 is grayscale black to white in 256 colors (screen 13 mode)
Screen 13
laybombs
intro
Sleep 1
delaye
menuitem$(1) = "Play"
menuitem$(2) = "Help"
menuitem$(3) = "Quit"
usemenu
Chain ("QJAKMENU.BAS")
End
Sub ChoseSoGo
Select Case seltext
Case 1: Chain "SPHEROID.BAS"
CASE 2: CLS : PRINT "Made by Jake Gustafson": COLOR 3: PRINT : PRINT "1. Use arrow keys to move sphere": PRINT "2. Enter shoots when near land mine": PRINT "3. Escape quits": PRINT : COLOR 15: PRINT "Press any other key to continue...": _
SLEEP 0: CLS : laybombs: usemenu
Case 3: Exit Sub
Case Else: Return
End Select
End Sub
Sub delaye
Select Case sound$
Case "1": Sound tone, .4
Case "0": Sound 20000, .4
End Select
tone = tone + colour
End Sub
Sub intro
tone = 40
outness = 30
outadd = .5
center = 150
centeradd = 3.4
Sleep 1
Screen 13
For colour = 16 To 31
Circle (center, center), outness, colour
Paint (center, center), colour
center = center - centeradd
centeradd = centeradd - .3
outness = outness - outadd
outadd = outadd + .2
delaye
Next colour
End Sub
Sub laybombs
For i = 1 To 30
currentbombx = Int((Rnd * 319) + 1)
currentbomby = Int((Rnd * 199) + 1)
For radius = 1 To 3
Select Case sound$
Case "1": Sound 60 + (radius * 3), .3
Case Else: Sound 20000, .3
End Select
Circle (currentbombx, currentbomby), radius, 4
Circle (currentbombx, currentbomby), radius - 1, 16
Next radius
Circle (currentbombx, currentbomby), 2, 113
Circle (currentbombx, currentbomby), 4, 113
Circle (currentbombx, currentbomby), 3, 4
Next i
End Sub
Sub refreshmenu
For drawchoices = 1 To 3
If (seltext = drawchoices) Then
Locate 8 + drawchoices + drawchoices, 18
Color 34
Print menuitem$(drawchoices); "!"
Else
Locate 8 + drawchoices + drawchoices, 18
Color 15
Print menuitem$(drawchoices); " "
End If
Next drawchoices
End Sub
Sub refreshmenubox
bordlx = 99
bordly = 50
bordrx = 219
bordry = 150
For bordre = 17 To 21
Line (bordlx, bordly)-(bordrx, bordry), bordre, BF
bordlx = bordlx + 1
bordly = bordly + 1
bordrx = bordrx - 1
bordry = bordry - 1
Next bordre
bordlx = bordlx + 1
bordly = bordly + 1
bordrx = bordrx - 1
bordry = bordry - 1
Line (bordlx, bordly)-(bordrx, bordry), 0, BF
End Sub
Sub switchsound
Open "bsound.dat" For Output As #1
Select Case sound$
Case "0": Print #1, "1": sound$ = "1"
Case "1": Print #1, "0": sound$ = "0"
End Select
Close
End Sub
Sub usemenu
menuitem$(1) = "Play"
menuitem$(2) = "Help"
menuitem$(3) = "Quit"
seltext = 1
refreshmenubox
Locate 2, 11
Print "S P H E R O I D";
Color 43
Print " 2.1"
rechoose:
refreshmenu
Select Case InKey$
Case Chr$(0) + "H": seltext = seltext - 1: If seltext < 1 Then seltext = 3: refreshmenu
Case Chr$(0) + "P": seltext = seltext + 1: If seltext > 3 Then seltext = 1: refreshmenu
Case "s": switchsound:
Case Chr$(13): ChoseSoGo: Exit Sub
Case "": Sleep 0
Case Else: GoTo rechoose
End Select
GoTo rechoose
End Sub