summaryrefslogtreecommitdiff
path: root/sounds.bmx
blob: c0bdf5d928434de475babbacb731d485b43b6082 (plain)
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
' Vectoroids
'
' Copyright 2005 Ian Cowburn
'
' $Id$
'
Strict

Incbin "SFX/explode1.wav"
Incbin "SFX/explode2.wav"
Incbin "SFX/explode3.wav"
Incbin "SFX/fire.wav"
Incbin "SFX/life.wav"
Incbin "SFX/lsaucer.wav"
Incbin "SFX/sfire.wav"
Incbin "SFX/ssaucer.wav"
Incbin "SFX/thrust.wav"
Incbin "SFX/thumphi.wav"
Incbin "SFX/thumplo.wav"


Type Sounds
	Global explode:TSound[]
	Global fire:TSound
	Global life:TSound
	Global lsaucer:TSound
	Global sfire:TSound
	Global ssaucer:TSound
	Global thrust:TSound
	Global thumphi:TSound
	Global thumplo:TSound
	
	Global thrust_channel:TChannel
	Global ssaucer_channel:TChannel
	Global lsaucer_channel:TChannel
	
	Global frame:Int
	Global hi:Int

	Function Init()
		explode=New TSound[3]
		explode[2]=LoadSound("incbin::SFX/explode1.wav")
		explode[1]=LoadSound("incbin::SFX/explode2.wav")
		explode[0]=LoadSound("incbin::SFX/explode3.wav")
		fire=LoadSound("incbin::SFX/fire.wav")
		life=LoadSound("incbin::SFX/life.wav")
		lsaucer=LoadSound("incbin::SFX/lsaucer.wav",True)
		sfire=LoadSound("incbin::SFX/sfire.wav")
		ssaucer=LoadSound("incbin::SFX/ssaucer.wav",True)
		thrust=LoadSound("incbin::SFX/thrust.wav",True)
		thumplo=LoadSound("incbin::SFX/thumplo.wav")
		thumphi=LoadSound("incbin::SFX/thumphi.wav")
		
		frame=0
		hi=True
		
		thrust_channel=thrust.Cue()
		ssaucer_channel=ssaucer.Cue()
		lsaucer_channel=lsaucer.Cue()
	End Function
	
	Function Update(freq:Int)
		If frame>freq
			frame=0
			
			If hi
				thumphi.Play()
			Else
				thumplo.Play()
			EndIf
			
			hi=Not hi
		EndIf
		frame:+1
	End Function
	
	Function AsteroidExplosion(size:Int)
		explode[size].Play()
	End Function
	
	Function ShipExplosion()
		explode[0].Play()
	End Function
	
	Function PlayerFire()
		fire.Play()
	End Function
	
	Function SaucerFire()
		sfire.Play()
	End Function
	
	Function ExtraLife()
		life.Play()
	End Function

	Function PlayerThrust(on:Int)
		thrust_channel.SetPaused(Not on)
	End Function
	
	Function SmallSaucer()
		ssaucer_channel.SetPaused(False)
	End Function
	
	Function LargeSaucer()
		lsaucer_channel.SetPaused(False)
	End Function
	
	Function NoSaucer()
		lsaucer_channel.SetPaused(True)
		ssaucer_channel.SetPaused(True)
	End Function
	
	Function Clear()
		PlayerThrust(False)
		NoSaucer()
	End Function
End Type