We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!
Apollo 18: The Moon Missions/Uncompiled Code
Jump to navigation
Jump to search
This is a sub-page of Apollo 18: The Moon Missions.
\DOCKING
DOCKING2.FRM
VERSION 4.00
Begin VB.Form docking
AutoRedraw = -1 'True
BorderStyle = 1 'Fixed Single
Caption = "Docking with the Lunar Module"
ClientHeight = 7140
ClientLeft = 1785
ClientTop = 1575
ClientWidth = 9600
Height = 7545
Left = 1725
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
Picture = "DOCKING2.frx":0000
ScaleHeight = 7140
ScaleWidth = 9600
Top = 1230
Visible = 0 'False
Width = 9720
Begin VB.Timer Timer3
Interval = 50
Left = 150
Top = 6300
End
Begin VB.VScrollBar VScroll1
Height = 870
LargeChange = 10
Left = 6975
Max = 100
TabIndex = 31
Top = 6195
Width = 270
End
Begin VB.TextBox Text6
Appearance = 0 'Flat
BackColor = &H00000000&
ForeColor = &H0000FF00&
Height = 300
Left = 5910
TabIndex = 27
Text = "Text6"
Top = 1080
Visible = 0 'False
Width = 1815
End
Begin VB.TextBox Text5
Appearance = 0 'Flat
BackColor = &H00000000&
ForeColor = &H0000FF00&
Height = 300
Left = 5835
TabIndex = 26
Text = "Text5"
Top = 735
Visible = 0 'False
Width = 1980
End
Begin VB.TextBox Text4
BackColor = &H00000000&
BorderStyle = 0 'None
ForeColor = &H0000FF00&
Height = 315
Left = 3270
TabIndex = 25
Text = "Text4"
Top = 1125
Visible = 0 'False
Width = 1965
End
Begin VB.TextBox Text3
Appearance = 0 'Flat
BackColor = &H00000000&
BorderStyle = 0 'None
ForeColor = &H0000FF00&
Height = 315
Left = 3270
TabIndex = 24
Text = "Text3"
Top = 750
Visible = 0 'False
Width = 2220
End
Begin VB.TextBox Text2
Appearance = 0 'Flat
BackColor = &H00000000&
ForeColor = &H0000FF00&
Height = 300
Left = 1065
TabIndex = 23
Text = "Text2"
Top = 1110
Visible = 0 'False
Width = 2010
End
Begin VB.TextBox Text1
Appearance = 0 'Flat
BackColor = &H00000000&
ForeColor = &H0000FF00&
Height = 300
Left = 1080
TabIndex = 22
Text = "Text1"
Top = 690
Visible = 0 'False
Width = 2070
End
Begin VB.Timer Timer2
Enabled = 0 'False
Interval = 1000
Left = 2835
Top = 7770
End
Begin VB.CommandButton Command2
BackColor = &H00C0C0C0&
Caption = "REV"
Height = 375
Index = 1
Left = 5295
TabIndex = 21
Top = 6555
Visible = 0 'False
Width = 615
End
Begin VB.CommandButton Command2
Caption = "FWD"
Height = 375
Index = 0
Left = 4110
TabIndex = 20
Top = 6555
Visible = 0 'False
Width = 615
End
Begin VB.CommandButton starlock
Caption = "LOCK"
Height = 585
Left = 8880
TabIndex = 19
Top = 6345
Visible = 0 'False
Width = 600
End
Begin VB.CommandButton Command1
Caption = "Command1"
Height = 495
Left = 9690
TabIndex = 18
Top = 6690
Width = 1215
End
Begin VB.PictureBox PicSave
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 8550
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 16
Top = 7305
Width = 1755
End
Begin VB.PictureBox PicWork
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 6705
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 15
Top = 7335
Width = 1755
End
Begin VB.PictureBox PicMask
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 5085
Picture = "DOCKING2.frx":4B444
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 100
TabIndex = 14
Top = 7350
Width = 1500
End
Begin VB.PictureBox PicImage
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1410
Left = 3420
Picture = "DOCKING2.frx":4DE08
ScaleHeight = 94
ScaleMode = 3 'Pixel
ScaleWidth = 99
TabIndex = 13
Top = 7365
Width = 1485
End
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 5
Left = 10110
Picture = "DOCKING2.frx":50704
ScaleHeight = 95
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 9
Top = 2385
Width = 1755
End
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 4
Left = 10290
Picture = "DOCKING2.frx":537D0
ScaleHeight = 95
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 8
Top = 1635
Width = 1755
End
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 3
Left = 10335
Picture = "DOCKING2.frx":5689C
ScaleHeight = 95
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 7
Top = 1215
Width = 1755
End
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 2
Left = 9825
Picture = "DOCKING2.frx":59968
ScaleHeight = 95
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 6
Top = 555
Width = 1755
End
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 1
Left = 9975
Picture = "DOCKING2.frx":5CA34
ScaleHeight = 95
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 5
Top = 135
Width = 1755
End
Begin VB.PictureBox picWorkBG
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H00400000&
ForeColor = &H80000008&
Height = 4860
Left = 4860
ScaleHeight = 322
ScaleMode = 3 'Pixel
ScaleWidth = 635
TabIndex = 4
Top = 7305
Width = 9555
End
Begin VB.PictureBox picBGoriginal
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
ForeColor = &H80000008&
Height = 9030
Left = -9360
Picture = "DOCKING2.frx":5FB00
ScaleHeight = 600
ScaleMode = 3 'Pixel
ScaleWidth = 800
TabIndex = 1
Top = 7350
Width = 12030
End
Begin VB.PictureBox picPitMask
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 5205
Left = 9780
Picture = "DOCKING2.frx":D5244
ScaleHeight = 347
ScaleMode = 3 'Pixel
ScaleWidth = 640
TabIndex = 3
Top = 4020
Width = 9600
End
Begin VB.PictureBox picPitSprite
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 5205
Left = 10005
Picture = "DOCKING2.frx":10BA08
ScaleHeight = 347
ScaleMode = 3 'Pixel
ScaleWidth = 640
TabIndex = 2
Top = 510
Width = 9600
End
Begin VB.Timer Timer1
Enabled = 0 'False
Interval = 55
Left = 9960
Top = 5865
End
Begin VB.PictureBox Picture4
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 7200
Left = 0
Picture = "DOCKING2.frx":1421CC
ScaleHeight = 480
ScaleMode = 3 'Pixel
ScaleWidth = 640
TabIndex = 0
Top = -15
Width = 9600
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 0
Left = 4110
Picture = "DOCKING2.frx":18D610
ScaleHeight = 95
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 10
Top = 5520
Width = 1755
Begin VB.Image auxjoy
Height = 300
Index = 0
Left = 720
Top = 225
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 1
Left = 1035
Top = 555
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 2
Left = 720
Top = 870
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 3
Left = 390
Top = 555
Width = 300
End
End
Begin VB.PictureBox picBackground
Appearance = 0 'Flat
BackColor = &H00000000&
BorderStyle = 0 'None
DragIcon = "DOCKING2.frx":1906DC
ForeColor = &H80000008&
Height = 5190
Left = 0
Picture = "DOCKING2.frx":1909E6
ScaleHeight = 346
ScaleMode = 3 'Pixel
ScaleWidth = 640
TabIndex = 17
Top = 150
Width = 9600
Begin VB.TextBox splattextbox
Alignment = 2 'Center
BackColor = &H00000000&
ForeColor = &H000000FF&
Height = 300
Left = 1830
TabIndex = 30
Top = 165
Visible = 0 'False
Width = 6000
End
Begin VB.Label labeltime
Alignment = 2 'Center
BackStyle = 0 'Transparent
Caption = "labeltime"
ForeColor = &H000000FF&
Height = 285
Left = 7710
TabIndex = 29
Top = 600
Visible = 0 'False
Width = 870
End
End
Begin VB.Image dockThrust
Height = 330
Index = 2
Left = 7515
Picture = "DOCKING2.frx":1C71AA
Top = 6540
Width = 195
End
Begin VB.Image dockThrust
Height = 330
Index = 1
Left = 7710
Picture = "DOCKING2.frx":1C774E
Top = 6540
Width = 195
End
Begin VB.Image dockThrust
Height = 330
Index = 0
Left = 7965
Picture = "DOCKING2.frx":1C7CF2
Top = 6540
Width = 195
End
Begin VB.Label Label1
Caption = "Label1"
Height = 465
Left = 2925
TabIndex = 28
Top = 675
Width = 4215
End
Begin VB.Image Image1
Height = 585
Index = 2
Left = 8175
Picture = "DOCKING2.frx":1C8296
Top = 5535
Visible = 0 'False
Width = 870
End
Begin VB.Image Image1
Height = 570
Index = 1
Left = 7305
Picture = "DOCKING2.frx":1C8C72
Top = 5535
Visible = 0 'False
Width = 870
End
Begin VB.Image Image1
Height = 585
Index = 0
Left = 6435
Picture = "DOCKING2.frx":1C9616
Top = 5550
Visible = 0 'False
Width = 870
End
Begin VB.Label distance
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "1000"
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 400
size = 13.5
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 360
Left = 1140
TabIndex = 12
Top = 6435
Width = 600
End
Begin VB.Label closerate
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "1000"
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 400
size = 13.5
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 360
Left = 1140
TabIndex = 11
Top = 5790
Width = 600
End
End
End
Attribute VB_Name = "docking"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
Option Explicit
Dim WaitingToLeave As Boolean
Dim IAMTurnedAround As Boolean
Dim Backward As Integer
' Constant for joystick
Dim JoyInfo As tJoyInfo
Dim RangeWidth As Integer
Dim RangeHeight As Integer
Dim ScrollSpeed As Integer ' The ship's current turning speed
Rem
Dim topj, leftj, rightj, bottomj, centx, centy, leftX, rightX, topY, bottomY As Long
' Constants for mouse action.
Const NO_BUTTON = 0
Const LBUTTON = 1
Const RBUTTON = 2
' Constants for WaveMix channels
Const BACKGROUND = 0
Const MISSION_CONTROL = 1
Const BUTTONS = 2
Const EFFECTS = 3
Const WARNINGS = 4
Const MCSECOND = 5
Const Gravity = 13 'lunar gravity
Const LUPE = 1
Const NO_LUPE = 0
Const MOONHEIGHT = 1200
' Boolean that indicates if mouse button has been pressed down.
Dim MouseButtonDown As Integer
'-----------------------------------------------------
' BITDEMO1.FRM
' This program demonstrates some of the methods used
' to display bitmaps and sprites.
'-----------------------------------------------------
' The number of pixels to offset the sprite
' each time it is moved.
Const INCREMENT = 1
' Constants for Raster Operations used by BitBlt function.
Const SRCAND = &H8800C6 ' dest = source AND dest
Const SRCCOPY = &HCC0020 ' dest = source
Const SRCPAINT = &HEE0086 ' dest = source OR dest
'Dim Ship(1 To 4) As tShip
' The x and y coordinates for the Sprite
Dim SpriteX As Integer
Dim SpriteY As Integer
' The x and y coordinates for the upper left corner
' of the large bitmap (picBMP).
Dim BackgroundX As Integer
Dim BackgroundY As Integer
' The width and height of the work area bitmap (picWork).
Dim WorkWidth As Integer
Dim WorkHeight As Integer
Dim ldist As Integer
Dim zcomponent As Integer
Dim S4B(51) As String
Dim s4bmask(51) As String
Dim csmDock(51) As String
Dim csmMask(51) As String
Dim DistDrop As Integer
Dim DropTime As Integer
Dim LmAlt As Integer
Dim dirtLevel As Integer
Dim OlddirtLevel As Integer
Dim AltiMeter As Integer
Dim AltiMeterReading As Integer
Dim FwdVel As Single
Dim LatVel As Single
Dim FwdDist As Single
Dim LatDist As Single
Dim Direction As String
Dim PorSta As String
Dim ForRev As String
Rem --- disScreen declarations ---
Dim Box(4, 2) As Integer
Dim poly_clip_min_x, poly_clip_min_y, poly_clip_max_x, poly_clip_max_y As Integer
Dim X1, Y1, X2, Y2 As Integer
Dim ClipReturn, WithClip As Boolean
Rem --- landstuff declarations
Const GREEN = 2
Const LTGREEN = 10
Const LTRED = 12
Const BLACK = 0
'/*****************************************************************************/
Dim Biggy(300, 400) As Integer 'array to hold altitudes
Dim TargetBiggy(300, 400) As Boolean 'array to hold position of target
'Dim NextBiggy(300, 400) As Integer 'array to hold 2nd set of altitudes for hyperclose landing
'Dim NextTargetBiggy(300, 400) As Boolean 'array to hold position of X and C3PO
'Dim GenBiggy(300, 400) As Integer 'array to hold altitudes for general landing other than land site
Dim Display(32, 32) As Integer 'array hold alts for movement
Dim TargetDisplay(32, 32) As Boolean 'array holds target position for movement
Dim Cdisplay(32, 32) As Integer ' array to hold old values for ClearScreen
Dim BluedLine(32) As Integer 'which lines are created
Dim CollisionFlag As Integer 'special cases, mtn, crater, life, death, etc.
'Dim NewMap As Integer '0 is original, 1 is Landing site, 2 is general landing map
Dim Doublein, DoubleStart, DoubleFlag As Integer
'Scaling Constants
Const XSCALE = 17
Const YSCALE = 3
Const SPACING = 8
Dim starty, startx As Integer 'begining position on any map for starting
Dim OldStarty, OldStartx As Integer
Dim xoffset, yoffset As Integer
Dim GraphOffset As Integer
Dim Mag As Single 'Multiplication factor
Dim biggytemp As Integer 'map array
Dim hShift, vShift As Integer 'amounts to move position of radar
Dim pubXpos As Integer
Dim pubYpos As Integer
Dim diedFlag As Boolean
Sub JoyControl(Index As Integer)
Dim x As Integer
auxjoy(0).Visible = False
auxjoy(1).Visible = False
auxjoy(2).Visible = False
auxjoy(3).Visible = False
Select Case Index
Case Is = 0
'Ydock = Ydock - 1
auxcon(0).Picture = auxcon(1).Picture
Case Is = 1
'Xdock = Xdock + 1
auxcon(0).Picture = auxcon(2).Picture
Case Is = 2
'Ydock = Ydock + 1
auxcon(0).Picture = auxcon(3).Picture
Case Is = 3
'Xdock = Xdock - 1
auxcon(0).Picture = auxcon(4).Picture
End Select
'x = frmtime.playsound("rcstrst.wav", 3, 0)
End Sub
Sub auxjoy_Click(Index As Integer)
Dim x As Integer
Dim currpath As String
currpath = CDdrive + "\docking\csm4\"
auxjoy(0).Visible = False
auxjoy(1).Visible = False
auxjoy(2).Visible = False
auxjoy(3).Visible = False
Select Case Index
Case Is = 0
Ydock = Ydock - 1
auxcon(0).Picture = auxcon(1).Picture
RCSBurstCount = RCSBurstCount + 1
Case Is = 1
Xdock = Xdock + 1
auxcon(0).Picture = auxcon(2).Picture
LatVel = 33 * Xdock
RCSBurstCount = RCSBurstCount + 1
Case Is = 2
Ydock = Ydock + 1
auxcon(0).Picture = auxcon(3).Picture
RCSBurstCount = RCSBurstCount + 1
Case Is = 3
Xdock = Xdock - 1
auxcon(0).Picture = auxcon(4).Picture
LatVel = 33 * Xdock
RCSBurstCount = RCSBurstCount + 1
End Select
If MissionState = 6 And (Index = 0 Or Index = 2) Then
x = frmTime.playSound(CDdrive + "\sfx\updwnrcs.wav", EFFECTS, NO_LUPE)
Else
x = frmTime.playSound(CDdrive + "\sfx\rcstrst.wav", EFFECTS, NO_LUPE)
End If
End Sub
Sub Command2_Click(Index As Integer)
Dim x As Integer
Dim currpath As String
currpath = CDdrive + "\docking\csm4\"
Select Case Index
Case Is = 0
If MissionState = 6 Then
Zdock = Zdock - 1
FwdVel = -Zdock * 33
Else
Zdock = Zdock - 1
End If
Case Is = 1
If MissionState = 6 Then
Zdock = Zdock + 1
FwdVel = -Zdock * 33
Else
Zdock = Zdock + 1
End If
End Select
If MissionState = 6 Then
x = frmTime.playSound(CDdrive + "\sfx\updwnrcs.wav", EFFECTS, NO_LUPE)
Else
x = frmTime.playSound(CDdrive + "\sfx\rcstrst.wav", EFFECTS, NO_LUPE)
End If
End Sub
Sub Form_Load()
Dim x As Integer
Dim rc As Long
Randomize
StopEverything = False
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Timer1.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Rem --- set the pallette pref
picBGOriginal.ZOrder 0
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
picBackground.Visible = False
picBackground.Picture = picPitSprite.Picture
MouseButtonDown = NO_BUTTON
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Image1(0).Visible = True
Image1(1).Visible = True
Image1(2).Visible = True
Command2(0).Visible = True
Command2(1).Visible = True
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If StarCrossed Then ' star finder
Xdock = 0
Ydock = 0
LookedForStars = True
VScroll1.Visible = False
picBGOriginal = LoadPicture(CDdrive + "\panels\starfind\strfld4.bmp")
Timer3.Enabled = True
picBackground.Picture = LoadPicture(CDdrive + "\panels\starfind\strfndw.bmp")
picPitSprite.Picture = LoadPicture(CDdrive + "\panels\starfind\strfndw.bmp")
picPitMask.Picture = LoadPicture(CDdrive + "\panels\starfind\strfndm.bmp")
starlock.Visible = False
distance.Visible = False
closerate.Visible = False
docking.dockThrust(0).Visible = False
docking.dockThrust(1).Visible = False
docking.dockThrust(2).Visible = False
firstXpos = -(Int(Rnd * 500) + 1)
firstYpos = -(Int(Rnd * 400) + 1)
ElseIf MissionState = 2 Then ' earth orbit
VScroll1.Visible = False
starlock.Visible = False
Xdock = 0
Ydock = 0
Zdock = 0
ldist = 120
picBGOriginal = LoadPicture(CDdrive + "\docking\csm4\strfld2.bmp")
S4B(1) = CDdrive + "\docking\s4b\s4b1.bmp"
S4B(2) = CDdrive + "\docking\s4b\s4b2.bmp"
S4B(3) = CDdrive + "\docking\s4b\s4b3.bmp"
S4B(4) = CDdrive + "\docking\s4b\s4b4.bmp"
S4B(5) = CDdrive + "\docking\s4b\s4b5.bmp"
S4B(6) = CDdrive + "\docking\s4b\s4b6.bmp"
S4B(7) = CDdrive + "\docking\s4b\s4b7.bmp"
S4B(8) = CDdrive + "\docking\s4b\s4b8.bmp"
S4B(9) = CDdrive + "\docking\s4b\s4b9.bmp"
S4B(10) = CDdrive + "\docking\s4b\s4b10.bmp"
S4B(11) = CDdrive + "\docking\s4b\s4b11.bmp"
S4B(12) = CDdrive + "\docking\s4b\s4b12.bmp"
S4B(13) = CDdrive + "\docking\s4b\s4b13.bmp"
S4B(14) = CDdrive + "\docking\s4b\s4b14.bmp"
S4B(15) = CDdrive + "\docking\s4b\s4b15.bmp"
S4B(16) = CDdrive + "\docking\s4b\s4b16.bmp"
S4B(17) = CDdrive + "\docking\s4b\s4b17.bmp"
S4B(18) = CDdrive + "\docking\s4b\s4b18.bmp"
s4bmask(1) = CDdrive + "\docking\mask\s4b1m.bmp"
s4bmask(2) = CDdrive + "\docking\mask\s4b2m.bmp"
s4bmask(3) = CDdrive + "\docking\mask\s4b3m.bmp"
s4bmask(4) = CDdrive + "\docking\mask\s4b4m.bmp"
s4bmask(5) = CDdrive + "\docking\mask\s4b5m.bmp"
s4bmask(6) = CDdrive + "\docking\mask\s4b6m.bmp"
s4bmask(7) = CDdrive + "\docking\mask\s4b7m.bmp"
s4bmask(8) = CDdrive + "\docking\mask\s4b8m.bmp"
s4bmask(9) = CDdrive + "\docking\mask\s4b9m.bmp"
s4bmask(10) = CDdrive + "\docking\mask\s4b10m.bmp"
s4bmask(11) = CDdrive + "\docking\mask\s4b11m.bmp"
s4bmask(12) = CDdrive + "\docking\mask\s4b12m.bmp"
s4bmask(13) = CDdrive + "\docking\mask\s4b13m.bmp"
s4bmask(14) = CDdrive + "\docking\mask\s4b14m.bmp"
s4bmask(15) = CDdrive + "\docking\mask\s4b15m.bmp"
s4bmask(16) = CDdrive + "\docking\mask\s4b16m.bmp"
s4bmask(17) = CDdrive + "\docking\mask\s4b17m.bmp"
s4bmask(18) = CDdrive + "\docking\mask\s4b18m.bmp"
Timer1.Enabled = True
text1.Visible = False
Text2.Visible = False
Text3.Visible = False
Text4.Visible = False
Text5.Visible = False
Text6.Visible = False
labeltime.Visible = False
SplatTextBox.Visible = False
distance.Visible = True
closerate.Visible = True
docking.dockThrust(0).Visible = False
docking.dockThrust(1).Visible = False
docking.dockThrust(2).Visible = False
ElseIf MissionState = 6 Then 'Landing
lmEng = True
VScroll1.Visible = True
starlock.Visible = False
Xdock = 0
Ydock = 0
Zdock = 0
picBackground.Picture = LoadPicture(CDdrive + "\landsite\lmScren.bmp")
picPitSprite.Picture = LoadPicture(CDdrive + "\landsite\lmScren.bmp")
picPitMask.Picture = LoadPicture(CDdrive + "\landsite\lmScrmsk.bmp")
picImage = LoadPicture(CDdrive + "\landsite\croshair.bmp")
picPitMask = LoadPicture(CDdrive + "\landsite\croshair.bmp")
FwdVel = -200
LmAlt = 1200 '1200
VScroll1.Value = 50
xoffset = 133 ' 110 - target
yoffset = 93 ' 75 - target
startx = Int(Rnd * 100) + 50 '50
starty = Int(Rnd * 100) + 225 '300
GraphOffset = 0
hShift = 47 'amount to shift radar
vShift = 60 'amount to shift radar
WithClip = True
Mag = 1
text1.Visible = True
Text2.Visible = True
Text3.Visible = True
Text4.Visible = True
Text5.Visible = True
Text6.Visible = True
labeltime.Visible = True
SplatTextBox.Visible = True
'limits of box
poly_clip_min_x = 50
poly_clip_min_y = 80
poly_clip_max_x = 575
poly_clip_max_y = 320
Box(0, 0) = poly_clip_min_x 'top left X
Box(0, 1) = poly_clip_min_y 'top left Y
Box(1, 0) = poly_clip_max_x 'top right X
Box(1, 1) = poly_clip_min_y 'top right Y
Box(2, 0) = poly_clip_max_x 'bottom right X
Box(2, 1) = poly_clip_max_y 'bottom right Y
Box(3, 0) = poly_clip_min_x 'bottom left X
Box(3, 1) = poly_clip_max_y 'bottom left Y
loadYvals
Timer2.Enabled = True
DockedWithCSM = True
LmAlt = 1200
Xdock = 0
Ydock = 0
Zdock = -6
FwdVel = -Zdock * 33
distance.Visible = True
closerate.Visible = True
docking.dockThrust(0).Picture = frmTime.imgdnum(0).Picture
docking.dockThrust(1).Picture = frmTime.imgdnum(5).Picture
docking.dockThrust(2).Picture = frmTime.imgdnum(0).Picture
docking.dockThrust(0).Visible = True
docking.dockThrust(1).Visible = True
docking.dockThrust(2).Visible = True
ElseIf MissionState = 8 Then ' moon orbit
VScroll1.Visible = False
starlock.Visible = False
Xdock = 0
Ydock = 0
Zdock = 0
ldist = 120
picBGOriginal = LoadPicture(CDdrive + "\docking\csm4\strfld3.bmp")
csmDock(1) = CDdrive + "\docking\CSM\csm1.bmp"
csmDock(2) = CDdrive + "\docking\CSM\csm2.bmp"
csmDock(3) = CDdrive + "\docking\CSM\csm3.bmp"
csmDock(4) = CDdrive + "\docking\CSM\csm4.bmp"
csmDock(5) = CDdrive + "\docking\CSM\csm5.bmp"
csmDock(6) = CDdrive + "\docking\CSM\csm6.bmp"
csmDock(7) = CDdrive + "\docking\CSM\csm7.bmp"
csmDock(8) = CDdrive + "\docking\CSM\csm8.bmp"
csmDock(9) = CDdrive + "\docking\CSM\csm9.bmp"
csmDock(10) = CDdrive + "\docking\CSM\csm10.bmp"
csmDock(11) = CDdrive + "\docking\CSM\csm11.bmp"
csmDock(12) = CDdrive + "\docking\CSM\csm12.bmp"
csmDock(13) = CDdrive + "\docking\CSM\csm13.bmp"
csmDock(14) = CDdrive + "\docking\CSM\csm14.bmp"
csmDock(15) = CDdrive + "\docking\CSM\csm15.bmp"
csmDock(16) = CDdrive + "\docking\CSM\csm16.bmp"
csmDock(17) = CDdrive + "\docking\CSM\csm17.bmp"
csmDock(18) = CDdrive + "\docking\CSM\csm18.bmp"
csmMask(1) = CDdrive + "\docking\cMask\cMask1.bmp"
csmMask(2) = CDdrive + "\docking\cMask\cMask2.bmp"
csmMask(3) = CDdrive + "\docking\cMask\cMask3.bmp"
csmMask(4) = CDdrive + "\docking\cMask\cMask4.bmp"
csmMask(5) = CDdrive + "\docking\cMask\cMask5.bmp"
csmMask(6) = CDdrive + "\docking\cMask\cMask6.bmp"
csmMask(7) = CDdrive + "\docking\cMask\cMask7.bmp"
csmMask(8) = CDdrive + "\docking\cMask\cMask8.bmp"
csmMask(9) = CDdrive + "\docking\cMask\cMask9.bmp"
csmMask(10) = CDdrive + "\docking\cMask\cMask10.bmp"
csmMask(11) = CDdrive + "\docking\cMask\cMask11.bmp"
csmMask(12) = CDdrive + "\docking\cMask\cMask12.bmp"
csmMask(13) = CDdrive + "\docking\cMask\cMask13.bmp"
csmMask(14) = CDdrive + "\docking\cMask\cMask14.bmp"
csmMask(15) = CDdrive + "\docking\cMask\cMask15.bmp"
csmMask(16) = CDdrive + "\docking\cMask\cMask16.bmp"
csmMask(17) = CDdrive + "\docking\cMask\cMask17.bmp"
csmMask(18) = CDdrive + "\docking\cMask\cMask18.bmp"
Timer1.Enabled = True
text1.Visible = False
Text2.Visible = False
Text3.Visible = False
Text4.Visible = False
Text5.Visible = False
Text6.Visible = False
labeltime.Visible = False
SplatTextBox.Visible = False
distance.Visible = True
closerate.Visible = True
docking.dockThrust(0).Visible = False
docking.dockThrust(1).Visible = False
docking.dockThrust(2).Visible = False
End If
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Rem *** check to see if joystick will be used ***
If joystick = 1 Then
'Calibrate.Visible = True
'/* temp vals for joyst */
rightX = 40000
leftX = 6200
topY = 14250
bottomY = 45251
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, picSave.ScaleWidth, picSave.ScaleHeight, picSave.hDC, 0, 0, SRCCOPY)
'StartGame
Else
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, picSave.ScaleWidth, picSave.ScaleHeight, picSave.hDC, 0, 0, SRCCOPY)
'StartGame
End If
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'tdigs(0) = 0
'tdigs(1) = 5
'tdigs(2) = 0
picBackground.Visible = True
ScrollSpeed = 5
frmTime.Center Me
Me.Visible = True
Me.Show
frmTime.TopperOn 5 'docking to fore
StopEverything = False
If MissionState = 6 Then disScreen
End Sub
Sub Form_Unload(Cancel As Integer)
' WAVMIX_Close
'goGame = 0
If Not CompUnload Then Cancel = 1
StarCrossed = False
End Sub
Sub Image1_Click(Index As Integer)
Dim x As Integer
Select Case Index
Case Is = 0 'Csm1
If goodDock = True Or FoundStars = True Then
TranzFlag = True
Male = 3 'coming from docking
StopEverything = True
If MissionState = 8 Or MissionState = 7 Then
Female = 2 'going to LM
Else
Female = 1 'going to CSM
End If
End If
Case Is = 1 'Dock Lock
If MissionState = 2 Or MissionState = 8 Then
goodDock = True
End If
Case Is = 2 'Star Finder
If (pubXpos >= 500 And pubXpos <= 533) Then
If (pubYpos >= 456 And pubYpos <= 486) Then
YourLost = False
x = frmTime.playSound(CDdrive + "\sfx\119sfx81.wav", EFFECTS, NO_LUPE)
x = frmTime.playSound(CDdrive + "\warnings\starlock.wav", WARNINGS, NO_LUPE)
FoundStars = True
End If
ElseIf (pubXpos >= -295 And pubXpos <= -267) Then
If (pubYpos >= 456 And pubYpos <= 486) Then
YourLost = False
x = frmTime.playSound(CDdrive + "\sfx\119sfx81.wav", EFFECTS, NO_LUPE)
x = frmTime.playSound(CDdrive + "\warnings\starlock.wav", WARNINGS, NO_LUPE)
FoundStars = True
End If
End If
End Select
If FoundStars Then
FoundStars = False
StarCrossed = False
WaitingToLeave = True
End If
End Sub
Sub starlock_KeyPress(KeyAscii As Integer)
Dim LSx1, LSx2, LSy1, LSy2 As Integer
Dim rc As Long
Dim row, col, linekount As Integer
Dim lineColor As Integer
lineColor = 2
'clearscreen
If Chr(KeyAscii) = "q" Or Chr(KeyAscii) = "Q" Then
starty = starty - 5
End If
If Chr(KeyAscii) = "a" Or Chr(KeyAscii) = "A" Then
starty = starty + 5
End If
If Chr(KeyAscii) = "z" Or Chr(KeyAscii) = "Z" Then
startx = startx - 5
End If
If Chr(KeyAscii) = "x" Or Chr(KeyAscii) = "X" Then
startx = startx + 5
End If
If Chr(KeyAscii) = "1" Then
LmAlt = 25
End If
If Chr(KeyAscii) = "2" Then
LmAlt = 75
End If
If Chr(KeyAscii) = "3" Then
LmAlt = 125
End If
If Chr(KeyAscii) = "4" Then
LmAlt = 175
End If
Label1.Caption = Str(LmAlt)
For row = 0 To 31 'start and end line in array
linekount = row * SPACING
For col = 0 To 30 '
LSx1 = col * XSCALE
LSy1 = (-Display(col, row) * YSCALE) + (linekount * 5)
LSx2 = (col + 1) * XSCALE
LSy2 = (-Display(col + 1, row) * YSCALE) + (linekount * 5)
If row = 24 And col = 15 Then
picWork.Line (LSx1, LSy1)-(LSx2, LSy2), QBColor(14)
Else
picWork.Line (LSx1, LSy1)-(LSx2, LSy2), QBColor(lineColor)
End If
Next
Next
End Sub
Sub Timer1_Timer()
Static Xpos, Ypos As Integer
Static passed_s4b, reorient As Integer
Static tempd As Integer
Static turnAroundx As Boolean
Static turnAroundy As Boolean
Dim rc As Long
'Dim xtoken, ytoken As Integer
'Joystick docking etc.
Static xComponent As Integer
Static yComponent As Integer
Static zcomponent As Integer
Rem joyst
Dim x As Integer
'Dim i As Integer
Dim WhereAmI, whereisX, whereisY, wheretoken As Integer
'lblZ = ldist
Dim currpath As String
Static NotFirstTime As Boolean
If RCSBurstCount >= 150 Then Check_For_Crash 999, 999
If NotFirstTime = False Then 'Need to turn around to dock
IAMTurnedAround = True
'''''''''''''''''''
'''''''''''''''''''
'''''''''''''''''''
Xpos = 499
Ypos = 50
'''''''''''''''''''
'''''''''''''''''''
'''''''''''''''''''
Xdock = 2
Ydock = 1
' ldist = -200
' xpos = xpos + 400
NotFirstTime = True
End If
If IAMTurnedAround Then
Backward = 0
Else
Backward = 0
End If
Me.Caption = "(24 < " & Xpos & " < 48 , -47 < " & Ypos & " < -89)"
BackGroundSound = 4
currpath = CDdrive + "\docking\csm4\"
' Command3.Caption = xpos
'Command4.Caption = ypos
'closerate.Caption = ypos 'turnAroundx
closerate.Caption = Zdock
distance.Caption = ldist
UpdateBackground
'-----------------------------------------------------
' Move the background horizontally under scroller
' control.
'-----------------------------------------------------
If ldist <= 0 Then
passed_s4b = 1
Zdock = -Zdock
reorient = 1
distance.Caption = "missed"
End If
If passed_s4b = 1 Then
If Xpos > 500 Or Xpos < -300 Then
turnAroundx = True
End If
If Ypos > 200 And Ypos < 320 Then
turnAroundy = True
End If
If turnAroundx Or turnAroundy Then
passed_s4b = 0
'Zdock = -Zdock
reorient = 0
turnAroundx = False
turnAroundy = False
End If
End If
'calculate distance from s4sb
'If passed_s4b = 1 Then
Rem hide s4b
'End If
ldist = ldist + Zdock
If ldist <= 140 And ldist > 131 Then tempd = 18
If ldist <= 130 And ldist > 121 Then tempd = 17
If ldist <= 120 And ldist > 111 Then tempd = 16
If ldist <= 110 And ldist > 101 Then tempd = 15
If ldist <= 100 And ldist > 91 Then tempd = 14
If ldist <= 90 And ldist > 81 Then tempd = 13
If ldist <= 80 And ldist > 71 Then tempd = 12
If ldist <= 70 And ldist > 61 Then tempd = 11
If ldist <= 60 And ldist > 51 Then tempd = 10
If ldist <= 50 And ldist > 41 Then tempd = 9
If ldist <= 40 And ldist > 31 Then tempd = 8
' If ldist <= 30 And ldist > 21 Then tempd = 7
' If ldist <= 20 And ldist > 10 Then tempd = 6
If ldist <= 1 And ldist >= -1 Then
'xtoken = xpos
'ytoken = ypos
Check_For_Crash Xpos, Ypos
Exit Sub
End If
If tempd > 5 And tempd < 19 Then
If MissionState = 2 Then
picImage = LoadPicture(S4B(tempd))
picMask = LoadPicture(s4bmask(tempd))
Else
picImage = LoadPicture(csmDock(tempd))
picMask = LoadPicture(csmMask(tempd))
End If
End If
Rem ********************************************************************************
Xpos = Xpos - Xdock
Ypos = Ypos - Ydock
Rem --- if x is off left side ---
If Xpos < -picPitSprite.ScaleWidth + picImage.ScaleWidth Then
Xpos = 800 - picPitSprite.ScaleWidth + picImage.ScaleWidth
Else 'if off right side
If Xpos > 800 - picImage.ScaleWidth Then Xpos = 0 - picImage.ScaleWidth
End If
Rem --- if y is off top side ---
If Ypos < -picImage.ScaleHeight Then
Ypos = 600 - picImage.ScaleHeight
Else 'if off bottom
If Ypos > 600 - picImage.ScaleHeight Then Ypos = 0 - picImage.ScaleHeight
End If
' Copy a section of the large bitmap into the work area.
rc = BitBlt(picWorkBG.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, 0, 0, SRCCOPY)
' Copy the sprite work area onto the background.
'rc = BitBlt(picBackground.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
rc = BitBlt(picWorkBG.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
If passed_s4b <> 1 Then
Rem hide s4b if passed_s4b
' Draw the sprite mask bitmap into the work area.
rc = BitBlt(picWorkBG.hDC, Xpos + 80, Ypos + 80, picMask.ScaleWidth, picMask.ScaleHeight, picMask.hDC, 0, 0, SRCAND)
'draw sprite into the work area
rc = BitBlt(picWorkBG.hDC, Xpos + 80, Ypos + 80, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
End If 'passed_s4b
' Draw the cockpit mask into the work area.
rc = BitBlt(picWorkBG.hDC, 0, 0, picPitMask.Width, picPitMask.Height, picPitMask.hDC, 0, 0, SRCAND)
'draw cockpit
rc = BitBlt(picWorkBG.hDC, 0, 0, picPitMask.Width, picPitMask.Height, picPitSprite.hDC, 0, 0, SRCPAINT)
'FlickerlessSpriteMove
' Draw the whole thing back onto the screen.
rc = BitBlt(picBackground.hDC, 0, 0, picBackground.Width, picBackground.Height, picWorkBG.hDC, 0, 0, SRCCOPY)
auxjoy(0).Visible = True
auxjoy(1).Visible = True
auxjoy(2).Visible = True
auxjoy(3).Visible = True
auxcon(0).Picture = auxcon(5).Picture
Rem
Rem
Rem Joystick
rc = GetJoyStickPos(JOYSTICK1, JoyInfo)
If rc = 0 Then
'imgJoyCursor.Left = RangeWidth * ((JoyInfo.X - JoyCaps.Xmin) / (JoyCaps.Xmax - JoyCaps.Xmin))
'imgJoyCursor.Top = RangeHeight * ((JoyInfo.Y - JoyCaps.Ymin) / (JoyCaps.Ymax - JoyCaps.Ymin))
'-----------------------------------------------------
' Move the background horizontally under scroller
' control.
'-----------------------------------------------------
'BackgroundX = HScroll1
'BackgroundX = HScroll1
' rc = BitBlt(picBackground.hDC, 0, 0, picBackground.ScaleWidth, picBackground.ScaleHeight, landsite.hDC, BackgroundX + xComponent, BackgroundY, SRCCOPY)
'calculate distance from s4sb
ldist = ldist + zcomponent
End If
Rem --- check for left or right
whereisX = 0
If JoyInfo.x < leftX Then
whereisX = -1
Else
If JoyInfo.x > rightX Then
whereisX = 1
End If
End If
Rem --- check for up or down
whereisY = 0
If JoyInfo.y < topY Then
whereisY = -1
Else
If JoyInfo.y > bottomY Then
whereisY = 1
End If
End If
wheretoken = whereisX + whereisY
WhereAmI = 4
If wheretoken = 1 Then
If whereisX = 1 Then
WhereAmI = 1
Else
WhereAmI = 2
End If
End If
If wheretoken = -1 Then
If whereisY = -1 Then
WhereAmI = 0
Else
WhereAmI = 3
End If
End If
Command1.Caption = WhereAmI
If WhereAmI <> 4 Then
Call JoyControl((WhereAmI))
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 1 Then
x = frmTime.playSound(CDdrive + "rcstrst.wav", EFFECTS, NO_LUPE)
Xdock = Xdock + 1
'xComponent = xComponent + 1
Call JoyControl(1)
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 3 Then
x = frmTime.playSound(CDdrive + "rcstrst.wav", EFFECTS, NO_LUPE)
Xdock = Xdock - 1
'xComponent = xComponent - 1
Call JoyControl(3)
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 2 Then
x = frmTime.playSound(CDdrive + "rcstrst.wav", EFFECTS, NO_LUPE)
Ydock = Ydock + 1
'yComponent = yComponent + 1
Call JoyControl(2)
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 0 Then
x = frmTime.playSound(CDdrive + "rcstrst.wav", EFFECTS, NO_LUPE)
Ydock = Ydock - 1
'yComponent = yComponent - 1
Call JoyControl(0)
End If
If JoyInfo.ButtonDown(2) And WhereAmI = 2 Then
x = frmTime.playSound(CDdrive + "rcstrst.wav", EFFECTS, NO_LUPE)
Zdock = Zdock + 1
End If
If JoyInfo.ButtonDown(2) And WhereAmI = 0 Then
x = frmTime.playSound(CDdrive + "rcstrst.wav", EFFECTS, NO_LUPE)
Zdock = Zdock - 1
End If
Rem
Rem
Rem end joystick
End Sub
Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
'----------------------------------------------------------
' Set the module-level MouseButtonDown variable, so that
' the Mouse Control timer knows a button was pushed.
'----------------------------------------------------------
MouseButtonDown = Button
End Sub
Sub Pause(Seconds As Single)
'------------------------------------------------------------
' Delay for a specified number of seconds.
'------------------------------------------------------------
Dim Start As Single
Start = Timer
Do While (Timer - Start) < Seconds
DoEvents
Loop
End Sub
Sub StartGame()
'------------------------------------------------------------
' Initialize everything and start the game.
'------------------------------------------------------------
Dim rc As Integer
Dim i As Integer
Static NotFirstTime As Integer
Dim x As Integer
picBackground.Visible = True
ScrollSpeed = 5
If MissionState = 6 Then 'Landing
lmEng = True
Timer1.Enabled = False
startx = 50 'initialize x value
starty = 300 'initialize line
' disScreen 'display starting position
Timer2.Enabled = True
text1.Visible = True
Text2.Visible = True
picImage = LoadPicture(CDdrive + "\landsite\croshair.bmp")
picPitMask = LoadPicture(CDdrive + "\landsite\croshair.bmp")
LmAlt = 1200
Xdock = 0
Ydock = 0
Zdock = -6
FwdVel = -Zdock * 33
ElseIf Not StarCrossed Then
Timer2.Enabled = False
Timer1.Enabled = True
text1.Visible = False
Text2.Visible = False
End If
End Sub
Sub UpdateBackground()
'------------------------------------------------------------
' The first step in building a new view is to copy the
' next section of the original background onto the working
' background picture box.
'------------------------------------------------------------
'Static LastXdir As Integer
'Static LastYdir As Integer
' BGMove picWorkBG, picBGOriginal, LastXdir * 2, LastYdir * 2
BGMove picWorkBG, picBGOriginal, Xdock, Ydock
' End If
End Sub
Sub FlickerlessSpriteMove()
'-----------------------------------------------------
' Moving a sprite without flicker requires the use
' of an off-screen work area into which we copy a
' section of the background and sprite.
'-----------------------------------------------------
Dim rc As Integer
WorkWidth = 2090
WorkHeight = 2020
BackgroundX = SpriteX
BackgroundY = SpriteY
' Calculate the next position for the sprite, and any
' necessary direction changes.
GetNextPos picImage.ScaleWidth, picImage.ScaleHeight
' Copy a section of the large bitmap into the work area.
'rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, (BackgroundX + SpriteX) - INCREMENT, (BackgroundY + SpriteY) - INCREMENT, SRCCOPY)
'rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBackground.hDC, (SpriteX), (SpriteY), SRCCOPY)
rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, (SpriteX), (SpriteY), SRCCOPY)
' Draw the mask and sprite bitmaps into the work area.
rc = BitBlt(picWork.hDC, INCREMENT, INCREMENT, picMask.ScaleWidth, picMask.ScaleHeight, picMask.hDC, 0, 0, SRCAND)
rc = BitBlt(picWork.hDC, INCREMENT, INCREMENT, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
'rc = BitBlt(picWork.hDC, 0, 0, picmask.ScaleWidth, picmask.ScaleHeight, picmask.hDC, 0, 0, SRCAND)
'rc = BitBlt(picWork.hDC, 0, 0, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
' Copy the work area onto the background.
' rc = BitBlt(picBackground.hDC, SpriteX - INCREMENT, SpriteY - INCREMENT, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
' rc = BitBlt(picBackground.hDC, 10, 10, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
rc = BitBlt(picBackground.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
DoEvents
End Sub
Sub GetNextPos(ByVal AWidth As Integer, ByVal AHeight As Integer)
'-----------------------------------------------------
' Calculate the next position for the sprite, and
' make any necessary direction changes.
'-----------------------------------------------------
Xdir = Xdock
Ydir = Ydock
' Calculate the new position for the sprite.
SpriteX = SpriteX + (Xdir)
SpriteY = SpriteY + (Ydir)
End Sub
Public Sub Check_For_Crash(xtoken, ytoken)
Dim lmx As Boolean 'lm
Dim Tx As Boolean 'target
Dim lmy As Boolean 'lm
Dim Ty As Boolean 'target
Dim csmx As Boolean 'Csm
Dim csmy As Boolean 'Csm
Dim z As Integer
Dim WentToForm As Boolean
If xtoken = 999 And ytoken = 999 Then GoTo CFCENDING
BackGroundSound = 999
If MissionState = 2 Then 'docking with LM from CSM
If xtoken <= 235 + Backward And xtoken >= -35 + Backward Then lmx = True
If xtoken <= 89 + Backward And xtoken >= 62 + Backward Then Tx = True
If ytoken <= 90 And ytoken >= -160 Then lmy = True
If ytoken <= 52 And ytoken >= 26 Then Ty = True
If Zdock <= 0 And Zdock > -3 Then z = 0
If Zdock > 0 Then z = -1
If Zdock <= -3 Then z = 1
ElseIf MissionState >= 7 Then 'docking with CSM from LM
If xtoken <= 183 + Backward And xtoken >= -84 + Backward Then csmx = True
If xtoken <= 48 + Backward And xtoken >= 24 + Backward Then Tx = True
If ytoken <= 49 And ytoken >= -226 Then csmy = True
If ytoken <= -47 And ytoken >= -89 Then Ty = True
If Zdock <= 0 And Zdock > -3 Then z = 0
If Zdock > 0 Then z = -1
If Zdock <= -3 Then z = 1
Else
Exit Sub
End If
If (lmx And lmy) Or (csmx And csmy) Then
If z = 0 Then 'not too fast
frmTime.masterTimer.Enabled = False
Timer1.Enabled = False
docking.Hide
If MissionState = 2 Then
Dock2LM.Show
WentToForm = True
ElseIf MissionState >= 7 Then
Dock2CSM.Show
WentToForm = True
End If
'If Tx And Ty Then
'docked
' distance.Caption = "docked"
' Timer1.Enabled = False
' Zdock = 0
' If MissionState = 8 Then
' MissionState = 9
' Else
'what are you doing here then...
' End If
' frmTime.PlayAVI "success\shot32.avi", 3
' youaredead = False
' goodDock = True
'Else
'missed target - bounced off
' distance.Caption = "bounced"
' Xdock = -Xdock
' Ydock = -Ydock
' Zdock = -Zdock
' Exit Sub
'End If
ElseIf z = -1 Then 'reverse
'nothing
Else 'z = 1 too fast
If (lmx And lmy) Then
frmTime.PlayAVI "death\shot33.avi", 3
distance.Caption = "crashed"
Timer1.Enabled = False
Zdock = 0
YouAreDead = True
Else
distance.Caption = "missed"
IAMTurnedAround = Not IAMTurnedAround
Exit Sub
End If
End If
Else
distance.Caption = "missed"
IAMTurnedAround = Not IAMTurnedAround
Exit Sub
End If
CFCENDING:
If WentToForm Then
If MissionState = 2 Then
CompUnload = True
Unload Dock2LM
CompUnload = False
ElseIf MissionState >= 7 Then
CompUnload = True
Unload Dock2CSM
CompUnload = False
End If
End If
frmTime.masterTimer.Enabled = True
Me.Visible = False
If MissionState >= 2 And MissionState <= 6 Then
If Not YouAreDead Then
fivek = 5
Met = 615
StopEverything = True
OkToDock = False
Exit Sub
Else
fivek = 5
Met = 565
StopEverything = True
OkToDock = False
End If
ElseIf MissionState >= 7 And MissionState <= 9 Then
If Not YouAreDead Then
fivek = 5
Met = 2185 ''''
StopEverything = True
OkToDock = False
Else
fivek = 5
Met = 2175 ''''
StopEverything = True
OkToDock = False
End If
End If
Me.Visible = False
End Sub
Public Sub loadYvals()
Dim iAutoNumber As Integer
Dim row, col As Integer
Dim TheNameOfTheFile As String
' ***
' *** OPEN DATA FILE AND FILL ARRAY WITH VALUES
' ***
'main matrix load and setup
iAutoNumber = FreeFile
Open (CDdrive + "\landsite\terrain.dat") For Input As iAutoNumber
For row = 0 To 399
For col = 0 To 299
Input #iAutoNumber, Biggy(col, row) 'read 1 number
TargetBiggy(col, row) = False
Next 'col
Next 'row
Close iAutoNumber
TargetBiggy(133, 93) = True
' Open (CDdrive + "\landsite\target.dat") For Input As iAutoNumber
' For row = 0 To 399
' For col = 0 To 299
' Input #iAutoNumber, NextBiggy(col, row) 'read 1 number
' NextTargetBiggy(col, row) = False
' Next col
' Next row
' Close iAutoNumber
'
' 'secondary matrix load and setup
' Select Case Int(Rnd * 3) + 1
' Case Is = 1
' TheNameOfTheFile = CDdrive + "\landsite\rndgrnd1.dat"
' Case Is = 2
' TheNameOfTheFile = CDdrive + "\landsite\rndgrnd2.dat"
' Case Is = 3
' TheNameOfTheFile = CDdrive + "\landsite\rndgrnd3.dat"
' End Select
'
' Open TheNameOfTheFile For Input As iAutoNumber
' For row = 0 To 399
' For col = 0 To 299
' Input #iAutoNumber, GenBiggy(col, row) 'read 1 number
' Next col
' Next row
' Close iAutoNumber
End Sub
Sub Timer2_Timer()
Static Xpos, Ypos As Integer
Static passed_s4b, reorient As Integer
Static tempd As Integer
Dim rc As Long
Dim xtoken, ytoken As Integer
'Joystick docking etc.
Static xComponent As Integer
Static yComponent As Integer
Static zcomponent As Integer
Rem joyst
Dim x As Integer
'Dim i As Integer
'lblZ = ldist
Dim currpath As String
Dim TrueDist As Single
Dim TrueVel As Single
Dim ClosRate As Double
Dim RobsAlt As Single
Dim RobsDistDrop As Single
Static Duration As Integer
Dim contThrustEffect As Single
Dim contThrustResult As Integer
Static WasHolding As Boolean
'If RCSBurstCount >= 150 Then collision 0
'Zdock = FwdVel / 28
'clearScreen
starty = starty + Zdock
startx = startx + Xdock
'update distances
FwdDist = 33 * (starty + DoubleStart + (24 / Mag))
LatDist = 33 * (startx + DoubleStart + (16 / Mag))
TrueDist = Sqr((LmAlt) ^ 2 + (FwdDist) ^ 2 + (LatDist) ^ 2)
If TrueDist <> 0 Then
RobsAlt = LmAlt ' counteract overflow problem
RobsDistDrop = DistDrop ' counteract overflow problem
ClosRate = ((LatDist * LatVel) + (FwdDist * FwdVel) + (RobsAlt * RobsDistDrop)) / TrueDist
Else
ClosRate = 0
End If
Rem ******* DISPLAYS **********
text1.Text = "True Alt = " + Str(AltiMeterReading)
Text2.Text = "Your X " + Str(startx + 16) '"fuel"
Text3.Text = Direction
Text4.Text = "Your Y " + Str(starty + 16) '"RCS"
Text5.Text = "Fwd Vel = " + Str(FwdVel)
Text6.Text = "Lat Vel = " + Str(LatVel)
distance.Caption = Str(Int(TrueDist))
closerate.Caption = Str(Int(ClosRate))
labeltime.Caption = Duration
'If Duration = 20000 Then
' labeltime.Caption = "too bad!!"
'Else
Duration = Duration + 1 ' your 40 of life!!!
'End If
landstuff
If StopEverything Then
Timer2.Enabled = False
Exit Sub
End If
If diedFlag = True Then Exit Sub 'bail
disScreen
If StopEverything Then
Timer2.Enabled = False
Exit Sub
End If
auxjoy(0).Visible = True
auxjoy(1).Visible = True
auxjoy(2).Visible = True
auxjoy(3).Visible = True
auxcon(0).Picture = auxcon(5).Picture
'contThrustEffect = -(2 * contThrust / 100) * GRAVITY + GRAVITY
contThrustEffect = (2 * contThrust / 100) * Gravity + Gravity
DropTime = DropTime + Ydock * 2.75
DistDrop = -Int(((contThrustEffect) * DropTime) + Ydock * 2.75 * 3)
Ydock = 0
LmAlt = LmAlt + DistDrop
If contThrust <= 45 Then
If DropTime < 0 Then DropTime = 0
DropTime = DropTime + 1
ElseIf contThrust > 45 And contThrust < 55 Then
DropTime = 0
Else
If DropTime > 0 Then DropTime = 0
DropTime = DropTime - 1
End If
End Sub
Public Sub LeadLine(curline As Integer)
Dim col As Integer
Dim LSx1, LSx2, LSy1, LSy2 As Integer
Dim linekount As Integer
linekount = curline * SPACING
For col = 0 To 30 '
'newvalues for new lines
LSx1 = col * XSCALE + hShift
LSy1 = (-Display(col, curline) * YSCALE) + (linekount) + GraphOffset + vShift
LSx2 = (col + 1) * XSCALE + hShift
LSy2 = (-Display(col + 1, curline) * YSCALE) + (linekount) + GraphOffset + vShift
If WithClip = True Then
ClipLine LSx1, LSy1, LSx2, LSy2 'newline with clip
If StopEverything Then Exit Sub
If ClipReturn = True Then
picBackground.Line (LSx1, LSy1)-(LSx2, LSy2), QBColor(10)
End If
Else 'no cliping
picBackground.Line (LSx1, LSy1)-(LSx2, LSy2), QBColor(10)
End If
Next 'col
DoEvents
End Sub
Public Sub disScreen()
Dim LSx1 As Integer, LSx2 As Integer, LSy1 As Integer, LSy2 As Integer
Dim rc As Long
Dim row As Integer, col As Integer, linekount, blinekount, tempkount As Integer
Dim dirtLevel As Integer
Dim x As Long
Static HoldOffset As Integer
Dim target As Boolean
Dim Q As Integer
'DrawBox 'displays limits of clipping
Select Case Doublein ' offsetting the screen values
Case Is = 1
GraphOffset = Mag * SPACING
Case Is = 2
GraphOffset = Mag * SPACING ^ 1.5
Case Is = 4
GraphOffset = Mag * SPACING ^ 1.75
Case Is = 8
GraphOffset = Mag * SPACING ^ 1.85
Case Is = 16
GraphOffset = Mag * SPACING ^ 2
End Select
' *** DISPLAY CONTENTS OF ARRAY
' *** ON SCREEN
' ***
For row = 0 To 8 'start and end line in array
blinekount = row * SPACING
For col = 0 To 30 '
X1 = col * XSCALE + hShift
Y1 = (-Cdisplay(col, row) * YSCALE) + (blinekount) + HoldOffset + vShift
X2 = (col + 1) * XSCALE + hShift
Y2 = (-Cdisplay(col + 1, row) * YSCALE) + (blinekount) + HoldOffset + vShift
If WithClip Then
ClipLine X1, Y1, X2, Y2
If ClipReturn Then
picBackground.Line (X1, Y1)-(X2, Y2), QBColor(0)
End If
Else
picBackground.Line (X1, Y1)-(X2, Y2), QBColor(0)
End If
Cdisplay(col, row) = Display(col, row) 'load current value into backup array
Next
Cdisplay(col, row) = Display(31, row)
joyPolling 'here is a joystick call
Next
tempkount = blinekount
For row = 0 To 31 'start and end line in array
linekount = row * SPACING
blinekount = linekount + tempkount + SPACING
For col = 0 To 30 '
If row <= 22 Then
X1 = col * XSCALE + hShift
Y1 = (-Cdisplay(col, row + 9) * YSCALE) + (blinekount) + HoldOffset + vShift
X2 = (col + 1) * XSCALE + hShift
Y2 = (-Cdisplay(col + 1, row + 9) * YSCALE) + (blinekount) + HoldOffset + vShift
End If
'If row <= 22 Then
' Cdisplay(col, row + 9) = Display(col, row + 9)
'End If
'newvalues for new lines
LSx1 = col * XSCALE + hShift
LSy1 = (-Display(col, row) * YSCALE) + (linekount) + GraphOffset + vShift
LSx2 = (col + 1) * XSCALE + hShift
LSy2 = (-Display(col + 1, row) * YSCALE) + (linekount) + GraphOffset + vShift
If WithClip Then 'Clipped
If row <= 22 Then
ClipLine X1, Y1, X2, Y2 'blankline
If StopEverything Then Exit Sub
If ClipReturn = True Then
picBackground.Line (X1, Y1)-(X2, Y2), QBColor(0)
End If
End If
ClipLine LSx1, LSy1, LSx2, LSy2 'green line
If StopEverything Then Exit Sub
If ClipReturn Then 'draw if clipped properly
picBackground.Line (LSx1, LSy1)-(LSx2, LSy2), QBColor(BluedLine(row))
If TargetDisplay(col, row) Then
target = True
End If
If target Then 'the target
picBackground.Line (LSx1, LSy1)-(LSx2, LSy2), QBColor(12)
End If
End If 'if Clipreturn
Else 'not clipped
If row <= 22 Then
picBackground.Line (X1, Y1)-(X2, Y2), QBColor(0) 'unclipped blankline
End If
picBackground.Line (LSx1, LSy1)-(LSx2, LSy2), QBColor(BluedLine(row)) 'unclipped green
If TargetDisplay(col, row) = True Then
target = True
End If
If target Then 'the target
picBackground.Line (LSx1, LSy1)-(LSx2, LSy2), QBColor(12)
'x = ellipse(picBackGround.hDC, LSx1, LSy1, LSx2 + 10, LSy2 + 10)
End If
End If
target = False
If row = 24 And col = 16 Then '>XZX< check for collision >XZX<
picBackground.Line (LSx1, LSy1)-(LSx2, LSy2), QBColor(14)
End If
If row <= 22 Then 'copy ys over to Cdisplay
Cdisplay(col, row + 9) = Display(col, row + 9)
End If
Next 'col
Cdisplay(col, row) = Display(31, row)
If row <= 22 Then 'Copy last Y position
Cdisplay(col + 1, row + 9) = Display(col + 1, row + 9) 'load current value into backup array
End If
If row <= 30 Then 'draw leadline
LeadLine row + 1
If StopEverything Then Exit Sub
End If
joyPolling
If StopEverything Then Exit Sub
Next 'row
'yoffset = yoffset - 1
HoldOffset = GraphOffset
For Q = 0 To 3
auxjoy(Q).Enabled = True
Command2(Int(Q / 2)).Enabled = True
Next Q
x = frmTime.playSound(CDdrive + "\sfx\55sfx27.wav", EFFECTS, NO_LUPE)
End Sub
Public Sub ClipLine(X1, Y1, X2, Y2)
'int Clip_Line(int *x1,int *y1,int *x2, int *y2)
' //////////////////////////////////////////////////////////////////////////////
'// this function clips the sent line using the globally defined clipping
'// region
Dim point_1, point_2 As Integer '// tracks if each end point is visible or invisible
Dim clip_always '// used for clipping override
Dim xi, yi As Integer '// point of intersection
'// which edges are the endpoints beyond
Dim right_edge, left_edge, top_edge, bottom_edge As Integer
Dim success As Integer '// was there a successfull clipping
Dim Dx, dY As Single '// used to holds slope deltas
' //////////////////////////////////////////////////////////////////////////////
point_1 = 0
point_2 = 0
clip_always = 0
right_edge = 0 '// which edges are the endpoints beyond
left_edge = 0
top_edge = 0
bottom_edge = 0
success = 0
'// SECTION 1 //////////////////////////////////////////////////////////////////
'// test if line is completely visible
If ((X1 >= poly_clip_min_x) And (X1 <= poly_clip_max_x) And (Y1 >= poly_clip_min_y) And (Y1 <= poly_clip_max_y)) Then point_1 = 1
If ((X2 >= poly_clip_min_x) And (X2 <= poly_clip_max_x) And (Y2 >= poly_clip_min_y) And (Y2 <= poly_clip_max_y)) Then point_2 = 1
'// SECTION 2 /////////////////////////////////////////////////////////////////
'// test endpoints
'both endpoints are good
If (point_1 = 1 And point_2 = 1) Then
ClipReturn = True 'return(success);
Exit Sub 'then return(1)
End If
'// SECTION 3 /////////////////////////////////////////////////////////////////
'// test if line is completely invisible
'entire line is outside box
If (point_1 = 0 And point_2 = 0) Then
'// must test to see if each endpoint is on the same side of one of
'// the bounding planes created by each clipping region boundary
If (((X1 < poly_clip_min_x) And (X2 < poly_clip_min_x)) Or ((X1 > poly_clip_max_x) And (X2 > poly_clip_max_x)) Or ((Y1 < poly_clip_min_y) And (Y2 < poly_clip_min_y)) Or ((Y1 > poly_clip_max_y) And (Y2 > poly_clip_max_y))) Then
ClipReturn = False
Exit Sub 'return(0); no need to draw line
End If 'invisible
'// if we got here we have the special case where the line cuts into and
'// out of the clipping region
clip_always = 1
End If 'test for invisibly
'// SECTION 4 /////////////////////////////////////////////////////////////////
'// take care of case where either endpoint is in clipping region
'If ((point_1 = 1) Or (point_2 = 1) Or (point_1 = 0 And point_2 = 0)) Then
'left endpoint or both endpoints lie outside of box
If ((point_1 = 1) Or (point_1 = 0 And point_2 = 0)) Then
'/ compute deltas
Dx = X2 - X1
dY = Y2 - Y1
'// compute what boundary line need to be clipped against
If (X2 > poly_clip_max_x) Then 'right edge
right_edge = 1 '// flag right edge
'// compute intersection with right edge
If (Dx <> 0) Then
yi = Int(0.5 + (dY / Dx) * (poly_clip_max_x - X1) + Y1)
Else
yi = -1 '// invalidate intersection
End If
'End If 'to right
ElseIf (X2 < poly_clip_min_x) Then 'left edge
left_edge = 1 '/ flag left edge
'// compute intersection with left edge
If (Dx <> 0) Then
yi = Int(0.5 + (dY / Dx) * (poly_clip_min_x - X1) + Y1)
Else
yi = -1 '// invalidate intersection
End If
'End If 'to left
'// horizontal intersections
ElseIf (Y2 > poly_clip_max_y) Then 'bottom edge
bottom_edge = 1 '// flag bottom edge
'// compute intersection with right edge
If (dY <> 0) Then
xi = Int(0.5 + (Dx / dY) * (poly_clip_max_y - Y1) + X1)
Else
xi = -1 '// invalidate inntersection
End If
' End If 'bottom
ElseIf (Y2 < poly_clip_min_y) Then 'top edge
top_edge = 1 '// flag top edge
'// compute intersection with top edge
If (dY <> 0) Then
xi = Int(0.5 + (Dx / dY) * (poly_clip_min_y - Y1) + X1)
Else
xi = -1 '// invalidate inntersection
End If
End If 'top
'// SECTION 5 /////////////////////////////////////////////////////////////////
' // now we know where the line passed thru
' // compute which edge is the proper intersection
If (right_edge = 1 And (yi >= poly_clip_min_y And yi <= poly_clip_max_y)) Then
X2 = poly_clip_max_x
Y2 = yi
success = 1
'End If 'intersected right edge
ElseIf (left_edge = 1 And (yi >= poly_clip_min_y And yi <= poly_clip_max_y)) Then
X2 = poly_clip_min_x
Y2 = yi
success = 1
End If 'intersected left edge
If (bottom_edge = 1 And (xi >= poly_clip_min_x And xi <= poly_clip_max_x)) Then
X2 = xi
Y2 = poly_clip_max_y
success = 1
'End If 'intersected bottom edge
ElseIf (top_edge = 1 And (xi >= poly_clip_min_x And xi <= poly_clip_max_x)) Then
X2 = xi
Y2 = poly_clip_min_y
success = 1
End If 'intersected top edge
End If 'point_1 is visible
'// SECTION 6 /////////////////////////////////////////////////////////////////
'// reset edge flags
right_edge = 0
left_edge = 0
top_edge = 0
bottom_edge = 0
'// test second endpoint
If ((point_2 = 1) Or (point_1 = 0 And point_2 = 0)) Then
' // compute deltas
Dx = X1 - X2
dY = Y1 - Y2
' // compute what boundary line need to be clipped against
If (X1 > poly_clip_max_x) Then
right_edge = 1 '// flag right edge
'// compute intersection with right edge
If (Dx <> 0) Then
yi = Int(0.5 + (dY / Dx) * (poly_clip_max_x - X2) + Y2)
Else
yi = -1 '// invalidate inntersection
End If '// to right
ElseIf (X1 < poly_clip_min_x) Then
left_edge = 1 '// flag left edge @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'// compute intersection with left edge
If (Dx <> 0) Then
yi = Int(0.5 + (dY / Dx) * (poly_clip_min_x - X2) + Y2)
Else
yi = -1 '// invalidate intersection
End If 'to left
'// horizontal intersections
ElseIf (Y1 > poly_clip_max_y) Then
'// flag bottom edge
bottom_edge = 1
'// compute intersection with right edge
If (dY <> 0) Then
xi = Int(0.5 + (Dx / dY) * (poly_clip_max_y - Y2) + X2)
Else
xi = -1 '// invalidate inntersection
End If 'bottom
ElseIf (Y1 < poly_clip_min_y) Then
'// flag top edge
top_edge = 1
'// compute intersection with top edge
If (dY <> 0) Then
xi = Int(0.5 + (Dx / dY) * (poly_clip_min_y - Y2) + X2)
Else
xi = -1 '// invalidate inntersection
End If 'top
End If
'// now we know where the line passed thru
'// compute which edge is the proper intersection
If (right_edge = 1 And (yi >= poly_clip_min_y And yi <= poly_clip_max_y)) Then
X1 = poly_clip_max_x
Y1 = yi
success = 1
End If 'intersected right edge
If (left_edge = 1 And (yi >= poly_clip_min_y And yi <= poly_clip_max_y)) Then
X1 = poly_clip_min_x
Y1 = yi
success = 1
End If 'intersected left edge
If (bottom_edge = 1 And (xi >= poly_clip_min_x And xi <= poly_clip_max_x)) Then
X1 = xi
Y1 = poly_clip_max_y
success = 1
End If 'intersected bottom edge
If (top_edge = 1 And (xi >= poly_clip_min_x And xi <= poly_clip_max_x)) Then
X1 = xi
Y1 = poly_clip_min_y
success = 1
End If 'intersected top edge
End If 'point_2 is visible
'// SECTION 7 /////////////////////////////////////////////////////////////////
If success = 1 Then
ClipReturn = True 'return(success);
Else
ClipReturn = False
End If
' // end Clip_Line
End Sub
Public Sub landstuff()
Dim biggyx, biggyy As Integer
Dim x As Integer
Dim y As Integer
Dim Temporary(32, 32) As Single
Dim TempTarget(32, 32) As Boolean
Dim Q As Integer
Static GotoLanding As Boolean
'""""""""""""""""determine display matrix step and offset"""""""""""""""""""
If LmAlt >= 1000 Then 'you are ok mag factor 0
DoubleFlag = 0
Doublein = 1
DoubleStart = 0
Mag = 1
ElseIf LmAlt >= 750 Then 'you are ok mag factor 1
DoubleFlag = 1
Doublein = 2
DoubleStart = 8
Mag = 2
ElseIf LmAlt >= 500 Then 'you are ok mag factor 2
DoubleFlag = 3
Doublein = 4
DoubleStart = 12
Mag = 4
ElseIf LmAlt >= 400 Then
DoubleFlag = 3
Doublein = 4
DoubleStart = 12
Mag = 4
GotoLanding = True
ElseIf LmAlt < 400 Then
DoubleFlag = 3
Doublein = 4
DoubleStart = 12
Mag = 4
GotoLanding = True
'ElseIf LmAlt < 400 Then 'you are ok mag factor 3
' GotoLanding = True
' DoubleFlag = 3
' Doublein = 4
' DoubleStart = 12
' Mag = 4
End If
blueLine DoubleFlag
'"""""""""""""""""""""""""""""""""""""""y maginification"""""""""""""""""""""""""""""""""""
biggyy = DoubleStart + starty - 1
For y = starty To starty + 31 Step Doublein 'these indices are stepped depending on mag factor
biggyy = biggyy + 1
biggyx = DoubleStart + startx - 1
For x = startx To startx + 31
biggyx = biggyx + 1
Select Case DoubleFlag
Case Is = 0
Temporary(x - startx, y - starty) = (1 + Biggy(biggyx, biggyy)) * Mag
TempTarget(x - startx, y - starty) = TargetBiggy(biggyx, biggyy)
Case Is = 1
Temporary(x - startx, y - starty) = (2 + Biggy(biggyx, biggyy)) * Mag
Temporary(x - startx, y - starty + 1) = (2 + 0.5 * Biggy(biggyx, biggyy) + 0.5 * Biggy(biggyx, biggyy + 1)) * Mag
TempTarget(x - startx, y - starty) = TargetBiggy(biggyx, biggyy)
TempTarget(x - startx, y - starty + 1) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
Case Is = 3
Temporary(x - startx, y - starty) = (4 + Biggy(biggyx, biggyy)) * Mag
Temporary(x - startx, y - starty + 1) = (4 + 0.75 * Biggy(biggyx, biggyy) + 0.25 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 2) = (4 + 0.5 * Biggy(biggyx, biggyy) + 0.5 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 3) = (4 + 0.25 * Biggy(biggyx, biggyy) + 0.75 * Biggy(biggyx, biggyy + 1)) * Mag
TempTarget(x - startx, y - starty) = TargetBiggy(biggyx, biggyy)
TempTarget(x - startx, y - starty + 1) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 2) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 3) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
Case Is = 7
Temporary(x - startx, y - starty) = (8 + Biggy(biggyx, biggyy)) * Mag
Temporary(x - startx, y - starty + 1) = (8 + 0.875 * Biggy(biggyx, biggyy) + 0.125 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 2) = (8 + 0.75 * Biggy(biggyx, biggyy) + 0.25 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 3) = (8 + 0.625 * Biggy(biggyx, biggyy) + 0.375 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 4) = (8 + 0.5 * Biggy(biggyx, biggyy) + 0.5 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 5) = (8 + 0.375 * Biggy(biggyx, biggyy) + 0.625 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 6) = (8 + 0.25 * Biggy(biggyx, biggyy) + 0.75 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 7) = (8 + 0.125 * Biggy(biggyx, biggyy) + 0.875 * Biggy(biggyx, biggyy + 1)) * Mag
TempTarget(x - startx, y - starty) = TargetBiggy(biggyx, biggyy)
TempTarget(x - startx, y - starty + 1) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 2) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 3) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 4) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 5) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 6) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 7) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
Case Is = 15
Temporary(x - startx, y - starty) = (16 + Biggy(biggyx, biggyy)) * Mag
Temporary(x - startx, y - starty + 1) = (16 + 0.9375 * Biggy(biggyx, biggyy) + 0.0625 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 2) = (16 + 0.875 * Biggy(biggyx, biggyy) + 0.125 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 3) = (16 + 0.8125 * Biggy(biggyx, biggyy) + 0.1875 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 4) = (16 + 0.75 * Biggy(biggyx, biggyy) + 0.25 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 5) = (16 + 0.6875 * Biggy(biggyx, biggyy) + 0.3125 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 6) = (16 + 0.625 * Biggy(biggyx, biggyy) + 0.375 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 7) = (16 + 0.5625 * Biggy(biggyx, biggyy) + 0.4375 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 8) = (16 + 0.5 * Biggy(biggyx, biggyy) + 0.5 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 9) = (16 + 0.4375 * Biggy(biggyx, biggyy) + 0.5625 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 10) = (16 + 0.375 * Biggy(biggyx, biggyy) + 0.625 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 11) = (16 + 0.3125 * Biggy(biggyx, biggyy) + 0.6875 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 12) = (16 + 0.25 * Biggy(biggyx, biggyy) + 0.75 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 13) = (16 + 0.1875 * Biggy(biggyx, biggyy) + 0.8125 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 14) = (16 + 0.125 * Biggy(biggyx, biggyy) + 0.875 * Biggy(biggyx, biggyy + 1)) * Mag
Temporary(x - startx, y - starty + 15) = (16 + 0.0625 * Biggy(biggyx, biggyy) + 0.9375 * Biggy(biggyx, biggyy + 1)) * Mag
TempTarget(x - startx, y - starty) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 1) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 2) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 3) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 4) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 5) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 6) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 7) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 8) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 9) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 10) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 11) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 12) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 13) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 14) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
TempTarget(x - startx, y - starty + 15) = TargetBiggy(biggyx, biggyy) Or TargetBiggy(biggyx, biggyy + 1)
End Select
Next x
Next y
'""""""""""""""""""""""""""""""""""""x magnification"""""""""""""""""""""""""""""""""""""
biggyx = -1
For x = 0 To 31 Step Doublein 'these indices are stepped depending on mag factor
biggyx = biggyx + 1
biggyy = -1
For y = 0 To 31
biggyy = biggyy + 1
Select Case DoubleFlag
Case Is = 0
Display(x, y) = 1 + Temporary(biggyx, biggyy)
TargetDisplay(x, y) = TempTarget(biggyx, biggyy)
Case Is = 1
Display(x, y) = 2 + Temporary(biggyx, biggyy)
Display(x + 1, y) = (2 + 0.5 * Temporary(biggyx, biggyy) + 0.5 * Temporary(biggyx + 1, biggyy))
TargetDisplay(x, y) = TempTarget(biggyx, biggyy)
TargetDisplay(x + 1, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
Case Is = 3
Display(x, y) = 4 + Temporary(biggyx, biggyy)
Display(x + 1, y) = (4 + 0.75 * Temporary(biggyx, biggyy) + 0.25 * Temporary(biggyx + 1, biggyy))
Display(x + 2, y) = (4 + 0.5 * Temporary(biggyx, biggyy) + 0.5 * Temporary(biggyx + 1, biggyy))
Display(x + 3, y) = (4 + 0.25 * Temporary(biggyx, biggyy) + 0.75 * Temporary(biggyx + 1, biggyy))
TargetDisplay(x, y) = TempTarget(biggyx, biggyy)
TargetDisplay(x + 1, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 2, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 3, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
Case Is = 7
Display(x, y) = 8 + Temporary(biggyx, biggyy)
Display(x + 1, y) = (8 + 0.875 * Temporary(biggyx, biggyy) + 0.125 * Temporary(biggyx + 1, biggyy))
Display(x + 2, y) = (8 + 0.75 * Temporary(biggyx, biggyy) + 0.25 * Temporary(biggyx + 1, biggyy))
Display(x + 3, y) = (8 + 0.625 * Temporary(biggyx, biggyy) + 0.375 * Temporary(biggyx + 1, biggyy))
Display(x + 4, y) = (8 + 0.5 * Temporary(biggyx, biggyy) + 0.5 * Temporary(biggyx + 1, biggyy))
Display(x + 5, y) = (8 + 0.375 * Temporary(biggyx, biggyy) + 0.625 * Temporary(biggyx + 1, biggyy))
Display(x + 6, y) = (8 + 0.25 * Temporary(biggyx, biggyy) + 0.75 * Temporary(biggyx + 1, biggyy))
Display(x + 7, y) = (8 + 0.125 * Temporary(biggyx, biggyy) + 0.875 * Temporary(biggyx + 1, biggyy))
TargetDisplay(x, y) = TempTarget(biggyx, biggyy)
TargetDisplay(x + 1, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 2, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 3, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 4, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 5, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 6, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 7, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
Case Is = 15
Display(x, y) = 16 + Temporary(biggyx, biggyy)
Display(x + 1, y) = (16 + 0.9375 * Temporary(biggyx, biggyy) + 0.0625 * Temporary(biggyx + 1, biggyy))
Display(x + 2, y) = (16 + 0.875 * Temporary(biggyx, biggyy) + 0.125 * Temporary(biggyx + 1, biggyy))
Display(x + 3, y) = (16 + 0.8125 * Temporary(biggyx, biggyy) + 0.1875 * Temporary(biggyx + 1, biggyy))
Display(x + 4, y) = (16 + 0.75 * Temporary(biggyx, biggyy) + 0.25 * Temporary(biggyx + 1, biggyy))
Display(x + 5, y) = (16 + 0.6875 * Temporary(biggyx, biggyy) + 0.3125 * Temporary(biggyx + 1, biggyy))
Display(x + 6, y) = (16 + 0.625 * Temporary(biggyx, biggyy) + 0.375 * Temporary(biggyx + 1, biggyy))
Display(x + 7, y) = (16 + 0.5625 * Temporary(biggyx, biggyy) + 0.4375 * Temporary(biggyx + 1, biggyy))
Display(x + 8, y) = (16 + 0.5 * Temporary(biggyx, biggyy) + 0.5 * Temporary(biggyx + 1, biggyy))
Display(x + 9, y) = (16 + 0.4375 * Temporary(biggyx, biggyy) + 0.5625 * Temporary(biggyx + 1, biggyy))
Display(x + 10, y) = (16 + 0.375 * Temporary(biggyx, biggyy) + 0.625 * Temporary(biggyx + 1, biggyy))
Display(x + 11, y) = (16 + 0.3125 * Temporary(biggyx, biggyy) + 0.6875 * Temporary(biggyx + 1, biggyy))
Display(x + 12, y) = (16 + 0.25 * Temporary(biggyx, biggyy) + 0.75 * Temporary(biggyx + 1, biggyy))
Display(x + 13, y) = (16 + 0.1875 * Temporary(biggyx, biggyy) + 0.8125 * Temporary(biggyx + 1, biggyy))
Display(x + 14, y) = (16 + 0.125 * Temporary(biggyx, biggyy) + 0.875 * Temporary(biggyx + 1, biggyy))
Display(x + 15, y) = (16 + 0.0625 * Temporary(biggyx, biggyy) + 0.9375 * Temporary(biggyx + 1, biggyy))
TargetDisplay(x, y) = TempTarget(biggyx, biggyy)
TargetDisplay(x + 1, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 2, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 3, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 4, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 5, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 6, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 7, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 8, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 9, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 10, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 11, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 12, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 13, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 14, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
TargetDisplay(x + 15, y) = TempTarget(biggyx + 1, biggyy) Or TargetBiggy(biggyx, biggyy)
End Select
Next y
Next x
dirtLevel = ((Display(16, 24) / Mag) * 15.6)
AltiMeter = LmAlt - dirtLevel
AltiMeterReading = AltiMeter
FwdDist = 33 * (starty + DoubleStart + (24 / Mag))
LatDist = 33 * (startx + DoubleStart + (16 / Mag))
joyPolling ' this is a joystick call
If StopEverything Then Exit Sub
If (LatDist / 33) < 133 Then
PorSta = "Starboard"
ElseIf (LatDist / 33) = 133 Then
PorSta = ""
Else
PorSta = "Port"
End If
If (FwdDist / 33) < 93 Then
ForRev = "Rev"
ElseIf (FwdDist / 33) = 93 Then
ForRev = ""
Else
ForRev = "Fwd"
End If
Direction = ForRev + " " + PorSta
If startx >= 268 Or startx <= 32 Then 'outtabounds
collision 0 ' 0 - out of bounds
If StopEverything Then Exit Sub
End If
If starty >= 368 Or starty <= 32 Then
collision 0
If StopEverything Then Exit Sub
End If
If GotoLanding Then
Ydock = 0
For x = 15 To 17
For y = 23 To 25
If TargetDisplay(x, y) Then
PaintLandingSite = True
End If
Next y
Next x
For Q = 0 To 3
auxjoy(Q).Enabled = False
Command2(Int(Q / 2)).Enabled = False
Next Q
docking.Timer2.Enabled = False
frmTime.masterTimer.Enabled = False
Me.Hide
StopEverything = True
GotoApland = True
If GotoApland = True Then
Apland.Show
If YouAreDead Then
docking.collision 0
Else
If BullsEye Then
docking.collision 4
ElseIf PaintLandingSite Then
docking.collision 5
Else
docking.collision 3
End If
End If
End If
End If
End Sub
Public Sub DrawBox()
picBackground.Line (Box(0, 0), Box(0, 1))-(Box(1, 0), Box(1, 1)), QBColor(15)
picBackground.Line -(Box(2, 0), Box(2, 1)), QBColor(15)
picBackground.Line -(Box(3, 0), Box(3, 1)), QBColor(15)
picBackground.Line -(Box(0, 0), Box(0, 1)), QBColor(15)
End Sub
Public Sub collision(Result As Integer)
Dim SplatText As String
diedFlag = True
Select Case Result
Case Is = 0 ' abort? <---------------------------------------------rick setup abort
CompUnload = True
Unload Apland
CompUnload = False
frmTime.masterTimer.Enabled = True
Case Is = 1 ' general crash scene 1
If LmAlt <= 6 * 15.6 Then
frmTime.PlayAVI "death\shot21.avi", 3
SplatText = "goin' too flippin' fast in a crater"
Else 'LmAlt >= 8 * 15.6 Then
frmTime.PlayAVI "death\shot22.avi", 3
SplatText = "goin' too darn fast near a mountain"
End If
Case Is = 2
frmTime.PlayAVI "death\shot20.avi", 3
Case Is = 3
'oh damn, I can't reach it mvi
frmTime.masterTimer.Enabled = True
CompUnload = True
Unload Apland
CompUnload = False
SplatText = "so close you can smell it. Too bad you cant take it."
OnTheMoon = True
CanReachIt = False
diedFlag = False
frmTime.masterTimer.Enabled = True
CompUnload = True
Unload Apland
CompUnload = False
Case Is = 4
'happy happy joy joy mvi
frmTime.PlayAVI "success\shot19a.avi", 3
frmTime.PlayAVI "success\shot19c.avi", 3
OnTheMoon = True
CanReachIt = True
SplatText = "hory cow, you did it!"
diedFlag = False
MissionState = 7
frmTime.masterTimer.Enabled = True
CompUnload = True
Unload Apland
CompUnload = False
Case Is = 5
'your a loser, you couldn't even get close to the target mvi
SplatText = "you suck. try asteroids."
OnTheMoon = True
CanReachIt = False
diedFlag = False
frmTime.masterTimer.Enabled = True
CompUnload = True
Unload Apland
CompUnload = False
End Select
SplatTextBox.Text = SplatText
text1.Text = "True Alt = 0"
Text2.Text = "Your X " + Str(startx + 16) '"fuel"
Text3.Text = " "
Text4.Text = "Your Y " + Str(starty + 16) '"RCS"
Text5.Text = "Fwd Vel = 0"
Text6.Text = "Lat Vel = 0"
distance.Caption = "0"
closerate.Caption = "0"
DoCurve = False
Me.Visible = False
MissionState = 7
If Not diedFlag Then
Met = 1670
fivek = 5
StopEverything = True
OkToLand = False
Else
diedFlag = False
StopEverything = True
Met = 1660
fivek = 5
OkToLand = False
End If
End Sub
Public Sub blueLine(whatLine As Integer)
Dim k, j As Integer
For k = 0 To 31 'initialize bluedline to green
BluedLine(k) = 2
Next k
Select Case whatLine
Case Is = 1 'Alt 599
For k = 1 To 31 Step 2
BluedLine(k) = 8 '1 fake line
Next k
Case Is = 3 'alt 449
For k = 1 To 31 Step 4
For j = 0 To 2 ' three fake lines
BluedLine(k + j) = 8
Next j
Next k
Case Is = 7 'alt 199
For k = 1 To 31 Step 8
For j = 0 To 6 'seven fake lines
BluedLine(k + j) = 8
Next j
Next k
Case Is = 15
For k = 1 To 31 Step 16
For j = 0 To 14 'fifteen fake lines
BluedLine(k + j) = 8
Next j
Next k
Case Is = 999
End Select
BluedLine(24) = 10
'Label1.Caption = "x = " + Str(startx + 24)
'Label2.Caption = "y = " + Str(starty + 25)
End Sub
Public Sub joyPolling()
Dim WhereAmI, whereisX, whereisY, wheretoken As Integer
Dim rc As Long
Dim x As Integer
Rem Joystick
rc = GetJoyStickPos(JOYSTICK1, JoyInfo)
DoEvents
Rem --- check for left or right
whereisX = 0
If JoyInfo.x < leftX Then
whereisX = -1
Else
If JoyInfo.x > rightX Then
whereisX = 1
End If
End If
Rem --- check for up or down
whereisY = 0
If JoyInfo.y < topY Then
whereisY = -1
ElseIf JoyInfo.y > bottomY Then
whereisY = 1
End If
wheretoken = whereisX + whereisY
WhereAmI = 4
If wheretoken = 1 And whereisX = 1 Then
WhereAmI = 1
ElseIf wheretoken = 1 And whereisX <> 1 Then
WhereAmI = 2
End If
If wheretoken = -1 And whereisY = -1 Then
WhereAmI = 0
ElseIf wheretoken = -1 And whereisY <> -1 Then
WhereAmI = 3
End If
Command1.Caption = WhereAmI
If WhereAmI <> 4 Then
Call JoyControl((WhereAmI))
End If
If JoyInfo.ButtonDown(1) Then
Select Case WhereAmI
Case Is = 0
x = frmTime.playSound(CDdrive + "\sfx\rcstrst.wav", EFFECTS, NO_LUPE)
Ydock = Ydock - 1
Call JoyControl(0)
Case Is = 1
x = frmTime.playSound(CDdrive + "\sfx\rcstrst.wav", EFFECTS, NO_LUPE)
Xdock = Xdock + 1
LatVel = Xdock * 33
Call JoyControl(1)
Case Is = 2
x = frmTime.playSound(CDdrive + "\sfx\rcstrst.wav", EFFECTS, NO_LUPE)
Ydock = Ydock + 1
Call JoyControl(2)
Case Is = 3
x = frmTime.playSound(CDdrive + "\sfx\rcstrst.wav", EFFECTS, NO_LUPE)
Xdock = Xdock - 1
LatVel = Xdock * 33
Call JoyControl(3)
End Select
End If
If JoyInfo.ButtonDown(2) Then
Select Case WhereAmI
Case Is = 0
x = frmTime.playSound(CDdrive + "\sfx\rcstrst.wav", EFFECTS, NO_LUPE)
Zdock = Zdock - 1
FwdVel = -Zdock * 33
Case Is = 2
x = frmTime.playSound(CDdrive + "\sfx\rcstrst.wav", EFFECTS, NO_LUPE)
Zdock = Zdock + 1
FwdVel = -Zdock * 33
End Select
End If
Rem
Rem
Rem end joystick
End Sub
Sub Timer3_Timer()
Static Xpos As Integer
Static Ypos As Integer
Dim rc As Long
Static Scountz As Integer
Static Secondz As Integer
Static WaitCountz As Integer
Static NotFirstTime2 As Boolean
Static NotFirstTime1 As Boolean
Static xComponent As Integer
Static yComponent As Integer
Dim x As Integer
'Dim i As Integer
Dim WhereAmI, whereisX, whereisY, wheretoken As Integer
'lblZ = ldist
Dim currpath As String
If Not NotFirstTime2 Then
If Not NotFirstTime1 Then
StarSeconds = Int(StarSeconds / 2)
Xdock = firstXpos
Ydock = firstYpos
NotFirstTime1 = True
Xpos = 0
Ypos = 0
BG_NewX = 0
BG_NewY = 0
Else
Xdock = 0
Ydock = 0
NotFirstTime2 = True
End If
End If
If Not WaitingToLeave Then
Scountz = Scountz + 1
If Scountz >= 20 Then
Scountz = 0
Secondz = Secondz + 1
If Secondz >= StarSeconds Then
StarCrossed = False
goGame = 0
Reason = 26
YouAreDead = True
Timer3.Enabled = False
docking.Visible = False
Exit Sub
End If
End If
Else
WaitCountz = WaitCountz + 1
If WaitCountz >= 100 Then
DoEvents
StarCrossed = False
Scountz = 0
Secondz = 0
WaitCountz = 0
WaitingToLeave = False
NotFirstTime1 = False
NotFirstTime2 = False
Male = 3
Female = 1
frmTime.Transfer
End If
Exit Sub
End If
currpath = CDdrive + "\docking\csm4\"
closerate.Visible = True
distance.Visible = True
closerate.Caption = pubXpos
distance.Caption = pubYpos
Secondz = 0
'closerate.Caption = " N/A"
'distance.Caption = "N/A"
'-----------------------------------------------------
' Move the background horizontally under scroller
' control.
'-----------------------------------------------------
Rem ********************************************************************************
Xpos = Xpos - Xdock
Ypos = Ypos - Ydock
UpdateBackground
Rem --- if x is off left side ---
If Xpos < -picPitSprite.ScaleWidth + picImage.ScaleWidth Then
Xpos = 800 - picPitSprite.ScaleWidth + picImage.ScaleWidth
Else 'if off right side
If Xpos > 800 - picImage.ScaleWidth Then Xpos = 0 - picImage.ScaleWidth
End If
Rem --- if y is off top side ---
If Ypos < -picImage.ScaleHeight Then
Ypos = 600 - picImage.ScaleHeight
Else 'if off bottom
If Ypos > 600 - picImage.ScaleHeight Then Ypos = 0 - picImage.ScaleHeight
End If
' Copy a section of the large bitmap into the work area.
rc = BitBlt(picWorkBG.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, 0, 0, SRCCOPY)
rc = BitBlt(picWorkBG.hDC, 0, 0, picPitMask.Width, picPitMask.Height, picPitMask.hDC, 0, 0, SRCAND)
'draw cockpit
rc = BitBlt(picWorkBG.hDC, 0, 0, picPitMask.Width, picPitMask.Height, picPitSprite.hDC, 0, 0, SRCPAINT)
' Draw the whole thing back onto the screen.
rc = BitBlt(picBackground.hDC, 0, 0, picBackground.Width, picBackground.Height, picWorkBG.hDC, 0, 0, SRCCOPY)
auxjoy(0).Visible = True
auxjoy(1).Visible = True
auxjoy(2).Visible = True
auxjoy(3).Visible = True
auxcon(0).Picture = auxcon(5).Picture
Rem
Rem
Rem Joystick
rc = GetJoyStickPos(JOYSTICK1, JoyInfo)
Rem --- check for left or right
whereisX = 0
If JoyInfo.x < leftX Then
whereisX = -1
Else
If JoyInfo.x > rightX Then
whereisX = 1
End If
End If
Rem --- check for up or down
whereisY = 0
If JoyInfo.y < topY Then
whereisY = -1
Else
If JoyInfo.y > bottomY Then
whereisY = 1
End If
End If
wheretoken = whereisX + whereisY
WhereAmI = 4
If wheretoken = 1 Then
If whereisX = 1 Then
WhereAmI = 1
Else
WhereAmI = 2
End If
End If
If wheretoken = -1 Then
If whereisY = -1 Then
WhereAmI = 0
Else
WhereAmI = 3
End If
End If
Command1.Caption = WhereAmI
If WhereAmI <> 4 Then
Call JoyControl((WhereAmI))
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 1 Then
x = frmTime.playSound(CDdrive + "rcstrst.wav", EFFECTS, NO_LUPE)
Xdock = Xdock + 1
'xComponent = xComponent + 1
Call JoyControl(1)
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 3 Then
x = frmTime.playSound(CDdrive + "rcstrst.wav", EFFECTS, NO_LUPE)
Xdock = Xdock - 1
'xComponent = xComponent - 1
Call JoyControl(3)
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 2 Then
x = frmTime.playSound(CDdrive + "rcstrst.wav", EFFECTS, NO_LUPE)
Ydock = Ydock + 1
'yComponent = yComponent + 1
Call JoyControl(2)
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 0 Then
x = frmTime.playSound(CDdrive + "rcstrst.wav", EFFECTS, NO_LUPE)
Ydock = Ydock - 1
'yComponent = yComponent - 1
Call JoyControl(0)
End If
pubXpos = Xpos
pubYpos = Ypos
End Sub
Sub VScroll1_Change()
Dim temp As Integer
Dim tdigs(3) As Integer
contThrust = VScroll1 'vscroll1 is the value of the slider
temp = contThrust
tdigs(0) = contThrust Mod 10
temp = temp - tdigs(0)
tdigs(1) = temp / 10
If tdigs(1) >= 10 Then
tdigs(1) = tdigs(1) - 10
tdigs(2) = 1
Else
tdigs(2) = 0
End If
docking.dockThrust(0).Picture = frmTime.imgdnum(tdigs(0)).Picture
docking.dockThrust(1).Picture = frmTime.imgdnum(tdigs(1)).Picture
docking.dockThrust(2).Picture = frmTime.imgdnum(tdigs(2)).Picture
End Sub
DOCKING2.LOG
Line 245: Property Picture in auxcon could not be set.
\CALIBRAT
JOYTEST1.FRM
VERSION 4.00
Begin VB.Form Form1
Appearance = 0 'Flat
BackColor = &H00C0C0C0&
Caption = "Joystick Example"
ClientHeight = 6405
ClientLeft = 1035
ClientTop = 1650
ClientWidth = 6765
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 700
size = 8.25
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 6810
Left = 975
LinkTopic = "Form1"
ScaleHeight = 6405
ScaleWidth = 6765
Top = 1305
Width = 6885
Begin VB.CommandButton Command1
Caption = "Set Center"
Height = 495
Left = 2190
TabIndex = 26
Top = 4335
Width = 1215
End
Begin VB.CommandButton btnCancel
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "&Cancel"
Height = 375
Left = 4620
TabIndex = 1
Top = 2520
Width = 1095
End
Begin VB.Timer Timer1
Interval = 22
Left = 5700
Top = 0
End
Begin VB.PictureBox picBackground
Appearance = 0 'Flat
AutoSize = -1 'True
BackColor = &H00008000&
ForeColor = &H80000008&
Height = 2715
Left = 240
ScaleHeight = 2685
ScaleWidth = 4005
TabIndex = 0
Top = 240
Width = 4035
Begin VB.Image imgJoyCursor
Appearance = 0 'Flat
Height = 165
Left = 1140
Picture = "JOYTEST1.frx":0000
Top = 1320
Width = 165
End
Begin VB.Label lblButton
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H000000FF&
BorderStyle = 1 'Fixed Single
Caption = "Button 4"
ForeColor = &H80000008&
Height = 255
Index = 3
Left = 3000
TabIndex = 4
Top = 2340
Width = 915
End
Begin VB.Label lblButton
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H000000FF&
BorderStyle = 1 'Fixed Single
Caption = "Button 3"
ForeColor = &H80000008&
Height = 255
Index = 2
Left = 60
TabIndex = 6
Top = 2340
Width = 915
End
Begin VB.Label lblButton
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H000000FF&
BorderStyle = 1 'Fixed Single
Caption = "Button 2"
ForeColor = &H80000008&
Height = 255
Index = 1
Left = 3000
TabIndex = 5
Top = 60
Width = 915
End
Begin VB.Label lblButton
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H000000FF&
BorderStyle = 1 'Fixed Single
Caption = "Button 1"
ForeColor = &H80000008&
Height = 255
Index = 0
Left = 60
TabIndex = 3
Top = 60
Width = 915
End
End
Begin VB.Label Label20
AutoSize = -1 'True
Caption = "bottom y limit"
ForeColor = &H00FFFF00&
Height = 195
Left = 5115
TabIndex = 36
Top = 5535
Width = 1125
End
Begin VB.Label Label19
AutoSize = -1 'True
Caption = "top y limit"
ForeColor = &H00FFFF00&
Height = 195
Left = 5325
TabIndex = 35
Top = 4560
Width = 825
End
Begin VB.Label Label18
AutoSize = -1 'True
Caption = "right x limit"
ForeColor = &H00FFFF00&
Height = 195
Left = 405
TabIndex = 34
Top = 5610
Width = 930
End
Begin VB.Label Label17
AutoSize = -1 'True
Caption = "left x limit"
ForeColor = &H00FFFF00&
Height = 195
Left = 480
TabIndex = 33
Top = 4710
Width = 825
End
Begin VB.Label Label16
Caption = "Label16"
Height = 495
Left = 5115
TabIndex = 32
Top = 5835
Width = 1215
End
Begin VB.Label Label15
Caption = "Label15"
Height = 495
Left = 5085
TabIndex = 31
Top = 4905
Width = 1215
End
Begin VB.Label Label14
Caption = "Label14"
Height = 495
Left = 285
TabIndex = 30
Top = 5850
Width = 1290
End
Begin VB.Label Label13
Caption = "Label13"
Height = 495
Left = 360
TabIndex = 29
Top = 4980
Width = 1215
End
Begin VB.Label Label12
AutoSize = -1 'True
BackColor = &H00FFFF00&
Caption = "Label12"
ForeColor = &H000000FF&
Height = 195
Left = 4065
TabIndex = 28
Top = 4365
Width = 690
End
Begin VB.Label Label11
AutoSize = -1 'True
BackColor = &H00FFFF00&
Caption = "Label11"
ForeColor = &H000000FF&
Height = 195
Left = 720
TabIndex = 27
Top = 4320
Width = 690
End
Begin VB.Label Label10
Caption = "Label10"
ForeColor = &H0000C000&
Height = 495
Left = 4485
TabIndex = 25
Top = 3630
Width = 1215
End
Begin VB.Label Label9
Caption = "Label9"
ForeColor = &H0000C000&
Height = 495
Left = 3060
TabIndex = 24
Top = 3645
Width = 1215
End
Begin VB.Label Label8
Caption = "Label8"
ForeColor = &H0000C000&
Height = 495
Left = 1605
TabIndex = 23
Top = 3675
Width = 1215
End
Begin VB.Label Label7
Caption = "Label7"
ForeColor = &H0000C000&
Height = 495
Left = 135
TabIndex = 22
Top = 3630
Width = 1215
End
Begin VB.Label Label6
AutoSize = -1 'True
Caption = "Left"
Height = 195
Left = 4470
TabIndex = 21
Top = 3285
Width = 345
End
Begin VB.Label Label5
AutoSize = -1 'True
Caption = "Bottom"
Height = 195
Left = 3090
TabIndex = 20
Top = 3315
Width = 600
End
Begin VB.Label Label4
AutoSize = -1 'True
Caption = "Right"
Height = 195
Left = 1695
TabIndex = 19
Top = 3345
Width = 465
End
Begin VB.Label Label3
AutoSize = -1 'True
Caption = "Top "
Height = 195
Left = 255
TabIndex = 18
Top = 3330
Width = 405
End
Begin VB.Label lblMinY
Appearance = 0 'Flat
BackColor = &H80000005&
BackStyle = 0 'Transparent
ForeColor = &H00800000&
Height = 195
Left = 5100
TabIndex = 17
Top = 2040
Width = 735
End
Begin VB.Label lblMaxY
Appearance = 0 'Flat
BackColor = &H80000005&
BackStyle = 0 'Transparent
ForeColor = &H00800000&
Height = 195
Left = 5100
TabIndex = 16
Top = 1800
Width = 735
End
Begin VB.Label lblMinX
Appearance = 0 'Flat
BackColor = &H80000005&
BackStyle = 0 'Transparent
ForeColor = &H00800000&
Height = 195
Left = 5100
TabIndex = 15
Top = 1500
Width = 735
End
Begin VB.Label lblMaxX
Appearance = 0 'Flat
BackColor = &H80000005&
BackStyle = 0 'Transparent
ForeColor = &H00800000&
Height = 195
Left = 5100
TabIndex = 14
Top = 1260
Width = 735
End
Begin VB.Label lblY
Appearance = 0 'Flat
BackColor = &H80000005&
BackStyle = 0 'Transparent
ForeColor = &H00800000&
Height = 195
Left = 5100
TabIndex = 13
Top = 720
Width = 735
End
Begin VB.Label lblX
Appearance = 0 'Flat
BackColor = &H80000005&
BackStyle = 0 'Transparent
ForeColor = &H00800000&
Height = 195
Left = 5100
TabIndex = 12
Top = 540
Width = 735
End
Begin VB.Label Label1
Appearance = 0 'Flat
BackColor = &H80000005&
BackStyle = 0 'Transparent
Caption = "Min Y:"
ForeColor = &H80000008&
Height = 195
Index = 4
Left = 4440
TabIndex = 11
Top = 2040
Width = 735
End
Begin VB.Label Label1
Appearance = 0 'Flat
BackColor = &H80000005&
BackStyle = 0 'Transparent
Caption = "Max Y:"
ForeColor = &H80000008&
Height = 195
Index = 3
Left = 4440
TabIndex = 10
Top = 1800
Width = 735
End
Begin VB.Label Label1
Appearance = 0 'Flat
BackColor = &H80000005&
BackStyle = 0 'Transparent
Caption = "Min X:"
ForeColor = &H80000008&
Height = 195
Index = 2
Left = 4440
TabIndex = 9
Top = 1500
Width = 735
End
Begin VB.Label Label1
Appearance = 0 'Flat
BackColor = &H80000005&
BackStyle = 0 'Transparent
Caption = "Max X:"
ForeColor = &H80000008&
Height = 195
Index = 1
Left = 4440
TabIndex = 8
Top = 1260
Width = 735
End
Begin VB.Label Label2
Appearance = 0 'Flat
BackColor = &H80000005&
BackStyle = 0 'Transparent
Caption = "Y:"
ForeColor = &H80000008&
Height = 195
Left = 4440
TabIndex = 7
Top = 780
Width = 735
End
Begin VB.Label Label1
Appearance = 0 'Flat
BackColor = &H80000005&
BackStyle = 0 'Transparent
Caption = "X:"
ForeColor = &H80000008&
Height = 195
Index = 0
Left = 4440
TabIndex = 2
Top = 540
Width = 735
End
End
Attribute VB_Name = "Form1"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
Option Explicit
'-------------------------------------------------------
' Constants and module-level variables used by
' JOYTEST1.FRM.
'-------------------------------------------------------
Dim JoyInfo As tJoyInfo
Dim RangeWidth As Integer
Dim RangeHeight As Integer
Const YELLOW = &HFFFF&
Const RED = &HFF&
Dim topj, leftj, rightj, bottomj As Long
Private Sub btnCancel_Click()
'-------------------------------------------------------
' Exit the program when the Cancel button is pressed.
'-------------------------------------------------------
Unload Me
End Sub
Private Sub Command1_Click()
Dim centx, centy, leftX, rightX, topY, bottomY As Long
Dim tempx, tempy As Long
centx = lblX
centy = lblY
label11.Caption = "Centerx " + centx
Label12.Caption = "Centery " + centy
leftX = (centx - leftj) / 2
tempx = (rightj - centx) / 2
rightX = rightj - tempx
tempy = (centy - topj) / 2
topY = bottomj - tempy
bottomY = (bottomj - centy) / 2
Label13.Caption = leftX
Label14.Caption = rightX
Label15.Caption = topY
Label16.Caption = bottomY
End Sub
Private Sub Form_Load()
'-------------------------------------------------------
' Set the range for the little on-screen joystick cursor.
'-------------------------------------------------------
RangeWidth = picBackground.ScaleWidth - imgJoyCursor.Width
RangeHeight = picBackground.ScaleHeight - imgJoyCursor.Height
End Sub
Private Sub Timer1_Timer()
'-------------------------------------------------------
' The timer routine constantly polls the joystick to
' determine the current positions and button states,
' and changes the screen accordingly.
'-------------------------------------------------------
Dim rc As Integer
Dim i As Integer
rc = GetJoyStickPos(JOYSTICK1, JoyInfo)
If rc = 0 Then
imgJoyCursor.Left = RangeWidth * ((JoyInfo.X - JoyCaps.Xmin) / (JoyCaps.Xmax - JoyCaps.Xmin))
imgJoyCursor.Top = RangeHeight * ((JoyInfo.Y - JoyCaps.Ymin) / (JoyCaps.Ymax - JoyCaps.Ymin))
lblX = JoyInfo.X
lblY = JoyInfo.Y
lblMinX = JoyCaps.Xmin
lblMaxX = JoyCaps.Xmax
lblMinY = JoyCaps.Ymin
lblMaxY = JoyCaps.Ymax
If JoyInfo.ButtonDown(1) Then
If lblButton(1).BackColor <> RED Then lblButton(1).BackColor = RED
leftj = JoyInfo.X
topj = JoyInfo.Y
End If
If JoyInfo.ButtonDown(2) Then
If lblButton(2).BackColor <> YELLOW Then lblButton(2).BackColor = YELLOW
rightj = JoyInfo.X
bottomj = JoyInfo.Y
End If
End If
Label7.Caption = topj
Label8.Caption = rightj
Label9.Caption = bottomj
Label10.Caption = leftj
End Sub
\CSM4
=DOCKING.FRM
VERSION 4.00
Begin VB.Form docking
Caption = "Docking with the Lunar Module"
ClientHeight = 7275
ClientLeft = 1185
ClientTop = 1590
ClientWidth = 9570
Height = 7680
Left = 1125
LinkTopic = "Form1"
Picture = "DOCKING.frx":0000
ScaleHeight = 7275
ScaleWidth = 9570
Top = 1245
Width = 9690
Begin VB.CommandButton Command1
Caption = "Command1"
Height = 495
Left = 9690
TabIndex = 26
Top = 6690
Width = 1215
End
Begin VB.Frame Calibrate
Height = 4395
Left = 2490
TabIndex = 22
Top = 1620
Visible = 0 'False
Width = 5715
Begin VB.TextBox textCalibrator
BackColor = &H00FF0000&
ForeColor = &H00FFFFFF&
Height = 375
Left = 915
Locked = -1 'True
TabIndex = 24
Text = "Move Joystick to Upper Left and Press Button 1"
Top = 2010
Width = 3900
End
Begin VB.CommandButton centerCalibrate
Caption = "Center Joystick Then Press This Button"
Height = 495
Left = 825
TabIndex = 23
Top = 3120
Visible = 0 'False
Width = 3915
End
Begin VB.Label Label1
AutoSize = -1 'True
Caption = "Joystick Calibration"
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 700
size = 24
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
Height = 555
Left = 630
TabIndex = 25
Top = 735
Width = 4455
End
End
Begin VB.PictureBox PicSave
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 8565
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 20
Top = 7335
Width = 1755
End
Begin VB.PictureBox PicWork
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 6720
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 19
Top = 7335
Width = 1755
End
Begin VB.PictureBox PicMask
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 5085
Picture = "DOCKING.frx":4B444
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 100
TabIndex = 18
Top = 7350
Width = 1500
End
Begin VB.PictureBox PicImage
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1410
Left = 3435
Picture = "DOCKING.frx":4DE08
ScaleHeight = 94
ScaleMode = 3 'Pixel
ScaleWidth = 99
TabIndex = 17
Top = 7320
Width = 1485
End
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 5
Left = 10110
Picture = "DOCKING.frx":50704
ScaleHeight = 1425
ScaleWidth = 1755
TabIndex = 9
Top = 2385
Width = 1755
End
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 4
Left = 10290
Picture = "DOCKING.frx":537D0
ScaleHeight = 1425
ScaleWidth = 1755
TabIndex = 8
Top = 1635
Width = 1755
End
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 3
Left = 10335
Picture = "DOCKING.frx":5689C
ScaleHeight = 1425
ScaleWidth = 1755
TabIndex = 7
Top = 1215
Width = 1755
End
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 2
Left = 9840
Picture = "DOCKING.frx":59968
ScaleHeight = 1425
ScaleWidth = 1755
TabIndex = 6
Top = 555
Width = 1755
End
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 1
Left = 9975
Picture = "DOCKING.frx":5CA34
ScaleHeight = 1425
ScaleWidth = 1755
TabIndex = 5
Top = 135
Width = 1755
End
Begin VB.PictureBox picWorkBG
Appearance = 0 'Flat
AutoRedraw = -1 'True
BackColor = &H00400000&
DragIcon = "DOCKING.frx":5FB00
ForeColor = &H80000008&
Height = 4860
Left = 2775
ScaleHeight = 322
ScaleMode = 3 'Pixel
ScaleWidth = 635
TabIndex = 4
Top = 7425
Width = 9555
End
Begin VB.PictureBox picBGoriginal
Appearance = 0 'Flat
AutoRedraw = -1 'True
BackColor = &H80000005&
ForeColor = &H80000008&
Height = 9015
Left = -8400
Picture = "DOCKING.frx":5FE0A
ScaleHeight = 599
ScaleMode = 3 'Pixel
ScaleWidth = 799
TabIndex = 1
Top = 7290
Width = 12015
End
Begin VB.PictureBox picPitMask
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 5205
Left = 9795
Picture = "DOCKING.frx":D554E
ScaleHeight = 5205
ScaleWidth = 9600
TabIndex = 3
Top = 6555
Width = 9600
End
Begin VB.PictureBox picPitSprite
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 5205
Left = 9765
Picture = "DOCKING.frx":10BD12
ScaleHeight = 347
ScaleMode = 3 'Pixel
ScaleWidth = 640
TabIndex = 2
Top = 285
Width = 9600
End
Begin VB.Timer Timer1
Enabled = 0 'False
Interval = 55
Left = 9960
Top = 5865
End
Begin VB.PictureBox Picture4
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 7200
Left = -15
Picture = "DOCKING.frx":1424D6
ScaleHeight = 7200
ScaleWidth = 9600
TabIndex = 0
Top = 75
Width = 9600
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 0
Left = 3990
Picture = "DOCKING.frx":18D91A
ScaleHeight = 95
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 10
Top = 5520
Width = 1755
Begin Threed.SSCommand SSCommand1
Height = 330
Index = 1
Left = 1185
TabIndex = 14
Top = 1080
Width = 555
_version = 65536
_extentx = 979
_extenty = 582
_stockprops = 78
caption = "REV"
bevelwidth = 4
font3d = 4
End
Begin Threed.SSCommand SSCommand1
Height = 330
Index = 0
Left = 0
TabIndex = 13
Top = 1065
Width = 555
_version = 65536
_extentx = 979
_extenty = 582
_stockprops = 78
caption = "FWD"
bevelwidth = 4
font3d = 4
End
Begin VB.Image auxjoy
Height = 300
Index = 0
Left = 720
Top = 225
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 1
Left = 1035
Top = 555
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 2
Left = 720
Top = 870
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 3
Left = 390
Top = 555
Width = 300
End
End
Begin VB.PictureBox picBackground
Appearance = 0 'Flat
BackColor = &H00000000&
BorderStyle = 0 'None
DragIcon = "DOCKING.frx":1909E6
ForeColor = &H80000008&
Height = 5205
Left = 0
Picture = "DOCKING.frx":190CF0
ScaleHeight = 347
ScaleMode = 3 'Pixel
ScaleWidth = 640
TabIndex = 21
Top = 90
Width = 9600
Begin VB.Image imgjoyCursor
Height = 225
Left = 2610
Picture = "DOCKING.frx":1C74B4
Top = 2910
Visible = 0 'False
Width = 225
End
End
Begin VB.Label distance
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "1000"
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 400
size = 13.5
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 360
Left = 1410
TabIndex = 16
Top = 6420
Width = 600
End
Begin VB.Label closerate
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "1000"
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 400
size = 13.5
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 360
Left = 1395
TabIndex = 15
Top = 5805
Width = 600
End
Begin Threed.SSCommand Leave
Height = 360
Left = 6120
TabIndex = 12
Top = 6615
Width = 3105
_version = 65536
_extentx = 5477
_extenty = 635
_stockprops = 78
caption = "EXIT"
BeginProperty font {FB8F0823-0164-101B-84ED-08002B2EC713}
name = "MS Sans Serif"
charset = 1
weight = 700
size = 8.25
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
font3d = 4
End
Begin Threed.SSCommand start
Height = 360
Left = 6105
TabIndex = 11
Top = 6225
Width = 3105
_version = 65536
_extentx = 5477
_extenty = 635
_stockprops = 78
caption = "START"
BeginProperty font {FB8F0823-0164-101B-84ED-08002B2EC713}
name = "MS Sans Serif"
charset = 1
weight = 700
size = 8.25
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
font3d = 4
End
End
End
Attribute VB_Name = "docking"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
Option Explicit
' Constant for joystick
Dim JoyInfo As tJoyInfo
Dim RangeWidth As Integer
Dim RangeHeight As Integer
Dim ScrollSpeed As Integer ' The ship's current turning speed
Rem
Dim topj, leftj, rightj, bottomj, centx, centy, leftX, rightX, topY, bottomY As Long
' Constants for mouse action.
Const NO_BUTTON = 0
Const LBUTTON = 1
Const RBUTTON = 2
' Constants for WaveMix channels
Const BACKGROUND = 0
Const MISSION_CONTROL = 1
Const BUTTONS = 2
Const EFFECTS = 3
Const WARNINGS = 4
Const MCSECOND = 5
Const LUPE = 1
Const NO_LUPE = 0
' Boolean that indicates if mouse button has been pressed down.
Dim MouseButtonDown As Integer
' Windows API calls
Private Declare Function GetPixel Lib "GDI" (ByVal hDC As Integer, ByVal x As Integer, ByVal Y As Integer) As Long
Private Declare Function setpixel Lib "GDI" (ByVal hDC As Integer, ByVal x As Integer, ByVal Y As Integer, ByVal crColor As Long) As Long
Private Declare Function ellipse Lib "GDI" (ByVal hDC As Integer, ByVal nLeft As Integer, ByVal nTop As Integer, ByVal nRight As Integer, ByVal nBottom As Integer) As Long
Private Declare Function LineTo Lib "GDI" (ByVal hDC As Integer, ByVal x As Integer, ByVal Y As Integer) As Integer
Private Declare Function Polyline Lib "GDI" (ByVal hDC As Integer, lpPoints As POINTAPI, ByVal nCount As Integer) As Integer
Private Declare Function MoveTo Lib "GDI" (ByVal hDC As Integer, ByVal x As Integer, ByVal Y As Integer) As Long
'-----------------------------------------------------
' BITDEMO1.FRM
' This program demonstrates some of the methods used
' to display bitmaps and sprites.
'-----------------------------------------------------
' The number of pixels to offset the sprite
' each time it is moved.
Const INCREMENT = 1
' Constants for Raster Operations used by BitBlt function.
Const SRCAND = &H8800C6 ' dest = source AND dest
Const SRCCOPY = &HCC0020 ' dest = source
Const SRCPAINT = &HEE0086 ' dest = source OR dest
' The BitBlt Windows API call.
Private Declare Function BitBlt Lib "GDI" (ByVal hDestDC As Integer, ByVal x As Integer, ByVal Y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As Integer, ByVal XSrc As Integer, ByVal YSrc As Integer, ByVal dwRop As Long) As Integer
'Dim Ship(1 To 4) As tShip
' The x and y coordinates for the Sprite
Dim SpriteX As Integer
Dim SpriteY As Integer
' The x and y coordinates for the upper left corner
' of the large bitmap (picBMP).
Dim BackgroundX As Integer
Dim BackgroundY As Integer
' The width and height of the work area bitmap (picWork).
Dim WorkWidth As Integer
Dim WorkHeight As Integer
Dim ldist As Integer
Dim zcomponent As Integer
Dim s4b(51) As String
Dim s4bmask(51) As String
Private Sub JoyControl(Index As Integer)
Dim x As Integer
auxjoy(0).Visible = False
auxjoy(1).Visible = False
auxjoy(2).Visible = False
auxjoy(3).Visible = False
Select Case Index
Case Is = 0
'Ydock = Ydock - 1
auxcon(0).Picture = auxcon(1).Picture
Case Is = 1
'Xdock = Xdock + 1
auxcon(0).Picture = auxcon(2).Picture
Case Is = 2
'Ydock = Ydock + 1
auxcon(0).Picture = auxcon(3).Picture
Case Is = 3
'Xdock = Xdock - 1
auxcon(0).Picture = auxcon(4).Picture
End Select
'x = playSound("rcstrst.wav", 3, 0)
End Sub
Public Function playSound(sname As String, chan As Integer, lp As Integer)
Select Case lp
' don't loop
Case 0
Channel(chan).WaveFile = LCase$(sname)
Channel(chan).Loops = (False)
WAVMIX_SetFile Channel(chan).WaveFile, chan
WAVMIX_PlayChannel chan, Channel(chan).Loops
' loop
Case 1
Channel(chan).WaveFile = LCase$(sname)
Channel(chan).Loops = (True)
WAVMIX_SetFile Channel(chan).WaveFile, chan
WAVMIX_PlayChannel chan, Channel(chan).Loops
' stop loop
Case 2
WAVMIX_StopChannel chan
End Select
End Function
Private Sub auxjoy_Click(Index As Integer)
Dim x As Integer
Dim currpath As String
currpath = "D:\docking\csm4\"
auxjoy(0).Visible = False
auxjoy(1).Visible = False
auxjoy(2).Visible = False
auxjoy(3).Visible = False
Select Case Index
Case Is = 0
Ydock = Ydock - 1
auxcon(0).Picture = auxcon(1).Picture
Case Is = 1
Xdock = Xdock + 1
auxcon(0).Picture = auxcon(2).Picture
Case Is = 2
Ydock = Ydock + 1
auxcon(0).Picture = auxcon(3).Picture
Case Is = 3
Xdock = Xdock - 1
auxcon(0).Picture = auxcon(4).Picture
End Select
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
'x = playSound("rcstrst.wav", 3, 0)
End Sub
Private Sub btnStart_Click()
'------------------------------------------------------------
' Pressing the Start button will either start, pause, or
' resume the game.
'------------------------------------------------------------
Static Paused As Integer
Rem --- set the pallette pref
picBGOriginal.ZOrder 0
Dim rc As Long
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, picSave.ScaleWidth, picSave.ScaleHeight, picSave.hDC, 0, 0, SRCCOPY)
' If the game is curently paused, then resume it.
If Paused Then
Paused = False
'btnStart.Caption = "&PAUSE"
'rc = WaveMixActivate(hWaveMix, True)
Timer1.Enabled = True
'If the game is in progress then pause it.
ElseIf Timer1.Enabled Then
' Paused = True
' btnStart.Caption = "&RESUME"
'rc = WaveMixActivate(hWaveMix, False)
Timer1.Enabled = False
'Otherwise, no game is in progress, so start one.
Else
'btnStart.Caption = "&PAUSE"
StartGame
End If
End Sub
Private Sub cmdExit_Click()
' Shut down the WaveMix .DLL.
WAVMIX_Close
Unload Me
End Sub
Private Sub FOREREV_Click(Index As Integer)
Dim x As Integer
Select Case Index
Case Is = 0
Case Is = 1
End Select
x = playSound("rcstrst.wav", EFFECTS, NO_LUPE)
End Sub
Private Sub centerCalibrate_Click()
Dim tempx, tempy As Long
centx = JoyInfo.x
centy = JoyInfo.Y
' label11.Caption = "Centerx " + centx
' Label12.Caption = "Centery " + centy
leftX = (centx - leftj) / 2
tempx = (rightj - centx) / 2
rightX = rightj - tempx
topY = (centy - topj) / 2
tempy = (bottomj - centy) / 2
bottomY = bottomj - tempy
Calibrate.Visible = False
End Sub
Private Sub Form_Load()
'------------------------------------------------------------
' Set up the form when its first loaded.
'------------------------------------------------------------
Rem joyst
RangeWidth = picBackground.ScaleWidth - imgJoyCursor.Width
RangeHeight = picBackground.ScaleWidth - imgJoyCursor.Height
Rem
' Hide the scope and background PictureBoxes.
picBackground.Visible = False
'picScope.Visible = False
' Copy the cockpit "sprite" image into the background PictureBox.
picBackground.Picture = picPitSprite.Picture
' Center the form on the screen.
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
MouseButtonDown = NO_BUTTON
Rem --- %%% Initialize WaveMix DLL %%% ---
If Not WAVMIX_InitMixer() Then
MsgBox "Unable to Initialize WaveMix DLL"
End
End If
Xdock = 0
Ydock = 0
ldist = 125
's4b(1) = "D:\docking\dock\dock1.bmp"
's4b(2) = "D:\docking\dock\dock2.bmp"
's4b(3) = "D:\docking\dock\dock3.bmp"
's4b(4) = "D:\docking\dock\dock4.bmp"
's4b(5) = "D:\docking\dock\dock5.bmp"
's4b(6) = "D:\docking\dock\dock6.bmp"
's4b(7) = "D:\docking\dock\dock7.bmp"
's4b(8) = "D:\docking\dock\dock8.bmp"
's4b(9) = "D:\docking\dock\dock9.bmp"
's4b(10) = "D:\docking\dock\dock10.bmp"
's4b(11) = "D:\docking\dock\dock11.bmp"
's4b(12) = "D:\docking\dock\dock12.bmp"
's4b(13) = "D:\docking\dock\dock13.bmp"
's4b(14) = "D:\docking\dock\dock14.bmp"
's4b(15) = "D:\docking\dock\dock15.bmp"
's4b(16) = "D:\docking\dock\dock16.bmp"
's4b(17) = "D:\docking\dock\dock17.bmp"
's4b(18) = "D:\docking\dock\dock18.bmp"
's4b(19) = "D:\docking\dock\dock19.bmp"
's4b(20) = "D:\docking\dock\dock20.bmp"
's4b(21) = "D:\docking\dock\dock21.bmp"
's4b(22) = "D:\docking\dock\dock22.bmp"
's4b(23) = "D:\docking\dock\dock23.bmp"
's4b(24) = "D:\docking\dock\dock24.bmp"
's4b(25) = "D:\docking\dock\dock25.bmp"
's4b(26) = "D:\docking\dock\dock26.bmp"
's4b(27) = "D:\docking\dock\dock27.bmp"
's4b(28) = "D:\docking\dock\dock28.bmp"
's4b(29) = "D:\docking\dock\dock29.bmp"
's4b(30) = "D:\docking\dock\dock30.bmp"
's4b(31) = "D:\docking\dock\dock31.bmp"
's4b(32) = "D:\docking\dock\dock32.bmp"
's4b(33) = "D:\docking\dock\dock33.bmp"
's4b(34) = "D:\docking\dock\dock34.bmp"
's4b(35) = "D:\docking\dock\dock35.bmp"
's4b(36) = "D:\docking\dock\dock36.bmp"
's4b(37) = "D:\docking\dock\dock37.bmp"
's4b(38) = "D:\docking\dock\dock38.bmp"
's4b(39) = "D:\docking\dock\dock39.bmp"
's4b(40) = "D:\docking\dock\dock40.bmp"
's4b(41) = "D:\docking\dock\dock41.bmp"
's4b(42) = "D:\docking\dock\dock42.bmp"
's4b(43) = "D:\docking\dock\dock43.bmp"
's4b(44) = "D:\docking\dock\dock44.bmp"
's4b(45) = "D:\docking\dock\dock45.bmp"
's4b(46) = "D:\docking\dock\dock46.bmp"
's4b(47) = "D:\docking\dock\dock47.bmp"
's4b(48) = "D:\docking\dock\dock48.bmp"
's4b(49) = "D:\docking\dock\dock49.bmp"
's4b(50) = "D:\docking\dock\dock50.bmp"
'***********************************
Rem *************** masks *********
'*********************************
's4bmask(1) = "D:\docking\mask\m1.bmp"
's4bmask(2) = "D:\docking\mask\m2.bmp"
's4bmask(3) = "D:\docking\mask\m3.bmp"
's4bmask(4) = "D:\docking\mask\m4.bmp"
's4bmask(5) = "D:\docking\mask\m5.bmp"
's4bmask(6) = "D:\docking\mask\m6.bmp"
's4bmask(7) = "D:\docking\mask\m7.bmp"
's4bmask(8) = "D:\docking\mask\m8.bmp"
's4bmask(9) = "D:\docking\mask\m9.bmp"
's4bmask(10) = "D:\docking\mask\m10.bmp"
's4bmask(11) = "D:\docking\mask\m11.bmp"
's4bmask(12) = "D:\docking\mask\m12.bmp"
's4bmask(13) = "D:\docking\mask\m13.bmp"
's4bmask(14) = "D:\docking\mask\m14.bmp"
's4bmask(15) = "D:\docking\mask\m15.bmp"
's4bmask(16) = "D:\docking\mask\m16.bmp"
's4bmask(17) = "D:\docking\mask\m17.bmp"
's4bmask(18) = "D:\docking\mask\m18.bmp"
's4bmask(19) = "D:\docking\mask\m19.bmp"
's4bmask(20) = "D:\docking\mask\m20.bmp"
's4bmask(21) = "D:\docking\mask\m21.bmp"
's4bmask(22) = "D:\docking\mask\m22.bmp"
's4bmask(23) = "D:\docking\mask\m23.bmp"
's4bmask(24) = "D:\docking\mask\m24.bmp"
's4bmask(25) = "D:\docking\mask\m25.bmp"
's4bmask(26) = "D:\docking\mask\m26.bmp"
's4bmask(27) = "D:\docking\mask\m27.bmp"
's4bmask(28) = "D:\docking\mask\m28.bmp"
's4bmask(29) = "D:\docking\mask\m29.bmp"
's4bmask(30) = "D:\docking\mask\m30.bmp"
's4bmask(31) = "D:\docking\mask\m31.bmp"
's4bmask(32) = "D:\docking\mask\m32.bmp"
's4bmask(33) = "D:\docking\mask\m33.bmp"
's4bmask(34) = "D:\docking\mask\m34.bmp"
's4bmask(35) = "D:\docking\mask\m35.bmp"
's4bmask(36) = "D:\docking\mask\m36.bmp"
's4bmask(37) = "D:\docking\mask\m37.bmp"
's4bmask(38) = "D:\docking\mask\m38.bmp"
's4bmask(39) = "D:\docking\mask\m39.bmp"
's4bmask(40) = "D:\docking\mask\m40.bmp"
's4bmask(41) = "D:\docking\mask\m41.bmp"
's4bmask(42) = "D:\docking\mask\m42.bmp"
's4bmask(43) = "D:\docking\mask\m43.bmp"
's4bmask(44) = "D:\docking\mask\m44.bmp"
's4bmask(45) = "D:\docking\mask\m45.bmp"
's4bmask(46) = "D:\docking\mask\m46.bmp"
's4bmask(47) = "D:\docking\mask\m47.bmp"
's4bmask(48) = "D:\docking\mask\m48.bmp"
's4bmask(49) = "D:\docking\mask\m49.bmp"
's4bmask(50) = "D:\docking\mask\m50.bmp"
'***********************************
Rem ************ Temp *************
'***********************************
s4b(1) = "D:\tdock\dock\dock30.bmp"
s4b(2) = "D:\tdock\dock\dock31.bmp"
s4b(3) = "D:\tdock\dock\dock32.bmp"
s4b(4) = "D:\tdock\dock\dock33.bmp"
s4b(5) = "D:\tdock\dock\dock34.bmp"
s4b(6) = "D:\tdock\dock\dock35.bmp"
s4b(7) = "D:\tdock\dock\dock36.bmp"
s4b(8) = "D:\tdock\dock\dock37.bmp"
s4b(9) = "D:\tdock\dock\dock38.bmp"
s4b(10) = "D:\tdock\dock\dock39.bmp"
s4b(11) = "D:\tdock\dock\dock41.bmp"
s4b(12) = "D:\tdock\dock\dock42.bmp"
s4b(13) = "D:\tdock\dock\dock43.bmp"
s4b(14) = "D:\tdock\dock\dock44.bmp"
s4b(15) = "D:\tdock\dock\dock45.bmp"
Rem *********************************
s4bmask(1) = "D:\tdock\mask\mask30.bmp"
s4bmask(2) = "D:\tdock\mask\mask31.bmp"
s4bmask(3) = "D:\tdock\mask\mask32.bmp"
s4bmask(4) = "D:\tdock\mask\mask33.bmp"
s4bmask(5) = "D:\tdock\mask\mask34.bmp"
s4bmask(6) = "D:\tdock\mask\mask35.bmp"
s4bmask(7) = "D:\tdock\mask\mask36.bmp"
s4bmask(8) = "D:\tdock\mask\mask37.bmp"
s4bmask(9) = "D:\tdock\mask\mask38.bmp"
s4bmask(10) = "D:\tdock\mask\mask39.bmp"
s4bmask(11) = "D:\tdock\mask\mask41.bmp"
s4bmask(12) = "D:\tdock\mask\mask42.bmp"
s4bmask(13) = "D:\tdock\mask\mask43.bmp"
s4bmask(14) = "D:\tdock\mask\mask44.bmp"
s4bmask(15) = "D:\tdock\mask\mask45.bmp"
End Sub
Private Sub Form_Unload(Cancel As Integer)
WAVMIX_Close
Unload Me
End Sub
Private Sub Frame1_DragDrop(Source As Control, x As Single, Y As Single)
End Sub
Private Sub Leave_Click()
' Shut down the WaveMix .DLL.
WAVMIX_Close
Unload Me
End
End Sub
Private Sub SSCommand1_Click(Index As Integer)
Dim x As Integer
Select Case Index
Case Is = 0
zcomponent = zcomponent - 1
Case Is = 1
zcomponent = zcomponent + 1
End Select
x = playSound("rcstrst.wav", EFFECTS, NO_LUPE)
End Sub
Private Sub Start_Click()
'------------------------------------------------------------
' Pressing the Start button will either start, pause, or
' resume the game.
'------------------------------------------------------------
Static Paused As Integer
Dim rc As Long
Static NotFirstTime As Integer
Calibrate.Visible = True
calibrator
' Me.Show
' Sprites only need to be initialized the first time
' the game is played.
' If Not NotFirstTime Then
' SpriteInit Ship(1).Sprite, Me, picImage, picmask , picWorkBG, 50
' Ship(1).Visible = 1
' Ship(1).MaxHits = 3
' NotFirstTime = True
' End If
' If the game is curently paused, then resume it.
If Paused Then
Paused = False
'btnStart.Caption = "&PAUSE"
'rc = WaveMixActivate(hWaveMix, True)
Timer1.Enabled = True
'If the game is in progress then pause it.
ElseIf Timer1.Enabled Then
' Paused = True
' btnStart.Caption = "&RESUME"
'rc = WaveMixActivate(hWaveMix, False)
Timer1.Enabled = False
'Otherwise, no game is in progress, so start one.
Else
'btnStart.Caption = "&PAUSE"
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, picSave.ScaleWidth, picSave.ScaleHeight, picSave.hDC, 0, 0, SRCCOPY)
StartGame
End If
End Sub
Private Sub Text1_Change()
End Sub
Private Sub Timer1_Timer()
'------------------------------------------------------------
' This routine is the heart of this game. It's a trifle
' monolithic, but that is in large part by design. By
' reducing the number of subroutines called from here, we
' can improve the game performance somewhat.
'
' Each pass through this routine, the game display is
' updated.
'------------------------------------------------------------
Static xpos, ypos As Integer
Dim tempd As Integer
Dim rc As Long
Rem joyst
Dim x As Integer
'Dim i As Integer
Static xComponent As Integer
Static yComponent As Integer
Static zcomponent As Integer
Dim WhereAmI, whereisX, whereisY, wheretoken As Integer
'lblZ = ldist
Dim currpath As String
currpath = "d:\docking\csm4\"
'-----------------------------------------------------
' Move the background horizontally under scroller
' control.
'-----------------------------------------------------
'calculate distance from s4sb
ldist = ldist + zcomponent
If ldist <= 4000 And ldist > 2500 Then tempd = 1
If ldist <= 2500 And ldist > 1700 Then tempd = 2
If ldist <= 1700 And ldist > 1200 Then tempd = 3
If ldist <= 1200 And ldist > 900 Then tempd = 4
If ldist <= 900 And ldist > 800 Then tempd = 5
If ldist <= 800 And ldist > 700 Then tempd = 6
If ldist <= 700 And ldist > 640 Then tempd = 7
If ldist <= 640 And ldist > 590 Then tempd = 8
If ldist <= 590 And ldist > 550 Then tempd = 9
If ldist <= 550 And ldist > 510 Then tempd = 10
If ldist <= 510 And ldist > 470 Then tempd = 12
If ldist <= 470 And ldist > 430 Then tempd = 13
If ldist <= 430 And ldist > 400 Then tempd = 14
If ldist <= 400 And ldist > 370 Then tempd = 15
If ldist <= 370 And ldist > 340 Then tempd = 16
If ldist <= 340 And ldist > 310 Then tempd = 17
If ldist <= 310 And ldist > 290 Then tempd = 18
If ldist <= 290 And ldist > 270 Then tempd = 19
If ldist <= 270 And ldist > 250 Then tempd = 20
If ldist <= 250 And ldist > 230 Then tempd = 21
If ldist <= 230 And ldist > 210 Then tempd = 22
If ldist <= 210 And ldist > 195 Then tempd = 23
If ldist <= 195 And ldist > 180 Then tempd = 24
If ldist <= 180 And ldist > 165 Then tempd = 25
If ldist <= 165 And ldist > 150 Then tempd = 26
If ldist <= 150 And ldist > 140 Then tempd = 27
If ldist <= 140 And ldist > 130 Then tempd = 28
If ldist <= 130 And ldist > 120 Then tempd = 29
If ldist <= 120 And ldist > 110 Then tempd = 30
If ldist <= 110 And ldist > 100 Then tempd = 31
If ldist <= 100 And ldist > 90 Then tempd = 32
If ldist <= 90 And ldist > 80 Then tempd = 33
If ldist <= 80 And ldist > 70 Then tempd = 34
If ldist <= 70 And ldist > 60 Then tempd = 35
If ldist <= 60 And ldist > 55 Then tempd = 36
If ldist <= 55 And ldist > 50 Then tempd = 37
If ldist <= 50 And ldist > 45 Then tempd = 38
If ldist <= 45 And ldist > 40 Then tempd = 39
If ldist <= 40 And ldist > 35 Then tempd = 40
' If ldist <= 35 And ldist > 30 Then tempd = 41
' If ldist <= 30 And ldist > 25 Then tempd = 42
' If ldist <= 25 And ldist > 17 Then tempd = 43
' If ldist <= 17 And ldist > 15 Then tempd = 44
' If ldist <= 15 And ldist > 13 Then tempd = 45
' If ldist <= 13 And ldist > 10 Then tempd = 46
' If ldist <= 10 And ldist > 7 Then tempd = 47
' If ldist <= 7 And ldist > 6 Then tempd = 48
' If ldist <= 6 And ldist > 5 Then tempd = 49
' If ldist <= 5 And ldist > 0 Then tempd = 50
'Select Case tempd
' Case Is = 1
' picImage = LoadPicture(s4b(1))
' picMask = LoadPicture(s4bmask(1))
' Case Is = 2
' picImage = LoadPicture(s4b(2))
' picMask = LoadPicture(s4bmask(2))
' Case Is = 3
' picImage = LoadPicture(s4b(3))
' picMask = LoadPicture(s4bmask(3))
' Case Is = 4
' picImage = LoadPicture(s4b(4))
' picMask = LoadPicture(s4bmask(4))
' Case Is = 5
' picImage = LoadPicture(s4b(5))
' picMask = LoadPicture(s4bmask(5))
' Case Is = 6
' picImage = LoadPicture(s4b(6))
' picMask = LoadPicture(s4bmask(6))
' Case Is = 7
' picImage = LoadPicture(s4b(7))
' picMask = LoadPicture(s4bmask(7))
' Case Is = 8
' picImage = LoadPicture(s4b(8))
' picMask = LoadPicture(s4bmask(8))
' Case Is = 9
' picImage = LoadPicture(s4b(9))
' picMask = LoadPicture(s4bmask(9))
' Case Is = 10
' picImage = LoadPicture(s4b(10))
' picMask = LoadPicture(s4bmask(10))
' Case Is = 11
' picImage = LoadPicture(s4b(11))
' picMask = LoadPicture(s4bmask(11))
' Case Is = 12
' picImage = LoadPicture(s4b(12))'
' picMask = LoadPicture(s4bmask(12))
' Case Is = 13
' picImage = LoadPicture(s4b(13))
' picMask = LoadPicture(s4bmask(13))
' Case Is = 14
' picImage = LoadPicture(s4b(14))
' picMask = LoadPicture(s4bmask(14))
' Case Is = 15
' picImage = LoadPicture(s4b(15))
' picMask = LoadPicture(s4bmask(15))
' Case Is = 16
' picImage = LoadPicture(s4b(16))
' picMask = LoadPicture(s4bmask(16))
' Case Is = 17
' picImage = LoadPicture(s4b(17))
' picMask = LoadPicture(s4bmask(17))
' Case Is = 18
' picImage = LoadPicture(s4b(18))
' picMask = LoadPicture(s4bmask(18))
' Case Is = 19
' picImage = LoadPicture(s4b(19))
' picMask = LoadPicture(s4bmask(19))
' Case Is = 20
' picImage = LoadPicture(s4b(20))
' picMask = LoadPicture(s4bmask(20))
' Case Is = 21
' picImage = LoadPicture(s4b(21))
' picMask = LoadPicture(s4bmask(21))
' Case Is = 22
' picImage = LoadPicture(s4b(22))
' picMask = LoadPicture(s4bmask(22))
' Case Is = 23
' picImage = LoadPicture(s4b(23))
' picMask = LoadPicture(s4bmask(23))
' Case Is = 24
' picImage = LoadPicture(s4b(24))
' picMask = LoadPicture(s4bmask(24))
' Case Is = 25
' picImage = LoadPicture(s4b(25))
' picMask = LoadPicture(s4bmask(25))
' Case Is = 26
' picImage = LoadPicture(s4b(26))
' picMask = LoadPicture(s4bmask(26))
' Case Is = 27
' picImage = LoadPicture(s4b(27))
' picMask = LoadPicture(s4bmask(27))
' Case Is = 28
' picImage = LoadPicture(s4b(28))
' picMask = LoadPicture(s4bmask(28))
' Case Is = 29
' picImage = LoadPicture(s4b(29))
' picMask = LoadPicture(s4bmask(29))
' Case Is = 30
' 'picImage = LoadPicture(s4b(30))
'picMask = LoadPicture(s4bmask(30))
' Case Is = 31
' picImage = LoadPicture(s4b(31))
' picMask = LoadPicture(s4bmask(31))
' Case Is = 32
' picImage = LoadPicture(s4b(32))
' picMask = LoadPicture(s4bmask(32))
' Case Is = 33
' picImage = LoadPicture(s4b(33))
' picMask = LoadPicture(s4bmask(33))
' Case Is = 34
' picImage = LoadPicture(s4b(34))
' picMask = LoadPicture(s4bmask(34))
' Case Is = 35
' picImage = LoadPicture(s4b(35))
' picMask = LoadPicture(s4bmask(35))
' Case Is = 36
' picImage = LoadPicture(s4b(36))
' picMask = LoadPicture(s4bmask(36))
' Case Is = 37
' picImage = LoadPicture(s4b(37))
' picMask = LoadPicture(s4bmask(37))
' Case Is = 38
' picImage = LoadPicture(s4b(38))
' picMask = LoadPicture(s4bmask(38))
' Case Is = 39
' picImage = LoadPicture(s4b(39))
' picMask = LoadPicture(s4bmask(39))
' Case Is = 40
' picImage = LoadPicture(s4b(40))
' picMask = LoadPicture(s4bmask(40))
' Case Is = 41
' picImage = LoadPicture(s4b(41))
' picMask = LoadPicture(s4bmask(41))
' Case Is = 42
' picImage = LoadPicture(s4b(42))
' picMask = LoadPicture(s4bmask(42))
' Case Is = 43
' picImage = LoadPicture(s4b(43))
' picMask = LoadPicture(s4bmask(43))
' Case Is = 44
' picImage = LoadPicture(s4b(44))
' picMask = LoadPicture(s4bmask(44))
' Case Is = 45
' picImage = LoadPicture(s4b(45))
' picMask = LoadPicture(s4bmask(45))
' Case Is = 46
' picImage = LoadPicture(s4b(46))
' picMask = LoadPicture(s4bmask(46))
' Case Is = 47
' picImage = LoadPicture(s4b(47))
' picMask = LoadPicture(s4bmask(47))
' Case Is = 48
' picImage = LoadPicture(s4b(48))
' picMask = LoadPicture(s4bmask(48))
' Case Is = 49
' picImage = LoadPicture(s4b(49))
' picMask = LoadPicture(s4bmask(49))
' Case Is = 50
' picImage = LoadPicture(s4b(50))
' picMask = LoadPicture(s4bmask(50))
' End Select
Rem **************** T E M P **********************
'************************************************
Select Case tempd
Case Is = 30
picImage = LoadPicture(s4b(1))
picMask = LoadPicture(s4bmask(1))
Case Is = 31
picImage = LoadPicture(s4b(2))
picMask = LoadPicture(s4bmask(2))
Case Is = 32
picImage = LoadPicture(s4b(3))
picMask = LoadPicture(s4bmask(3))
Case Is = 33
picImage = LoadPicture(s4b(4))
picMask = LoadPicture(s4bmask(4))
Case Is = 34
picImage = LoadPicture(s4b(5))
picMask = LoadPicture(s4bmask(5))
Case Is = 35
picImage = LoadPicture(s4b(6))
picMask = LoadPicture(s4bmask(6))
Case Is = 36
picImage = LoadPicture(s4b(7))
picMask = LoadPicture(s4bmask(7))
Case Is = 37
picImage = LoadPicture(s4b(8))
picMask = LoadPicture(s4bmask(8))
Case Is = 38
picImage = LoadPicture(s4b(9))
picMask = LoadPicture(s4bmask(9))
Case Is = 39
picImage = LoadPicture(s4b(10))
picMask = LoadPicture(s4bmask(10))
Case Is = 41
picImage = LoadPicture(s4b(11))
picMask = LoadPicture(s4bmask(11))
Case Is = 42
picImage = LoadPicture(s4b(12))
picMask = LoadPicture(s4bmask(12))
Case Is = 43
picImage = LoadPicture(s4b(13))
picMask = LoadPicture(s4bmask(13))
Case Is = 44
picImage = LoadPicture(s4b(14))
picMask = LoadPicture(s4bmask(14))
Case Is = 45
picImage = LoadPicture(s4b(15))
picMask = LoadPicture(s4bmask(15))
End Select
Rem ********************************************************************************
xpos = xpos - Xdock
ypos = ypos - Ydock
Rem --- if x is off left side ---
If xpos < -picPitSprite.ScaleWidth Then
xpos = 800 - picPitSprite.ScaleWidth
Else 'if off right side
If xpos > 800 Then xpos = 0
End If
Rem --- if y is off top side ---
If ypos < -(picPitSprite.ScaleHeight) Then
ypos = 600 - picPitSprite.ScaleHeight
Else 'if off bottom
If ypos > 600 - picPitSprite.ScaleHeight Then ypos = picPitSprite.ScaleHeight
End If
closerate.Caption = xpos
distance.Caption = ypos
' Update the background (starfield) based on the
' current speed and direction of the player's ship.
UpdateBackground
' Copy a section of the large bitmap into the work area.
rc = BitBlt(picWorkBG.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, 0, 0, SRCCOPY)
' Copy the sprite work area onto the background.
'rc = BitBlt(picBackground.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
rc = BitBlt(picWorkBG.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
' Draw the sprite mask bitmap into the work area.
rc = BitBlt(picWorkBG.hDC, xpos + 80, ypos + 80, picMask.ScaleWidth, picMask.ScaleHeight, picMask.hDC, 0, 0, SRCAND)
'draw sprite into the work area
rc = BitBlt(picWorkBG.hDC, xpos + 80, ypos + 80, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
' Draw the cockpit mask into the work area.
rc = BitBlt(picWorkBG.hDC, 0, 0, picPitMask.Width, picPitMask.Height, picPitMask.hDC, 0, 0, SRCAND)
'draw cockpit
rc = BitBlt(picWorkBG.hDC, 0, 0, picPitMask.Width, picPitMask.Height, picPitSprite.hDC, 0, 0, SRCPAINT)
'FlickerlessSpriteMove
' Draw the whole thing back onto the screen.
rc = BitBlt(picBackground.hDC, 0, 0, picBackground.Width, picBackground.Height, picWorkBG.hDC, 0, 0, SRCCOPY)
auxjoy(0).Visible = True
auxjoy(1).Visible = True
auxjoy(2).Visible = True
auxjoy(3).Visible = True
auxcon(0).Picture = auxcon(5).Picture
Rem
Rem
Rem Joystick
rc = GetJoyStickPos(JOYSTICK1, JoyInfo)
If rc = 0 Then
imgJoyCursor.Left = RangeWidth * ((JoyInfo.x - JoyCaps.Xmin) / (JoyCaps.Xmax - JoyCaps.Xmin))
imgJoyCursor.Top = RangeHeight * ((JoyInfo.Y - JoyCaps.Ymin) / (JoyCaps.Ymax - JoyCaps.Ymin))
'lblX = JoyInfo.X
'lblY = JoyInfo.Y
'lblX = xComponent
'lblY = yComponent
'lblZ = ldist
' x is positive
'-----------------------------------------------------
' Move the background horizontally under scroller
' control.
'-----------------------------------------------------
'BackgroundX = HScroll1
'BackgroundX = HScroll1
' rc = BitBlt(picBackground.hDC, 0, 0, picBackground.ScaleWidth, picBackground.ScaleHeight, landsite.hDC, BackgroundX + xComponent, BackgroundY, SRCCOPY)
'calculate distance from s4sb
ldist = ldist + zcomponent
'lblMinX = JoyCaps.Xmin
'lblMaxX = JoyCaps.Xmax
'lblMinY = JoyCaps.Ymin
' lblMaxY = JoyCaps.Ymax
'testy = JoyInfo.X
'test2 = JoyInfo.y
' For i = 0 To 1
' If JoyInfo.ButtonDown(i + 1) Then
' If lblbutton(i).BackColor <> RED Then lblbutton(i).BackColor = RED
' Else
' If lblbutton(i).BackColor <> YELLOW Then lblbutton(i).BackColor = YELLOW
' End If
' Next
End If
Rem --- check for left or right
whereisX = 0
If JoyInfo.x < leftX Then
whereisX = -1
Else
If JoyInfo.x > rightX Then
whereisX = 1
End If
End If
Rem --- check for up or down
whereisY = 0
If JoyInfo.Y < topY Then
whereisY = -1
Else
If JoyInfo.Y > bottomY Then
whereisY = 1
End If
End If
wheretoken = whereisX + whereisY
WhereAmI = 4
If wheretoken = 1 Then
If whereisX = 1 Then
WhereAmI = 1
Else
WhereAmI = 2
End If
End If
If wheretoken = -1 Then
If whereisY = -1 Then
WhereAmI = 0
Else
WhereAmI = 3
End If
End If
Command1.Caption = WhereAmI
'If JoyInfo.X > (JoyCaps.Xmax - 1500) Then
' Call JoyControl(1)
'Else
' If JoyInfo.X < 1500 Then
' Call JoyControl(3)
' Else
' If JoyInfo.Y > 30000 Then
' Call JoyControl(2)
' Else
' If JoyInfo.Y < 1500 Then
' Call JoyControl(0)
' End If
' End If
' End If
'End If
If WhereAmI <> 4 Then
Call JoyControl((WhereAmI))
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 1 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
Xdock = Xdock + 1
'xComponent = xComponent + 1
Call JoyControl(1)
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 3 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
Xdock = Xdock - 1
'xComponent = xComponent - 1
Call JoyControl(3)
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 2 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
Ydock = Ydock + 1
'yComponent = yComponent + 1
Call JoyControl(2)
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 0 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
Ydock = Ydock - 1
'yComponent = yComponent - 1
Call JoyControl(0)
End If
If JoyInfo.ButtonDown(2) And WhereAmI = 2 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
zcomponent = zcomponent + 1
End If
If JoyInfo.ButtonDown(2) And WhereAmI = 0 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
zcomponent = zcomponent - 1
End If
Rem
Rem
Rem end joystick
End Sub
Public Sub EndGame()
'------------------------------------------------------------
' Close everything down.
'------------------------------------------------------------
Dim rc As Long
' Shut down the WaveMix .DLL.
WAVMIX_Close
' Turn off the timer.
Timer1.Enabled = False
' Ready to start again?
btnStart.Caption = "&START"
Me.Refresh
' Wait a couple of seconds
Pause 5
picBackground.Visible = False
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)
'----------------------------------------------------------
' Set the module-level MouseButtonDown variable, so that
' the Mouse Control timer knows a button was pushed.
'----------------------------------------------------------
MouseButtonDown = Button
End Sub
Private Sub Pause(Seconds As Single)
'------------------------------------------------------------
' Delay for a specified number of seconds.
'------------------------------------------------------------
Dim Start As Single
Start = Timer
Do While (Timer - Start) < Seconds
DoEvents
Loop
End Sub
Private Sub StartGame()
'------------------------------------------------------------
' Initialize everything and start the game.
'------------------------------------------------------------
Dim rc As Integer
Dim i As Integer
Static NotFirstTime As Integer
Me.Show
picBackground.Visible = True
ScrollSpeed = 5
Timer1.Enabled = True
End Sub
Private Sub UpdateBackground()
'------------------------------------------------------------
' The first step in building a new view is to copy the
' next section of the original background onto the working
' background picture box.
'------------------------------------------------------------
'Static LastXdir As Integer
'Static LastYdir As Integer
' BGMove picWorkBG, picBGOriginal, LastXdir * 2, LastYdir * 2
BGMove picWorkBG, picBGOriginal, Xdock, Ydock
' End If
End Sub
Private Sub FlickerlessSpriteMove()
'-----------------------------------------------------
' Moving a sprite without flicker requires the use
' of an off-screen work area into which we copy a
' section of the background and sprite.
'-----------------------------------------------------
Dim rc As Integer
WorkWidth = 2090
WorkHeight = 2020
BackgroundX = SpriteX
BackgroundY = SpriteY
' Calculate the next position for the sprite, and any
' necessary direction changes.
GetNextPos picImage.ScaleWidth, picImage.ScaleHeight
' Copy a section of the large bitmap into the work area.
'rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, (BackgroundX + SpriteX) - INCREMENT, (BackgroundY + SpriteY) - INCREMENT, SRCCOPY)
'rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBackground.hDC, (SpriteX), (SpriteY), SRCCOPY)
rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, (SpriteX), (SpriteY), SRCCOPY)
' Draw the mask and sprite bitmaps into the work area.
rc = BitBlt(picWork.hDC, INCREMENT, INCREMENT, picMask.ScaleWidth, picMask.ScaleHeight, picMask.hDC, 0, 0, SRCAND)
rc = BitBlt(picWork.hDC, INCREMENT, INCREMENT, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
'rc = BitBlt(picWork.hDC, 0, 0, picmask.ScaleWidth, picmask.ScaleHeight, picmask.hDC, 0, 0, SRCAND)
'rc = BitBlt(picWork.hDC, 0, 0, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
' Copy the work area onto the background.
' rc = BitBlt(picBackground.hDC, SpriteX - INCREMENT, SpriteY - INCREMENT, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
' rc = BitBlt(picBackground.hDC, 10, 10, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
rc = BitBlt(picBackground.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
DoEvents
End Sub
Private Sub GetNextPos(ByVal AWidth As Integer, ByVal AHeight As Integer)
'-----------------------------------------------------
' Calculate the next position for the sprite, and
' make any necessary direction changes.
'-----------------------------------------------------
xdir = Xdock
ydir = Ydock
' Calculate the new position for the sprite.
SpriteX = SpriteX + (xdir)
SpriteY = SpriteY + (ydir)
End Sub
Public Sub calibrator()
Dim k, rc As Integer
k = 0
DoEvents
Do
rc = GetJoyStickPos(JOYSTICK1, JoyInfo)
If JoyInfo.ButtonDown(1) Then
leftj = JoyInfo.x
topj = JoyInfo.Y
k = 1
End If
Loop While k = 0
textCalibrator.Text = "Move Joystick to Lower Right and Press Button 2"
DoEvents
Do
rc = GetJoyStickPos(JOYSTICK1, JoyInfo)
If JoyInfo.ButtonDown(2) Then
rightj = JoyInfo.x
bottomj = JoyInfo.Y
k = 2
End If
Loop While k = 1
rc = GetJoyStickPos(JOYSTICK1, JoyInfo)
textCalibrator.Text = ""
DoEvents
centerCalibrate.Visible = True
End Sub
DOCKING2.FRM
VERSION 4.00
Begin VB.Form docking
AutoRedraw = -1 'True
Caption = "Docking with the Lunar Module"
ClientHeight = 7185
ClientLeft = 1230
ClientTop = 1695
ClientWidth = 9570
Height = 7590
Left = 1170
LinkTopic = "Form1"
Picture = "DOCKING2.frx":0000
ScaleHeight = 7185
ScaleWidth = 9570
Top = 1350
Width = 9690
Begin VB.CommandButton Command2
BackColor = &H00C0C0C0&
Caption = "REV"
Height = 375
Index = 1
Left = 5415
TabIndex = 21
Top = 6540
Width = 435
End
Begin VB.CommandButton Command2
Caption = "FWD"
Height = 375
Index = 0
Left = 4065
TabIndex = 20
Top = 6525
Width = 435
End
Begin VB.CommandButton starlock
Caption = "LOCK"
Height = 780
Left = 6495
TabIndex = 19
Top = 6180
Width = 2130
End
Begin VB.CommandButton Command1
Caption = "Command1"
Height = 495
Left = 9690
TabIndex = 18
Top = 6690
Width = 1215
End
Begin VB.PictureBox PicSave
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 8565
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 16
Top = 7335
Width = 1755
End
Begin VB.PictureBox PicWork
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 6720
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 15
Top = 7335
Width = 1755
End
Begin VB.PictureBox PicMask
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 5085
Picture = "DOCKING2.frx":4B444
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 100
TabIndex = 14
Top = 7350
Width = 1500
End
Begin VB.PictureBox PicImage
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1410
Left = 3435
Picture = "DOCKING2.frx":4DE08
ScaleHeight = 94
ScaleMode = 3 'Pixel
ScaleWidth = 99
TabIndex = 13
Top = 7335
Width = 1485
End
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 5
Left = 10110
Picture = "DOCKING2.frx":50704
ScaleHeight = 1425
ScaleWidth = 1755
TabIndex = 9
Top = 2385
Width = 1755
End
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 4
Left = 10290
Picture = "DOCKING2.frx":537D0
ScaleHeight = 1425
ScaleWidth = 1755
TabIndex = 8
Top = 1635
Width = 1755
End
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 3
Left = 10335
Picture = "DOCKING2.frx":5689C
ScaleHeight = 1425
ScaleWidth = 1755
TabIndex = 7
Top = 1215
Width = 1755
End
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 2
Left = 9840
Picture = "DOCKING2.frx":59968
ScaleHeight = 1425
ScaleWidth = 1755
TabIndex = 6
Top = 555
Width = 1755
End
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 1
Left = 9975
Picture = "DOCKING2.frx":5CA34
ScaleHeight = 1425
ScaleWidth = 1755
TabIndex = 5
Top = 135
Width = 1755
End
Begin VB.PictureBox picWorkBG
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H00400000&
ForeColor = &H80000008&
Height = 4860
Left = 2775
ScaleHeight = 322
ScaleMode = 3 'Pixel
ScaleWidth = 635
TabIndex = 4
Top = 7440
Width = 9555
End
Begin VB.PictureBox picBGoriginal
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
ForeColor = &H80000008&
Height = 9030
Left = -8415
Picture = "DOCKING2.frx":5FB00
ScaleHeight = 600
ScaleMode = 3 'Pixel
ScaleWidth = 800
TabIndex = 1
Top = 7305
Width = 12030
End
Begin VB.PictureBox picPitMask
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 5205
Left = 9705
Picture = "DOCKING2.frx":D5244
ScaleHeight = 5205
ScaleWidth = 9600
TabIndex = 3
Top = 4155
Width = 9600
End
Begin VB.PictureBox picPitSprite
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 5205
Left = 0
Picture = "DOCKING2.frx":10BA08
ScaleHeight = 347
ScaleMode = 3 'Pixel
ScaleWidth = 640
TabIndex = 2
Top = 60
Width = 9600
End
Begin VB.Timer Timer1
Enabled = 0 'False
Interval = 55
Left = 9960
Top = 5865
End
Begin VB.PictureBox Picture4
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 7200
Left = -75
Picture = "DOCKING2.frx":1421CC
ScaleHeight = 7200
ScaleWidth = 9600
TabIndex = 0
Top = -15
Width = 9600
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 0
Left = 4110
Picture = "DOCKING2.frx":18D610
ScaleHeight = 95
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 10
Top = 5520
Width = 1755
Begin VB.Image auxjoy
Height = 300
Index = 0
Left = 720
Top = 225
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 1
Left = 1035
Top = 555
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 2
Left = 720
Top = 870
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 3
Left = 390
Top = 555
Width = 300
End
End
Begin VB.PictureBox picBackground
Appearance = 0 'Flat
BackColor = &H00000000&
BorderStyle = 0 'None
DragIcon = "DOCKING2.frx":1906DC
ForeColor = &H80000008&
Height = 5205
Left = 75
Picture = "DOCKING2.frx":1909E6
ScaleHeight = 347
ScaleMode = 3 'Pixel
ScaleWidth = 640
TabIndex = 17
Top = 135
Width = 9600
End
Begin VB.Image Image1
Height = 585
Index = 2
Left = 8160
Picture = "DOCKING2.frx":1C71AA
Top = 5535
Width = 870
End
Begin VB.Image Image1
Height = 570
Index = 1
Left = 7305
Picture = "DOCKING2.frx":1C7B86
Top = 5535
Width = 870
End
Begin VB.Image Image1
Height = 585
Index = 0
Left = 6390
Picture = "DOCKING2.frx":1C852A
Top = 5535
Width = 870
End
Begin VB.Label distance
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "1000"
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 400
size = 13.5
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 360
Left = 1410
TabIndex = 12
Top = 6420
Width = 600
End
Begin VB.Label closerate
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "1000"
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 400
size = 13.5
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 360
Left = 1395
TabIndex = 11
Top = 5805
Width = 600
End
End
End
Attribute VB_Name = "docking"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
Option Explicit
' Constant for joystick
Dim JoyInfo As tJoyInfo
Dim RangeWidth As Integer
Dim RangeHeight As Integer
Dim ScrollSpeed As Integer ' The ship's current turning speed
Rem
Dim topj, leftj, rightj, bottomj, centx, centy, leftX, rightX, topY, bottomY As Long
' Constants for mouse action.
Const NO_BUTTON = 0
Const LBUTTON = 1
Const RBUTTON = 2
' Constants for WaveMix channels
Const BACKGROUND = 0
Const MISSION_CONTROL = 1
Const BUTTONS = 2
Const EFFECTS = 3
Const WARNINGS = 4
Const MCSECOND = 5
Const LUPE = 1
Const NO_LUPE = 0
' Boolean that indicates if mouse button has been pressed down.
Dim MouseButtonDown As Integer
'-----------------------------------------------------
' BITDEMO1.FRM
' This program demonstrates some of the methods used
' to display bitmaps and sprites.
'-----------------------------------------------------
' The number of pixels to offset the sprite
' each time it is moved.
Const INCREMENT = 1
' Constants for Raster Operations used by BitBlt function.
Const SRCAND = &H8800C6 ' dest = source AND dest
Const SRCCOPY = &HCC0020 ' dest = source
Const SRCPAINT = &HEE0086 ' dest = source OR dest
'Dim Ship(1 To 4) As tShip
' The x and y coordinates for the Sprite
Dim SpriteX As Integer
Dim SpriteY As Integer
' The x and y coordinates for the upper left corner
' of the large bitmap (picBMP).
Dim BackgroundX As Integer
Dim BackgroundY As Integer
' The width and height of the work area bitmap (picWork).
Dim WorkWidth As Integer
Dim WorkHeight As Integer
Dim ldist As Integer
Dim zcomponent As Integer
Dim s4b(51) As String
Dim s4bmask(51) As String
Dim csmDock(51) As String
Dim csmMask(51) As String
Private Sub JoyControl(Index As Integer)
Dim x As Integer
auxjoy(0).Visible = False
auxjoy(1).Visible = False
auxjoy(2).Visible = False
auxjoy(3).Visible = False
Select Case Index
Case Is = 0
'Ydock = Ydock - 1
auxcon(0).Picture = auxcon(1).Picture
Case Is = 1
'Xdock = Xdock + 1
auxcon(0).Picture = auxcon(2).Picture
Case Is = 2
'Ydock = Ydock + 1
auxcon(0).Picture = auxcon(3).Picture
Case Is = 3
'Xdock = Xdock - 1
auxcon(0).Picture = auxcon(4).Picture
End Select
'x = playSound("rcstrst.wav", 3, 0)
End Sub
Public Function playSound(sname As String, chan As Integer, lp As Integer)
Select Case lp
' don't loop
Case 0
Channel(chan).WaveFile = LCase$(sname)
Channel(chan).Loops = (False)
WAVMIX_SetFile Channel(chan).WaveFile, chan
WAVMIX_PlayChannel chan, Channel(chan).Loops
' loop
Case 1
Channel(chan).WaveFile = LCase$(sname)
Channel(chan).Loops = (True)
WAVMIX_SetFile Channel(chan).WaveFile, chan
WAVMIX_PlayChannel chan, Channel(chan).Loops
' stop loop
Case 2
WAVMIX_StopChannel chan
End Select
End Function
Private Sub auxjoy_Click(Index As Integer)
Dim x As Integer
Dim currpath As String
currpath = cddrive + "\docking\csm4\"
auxjoy(0).Visible = False
auxjoy(1).Visible = False
auxjoy(2).Visible = False
auxjoy(3).Visible = False
Select Case Index
Case Is = 0
Ydock = Ydock - 1
auxcon(0).Picture = auxcon(1).Picture
Case Is = 1
Xdock = Xdock + 1
auxcon(0).Picture = auxcon(2).Picture
Case Is = 2
Ydock = Ydock + 1
auxcon(0).Picture = auxcon(3).Picture
Case Is = 3
Xdock = Xdock - 1
auxcon(0).Picture = auxcon(4).Picture
End Select
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
'x = playSound("rcstrst.wav", 3, 0)
End Sub
Private Sub btnStart_Click()
'------------------------------------------------------------
' Pressing the Start button will either start, pause, or
' resume the game.
'------------------------------------------------------------
Static Paused As Integer
Rem --- set the pallette pref
picBGOriginal.ZOrder 0
Dim rc As Long
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, picSave.ScaleWidth, picSave.ScaleHeight, picSave.hDC, 0, 0, SRCCOPY)
' If the game is curently paused, then resume it.
If Paused Then
Paused = False
'btnStart.Caption = "&PAUSE"
'rc = WaveMixActivate(hWaveMix, True)
Timer1.Enabled = True
'If the game is in progress then pause it.
ElseIf Timer1.Enabled Then
' Paused = True
' btnStart.Caption = "&RESUME"
'rc = WaveMixActivate(hWaveMix, False)
Timer1.Enabled = False
'Otherwise, no game is in progress, so start one.
Else
'btnStart.Caption = "&PAUSE"
StartGame
End If
End Sub
Private Sub cmdExit_Click()
' Shut down the WaveMix .DLL.
WAVMIX_Close
Unload Me
End Sub
Private Sub FOREREV_Click(Index As Integer)
Dim x As Integer
Select Case Index
Case Is = 0
Case Is = 1
End Select
x = playSound("rcstrst.wav", EFFECTS, NO_LUPE)
End Sub
Private Sub centerCalibrate_Click()
Dim tempx, tempy As Long
centx = JoyInfo.x
centy = JoyInfo.Y
' label11.Caption = "Centerx " + centx
' Label12.Caption = "Centery " + centy
leftX = (centx - leftj) / 2
tempx = (rightj - centx) / 2
rightX = rightj - tempx
topY = (centy - topj) / 2
tempy = (bottomj - centy) / 2
bottomY = bottomj - tempy
' Calibrate.Visible = False
End Sub
Private Sub Command2_Click(Index As Integer)
Dim x As Integer
Dim currpath As String
currpath = cddrive + "\docking\csm4\"
Select Case Index
Case Is = 0
Zdock = Zdock - 1
Case Is = 1
Zdock = Zdock + 1
End Select
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
End Sub
Private Sub Form_Load()
Dim rc As Long
'------------------------------------------------------------
' Set up the form when its first loaded.
'------------------------------------------------------------
Rem joyst
'RangeWidth = picBackground.ScaleWidth - imgJoyCursor.Width
'RangeHeight = picBackground.ScaleWidth - imgJoyCursor.Height
Rem
Rem --- set the pallette pref
'picBGOriginal.ZOrder 0
'If MissionState = 2 Then
'picBGOriginal = LoadPicture(cddrive + "\landsite\mountz3.bmp")
' picBGOriginal = LoadPicture(cddrive + "\docking\csm4\strfld2.bmp")
'Else
' picBGOriginal = LoadPicture(cddrive + "\docking\csm4\strfld3.bmp")
'End If
' Hide the scope and background PictureBoxes.
picBackground.Visible = False
'picScope.Visible = False
' Copy the cockpit "sprite" image into the background PictureBox.
picBackground.Picture = picPitSprite.Picture
' Center the form on the screen.
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
MouseButtonDown = NO_BUTTON
Rem --- %%% Initialize WaveMix DLL %%% ---
' If Not WAVMIX_InitMixer() Then
' MsgBox "Unable to Initialize WaveMix DLL"
' End
' End If
Xdock = 0
Ydock = 0
ldist = 45
s4b(1) = cddrive + "\docking\s4b\s4b1.bmp"
s4b(2) = cddrive + "\docking\s4b\s4b2.bmp"
s4b(3) = cddrive + "\docking\s4b\s4b3.bmp"
s4b(4) = cddrive + "\docking\s4b\s4b4.bmp"
s4b(5) = cddrive + "\docking\s4b\s4b5.bmp"
s4b(6) = cddrive + "\docking\s4b\s4b6.bmp"
s4b(7) = cddrive + "\docking\s4b\s4b7.bmp"
s4b(8) = cddrive + "\docking\s4b\s4b8.bmp"
s4b(9) = cddrive + "\docking\s4b\s4b9.bmp"
s4b(10) = cddrive + "\docking\s4b\s4b10.bmp"
s4b(11) = cddrive + "\docking\s4b\s4b11.bmp"
s4b(12) = cddrive + "\docking\s4b\s4b12.bmp"
s4b(13) = cddrive + "\docking\s4b\s4b13.bmp"
s4b(14) = cddrive + "\docking\s4b\s4b14.bmp"
s4b(15) = cddrive + "\docking\s4b\s4b15.bmp"
s4b(16) = cddrive + "\docking\s4b\s4b16.bmp"
s4b(17) = cddrive + "\docking\s4b\s4b17.bmp"
s4b(18) = cddrive + "\docking\s4b\s4b18.bmp"
csmDock(1) = cddrive + "\docking\CSM\csm1.bmp"
csmDock(2) = cddrive + "\docking\CSM\csm2.bmp"
csmDock(3) = cddrive + "\docking\CSM\csm3.bmp"
csmDock(4) = cddrive + "\docking\CSM\csm4.bmp"
csmDock(5) = cddrive + "\docking\CSM\csm5.bmp"
csmDock(6) = cddrive + "\docking\CSM\csm6.bmp"
csmDock(7) = cddrive + "\docking\CSM\csm7.bmp"
csmDock(8) = cddrive + "\docking\CSM\csm8.bmp"
csmDock(9) = cddrive + "\docking\CSM\csm9.bmp"
csmDock(10) = cddrive + "\docking\CSM\csm10.bmp"
csmDock(11) = cddrive + "\docking\CSM\csm11.bmp"
csmDock(12) = cddrive + "\docking\CSM\csm12.bmp"
csmDock(13) = cddrive + "\docking\CSM\csm13.bmp"
csmDock(14) = cddrive + "\docking\CSM\csm14.bmp"
csmDock(15) = cddrive + "\docking\CSM\csm15.bmp"
csmDock(16) = cddrive + "\docking\CSM\csm16.bmp"
csmDock(17) = cddrive + "\docking\CSM\csm17.bmp"
csmDock(18) = cddrive + "\docking\CSM\csm18.bmp"
'***********************************
Rem *************** masks *********
'**********************************
s4bmask(1) = cddrive + "\docking\mask\s4b1m.bmp"
s4bmask(2) = cddrive + "\docking\mask\s4b2m.bmp"
s4bmask(3) = cddrive + "\docking\mask\s4b3m.bmp"
s4bmask(4) = cddrive + "\docking\mask\s4b4m.bmp"
s4bmask(5) = cddrive + "\docking\mask\s4b5m.bmp"
s4bmask(6) = cddrive + "\docking\mask\s4b6m.bmp"
s4bmask(7) = cddrive + "\docking\mask\s4b7m.bmp"
s4bmask(8) = cddrive + "\docking\mask\s4b8m.bmp"
s4bmask(9) = cddrive + "\docking\mask\s4b9m.bmp"
s4bmask(10) = cddrive + "\docking\mask\s4b10m.bmp"
s4bmask(11) = cddrive + "\docking\mask\s4b11m.bmp"
s4bmask(12) = cddrive + "\docking\mask\s4b12m.bmp"
s4bmask(13) = cddrive + "\docking\mask\s4b13m.bmp"
s4bmask(14) = cddrive + "\docking\mask\s4b14m.bmp"
s4bmask(15) = cddrive + "\docking\mask\s4b15m.bmp"
s4bmask(16) = cddrive + "\docking\mask\s4b16m.bmp"
s4bmask(17) = cddrive + "\docking\mask\s4b17m.bmp"
s4bmask(18) = cddrive + "\docking\mask\s4b18m.bmp"
csmMask(1) = cddrive + "\docking\cMask\cMask1.bmp"
csmMask(2) = cddrive + "\docking\cMask\cMask2.bmp"
csmMask(3) = cddrive + "\docking\cMask\cMask3.bmp"
csmMask(4) = cddrive + "\docking\cMask\cMask4.bmp"
csmMask(5) = cddrive + "\docking\cMask\cMask5.bmp"
csmMask(6) = cddrive + "\docking\cMask\cMask6.bmp"
csmMask(7) = cddrive + "\docking\cMask\cMask7.bmp"
csmMask(8) = cddrive + "\docking\cMask\cMask8.bmp"
csmMask(9) = cddrive + "\docking\cMask\cMask9.bmp"
csmMask(10) = cddrive + "\docking\cMask\cMask10.bmp"
csmMask(11) = cddrive + "\docking\cMask\cMask11.bmp"
csmMask(12) = cddrive + "\docking\cMask\cMask12.bmp"
csmMask(13) = cddrive + "\docking\cMask\cMask13.bmp"
csmMask(14) = cddrive + "\docking\cMask\cMask14.bmp"
csmMask(15) = cddrive + "\docking\cMask\cMask15.bmp"
csmMask(16) = cddrive + "\docking\cMask\cMask16.bmp"
csmMask(17) = cddrive + "\docking\cMask\cMask17.bmp"
csmMask(18) = cddrive + "\docking\cMask\cMask18.bmp"
Rem *** check to see if joystick will be used ***
If joystick = 1 Then
'Calibrate.Visible = True
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, picSave.ScaleWidth, picSave.ScaleHeight, picSave.hDC, 0, 0, SRCCOPY)
StartGame
calibrator
Else
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, picSave.ScaleWidth, picSave.ScaleHeight, picSave.hDC, 0, 0, SRCCOPY)
StartGame
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
WAVMIX_Close
Unload Me
End Sub
Private Sub Frame1_DragDrop(Source As Control, x As Single, Y As Single)
End Sub
Private Sub Image1_Click(Index As Integer)
Select Case Index
Case Is = 0 'Csm1
CurrentForm = 1
docking.Hide
Case Is = 1 'Csm2
CurrentForm = 2
docking.Hide
Case Is = 2 'Dock Lock if properly docked
End Select
End Sub
Private Sub SSCommand1_Click(Index As Integer)
Dim x As Integer
Dim currpath As String
currpath = cddrive + "\docking\csm4\"
Select Case Index
Case Is = 0
Zdock = Zdock - 1
Case Is = 1
Zdock = Zdock + 1
End Select
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
'x = playSound("rcstrst.wav", EFFECTS, NO_LUPE)
End Sub
Private Sub Start_Click()
'------------------------------------------------------------
' Pressing the Start button will either start, pause, or
' resume the game.
'------------------------------------------------------------
Static Paused As Integer
Static NotFirstTime As Integer
' Me.Show
' Sprites only need to be initialized the first time
' the game is played.
' If Not NotFirstTime Then
' SpriteInit Ship(1).Sprite, Me, picImage, picmask , picWorkBG, 50
' Ship(1).Visible = 1
' Ship(1).MaxHits = 3
' NotFirstTime = True
' End If
' If the game is curently paused, then resume it.
If Paused Then
Paused = False
'btnStart.Caption = "&PAUSE"
'rc = WaveMixActivate(hWaveMix, True)
Timer1.Enabled = True
'If the game is in progress then pause it.
ElseIf Timer1.Enabled Then
' Paused = True
' btnStart.Caption = "&RESUME"
'rc = WaveMixActivate(hWaveMix, False)
Timer1.Enabled = False
'Otherwise, no game is in progress, so start one.
Else
'btnStart.Caption = "&PAUSE"
End If
End Sub
Private Sub Text1_Change()
End Sub
Private Sub Timer1_Timer()
Static xpos, ypos As Integer
Static passed_s4b, reorient As Integer
Static tempd As Integer
Dim rc As Long
Dim xtoken, ytoken As Integer
'Joystick docking etc.
Static xComponent As Integer
Static yComponent As Integer
Static zcomponent As Integer
Rem joyst
Dim x As Integer
'Dim i As Integer
Dim WhereAmI, whereisX, whereisY, wheretoken As Integer
'lblZ = ldist
Dim currpath As String
currpath = cddrive + "\docking\csm4\"
closerate.Caption = ypos
distance.Caption = xpos
UpdateBackground
'-----------------------------------------------------
' Move the background horizontally under scroller
' control.
'-----------------------------------------------------
If ldist <= 0 Then
passed_s4b = 1
Zdock = -Zdock
reorient = 1
End If
'calculate distance from s4sb
If passed_s4b = 1 Then
Rem hide s4b
End If
ldist = ldist + Zdock
If ldist <= 140 And ldist > 131 Then tempd = 18
If ldist <= 130 And ldist > 121 Then tempd = 17
If ldist <= 120 And ldist > 111 Then tempd = 16
If ldist <= 110 And ldist > 101 Then tempd = 15
If ldist <= 100 And ldist > 91 Then tempd = 14
If ldist <= 90 And ldist > 81 Then tempd = 13
If ldist <= 80 And ldist > 71 Then tempd = 12
If ldist <= 70 And ldist > 61 Then tempd = 11
If ldist <= 60 And ldist > 51 Then tempd = 10
If ldist <= 50 And ldist > 41 Then tempd = 9
If ldist <= 40 And ldist > 31 Then tempd = 8
' If ldist <= 30 And ldist > 21 Then tempd = 7
' If ldist <= 20 And ldist > 10 Then tempd = 6
If ldist <= 1 Then
xtoken = xpos
ytoken = ypos
' Call Check_For_Crash(xtoken, ytoken)
End If
If tempd > 5 And tempd < 19 Then
If MissionState = 3 Then
picImage = LoadPicture(s4b(tempd))
picMask = LoadPicture(s4bmask(tempd))
Else
picImage = LoadPicture(csmDock(tempd))
picMask = LoadPicture(csmMask(tempd))
End If
End If
Rem ********************************************************************************
xpos = xpos - Xdock
ypos = ypos - Ydock
Rem --- if x is off left side ---
If xpos < -picPitSprite.ScaleWidth + picImage.ScaleWidth Then
xpos = 800 - picPitSprite.ScaleWidth + picImage.ScaleWidth
Else 'if off right side
If xpos > 800 - picImage.ScaleWidth Then xpos = 0 - picImage.ScaleWidth
End If
Rem --- if y is off top side ---
If ypos < -picImage.ScaleHeight Then
ypos = 600 - picImage.ScaleHeight
Else 'if off bottom
If ypos > 600 - picImage.ScaleHeight Then ypos = 0 - picImage.ScaleHeight
End If
' Copy a section of the large bitmap into the work area.
rc = BitBlt(picWorkBG.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, 0, 0, SRCCOPY)
' Copy the sprite work area onto the background.
'rc = BitBlt(picBackground.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
rc = BitBlt(picWorkBG.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
' Draw the sprite mask bitmap into the work area.
'*** rc = BitBlt(picWorkBG.hDC, xpos + 80, ypos + 80, picMask.ScaleWidth, picMask.ScaleHeight, picMask.hDC, 0, 0, SRCAND)
'draw sprite into the work area
'*** rc = BitBlt(picWorkBG.hDC, xpos + 80, ypos + 80, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
' Draw the cockpit mask into the work area.
'*** rc = BitBlt(picWorkBG.hDC, 0, 0, picPitMask.Width, picPitMask.Height, picPitMask.hDC, 0, 0, SRCAND)
'draw cockpit
'*** rc = BitBlt(picWorkBG.hDC, 0, 0, picPitMask.Width, picPitMask.Height, picPitSprite.hDC, 0, 0, SRCPAINT)
'FlickerlessSpriteMove
' Draw the whole thing back onto the screen.
rc = BitBlt(picBackground.hDC, 0, 0, picBackground.Width, picBackground.Height, picWorkBG.hDC, 0, 0, SRCCOPY)
auxjoy(0).Visible = True
auxjoy(1).Visible = True
auxjoy(2).Visible = True
auxjoy(3).Visible = True
auxcon(0).Picture = auxcon(5).Picture
Rem
Rem
Rem Joystick
rc = GetJoyStickPos(JOYSTICK1, JoyInfo)
If rc = 0 Then
'imgJoyCursor.Left = RangeWidth * ((JoyInfo.X - JoyCaps.Xmin) / (JoyCaps.Xmax - JoyCaps.Xmin))
'imgJoyCursor.Top = RangeHeight * ((JoyInfo.Y - JoyCaps.Ymin) / (JoyCaps.Ymax - JoyCaps.Ymin))
'-----------------------------------------------------
' Move the background horizontally under scroller
' control.
'-----------------------------------------------------
'BackgroundX = HScroll1
'BackgroundX = HScroll1
' rc = BitBlt(picBackground.hDC, 0, 0, picBackground.ScaleWidth, picBackground.ScaleHeight, landsite.hDC, BackgroundX + xComponent, BackgroundY, SRCCOPY)
'calculate distance from s4sb
ldist = ldist + zcomponent
End If
Rem --- check for left or right
whereisX = 0
If JoyInfo.x < leftX Then
whereisX = -1
Else
If JoyInfo.x > rightX Then
whereisX = 1
End If
End If
Rem --- check for up or down
whereisY = 0
If JoyInfo.Y < topY Then
whereisY = -1
Else
If JoyInfo.Y > bottomY Then
whereisY = 1
End If
End If
wheretoken = whereisX + whereisY
WhereAmI = 4
If wheretoken = 1 Then
If whereisX = 1 Then
WhereAmI = 1
Else
WhereAmI = 2
End If
End If
If wheretoken = -1 Then
If whereisY = -1 Then
WhereAmI = 0
Else
WhereAmI = 3
End If
End If
Command1.Caption = WhereAmI
If WhereAmI <> 4 Then
Call JoyControl((WhereAmI))
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 1 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
Xdock = Xdock + 1
'xComponent = xComponent + 1
Call JoyControl(1)
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 3 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
Xdock = Xdock - 1
'xComponent = xComponent - 1
Call JoyControl(3)
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 2 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
Ydock = Ydock + 1
'yComponent = yComponent + 1
Call JoyControl(2)
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 0 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
Ydock = Ydock - 1
'yComponent = yComponent - 1
Call JoyControl(0)
End If
If JoyInfo.ButtonDown(2) And WhereAmI = 2 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
Zdock = Zdock + 1
End If
If JoyInfo.ButtonDown(2) And WhereAmI = 0 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
Zdock = Zdock - 1
End If
Rem
Rem
Rem end joystick
End Sub
Private Sub Form_MouseDown(BUTTON As Integer, Shift As Integer, x As Single, Y As Single)
'----------------------------------------------------------
' Set the module-level MouseButtonDown variable, so that
' the Mouse Control timer knows a button was pushed.
'----------------------------------------------------------
MouseButtonDown = BUTTON
End Sub
Private Sub Pause(Seconds As Single)
'------------------------------------------------------------
' Delay for a specified number of seconds.
'------------------------------------------------------------
Dim Start As Single
Start = Timer
Do While (Timer - Start) < Seconds
DoEvents
Loop
End Sub
Private Sub StartGame()
'------------------------------------------------------------
' Initialize everything and start the game.
'------------------------------------------------------------
Dim rc As Integer
Dim i As Integer
Static NotFirstTime As Integer
Me.Show
picBackground.Visible = True
ScrollSpeed = 5
Timer1.Enabled = True
End Sub
Private Sub UpdateBackground()
'------------------------------------------------------------
' The first step in building a new view is to copy the
' next section of the original background onto the working
' background picture box.
'------------------------------------------------------------
'Static LastXdir As Integer
'Static LastYdir As Integer
' BGMove picWorkBG, picBGOriginal, LastXdir * 2, LastYdir * 2
BGMove picWorkBG, picBGOriginal, Xdock, Ydock
' End If
End Sub
Private Sub FlickerlessSpriteMove()
'-----------------------------------------------------
' Moving a sprite without flicker requires the use
' of an off-screen work area into which we copy a
' section of the background and sprite.
'-----------------------------------------------------
Dim rc As Integer
WorkWidth = 2090
WorkHeight = 2020
BackgroundX = SpriteX
BackgroundY = SpriteY
' Calculate the next position for the sprite, and any
' necessary direction changes.
GetNextPos picImage.ScaleWidth, picImage.ScaleHeight
' Copy a section of the large bitmap into the work area.
'rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, (BackgroundX + SpriteX) - INCREMENT, (BackgroundY + SpriteY) - INCREMENT, SRCCOPY)
'rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBackground.hDC, (SpriteX), (SpriteY), SRCCOPY)
rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, (SpriteX), (SpriteY), SRCCOPY)
' Draw the mask and sprite bitmaps into the work area.
rc = BitBlt(picWork.hDC, INCREMENT, INCREMENT, picMask.ScaleWidth, picMask.ScaleHeight, picMask.hDC, 0, 0, SRCAND)
rc = BitBlt(picWork.hDC, INCREMENT, INCREMENT, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
'rc = BitBlt(picWork.hDC, 0, 0, picmask.ScaleWidth, picmask.ScaleHeight, picmask.hDC, 0, 0, SRCAND)
'rc = BitBlt(picWork.hDC, 0, 0, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
' Copy the work area onto the background.
' rc = BitBlt(picBackground.hDC, SpriteX - INCREMENT, SpriteY - INCREMENT, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
' rc = BitBlt(picBackground.hDC, 10, 10, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
rc = BitBlt(picBackground.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
DoEvents
End Sub
Private Sub GetNextPos(ByVal AWidth As Integer, ByVal AHeight As Integer)
'-----------------------------------------------------
' Calculate the next position for the sprite, and
' make any necessary direction changes.
'-----------------------------------------------------
Xdir = Xdock
Ydir = Ydock
' Calculate the new position for the sprite.
SpriteX = SpriteX + (Xdir)
SpriteY = SpriteY + (Ydir)
End Sub
Public Sub calibrator()
Dim k, rc As Integer
k = 0
DoEvents
Do
rc = GetJoyStickPos(JOYSTICK1, JoyInfo)
If JoyInfo.ButtonDown(1) Then
leftj = JoyInfo.x
topj = JoyInfo.Y
k = 1
End If
Loop While k = 0
'textCalibrator.Text = "Move Joystick to Lower Right and Press Button 2"
DoEvents
Do
rc = GetJoyStickPos(JOYSTICK1, JoyInfo)
If JoyInfo.ButtonDown(2) Then
rightj = JoyInfo.x
bottomj = JoyInfo.Y
k = 2
End If
Loop While k = 1
rc = GetJoyStickPos(JOYSTICK1, JoyInfo)
' textCalibrator.Text = ""
DoEvents
'centerCalibrate.Visible = True
End Sub
Public Sub Check_For_Crash(xtoken As Integer, ytoken As Integer)
End Sub
DOCKING2.LOG
Line 317: Property DragIcon in picBackground could not be set.
DOCKING3.FRM
VERSION 4.00
Begin VB.Form docking
AutoRedraw = -1 'True
Caption = "Docking with the Lunar Module"
ClientHeight = 7185
ClientLeft = 1230
ClientTop = 1695
ClientWidth = 9570
Height = 7590
Left = 1170
LinkTopic = "Form1"
Picture = "DOCKING3.frx":0000
ScaleHeight = 7185
ScaleWidth = 9570
Top = 1350
Width = 9690
Begin VB.CommandButton Command2
BackColor = &H00C0C0C0&
Caption = "REV"
Height = 375
Index = 1
Left = 5415
TabIndex = 21
Top = 6540
Width = 435
End
Begin VB.CommandButton Command2
Caption = "FWD"
Height = 375
Index = 0
Left = 4065
TabIndex = 20
Top = 6525
Width = 435
End
Begin VB.CommandButton starlock
Caption = "LOCK"
Height = 780
Left = 6495
TabIndex = 19
Top = 6180
Width = 2130
End
Begin VB.CommandButton Command1
Caption = "Command1"
Height = 495
Left = 9690
TabIndex = 18
Top = 6690
Width = 1215
End
Begin VB.PictureBox PicSave
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 8565
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 16
Top = 7335
Width = 1755
End
Begin VB.PictureBox PicWork
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 6720
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 15
Top = 7335
Width = 1755
End
Begin VB.PictureBox PicMask
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 5085
Picture = "DOCKING3.frx":4B444
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 100
TabIndex = 14
Top = 7350
Width = 1500
End
Begin VB.PictureBox PicImage
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1410
Left = 3435
Picture = "DOCKING3.frx":4DE08
ScaleHeight = 94
ScaleMode = 3 'Pixel
ScaleWidth = 99
TabIndex = 13
Top = 7335
Width = 1485
End
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 5
Left = 10110
Picture = "DOCKING3.frx":50704
ScaleHeight = 1425
ScaleWidth = 1755
TabIndex = 9
Top = 2385
Width = 1755
End
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 4
Left = 10290
Picture = "DOCKING3.frx":537D0
ScaleHeight = 1425
ScaleWidth = 1755
TabIndex = 8
Top = 1635
Width = 1755
End
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 3
Left = 10335
Picture = "DOCKING3.frx":5689C
ScaleHeight = 1425
ScaleWidth = 1755
TabIndex = 7
Top = 1215
Width = 1755
End
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 2
Left = 9840
Picture = "DOCKING3.frx":59968
ScaleHeight = 1425
ScaleWidth = 1755
TabIndex = 6
Top = 555
Width = 1755
End
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 1
Left = 9975
Picture = "DOCKING3.frx":5CA34
ScaleHeight = 1425
ScaleWidth = 1755
TabIndex = 5
Top = 135
Width = 1755
End
Begin VB.PictureBox picWorkBG
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H00400000&
ForeColor = &H80000008&
Height = 4860
Left = 2775
ScaleHeight = 322
ScaleMode = 3 'Pixel
ScaleWidth = 635
TabIndex = 4
Top = 7440
Width = 9555
End
Begin VB.PictureBox picBGoriginal
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
ForeColor = &H80000008&
Height = 9030
Left = -8415
Picture = "DOCKING3.frx":5FB00
ScaleHeight = 600
ScaleMode = 3 'Pixel
ScaleWidth = 800
TabIndex = 1
Top = 7305
Width = 12030
End
Begin VB.PictureBox picPitMask
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 5205
Left = 9705
Picture = "DOCKING3.frx":D5244
ScaleHeight = 5205
ScaleWidth = 9600
TabIndex = 3
Top = 4155
Width = 9600
End
Begin VB.PictureBox picPitSprite
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 5205
Left = 0
Picture = "DOCKING3.frx":10BA08
ScaleHeight = 347
ScaleMode = 3 'Pixel
ScaleWidth = 640
TabIndex = 2
Top = 60
Width = 9600
End
Begin VB.Timer Timer1
Enabled = 0 'False
Interval = 55
Left = 9960
Top = 5865
End
Begin VB.PictureBox Picture4
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 7200
Left = -75
Picture = "DOCKING3.frx":1421CC
ScaleHeight = 7200
ScaleWidth = 9600
TabIndex = 0
Top = -15
Width = 9600
Begin VB.PictureBox auxcon
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1425
Index = 0
Left = 4110
Picture = "DOCKING3.frx":18D610
ScaleHeight = 95
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 10
Top = 5520
Width = 1755
Begin VB.Image auxjoy
Height = 300
Index = 0
Left = 720
Top = 225
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 1
Left = 1035
Top = 555
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 2
Left = 720
Top = 870
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 3
Left = 390
Top = 555
Width = 300
End
End
Begin VB.PictureBox picBackground
Appearance = 0 'Flat
BackColor = &H00000000&
BorderStyle = 0 'None
DragIcon = "DOCKING3.frx":1906DC
ForeColor = &H80000008&
Height = 5205
Left = 75
Picture = "DOCKING3.frx":1909E6
ScaleHeight = 347
ScaleMode = 3 'Pixel
ScaleWidth = 640
TabIndex = 17
Top = 135
Width = 9600
End
Begin VB.Image Image1
Height = 585
Index = 2
Left = 8160
Picture = "DOCKING3.frx":1C71AA
Top = 5535
Width = 870
End
Begin VB.Image Image1
Height = 570
Index = 1
Left = 7305
Picture = "DOCKING3.frx":1C7B86
Top = 5535
Width = 870
End
Begin VB.Image Image1
Height = 585
Index = 0
Left = 6390
Picture = "DOCKING3.frx":1C852A
Top = 5535
Width = 870
End
Begin VB.Label distance
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "1000"
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 400
size = 13.5
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 360
Left = 1410
TabIndex = 12
Top = 6420
Width = 600
End
Begin VB.Label closerate
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "1000"
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 400
size = 13.5
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 360
Left = 1395
TabIndex = 11
Top = 5805
Width = 600
End
End
End
Attribute VB_Name = "docking"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
Option Explicit
' Constant for joystick
Dim JoyInfo As tJoyInfo
Dim RangeWidth As Integer
Dim RangeHeight As Integer
Dim ScrollSpeed As Integer ' The ship's current turning speed
Rem
Dim topj, leftj, rightj, bottomj, centx, centy, leftX, rightX, topY, bottomY As Long
' Constants for mouse action.
Const NO_BUTTON = 0
Const LBUTTON = 1
Const RBUTTON = 2
' Constants for WaveMix channels
Const BACKGROUND = 0
Const MISSION_CONTROL = 1
Const BUTTONS = 2
Const EFFECTS = 3
Const WARNINGS = 4
Const MCSECOND = 5
Const LUPE = 1
Const NO_LUPE = 0
' Boolean that indicates if mouse button has been pressed down.
Dim MouseButtonDown As Integer
'-----------------------------------------------------
' BITDEMO1.FRM
' This program demonstrates some of the methods used
' to display bitmaps and sprites.
'-----------------------------------------------------
' The number of pixels to offset the sprite
' each time it is moved.
Const INCREMENT = 1
' Constants for Raster Operations used by BitBlt function.
Const SRCAND = &H8800C6 ' dest = source AND dest
Const SRCCOPY = &HCC0020 ' dest = source
Const SRCPAINT = &HEE0086 ' dest = source OR dest
'Dim Ship(1 To 4) As tShip
' The x and y coordinates for the Sprite
Dim SpriteX As Integer
Dim SpriteY As Integer
' The x and y coordinates for the upper left corner
' of the large bitmap (picBMP).
Dim BackgroundX As Integer
Dim BackgroundY As Integer
' The width and height of the work area bitmap (picWork).
Dim WorkWidth As Integer
Dim WorkHeight As Integer
Dim ldist As Integer
Dim zcomponent As Integer
Dim s4b(51) As String
Dim s4bmask(51) As String
Dim csmDock(51) As String
Dim csmMask(51) As String
Private Sub JoyControl(Index As Integer)
Dim x As Integer
auxjoy(0).Visible = False
auxjoy(1).Visible = False
auxjoy(2).Visible = False
auxjoy(3).Visible = False
Select Case Index
Case Is = 0
'Ydock = Ydock - 1
auxcon(0).Picture = auxcon(1).Picture
Case Is = 1
'Xdock = Xdock + 1
auxcon(0).Picture = auxcon(2).Picture
Case Is = 2
'Ydock = Ydock + 1
auxcon(0).Picture = auxcon(3).Picture
Case Is = 3
'Xdock = Xdock - 1
auxcon(0).Picture = auxcon(4).Picture
End Select
'x = playSound("rcstrst.wav", 3, 0)
End Sub
Public Function playSound(sname As String, chan As Integer, lp As Integer)
Select Case lp
' don't loop
Case 0
Channel(chan).WaveFile = LCase$(sname)
Channel(chan).Loops = (False)
WAVMIX_SetFile Channel(chan).WaveFile, chan
WAVMIX_PlayChannel chan, Channel(chan).Loops
' loop
Case 1
Channel(chan).WaveFile = LCase$(sname)
Channel(chan).Loops = (True)
WAVMIX_SetFile Channel(chan).WaveFile, chan
WAVMIX_PlayChannel chan, Channel(chan).Loops
' stop loop
Case 2
WAVMIX_StopChannel chan
End Select
End Function
Private Sub auxjoy_Click(Index As Integer)
Dim x As Integer
Dim currpath As String
currpath = cddrive + "\docking\csm4\"
auxjoy(0).Visible = False
auxjoy(1).Visible = False
auxjoy(2).Visible = False
auxjoy(3).Visible = False
Select Case Index
Case Is = 0
Ydock = Ydock - 1
auxcon(0).Picture = auxcon(1).Picture
Case Is = 1
Xdock = Xdock + 1
auxcon(0).Picture = auxcon(2).Picture
Case Is = 2
Ydock = Ydock + 1
auxcon(0).Picture = auxcon(3).Picture
Case Is = 3
Xdock = Xdock - 1
auxcon(0).Picture = auxcon(4).Picture
End Select
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
'x = playSound("rcstrst.wav", 3, 0)
End Sub
Private Sub btnStart_Click()
'------------------------------------------------------------
' Pressing the Start button will either start, pause, or
' resume the game.
'------------------------------------------------------------
Static Paused As Integer
Rem --- set the pallette pref
picBGOriginal.ZOrder 0
Dim rc As Long
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, picSave.ScaleWidth, picSave.ScaleHeight, picSave.hDC, 0, 0, SRCCOPY)
' If the game is curently paused, then resume it.
If Paused Then
Paused = False
'btnStart.Caption = "&PAUSE"
'rc = WaveMixActivate(hWaveMix, True)
Timer1.Enabled = True
'If the game is in progress then pause it.
ElseIf Timer1.Enabled Then
' Paused = True
' btnStart.Caption = "&RESUME"
'rc = WaveMixActivate(hWaveMix, False)
Timer1.Enabled = False
'Otherwise, no game is in progress, so start one.
Else
'btnStart.Caption = "&PAUSE"
StartGame
End If
End Sub
Private Sub cmdExit_Click()
' Shut down the WaveMix .DLL.
WAVMIX_Close
Unload Me
End Sub
Private Sub FOREREV_Click(Index As Integer)
Dim x As Integer
Select Case Index
Case Is = 0
Case Is = 1
End Select
x = playSound("rcstrst.wav", EFFECTS, NO_LUPE)
End Sub
Private Sub centerCalibrate_Click()
Dim tempx, tempy As Long
centx = JoyInfo.x
centy = JoyInfo.Y
' label11.Caption = "Centerx " + centx
' Label12.Caption = "Centery " + centy
leftX = (centx - leftj) / 2
tempx = (rightj - centx) / 2
rightX = rightj - tempx
topY = (centy - topj) / 2
tempy = (bottomj - centy) / 2
bottomY = bottomj - tempy
' Calibrate.Visible = False
End Sub
Private Sub Command2_Click(Index As Integer)
Dim x As Integer
Dim currpath As String
currpath = cddrive + "\docking\csm4\"
Select Case Index
Case Is = 0
Zdock = Zdock - 1
Case Is = 1
Zdock = Zdock + 1
End Select
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
End Sub
Private Sub Form_Load()
Dim rc As Long
'------------------------------------------------------------
' Set up the form when its first loaded.
'------------------------------------------------------------
Rem joyst
'RangeWidth = picBackground.ScaleWidth - imgJoyCursor.Width
'RangeHeight = picBackground.ScaleWidth - imgJoyCursor.Height
Rem
Rem --- set the pallette pref
'picBGOriginal.ZOrder 0
'If MissionState = 2 Then
'picBGOriginal = LoadPicture(cddrive + "\landsite\mountz3.bmp")
' picBGOriginal = LoadPicture(cddrive + "\docking\csm4\strfld2.bmp")
'Else
' picBGOriginal = LoadPicture(cddrive + "\docking\csm4\strfld3.bmp")
'End If
' Hide the scope and background PictureBoxes.
picBackground.Visible = False
'picScope.Visible = False
' Copy the cockpit "sprite" image into the background PictureBox.
picBackground.Picture = picPitSprite.Picture
' Center the form on the screen.
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
MouseButtonDown = NO_BUTTON
Rem --- %%% Initialize WaveMix DLL %%% ---
' If Not WAVMIX_InitMixer() Then
' MsgBox "Unable to Initialize WaveMix DLL"
' End
' End If
Xdock = 0
Ydock = 0
ldist = 45
s4b(1) = cddrive + "\docking\s4b\s4b1.bmp"
s4b(2) = cddrive + "\docking\s4b\s4b2.bmp"
s4b(3) = cddrive + "\docking\s4b\s4b3.bmp"
s4b(4) = cddrive + "\docking\s4b\s4b4.bmp"
s4b(5) = cddrive + "\docking\s4b\s4b5.bmp"
s4b(6) = cddrive + "\docking\s4b\s4b6.bmp"
s4b(7) = cddrive + "\docking\s4b\s4b7.bmp"
s4b(8) = cddrive + "\docking\s4b\s4b8.bmp"
s4b(9) = cddrive + "\docking\s4b\s4b9.bmp"
s4b(10) = cddrive + "\docking\s4b\s4b10.bmp"
s4b(11) = cddrive + "\docking\s4b\s4b11.bmp"
s4b(12) = cddrive + "\docking\s4b\s4b12.bmp"
s4b(13) = cddrive + "\docking\s4b\s4b13.bmp"
s4b(14) = cddrive + "\docking\s4b\s4b14.bmp"
s4b(15) = cddrive + "\docking\s4b\s4b15.bmp"
s4b(16) = cddrive + "\docking\s4b\s4b16.bmp"
s4b(17) = cddrive + "\docking\s4b\s4b17.bmp"
s4b(18) = cddrive + "\docking\s4b\s4b18.bmp"
csmDock(1) = cddrive + "\docking\CSM\csm1.bmp"
csmDock(2) = cddrive + "\docking\CSM\csm2.bmp"
csmDock(3) = cddrive + "\docking\CSM\csm3.bmp"
csmDock(4) = cddrive + "\docking\CSM\csm4.bmp"
csmDock(5) = cddrive + "\docking\CSM\csm5.bmp"
csmDock(6) = cddrive + "\docking\CSM\csm6.bmp"
csmDock(7) = cddrive + "\docking\CSM\csm7.bmp"
csmDock(8) = cddrive + "\docking\CSM\csm8.bmp"
csmDock(9) = cddrive + "\docking\CSM\csm9.bmp"
csmDock(10) = cddrive + "\docking\CSM\csm10.bmp"
csmDock(11) = cddrive + "\docking\CSM\csm11.bmp"
csmDock(12) = cddrive + "\docking\CSM\csm12.bmp"
csmDock(13) = cddrive + "\docking\CSM\csm13.bmp"
csmDock(14) = cddrive + "\docking\CSM\csm14.bmp"
csmDock(15) = cddrive + "\docking\CSM\csm15.bmp"
csmDock(16) = cddrive + "\docking\CSM\csm16.bmp"
csmDock(17) = cddrive + "\docking\CSM\csm17.bmp"
csmDock(18) = cddrive + "\docking\CSM\csm18.bmp"
'***********************************
Rem *************** masks *********
'**********************************
s4bmask(1) = cddrive + "\docking\mask\s4b1m.bmp"
s4bmask(2) = cddrive + "\docking\mask\s4b2m.bmp"
s4bmask(3) = cddrive + "\docking\mask\s4b3m.bmp"
s4bmask(4) = cddrive + "\docking\mask\s4b4m.bmp"
s4bmask(5) = cddrive + "\docking\mask\s4b5m.bmp"
s4bmask(6) = cddrive + "\docking\mask\s4b6m.bmp"
s4bmask(7) = cddrive + "\docking\mask\s4b7m.bmp"
s4bmask(8) = cddrive + "\docking\mask\s4b8m.bmp"
s4bmask(9) = cddrive + "\docking\mask\s4b9m.bmp"
s4bmask(10) = cddrive + "\docking\mask\s4b10m.bmp"
s4bmask(11) = cddrive + "\docking\mask\s4b11m.bmp"
s4bmask(12) = cddrive + "\docking\mask\s4b12m.bmp"
s4bmask(13) = cddrive + "\docking\mask\s4b13m.bmp"
s4bmask(14) = cddrive + "\docking\mask\s4b14m.bmp"
s4bmask(15) = cddrive + "\docking\mask\s4b15m.bmp"
s4bmask(16) = cddrive + "\docking\mask\s4b16m.bmp"
s4bmask(17) = cddrive + "\docking\mask\s4b17m.bmp"
s4bmask(18) = cddrive + "\docking\mask\s4b18m.bmp"
csmMask(1) = cddrive + "\docking\cMask\cMask1.bmp"
csmMask(2) = cddrive + "\docking\cMask\cMask2.bmp"
csmMask(3) = cddrive + "\docking\cMask\cMask3.bmp"
csmMask(4) = cddrive + "\docking\cMask\cMask4.bmp"
csmMask(5) = cddrive + "\docking\cMask\cMask5.bmp"
csmMask(6) = cddrive + "\docking\cMask\cMask6.bmp"
csmMask(7) = cddrive + "\docking\cMask\cMask7.bmp"
csmMask(8) = cddrive + "\docking\cMask\cMask8.bmp"
csmMask(9) = cddrive + "\docking\cMask\cMask9.bmp"
csmMask(10) = cddrive + "\docking\cMask\cMask10.bmp"
csmMask(11) = cddrive + "\docking\cMask\cMask11.bmp"
csmMask(12) = cddrive + "\docking\cMask\cMask12.bmp"
csmMask(13) = cddrive + "\docking\cMask\cMask13.bmp"
csmMask(14) = cddrive + "\docking\cMask\cMask14.bmp"
csmMask(15) = cddrive + "\docking\cMask\cMask15.bmp"
csmMask(16) = cddrive + "\docking\cMask\cMask16.bmp"
csmMask(17) = cddrive + "\docking\cMask\cMask17.bmp"
csmMask(18) = cddrive + "\docking\cMask\cMask18.bmp"
Rem *** check to see if joystick will be used ***
If joystick = 1 Then
'Calibrate.Visible = True
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, picSave.ScaleWidth, picSave.ScaleHeight, picSave.hDC, 0, 0, SRCCOPY)
StartGame
calibrator
Else
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, picSave.ScaleWidth, picSave.ScaleHeight, picSave.hDC, 0, 0, SRCCOPY)
StartGame
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
WAVMIX_Close
Unload Me
End Sub
Private Sub Frame1_DragDrop(Source As Control, x As Single, Y As Single)
End Sub
Private Sub Image1_Click(Index As Integer)
Select Case Index
Case Is = 0 'Csm1
CurrentForm = 1
docking.Hide
Case Is = 1 'Csm2
CurrentForm = 2
docking.Hide
Case Is = 2 'Dock Lock if properly docked
End Select
End Sub
Private Sub SSCommand1_Click(Index As Integer)
Dim x As Integer
Dim currpath As String
currpath = cddrive + "\docking\csm4\"
Select Case Index
Case Is = 0
Zdock = Zdock - 1
Case Is = 1
Zdock = Zdock + 1
End Select
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
'x = playSound("rcstrst.wav", EFFECTS, NO_LUPE)
End Sub
Private Sub Start_Click()
'------------------------------------------------------------
' Pressing the Start button will either start, pause, or
' resume the game.
'------------------------------------------------------------
Static Paused As Integer
Static NotFirstTime As Integer
' Me.Show
' Sprites only need to be initialized the first time
' the game is played.
' If Not NotFirstTime Then
' SpriteInit Ship(1).Sprite, Me, picImage, picmask , picWorkBG, 50
' Ship(1).Visible = 1
' Ship(1).MaxHits = 3
' NotFirstTime = True
' End If
' If the game is curently paused, then resume it.
If Paused Then
Paused = False
'btnStart.Caption = "&PAUSE"
'rc = WaveMixActivate(hWaveMix, True)
Timer1.Enabled = True
'If the game is in progress then pause it.
ElseIf Timer1.Enabled Then
' Paused = True
' btnStart.Caption = "&RESUME"
'rc = WaveMixActivate(hWaveMix, False)
Timer1.Enabled = False
'Otherwise, no game is in progress, so start one.
Else
'btnStart.Caption = "&PAUSE"
End If
End Sub
Private Sub Text1_Change()
End Sub
Private Sub Timer1_Timer()
Static xpos, ypos As Integer
Static passed_s4b, reorient As Integer
Static tempd As Integer
Dim rc As Long
Dim xtoken, ytoken As Integer
'Joystick docking etc.
Static xComponent As Integer
Static yComponent As Integer
Static zcomponent As Integer
Rem joyst
Dim x As Integer
'Dim i As Integer
Dim WhereAmI, whereisX, whereisY, wheretoken As Integer
'lblZ = ldist
Dim currpath As String
currpath = cddrive + "\docking\csm4\"
closerate.Caption = ypos
distance.Caption = xpos
UpdateBackground
'-----------------------------------------------------
' Move the background horizontally under scroller
' control.
'-----------------------------------------------------
If ldist <= 0 Then
passed_s4b = 1
Zdock = -Zdock
reorient = 1
End If
'calculate distance from s4sb
If passed_s4b = 1 Then
Rem hide s4b
End If
ldist = ldist + Zdock
If ldist <= 140 And ldist > 131 Then tempd = 18
If ldist <= 130 And ldist > 121 Then tempd = 17
If ldist <= 120 And ldist > 111 Then tempd = 16
If ldist <= 110 And ldist > 101 Then tempd = 15
If ldist <= 100 And ldist > 91 Then tempd = 14
If ldist <= 90 And ldist > 81 Then tempd = 13
If ldist <= 80 And ldist > 71 Then tempd = 12
If ldist <= 70 And ldist > 61 Then tempd = 11
If ldist <= 60 And ldist > 51 Then tempd = 10
If ldist <= 50 And ldist > 41 Then tempd = 9
If ldist <= 40 And ldist > 31 Then tempd = 8
' If ldist <= 30 And ldist > 21 Then tempd = 7
' If ldist <= 20 And ldist > 10 Then tempd = 6
If ldist <= 1 Then
xtoken = xpos
ytoken = ypos
' Call Check_For_Crash(xtoken, ytoken)
End If
If tempd > 5 And tempd < 19 Then
If MissionState = 3 Then
picImage = LoadPicture(s4b(tempd))
picMask = LoadPicture(s4bmask(tempd))
Else
picImage = LoadPicture(csmDock(tempd))
picMask = LoadPicture(csmMask(tempd))
End If
End If
Rem ********************************************************************************
xpos = xpos - Xdock
ypos = ypos - Ydock
Rem --- if x is off left side ---
If xpos < -picPitSprite.ScaleWidth + picImage.ScaleWidth Then
xpos = 800 - picPitSprite.ScaleWidth + picImage.ScaleWidth
Else 'if off right side
If xpos > 800 - picImage.ScaleWidth Then xpos = 0 - picImage.ScaleWidth
End If
Rem --- if y is off top side ---
If ypos < -picImage.ScaleHeight Then
ypos = 600 - picImage.ScaleHeight
Else 'if off bottom
If ypos > 600 - picImage.ScaleHeight Then ypos = 0 - picImage.ScaleHeight
End If
' Copy a section of the large bitmap into the work area.
rc = BitBlt(picWorkBG.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, 0, 0, SRCCOPY)
' Copy the sprite work area onto the background.
'rc = BitBlt(picBackground.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
rc = BitBlt(picWorkBG.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
' Draw the sprite mask bitmap into the work area.
'*** rc = BitBlt(picWorkBG.hDC, xpos + 80, ypos + 80, picMask.ScaleWidth, picMask.ScaleHeight, picMask.hDC, 0, 0, SRCAND)
'draw sprite into the work area
'*** rc = BitBlt(picWorkBG.hDC, xpos + 80, ypos + 80, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
' Draw the cockpit mask into the work area.
'*** rc = BitBlt(picWorkBG.hDC, 0, 0, picPitMask.Width, picPitMask.Height, picPitMask.hDC, 0, 0, SRCAND)
'draw cockpit
'*** rc = BitBlt(picWorkBG.hDC, 0, 0, picPitMask.Width, picPitMask.Height, picPitSprite.hDC, 0, 0, SRCPAINT)
'FlickerlessSpriteMove
' Draw the whole thing back onto the screen.
rc = BitBlt(picBackground.hDC, 0, 0, picBackground.Width, picBackground.Height, picWorkBG.hDC, 0, 0, SRCCOPY)
auxjoy(0).Visible = True
auxjoy(1).Visible = True
auxjoy(2).Visible = True
auxjoy(3).Visible = True
auxcon(0).Picture = auxcon(5).Picture
Rem
Rem
Rem Joystick
rc = GetJoyStickPos(JOYSTICK1, JoyInfo)
If rc = 0 Then
'imgJoyCursor.Left = RangeWidth * ((JoyInfo.X - JoyCaps.Xmin) / (JoyCaps.Xmax - JoyCaps.Xmin))
'imgJoyCursor.Top = RangeHeight * ((JoyInfo.Y - JoyCaps.Ymin) / (JoyCaps.Ymax - JoyCaps.Ymin))
'-----------------------------------------------------
' Move the background horizontally under scroller
' control.
'-----------------------------------------------------
'BackgroundX = HScroll1
'BackgroundX = HScroll1
' rc = BitBlt(picBackground.hDC, 0, 0, picBackground.ScaleWidth, picBackground.ScaleHeight, landsite.hDC, BackgroundX + xComponent, BackgroundY, SRCCOPY)
'calculate distance from s4sb
ldist = ldist + zcomponent
End If
Rem --- check for left or right
whereisX = 0
If JoyInfo.x < leftX Then
whereisX = -1
Else
If JoyInfo.x > rightX Then
whereisX = 1
End If
End If
Rem --- check for up or down
whereisY = 0
If JoyInfo.Y < topY Then
whereisY = -1
Else
If JoyInfo.Y > bottomY Then
whereisY = 1
End If
End If
wheretoken = whereisX + whereisY
WhereAmI = 4
If wheretoken = 1 Then
If whereisX = 1 Then
WhereAmI = 1
Else
WhereAmI = 2
End If
End If
If wheretoken = -1 Then
If whereisY = -1 Then
WhereAmI = 0
Else
WhereAmI = 3
End If
End If
Command1.Caption = WhereAmI
If WhereAmI <> 4 Then
Call JoyControl((WhereAmI))
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 1 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
Xdock = Xdock + 1
'xComponent = xComponent + 1
Call JoyControl(1)
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 3 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
Xdock = Xdock - 1
'xComponent = xComponent - 1
Call JoyControl(3)
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 2 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
Ydock = Ydock + 1
'yComponent = yComponent + 1
Call JoyControl(2)
End If
If JoyInfo.ButtonDown(1) And WhereAmI = 0 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
Ydock = Ydock - 1
'yComponent = yComponent - 1
Call JoyControl(0)
End If
If JoyInfo.ButtonDown(2) And WhereAmI = 2 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
Zdock = Zdock + 1
End If
If JoyInfo.ButtonDown(2) And WhereAmI = 0 Then
x = playSound(currpath + "rcstrst.wav", EFFECTS, NO_LUPE)
Zdock = Zdock - 1
End If
Rem
Rem
Rem end joystick
End Sub
Private Sub Form_MouseDown(BUTTON As Integer, Shift As Integer, x As Single, Y As Single)
'----------------------------------------------------------
' Set the module-level MouseButtonDown variable, so that
' the Mouse Control timer knows a button was pushed.
'----------------------------------------------------------
MouseButtonDown = BUTTON
End Sub
Private Sub Pause(Seconds As Single)
'------------------------------------------------------------
' Delay for a specified number of seconds.
'------------------------------------------------------------
Dim Start As Single
Start = Timer
Do While (Timer - Start) < Seconds
DoEvents
Loop
End Sub
Private Sub StartGame()
'------------------------------------------------------------
' Initialize everything and start the game.
'------------------------------------------------------------
Dim rc As Integer
Dim i As Integer
Static NotFirstTime As Integer
Me.Show
picBackground.Visible = True
ScrollSpeed = 5
Timer1.Enabled = True
End Sub
Private Sub UpdateBackground()
'------------------------------------------------------------
' The first step in building a new view is to copy the
' next section of the original background onto the working
' background picture box.
'------------------------------------------------------------
'Static LastXdir As Integer
'Static LastYdir As Integer
' BGMove picWorkBG, picBGOriginal, LastXdir * 2, LastYdir * 2
BGMove picWorkBG, picBGOriginal, Xdock, Ydock
' End If
End Sub
Private Sub FlickerlessSpriteMove()
'-----------------------------------------------------
' Moving a sprite without flicker requires the use
' of an off-screen work area into which we copy a
' section of the background and sprite.
'-----------------------------------------------------
Dim rc As Integer
WorkWidth = 2090
WorkHeight = 2020
BackgroundX = SpriteX
BackgroundY = SpriteY
' Calculate the next position for the sprite, and any
' necessary direction changes.
GetNextPos picImage.ScaleWidth, picImage.ScaleHeight
' Copy a section of the large bitmap into the work area.
'rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, (BackgroundX + SpriteX) - INCREMENT, (BackgroundY + SpriteY) - INCREMENT, SRCCOPY)
'rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBackground.hDC, (SpriteX), (SpriteY), SRCCOPY)
rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, (SpriteX), (SpriteY), SRCCOPY)
' Draw the mask and sprite bitmaps into the work area.
rc = BitBlt(picWork.hDC, INCREMENT, INCREMENT, picMask.ScaleWidth, picMask.ScaleHeight, picMask.hDC, 0, 0, SRCAND)
rc = BitBlt(picWork.hDC, INCREMENT, INCREMENT, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
'rc = BitBlt(picWork.hDC, 0, 0, picmask.ScaleWidth, picmask.ScaleHeight, picmask.hDC, 0, 0, SRCAND)
'rc = BitBlt(picWork.hDC, 0, 0, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
' Copy the work area onto the background.
' rc = BitBlt(picBackground.hDC, SpriteX - INCREMENT, SpriteY - INCREMENT, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
' rc = BitBlt(picBackground.hDC, 10, 10, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
rc = BitBlt(picBackground.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
DoEvents
End Sub
Private Sub GetNextPos(ByVal AWidth As Integer, ByVal AHeight As Integer)
'-----------------------------------------------------
' Calculate the next position for the sprite, and
' make any necessary direction changes.
'-----------------------------------------------------
Xdir = Xdock
Ydir = Ydock
' Calculate the new position for the sprite.
SpriteX = SpriteX + (Xdir)
SpriteY = SpriteY + (Ydir)
End Sub
Public Sub calibrator()
Dim k, rc As Integer
k = 0
DoEvents
Do
rc = GetJoyStickPos(JOYSTICK1, JoyInfo)
If JoyInfo.ButtonDown(1) Then
leftj = JoyInfo.x
topj = JoyInfo.Y
k = 1
End If
Loop While k = 0
'textCalibrator.Text = "Move Joystick to Lower Right and Press Button 2"
DoEvents
Do
rc = GetJoyStickPos(JOYSTICK1, JoyInfo)
If JoyInfo.ButtonDown(2) Then
rightj = JoyInfo.x
bottomj = JoyInfo.Y
k = 2
End If
Loop While k = 1
rc = GetJoyStickPos(JOYSTICK1, JoyInfo)
' textCalibrator.Text = ""
DoEvents
'centerCalibrate.Visible = True
End Sub
Public Sub Check_For_Crash(xtoken As Integer, ytoken As Integer)
End Sub
\LANDING
\LM4
DOCKING.FRM
VERSION 4.00
Begin VB.Form docking
Caption = "Docking with the Lunar Module"
ClientHeight = 6030
ClientLeft = 1275
ClientTop = 1515
ClientWidth = 6720
Height = 6435
Left = 1215
LinkTopic = "Form1"
ScaleHeight = 6030
ScaleWidth = 6720
Top = 1170
Width = 6840
Begin VB.PictureBox PicSave
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 8625
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 100
TabIndex = 21
Top = 7305
Width = 1500
End
Begin VB.PictureBox PicWork
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 6975
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 100
TabIndex = 20
Top = 7275
Width = 1500
End
Begin VB.PictureBox PicMask
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 2505
Left = 2460
Picture = "DOCKING.frx":0000
ScaleHeight = 167
ScaleMode = 3 'Pixel
ScaleWidth = 195
TabIndex = 19
Top = 7530
Width = 2925
End
Begin VB.PictureBox PicImage
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 2520
Left = 5295
Picture = "DOCKING.frx":8028
ScaleHeight = 168
ScaleMode = 3 'Pixel
ScaleWidth = 196
TabIndex = 18
Top = 7230
Width = 2940
End
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1440
Index = 5
Left = 11295
Picture = "DOCKING.frx":101E8
ScaleHeight = 1440
ScaleWidth = 1755
TabIndex = 10
Top = 2115
Width = 1755
End
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1440
Index = 4
Left = 11010
Picture = "DOCKING.frx":12FB4
ScaleHeight = 1440
ScaleWidth = 1755
TabIndex = 9
Top = 1755
Width = 1755
End
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1440
Index = 3
Left = 10785
Picture = "DOCKING.frx":15D84
ScaleHeight = 1440
ScaleWidth = 1755
TabIndex = 8
Top = 1530
Width = 1755
End
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1440
Index = 2
Left = 10590
Picture = "DOCKING.frx":18B54
ScaleHeight = 1440
ScaleWidth = 1755
TabIndex = 7
Top = 1290
Width = 1755
End
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1440
Index = 1
Left = 10440
Picture = "DOCKING.frx":1B924
ScaleHeight = 1440
ScaleWidth = 1755
TabIndex = 6
Top = 1005
Width = 1755
End
Begin VB.PictureBox picWorkBG
Appearance = 0 'Flat
AutoRedraw = -1 'True
BackColor = &H00400000&
DragIcon = "DOCKING.frx":1E6F4
ForeColor = &H80000008&
Height = 4860
Left = 2895
ScaleHeight = 322
ScaleMode = 3 'Pixel
ScaleWidth = 635
TabIndex = 5
Top = 7365
Width = 9555
End
Begin VB.PictureBox picBGoriginal
Appearance = 0 'Flat
AutoRedraw = -1 'True
BackColor = &H80000005&
ForeColor = &H80000008&
Height = 9015
Left = -7320
Picture = "DOCKING.frx":1E9FE
ScaleHeight = 599
ScaleMode = 3 'Pixel
ScaleWidth = 799
TabIndex = 4
Top = 7215
Width = 12015
End
Begin VB.PictureBox picPitMask
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 5205
Left = 9795
Picture = "DOCKING.frx":94142
ScaleHeight = 5205
ScaleWidth = 9600
TabIndex = 3
Top = 6555
Width = 9600
End
Begin VB.PictureBox picPitSprite
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 5205
Left = 9765
Picture = "DOCKING.frx":CA50E
ScaleHeight = 347
ScaleMode = 3 'Pixel
ScaleWidth = 640
TabIndex = 2
Top = 270
Width = 9600
End
Begin VB.Timer Timer1
Enabled = 0 'False
Interval = 55
Left = 9960
Top = 5865
End
Begin VB.PictureBox Picture4
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 7200
Left = 0
Picture = "DOCKING.frx":10096A
ScaleHeight = 7200
ScaleWidth = 9600
TabIndex = 0
Top = -30
Width = 9600
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1440
Index = 0
Left = 4170
Picture = "DOCKING.frx":14BDAE
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 11
Top = 5475
Width = 1755
Begin Threed.SSCommand SSCommand1
Height = 330
Index = 1
Left = 1185
TabIndex = 15
Top = 1080
Width = 555
_version = 65536
_extentx = 979
_extenty = 582
_stockprops = 78
caption = "REV"
bevelwidth = 4
font3d = 4
End
Begin Threed.SSCommand SSCommand1
Height = 330
Index = 0
Left = 0
TabIndex = 14
Top = 1065
Width = 555
_version = 65536
_extentx = 979
_extenty = 582
_stockprops = 78
caption = "FWD"
bevelwidth = 4
font3d = 4
End
Begin VB.Image auxjoy
Height = 300
Index = 0
Left = 720
Picture = "DOCKING.frx":14EB7A
Top = 255
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 1
Left = 1035
Picture = "DOCKING.frx":14ECDA
Top = 570
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 2
Left = 720
Picture = "DOCKING.frx":14EED6
Top = 885
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 3
Left = 405
Picture = "DOCKING.frx":14F0D2
Top = 570
Width = 300
End
End
Begin VB.PictureBox picBackground
Appearance = 0 'Flat
BackColor = &H00000000&
BorderStyle = 0 'None
DragIcon = "DOCKING.frx":14F2CE
ForeColor = &H80000008&
Height = 5205
Left = 0
ScaleHeight = 347
ScaleMode = 3 'Pixel
ScaleWidth = 640
TabIndex = 1
Top = 120
Width = 9600
End
Begin VB.Label distance
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "1000"
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 400
size = 13.5
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 360
Left = 1410
TabIndex = 17
Top = 6420
Width = 600
End
Begin VB.Label closerate
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "1000"
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 400
size = 13.5
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 360
Left = 1395
TabIndex = 16
Top = 5805
Width = 600
End
Begin Threed.SSCommand Leave
Height = 360
Left = 6090
TabIndex = 13
Top = 6630
Width = 3105
_version = 65536
_extentx = 5477
_extenty = 635
_stockprops = 78
caption = "EXIT"
BeginProperty font {FB8F0823-0164-101B-84ED-08002B2EC713}
name = "MS Sans Serif"
charset = 1
weight = 700
size = 8.25
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
font3d = 4
End
Begin Threed.SSCommand start
Height = 360
Left = 6105
TabIndex = 12
Top = 6225
Width = 3105
_version = 65536
_extentx = 5477
_extenty = 635
_stockprops = 78
caption = "START"
BeginProperty font {FB8F0823-0164-101B-84ED-08002B2EC713}
name = "MS Sans Serif"
charset = 1
weight = 700
size = 8.25
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
font3d = 4
End
End
End
Attribute VB_Name = "docking"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
Option Explicit
Dim ScrollSpeed As Integer ' The ship's current turning speed
' Constants for mouse action.
Const NO_BUTTON = 0
Const LBUTTON = 1
Const RBUTTON = 2
' Constants for WaveMix channels
Const BACKGROUND = 0
Const MISSION_CONTROL = 1
Const BUTTONS = 2
Const EFFECTS = 3
Const WARNINGS = 4
Const MCSECOND = 5
Const LUPE = 1
Const NO_LUPE = 0
' Boolean that indicates if mouse button has been pressed down.
Dim MouseButtonDown As Integer
' Windows API calls
Private Declare Function GetPixel Lib "GDI" (ByVal hDC As Integer, ByVal X As Integer, ByVal Y As Integer) As Long
Private Declare Function setpixel Lib "GDI" (ByVal hDC As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal crColor As Long) As Long
Private Declare Function ellipse Lib "GDI" (ByVal hDC As Integer, ByVal nLeft As Integer, ByVal nTop As Integer, ByVal nRight As Integer, ByVal nBottom As Integer) As Long
Private Declare Function LineTo Lib "GDI" (ByVal hDC As Integer, ByVal X As Integer, ByVal Y As Integer) As Integer
Private Declare Function Polyline Lib "GDI" (ByVal hDC As Integer, lpPoints As POINTAPI, ByVal nCount As Integer) As Integer
Private Declare Function MoveTo Lib "GDI" (ByVal hDC As Integer, ByVal X As Integer, ByVal Y As Integer) As Long
'-----------------------------------------------------
' BITDEMO1.FRM
' This program demonstrates some of the methods used
' to display bitmaps and sprites.
'-----------------------------------------------------
' The number of pixels to offset the sprite
' each time it is moved.
Const INCREMENT = 1
' Constants for Raster Operations used by BitBlt function.
Const SRCAND = &H8800C6 ' dest = source AND dest
Const SRCCOPY = &HCC0020 ' dest = source
Const SRCPAINT = &HEE0086 ' dest = source OR dest
' The BitBlt Windows API call.
Private Declare Function BitBlt Lib "GDI" (ByVal hDestDC As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As Integer, ByVal XSrc As Integer, ByVal YSrc As Integer, ByVal dwRop As Long) As Integer
Dim Ship(1 To 4) As tShip
' The x and y coordinates for the Sprite
Dim SpriteX As Integer
Dim SpriteY As Integer
' The x and y coordinates for the upper left corner
' of the large bitmap (picBMP).
Dim BackgroundX As Integer
Dim BackgroundY As Integer
' The width and height of the work area bitmap (picWork).
Dim WorkWidth As Integer
Dim WorkHeight As Integer
Dim ldist As Integer
Dim zcomponent As Integer
Dim s4b(51) As String
Dim s4bmask(51) As String
Public Function playSound(sname As String, chan As Integer, lp As Integer)
Select Case lp
' don't loop
Case 0
Channel(chan).WaveFile = LCase$(sname)
Channel(chan).Loops = (False)
WAVMIX_SetFile Channel(chan).WaveFile, chan
WAVMIX_PlayChannel chan, Channel(chan).Loops
' loop
Case 1
Channel(chan).WaveFile = LCase$(sname)
Channel(chan).Loops = (True)
WAVMIX_SetFile Channel(chan).WaveFile, chan
WAVMIX_PlayChannel chan, Channel(chan).Loops
' stop loop
Case 2
WAVMIX_StopChannel chan
End Select
End Function
Private Sub auxjoy_Click(Index As Integer)
Dim X As Integer
auxjoy(0).Visible = False
auxjoy(1).Visible = False
auxjoy(2).Visible = False
auxjoy(3).Visible = False
Select Case Index
Case Is = 0
Ydock = Ydock - 1
auxcon(0).Picture = auxcon(1).Picture
Case Is = 1
Xdock = Xdock + 1
auxcon(0).Picture = auxcon(2).Picture
Case Is = 2
Ydock = Ydock + 1
auxcon(0).Picture = auxcon(3).Picture
Case Is = 3
Xdock = Xdock - 1
auxcon(0).Picture = auxcon(4).Picture
End Select
X = playSound("rcstrst.wav", EFFECTS, NO_LUPE)
'x = playSound("rcstrst.wav", 3, 0)
End Sub
Private Sub btnStart_Click()
'------------------------------------------------------------
' Pressing the Start button will either start, pause, or
' resume the game.
'------------------------------------------------------------
Static Paused As Integer
Dim rc As Long
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, picSave.ScaleWidth, picSave.ScaleHeight, picSave.hDC, 0, 0, SRCCOPY)
' If the game is curently paused, then resume it.
If Paused Then
Paused = False
'btnStart.Caption = "&PAUSE"
'rc = WaveMixActivate(hWaveMix, True)
Timer1.Enabled = True
'If the game is in progress then pause it.
ElseIf Timer1.Enabled Then
' Paused = True
' btnStart.Caption = "&RESUME"
'rc = WaveMixActivate(hWaveMix, False)
Timer1.Enabled = False
'Otherwise, no game is in progress, so start one.
Else
'btnStart.Caption = "&PAUSE"
StartGame
End If
End Sub
Private Sub cmdExit_Click()
' Shut down the WaveMix .DLL.
WAVMIX_Close
Unload Me
End Sub
Private Sub FOREREV_Click(Index As Integer)
Dim X As Integer
Select Case Index
Case Is = 0
Case Is = 1
End Select
X = playSound("rcstrst.wav", EFFECTS, NO_LUPE)
End Sub
Private Sub Form_Load()
'------------------------------------------------------------
' Set up the form when its first loaded.
'------------------------------------------------------------
' Hide the scope and background PictureBoxes.
picBackground.Visible = False
'picScope.Visible = False
' Copy the cockpit "sprite" image into the background PictureBox.
picBackground.Picture = picPitSprite.Picture
' Center the form on the screen.
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
MouseButtonDown = NO_BUTTON
Rem --- %%% Initialize WaveMix DLL %%% ---
If Not WAVMIX_InitMixer() Then
MsgBox "Unable to Initialize WaveMix DLL"
End
End If
Xdock = 0
Ydock = 0
ldist = 125
's4b(1) = "D:\docking\dock\dock1.bmp"
's4b(2) = "D:\docking\dock\dock2.bmp"
's4b(3) = "D:\docking\dock\dock3.bmp"
's4b(4) = "D:\docking\dock\dock4.bmp"
's4b(5) = "D:\docking\dock\dock5.bmp"
's4b(6) = "D:\docking\dock\dock6.bmp"
's4b(7) = "D:\docking\dock\dock7.bmp"
's4b(8) = "D:\docking\dock\dock8.bmp"
's4b(9) = "D:\docking\dock\dock9.bmp"
's4b(10) = "D:\docking\dock\dock10.bmp"
's4b(11) = "D:\docking\dock\dock11.bmp"
's4b(12) = "D:\docking\dock\dock12.bmp"
's4b(13) = "D:\docking\dock\dock13.bmp"
's4b(14) = "D:\docking\dock\dock14.bmp"
's4b(15) = "D:\docking\dock\dock15.bmp"
's4b(16) = "D:\docking\dock\dock16.bmp"
's4b(17) = "D:\docking\dock\dock17.bmp"
's4b(18) = "D:\docking\dock\dock18.bmp"
's4b(19) = "D:\docking\dock\dock19.bmp"
's4b(20) = "D:\docking\dock\dock20.bmp"
's4b(21) = "D:\docking\dock\dock21.bmp"
's4b(22) = "D:\docking\dock\dock22.bmp"
's4b(23) = "D:\docking\dock\dock23.bmp"
's4b(24) = "D:\docking\dock\dock24.bmp"
's4b(25) = "D:\docking\dock\dock25.bmp"
's4b(26) = "D:\docking\dock\dock26.bmp"
's4b(27) = "D:\docking\dock\dock27.bmp"
's4b(28) = "D:\docking\dock\dock28.bmp"
's4b(29) = "D:\docking\dock\dock29.bmp"
's4b(30) = "D:\docking\dock\dock30.bmp"
's4b(31) = "D:\docking\dock\dock31.bmp"
's4b(32) = "D:\docking\dock\dock32.bmp"
's4b(33) = "D:\docking\dock\dock33.bmp"
's4b(34) = "D:\docking\dock\dock34.bmp"
's4b(35) = "D:\docking\dock\dock35.bmp"
's4b(36) = "D:\docking\dock\dock36.bmp"
's4b(37) = "D:\docking\dock\dock37.bmp"
's4b(38) = "D:\docking\dock\dock38.bmp"
's4b(39) = "D:\docking\dock\dock39.bmp"
's4b(40) = "D:\docking\dock\dock40.bmp"
's4b(41) = "D:\docking\dock\dock41.bmp"
's4b(42) = "D:\docking\dock\dock42.bmp"
's4b(43) = "D:\docking\dock\dock43.bmp"
's4b(44) = "D:\docking\dock\dock44.bmp"
's4b(45) = "D:\docking\dock\dock45.bmp"
's4b(46) = "D:\docking\dock\dock46.bmp"
's4b(47) = "D:\docking\dock\dock47.bmp"
's4b(48) = "D:\docking\dock\dock48.bmp"
's4b(49) = "D:\docking\dock\dock49.bmp"
's4b(50) = "D:\docking\dock\dock50.bmp"
'***********************************
Rem *************** masks *********
'*********************************
's4bmask(1) = "D:\docking\mask\m1.bmp"
's4bmask(2) = "D:\docking\mask\m2.bmp"
's4bmask(3) = "D:\docking\mask\m3.bmp"
's4bmask(4) = "D:\docking\mask\m4.bmp"
's4bmask(5) = "D:\docking\mask\m5.bmp"
's4bmask(6) = "D:\docking\mask\m6.bmp"
's4bmask(7) = "D:\docking\mask\m7.bmp"
's4bmask(8) = "D:\docking\mask\m8.bmp"
's4bmask(9) = "D:\docking\mask\m9.bmp"
's4bmask(10) = "D:\docking\mask\m10.bmp"
's4bmask(11) = "D:\docking\mask\m11.bmp"
's4bmask(12) = "D:\docking\mask\m12.bmp"
's4bmask(13) = "D:\docking\mask\m13.bmp"
's4bmask(14) = "D:\docking\mask\m14.bmp"
's4bmask(15) = "D:\docking\mask\m15.bmp"
's4bmask(16) = "D:\docking\mask\m16.bmp"
's4bmask(17) = "D:\docking\mask\m17.bmp"
's4bmask(18) = "D:\docking\mask\m18.bmp"
's4bmask(19) = "D:\docking\mask\m19.bmp"
's4bmask(20) = "D:\docking\mask\m20.bmp"
's4bmask(21) = "D:\docking\mask\m21.bmp"
's4bmask(22) = "D:\docking\mask\m22.bmp"
's4bmask(23) = "D:\docking\mask\m23.bmp"
's4bmask(24) = "D:\docking\mask\m24.bmp"
's4bmask(25) = "D:\docking\mask\m25.bmp"
's4bmask(26) = "D:\docking\mask\m26.bmp"
's4bmask(27) = "D:\docking\mask\m27.bmp"
's4bmask(28) = "D:\docking\mask\m28.bmp"
's4bmask(29) = "D:\docking\mask\m29.bmp"
's4bmask(30) = "D:\docking\mask\m30.bmp"
's4bmask(31) = "D:\docking\mask\m31.bmp"
's4bmask(32) = "D:\docking\mask\m32.bmp"
's4bmask(33) = "D:\docking\mask\m33.bmp"
's4bmask(34) = "D:\docking\mask\m34.bmp"
's4bmask(35) = "D:\docking\mask\m35.bmp"
's4bmask(36) = "D:\docking\mask\m36.bmp"
's4bmask(37) = "D:\docking\mask\m37.bmp"
's4bmask(38) = "D:\docking\mask\m38.bmp"
's4bmask(39) = "D:\docking\mask\m39.bmp"
's4bmask(40) = "D:\docking\mask\m40.bmp"
's4bmask(41) = "D:\docking\mask\m41.bmp"
's4bmask(42) = "D:\docking\mask\m42.bmp"
's4bmask(43) = "D:\docking\mask\m43.bmp"
's4bmask(44) = "D:\docking\mask\m44.bmp"
's4bmask(45) = "D:\docking\mask\m45.bmp"
's4bmask(46) = "D:\docking\mask\m46.bmp"
's4bmask(47) = "D:\docking\mask\m47.bmp"
's4bmask(48) = "D:\docking\mask\m48.bmp"
's4bmask(49) = "D:\docking\mask\m49.bmp"
's4bmask(50) = "D:\docking\mask\m50.bmp"
'***********************************
Rem ************ Temp *************
'***********************************
s4b(1) = "D:\tdock\dock\dock30.bmp"
s4b(2) = "D:\tdock\dock\dock31.bmp"
s4b(3) = "D:\tdock\dock\dock32.bmp"
s4b(4) = "D:\tdock\dock\dock33.bmp"
s4b(5) = "D:\tdock\dock\dock34.bmp"
s4b(6) = "D:\tdock\dock\dock35.bmp"
s4b(7) = "D:\tdock\dock\dock36.bmp"
s4b(8) = "D:\tdock\dock\dock37.bmp"
s4b(9) = "D:\tdock\dock\dock38.bmp"
s4b(10) = "D:\tdock\dock\dock39.bmp"
s4b(11) = "D:\tdock\dock\dock41.bmp"
s4b(12) = "D:\tdock\dock\dock42.bmp"
s4b(13) = "D:\tdock\dock\dock43.bmp"
s4b(14) = "D:\tdock\dock\dock44.bmp"
s4b(15) = "D:\tdock\dock\dock45.bmp"
Rem *********************************
s4bmask(1) = "D:\tdock\mask\mask30.bmp"
s4bmask(2) = "D:\tdock\mask\mask31.bmp"
s4bmask(3) = "D:\tdock\mask\mask32.bmp"
s4bmask(4) = "D:\tdock\mask\mask33.bmp"
s4bmask(5) = "D:\tdock\mask\mask34.bmp"
s4bmask(6) = "D:\tdock\mask\mask35.bmp"
s4bmask(7) = "D:\tdock\mask\mask36.bmp"
s4bmask(8) = "D:\tdock\mask\mask37.bmp"
s4bmask(9) = "D:\tdock\mask\mask38.bmp"
s4bmask(10) = "D:\tdock\mask\mask39.bmp"
s4bmask(11) = "D:\tdock\mask\mask41.bmp"
s4bmask(12) = "D:\tdock\mask\mask42.bmp"
s4bmask(13) = "D:\tdock\mask\mask43.bmp"
s4bmask(14) = "D:\tdock\mask\mask44.bmp"
s4bmask(15) = "D:\tdock\mask\mask45.bmp"
End Sub
Private Sub Form_Unload(Cancel As Integer)
WAVMIX_Close
Unload Me
End Sub
Private Sub Leave_Click()
' Shut down the WaveMix .DLL.
WAVMIX_Close
Unload Me
End
End Sub
Private Sub SSCommand1_Click(Index As Integer)
Dim X As Integer
Select Case Index
Case Is = 0
zcomponent = zcomponent - 1
Case Is = 1
zcomponent = zcomponent + 1
End Select
X = playSound("rcstrst.wav", EFFECTS, NO_LUPE)
End Sub
Private Sub Start_Click()
'------------------------------------------------------------
' Pressing the Start button will either start, pause, or
' resume the game.
'------------------------------------------------------------
Static Paused As Integer
Dim rc As Long
Static NotFirstTime As Integer
' Me.Show
' Sprites only need to be initialized the first time
' the game is played.
' If Not NotFirstTime Then
' SpriteInit Ship(1).Sprite, Me, picImage, picmask , picWorkBG, 50
' Ship(1).Visible = 1
' Ship(1).MaxHits = 3
' NotFirstTime = True
' End If
' If the game is curently paused, then resume it.
If Paused Then
Paused = False
'btnStart.Caption = "&PAUSE"
'rc = WaveMixActivate(hWaveMix, True)
Timer1.Enabled = True
'If the game is in progress then pause it.
ElseIf Timer1.Enabled Then
' Paused = True
' btnStart.Caption = "&RESUME"
'rc = WaveMixActivate(hWaveMix, False)
Timer1.Enabled = False
'Otherwise, no game is in progress, so start one.
Else
'btnStart.Caption = "&PAUSE"
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, picSave.ScaleWidth, picSave.ScaleHeight, picSave.hDC, 0, 0, SRCCOPY)
StartGame
End If
End Sub
Private Sub Text1_Change()
End Sub
Private Sub Timer1_Timer()
'------------------------------------------------------------
' This routine is the heart of this game. It's a trifle
' monolithic, but that is in large part by design. By
' reducing the number of subroutines called from here, we
' can improve the game performance somewhat.
'
' Each pass through this routine, the game display is
' updated.
'------------------------------------------------------------
Static xpos, ypos As Integer
Dim tempd As Integer
Dim rc As Long
'lblZ = ldist
'-----------------------------------------------------
' Move the background horizontally under scroller
' control.
'-----------------------------------------------------
'calculate distance from s4sb
ldist = ldist + zcomponent
If ldist <= 4000 And ldist > 2500 Then tempd = 1
If ldist <= 2500 And ldist > 1700 Then tempd = 2
If ldist <= 1700 And ldist > 1200 Then tempd = 3
If ldist <= 1200 And ldist > 900 Then tempd = 4
If ldist <= 900 And ldist > 800 Then tempd = 5
If ldist <= 800 And ldist > 700 Then tempd = 6
If ldist <= 700 And ldist > 640 Then tempd = 7
If ldist <= 640 And ldist > 590 Then tempd = 8
If ldist <= 590 And ldist > 550 Then tempd = 9
If ldist <= 550 And ldist > 510 Then tempd = 10
If ldist <= 510 And ldist > 470 Then tempd = 12
If ldist <= 470 And ldist > 430 Then tempd = 13
If ldist <= 430 And ldist > 400 Then tempd = 14
If ldist <= 400 And ldist > 370 Then tempd = 15
If ldist <= 370 And ldist > 340 Then tempd = 16
If ldist <= 340 And ldist > 310 Then tempd = 17
If ldist <= 310 And ldist > 290 Then tempd = 18
If ldist <= 290 And ldist > 270 Then tempd = 19
If ldist <= 270 And ldist > 250 Then tempd = 20
If ldist <= 250 And ldist > 230 Then tempd = 21
If ldist <= 230 And ldist > 210 Then tempd = 22
If ldist <= 210 And ldist > 195 Then tempd = 23
If ldist <= 195 And ldist > 180 Then tempd = 24
If ldist <= 180 And ldist > 165 Then tempd = 25
If ldist <= 165 And ldist > 150 Then tempd = 26
If ldist <= 150 And ldist > 140 Then tempd = 27
If ldist <= 140 And ldist > 130 Then tempd = 28
If ldist <= 130 And ldist > 120 Then tempd = 29
If ldist <= 120 And ldist > 110 Then tempd = 30
If ldist <= 110 And ldist > 100 Then tempd = 31
If ldist <= 100 And ldist > 90 Then tempd = 32
If ldist <= 90 And ldist > 80 Then tempd = 33
If ldist <= 80 And ldist > 70 Then tempd = 34
If ldist <= 70 And ldist > 60 Then tempd = 35
If ldist <= 60 And ldist > 55 Then tempd = 36
If ldist <= 55 And ldist > 50 Then tempd = 37
If ldist <= 50 And ldist > 45 Then tempd = 38
If ldist <= 45 And ldist > 40 Then tempd = 39
If ldist <= 40 And ldist > 35 Then tempd = 40
' If ldist <= 35 And ldist > 30 Then tempd = 41
' If ldist <= 30 And ldist > 25 Then tempd = 42
' If ldist <= 25 And ldist > 17 Then tempd = 43
' If ldist <= 17 And ldist > 15 Then tempd = 44
' If ldist <= 15 And ldist > 13 Then tempd = 45
' If ldist <= 13 And ldist > 10 Then tempd = 46
' If ldist <= 10 And ldist > 7 Then tempd = 47
' If ldist <= 7 And ldist > 6 Then tempd = 48
' If ldist <= 6 And ldist > 5 Then tempd = 49
' If ldist <= 5 And ldist > 0 Then tempd = 50
'Select Case tempd
' Case Is = 1
' picImage = LoadPicture(s4b(1))
' picMask = LoadPicture(s4bmask(1))
' Case Is = 2
' picImage = LoadPicture(s4b(2))
' picMask = LoadPicture(s4bmask(2))
' Case Is = 3
' picImage = LoadPicture(s4b(3))
' picMask = LoadPicture(s4bmask(3))
' Case Is = 4
' picImage = LoadPicture(s4b(4))
' picMask = LoadPicture(s4bmask(4))
' Case Is = 5
' picImage = LoadPicture(s4b(5))
' picMask = LoadPicture(s4bmask(5))
' Case Is = 6
' picImage = LoadPicture(s4b(6))
' picMask = LoadPicture(s4bmask(6))
' Case Is = 7
' picImage = LoadPicture(s4b(7))
' picMask = LoadPicture(s4bmask(7))
' Case Is = 8
' picImage = LoadPicture(s4b(8))
' picMask = LoadPicture(s4bmask(8))
' Case Is = 9
' picImage = LoadPicture(s4b(9))
' picMask = LoadPicture(s4bmask(9))
' Case Is = 10
' picImage = LoadPicture(s4b(10))
' picMask = LoadPicture(s4bmask(10))
' Case Is = 11
' picImage = LoadPicture(s4b(11))
' picMask = LoadPicture(s4bmask(11))
' Case Is = 12
' picImage = LoadPicture(s4b(12))'
' picMask = LoadPicture(s4bmask(12))
' Case Is = 13
' picImage = LoadPicture(s4b(13))
' picMask = LoadPicture(s4bmask(13))
' Case Is = 14
' picImage = LoadPicture(s4b(14))
' picMask = LoadPicture(s4bmask(14))
' Case Is = 15
' picImage = LoadPicture(s4b(15))
' picMask = LoadPicture(s4bmask(15))
' Case Is = 16
' picImage = LoadPicture(s4b(16))
' picMask = LoadPicture(s4bmask(16))
' Case Is = 17
' picImage = LoadPicture(s4b(17))
' picMask = LoadPicture(s4bmask(17))
' Case Is = 18
' picImage = LoadPicture(s4b(18))
' picMask = LoadPicture(s4bmask(18))
' Case Is = 19
' picImage = LoadPicture(s4b(19))
' picMask = LoadPicture(s4bmask(19))
' Case Is = 20
' picImage = LoadPicture(s4b(20))
' picMask = LoadPicture(s4bmask(20))
' Case Is = 21
' picImage = LoadPicture(s4b(21))
' picMask = LoadPicture(s4bmask(21))
' Case Is = 22
' picImage = LoadPicture(s4b(22))
' picMask = LoadPicture(s4bmask(22))
' Case Is = 23
' picImage = LoadPicture(s4b(23))
' picMask = LoadPicture(s4bmask(23))
' Case Is = 24
' picImage = LoadPicture(s4b(24))
' picMask = LoadPicture(s4bmask(24))
' Case Is = 25
' picImage = LoadPicture(s4b(25))
' picMask = LoadPicture(s4bmask(25))
' Case Is = 26
' picImage = LoadPicture(s4b(26))
' picMask = LoadPicture(s4bmask(26))
' Case Is = 27
' picImage = LoadPicture(s4b(27))
' picMask = LoadPicture(s4bmask(27))
' Case Is = 28
' picImage = LoadPicture(s4b(28))
' picMask = LoadPicture(s4bmask(28))
' Case Is = 29
' picImage = LoadPicture(s4b(29))
' picMask = LoadPicture(s4bmask(29))
' Case Is = 30
' 'picImage = LoadPicture(s4b(30))
'picMask = LoadPicture(s4bmask(30))
' Case Is = 31
' picImage = LoadPicture(s4b(31))
' picMask = LoadPicture(s4bmask(31))
' Case Is = 32
' picImage = LoadPicture(s4b(32))
' picMask = LoadPicture(s4bmask(32))
' Case Is = 33
' picImage = LoadPicture(s4b(33))
' picMask = LoadPicture(s4bmask(33))
' Case Is = 34
' picImage = LoadPicture(s4b(34))
' picMask = LoadPicture(s4bmask(34))
' Case Is = 35
' picImage = LoadPicture(s4b(35))
' picMask = LoadPicture(s4bmask(35))
' Case Is = 36
' picImage = LoadPicture(s4b(36))
' picMask = LoadPicture(s4bmask(36))
' Case Is = 37
' picImage = LoadPicture(s4b(37))
' picMask = LoadPicture(s4bmask(37))
' Case Is = 38
' picImage = LoadPicture(s4b(38))
' picMask = LoadPicture(s4bmask(38))
' Case Is = 39
' picImage = LoadPicture(s4b(39))
' picMask = LoadPicture(s4bmask(39))
' Case Is = 40
' picImage = LoadPicture(s4b(40))
' picMask = LoadPicture(s4bmask(40))
' Case Is = 41
' picImage = LoadPicture(s4b(41))
' picMask = LoadPicture(s4bmask(41))
' Case Is = 42
' picImage = LoadPicture(s4b(42))
' picMask = LoadPicture(s4bmask(42))
' Case Is = 43
' picImage = LoadPicture(s4b(43))
' picMask = LoadPicture(s4bmask(43))
' Case Is = 44
' picImage = LoadPicture(s4b(44))
' picMask = LoadPicture(s4bmask(44))
' Case Is = 45
' picImage = LoadPicture(s4b(45))
' picMask = LoadPicture(s4bmask(45))
' Case Is = 46
' picImage = LoadPicture(s4b(46))
' picMask = LoadPicture(s4bmask(46))
' Case Is = 47
' picImage = LoadPicture(s4b(47))
' picMask = LoadPicture(s4bmask(47))
' Case Is = 48
' picImage = LoadPicture(s4b(48))
' picMask = LoadPicture(s4bmask(48))
' Case Is = 49
' picImage = LoadPicture(s4b(49))
' picMask = LoadPicture(s4bmask(49))
' Case Is = 50
' picImage = LoadPicture(s4b(50))
' picMask = LoadPicture(s4bmask(50))
' End Select
Rem **************** T E M P **********************
'************************************************
Select Case tempd
Case Is = 30
picImage = LoadPicture(s4b(1))
picMask = LoadPicture(s4bmask(1))
Case Is = 31
picImage = LoadPicture(s4b(2))
picMask = LoadPicture(s4bmask(2))
Case Is = 32
picImage = LoadPicture(s4b(3))
picMask = LoadPicture(s4bmask(3))
Case Is = 33
picImage = LoadPicture(s4b(4))
picMask = LoadPicture(s4bmask(4))
Case Is = 34
picImage = LoadPicture(s4b(5))
picMask = LoadPicture(s4bmask(5))
Case Is = 35
picImage = LoadPicture(s4b(6))
picMask = LoadPicture(s4bmask(6))
Case Is = 36
picImage = LoadPicture(s4b(7))
picMask = LoadPicture(s4bmask(7))
Case Is = 37
picImage = LoadPicture(s4b(8))
picMask = LoadPicture(s4bmask(8))
Case Is = 38
picImage = LoadPicture(s4b(9))
picMask = LoadPicture(s4bmask(9))
Case Is = 39
picImage = LoadPicture(s4b(10))
picMask = LoadPicture(s4bmask(10))
Case Is = 41
picImage = LoadPicture(s4b(11))
picMask = LoadPicture(s4bmask(11))
Case Is = 42
picImage = LoadPicture(s4b(12))
picMask = LoadPicture(s4bmask(12))
Case Is = 43
picImage = LoadPicture(s4b(13))
picMask = LoadPicture(s4bmask(13))
Case Is = 44
picImage = LoadPicture(s4b(14))
picMask = LoadPicture(s4bmask(14))
Case Is = 45
picImage = LoadPicture(s4b(15))
picMask = LoadPicture(s4bmask(15))
End Select
Rem ********************************************************************************
xpos = xpos - Xdock
closerate.Caption = tempd
ypos = ypos - Ydock
distance.Caption = ldist
' Update the background (starfield) based on the
' current speed and direction of the player's ship.
UpdateBackground
' Copy a section of the large bitmap into the work area.
rc = BitBlt(picWorkBG.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, 0, 0, SRCCOPY)
' Copy the sprite work area onto the background.
'rc = BitBlt(picBackground.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
rc = BitBlt(picWorkBG.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
' Draw the sprite mask bitmap into the work area.
rc = BitBlt(picWorkBG.hDC, xpos + 80, ypos + 80, picMask.ScaleWidth, picMask.ScaleHeight, picMask.hDC, 0, 0, SRCAND)
'draw sprite into the work area
rc = BitBlt(picWorkBG.hDC, xpos + 80, ypos + 80, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
' Draw the cockpit mask into the work area.
rc = BitBlt(picWorkBG.hDC, 0, 0, picPitMask.Width, picPitMask.Height, picPitMask.hDC, 0, 0, SRCAND)
'draw cockpit
rc = BitBlt(picWorkBG.hDC, 0, 0, picPitMask.Width, picPitMask.Height, picPitSprite.hDC, 0, 0, SRCPAINT)
'FlickerlessSpriteMove
' Draw the whole thing back onto the screen.
rc = BitBlt(picBackground.hDC, 0, 0, picBackground.Width, picBackground.Height, picWorkBG.hDC, 0, 0, SRCCOPY)
auxjoy(0).Visible = True
auxjoy(1).Visible = True
auxjoy(2).Visible = True
auxjoy(3).Visible = True
auxcon(0).Picture = auxcon(5).Picture
End Sub
Public Sub EndGame()
'------------------------------------------------------------
' Close everything down.
'------------------------------------------------------------
Dim rc As Long
' Shut down the WaveMix .DLL.
WAVMIX_Close
' Turn off the timer.
Timer1.Enabled = False
' Ready to start again?
btnStart.Caption = "&START"
Me.Refresh
' Wait a couple of seconds
Pause 5
picBackground.Visible = False
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'----------------------------------------------------------
' Set the module-level MouseButtonDown variable, so that
' the Mouse Control timer knows a button was pushed.
'----------------------------------------------------------
MouseButtonDown = Button
End Sub
Private Sub Pause(Seconds As Single)
'------------------------------------------------------------
' Delay for a specified number of seconds.
'------------------------------------------------------------
Dim Start As Single
Start = Timer
Do While (Timer - Start) < Seconds
DoEvents
Loop
End Sub
Private Sub StartGame()
'------------------------------------------------------------
' Initialize everything and start the game.
'------------------------------------------------------------
Dim rc As Integer
Dim i As Integer
Static NotFirstTime As Integer
Me.Show
picBackground.Visible = True
ScrollSpeed = 5
Timer1.Enabled = True
End Sub
Private Sub UpdateBackground()
'------------------------------------------------------------
' The first step in building a new view is to copy the
' next section of the original background onto the working
' background picture box.
'------------------------------------------------------------
'Static LastXdir As Integer
'Static LastYdir As Integer
' BGMove picWorkBG, picBGOriginal, LastXdir * 2, LastYdir * 2
BGMove picWorkBG, picBGOriginal, Xdock, Ydock
' End If
End Sub
Private Sub FlickerlessSpriteMove()
'-----------------------------------------------------
' Moving a sprite without flicker requires the use
' of an off-screen work area into which we copy a
' section of the background and sprite.
'-----------------------------------------------------
Dim rc As Integer
WorkWidth = 2090
WorkHeight = 2020
BackgroundX = SpriteX
BackgroundY = SpriteY
' Calculate the next position for the sprite, and any
' necessary direction changes.
GetNextPos picImage.ScaleWidth, picImage.ScaleHeight
' Copy a section of the large bitmap into the work area.
'rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, (BackgroundX + SpriteX) - INCREMENT, (BackgroundY + SpriteY) - INCREMENT, SRCCOPY)
'rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBackground.hDC, (SpriteX), (SpriteY), SRCCOPY)
rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, (SpriteX), (SpriteY), SRCCOPY)
' Draw the mask and sprite bitmaps into the work area.
rc = BitBlt(picWork.hDC, INCREMENT, INCREMENT, picMask.ScaleWidth, picMask.ScaleHeight, picMask.hDC, 0, 0, SRCAND)
rc = BitBlt(picWork.hDC, INCREMENT, INCREMENT, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
'rc = BitBlt(picWork.hDC, 0, 0, picmask.ScaleWidth, picmask.ScaleHeight, picmask.hDC, 0, 0, SRCAND)
'rc = BitBlt(picWork.hDC, 0, 0, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
' Copy the work area onto the background.
' rc = BitBlt(picBackground.hDC, SpriteX - INCREMENT, SpriteY - INCREMENT, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
' rc = BitBlt(picBackground.hDC, 10, 10, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
rc = BitBlt(picBackground.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
DoEvents
End Sub
Private Sub GetNextPos(ByVal AWidth As Integer, ByVal AHeight As Integer)
'-----------------------------------------------------
' Calculate the next position for the sprite, and
' make any necessary direction changes.
'-----------------------------------------------------
xdir = Xdock
ydir = Ydock
' Calculate the new position for the sprite.
SpriteX = SpriteX + (xdir)
SpriteY = SpriteY + (ydir)
End Sub
DOCKING.LOG
Line 239: Class Threed.SSCommand of control SSCommand1 was not a loaded control class. Line 254: Class Threed.SSCommand of control SSCommand1 was not a loaded control class. Line 357: Class Threed.SSCommand of control Leave was not a loaded control class. Line 379: Class Threed.SSCommand of control start was not a loaded control class. Line 246: The property name _version in SSCommand1 is invalid. Line 247: The property name _extentx in SSCommand1 is invalid. Line 248: The property name _extenty in SSCommand1 is invalid. Line 249: The property name _stockprops in SSCommand1 is invalid. Line 250: The property name caption in SSCommand1 is invalid. Line 251: The property name bevelwidth in SSCommand1 is invalid. Line 252: The property name font3d in SSCommand1 is invalid. Line 261: The property name _version in SSCommand1 is invalid. Line 262: The property name _extentx in SSCommand1 is invalid. Line 263: The property name _extenty in SSCommand1 is invalid. Line 264: The property name _stockprops in SSCommand1 is invalid. Line 265: The property name caption in SSCommand1 is invalid. Line 266: The property name bevelwidth in SSCommand1 is invalid. Line 267: The property name font3d in SSCommand1 is invalid. Line 363: The property name _version in Leave is invalid. Line 364: The property name _extentx in Leave is invalid. Line 365: The property name _extenty in Leave is invalid. Line 366: The property name _stockprops in Leave is invalid. Line 367: The property name caption in Leave is invalid. Line 377: The property name font3d in Leave is invalid. Line 385: The property name _version in start is invalid. Line 386: The property name _extentx in start is invalid. Line 387: The property name _extenty in start is invalid. Line 388: The property name _stockprops in start is invalid. Line 389: The property name caption in start is invalid. Line 399: The property name font3d in start is invalid.
DOCKING2.FRM
VERSION 4.00
Begin VB.Form docking
Caption = "Docking with the Lunar Module"
ClientHeight = 6030
ClientLeft = 3975
ClientTop = 2115
ClientWidth = 6720
Height = 6435
Left = 3915
LinkTopic = "Form1"
ScaleHeight = 6030
ScaleWidth = 6720
Top = 1770
Width = 6840
Begin VB.PictureBox PicSave
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 8625
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 100
TabIndex = 21
Top = 7305
Width = 1500
End
Begin VB.PictureBox PicWork
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 6975
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 100
TabIndex = 20
Top = 7275
Width = 1500
End
Begin VB.PictureBox PicMask
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 2970
Picture = "DOCKING2.frx":0000
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 100
TabIndex = 19
Top = 7440
Width = 1500
End
Begin VB.PictureBox PicImage
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 1440
Left = 5295
Picture = "DOCKING2.frx":25CC
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 100
TabIndex = 18
Top = 7230
Width = 1500
End
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1440
Index = 5
Left = 2970
Picture = "DOCKING2.frx":4C14
ScaleHeight = 1440
ScaleWidth = 1755
TabIndex = 10
Top = 2475
Width = 1755
End
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1440
Index = 4
Left = 2340
Picture = "DOCKING2.frx":79E0
ScaleHeight = 1440
ScaleWidth = 1755
TabIndex = 9
Top = 2505
Width = 1755
End
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1440
Index = 3
Left = 1635
Picture = "DOCKING2.frx":A7B0
ScaleHeight = 1440
ScaleWidth = 1755
TabIndex = 8
Top = 2505
Width = 1755
End
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1440
Index = 2
Left = 1155
Picture = "DOCKING2.frx":D580
ScaleHeight = 1440
ScaleWidth = 1755
TabIndex = 7
Top = 2460
Width = 1755
End
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1440
Index = 1
Left = 660
Picture = "DOCKING2.frx":10350
ScaleHeight = 1440
ScaleWidth = 1755
TabIndex = 6
Top = 2445
Width = 1755
End
Begin VB.PictureBox picWorkBG
Appearance = 0 'Flat
AutoRedraw = -1 'True
BackColor = &H00400000&
DragIcon = "DOCKING2.frx":13120
ForeColor = &H80000008&
Height = 4860
Left = 2895
ScaleHeight = 322
ScaleMode = 3 'Pixel
ScaleWidth = 635
TabIndex = 5
Top = 7365
Width = 9555
End
Begin VB.PictureBox picBGoriginal
Appearance = 0 'Flat
AutoRedraw = -1 'True
BackColor = &H80000005&
ForeColor = &H80000008&
Height = 9015
Left = -7320
Picture = "DOCKING2.frx":1342A
ScaleHeight = 599
ScaleMode = 3 'Pixel
ScaleWidth = 799
TabIndex = 4
Top = 7215
Width = 12015
End
Begin VB.PictureBox picPitMask
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 5205
Left = 9795
Picture = "DOCKING2.frx":88B6E
ScaleHeight = 5205
ScaleWidth = 9600
TabIndex = 3
Top = 6540
Width = 9600
End
Begin VB.PictureBox picPitSprite
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 5205
Left = 9765
Picture = "DOCKING2.frx":BEF3A
ScaleHeight = 347
ScaleMode = 3 'Pixel
ScaleWidth = 640
TabIndex = 2
Top = 270
Width = 9600
End
Begin VB.Timer Timer1
Enabled = 0 'False
Interval = 55
Left = 9960
Top = 5865
End
Begin VB.PictureBox Picture4
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 7200
Left = 0
Picture = "DOCKING2.frx":F5396
ScaleHeight = 7200
ScaleWidth = 9600
TabIndex = 0
Top = 0
Width = 9600
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1440
Index = 0
Left = 4110
Picture = "DOCKING2.frx":1407DA
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 11
Top = 5520
Width = 1755
Begin Threed.SSCommand SSCommand1
Height = 330
Index = 1
Left = 1185
TabIndex = 15
Top = 1080
Width = 555
_version = 65536
_extentx = 979
_extenty = 582
_stockprops = 78
caption = "REV"
bevelwidth = 4
font3d = 4
End
Begin Threed.SSCommand SSCommand1
Height = 330
Index = 0
Left = 0
TabIndex = 14
Top = 1065
Width = 555
_version = 65536
_extentx = 979
_extenty = 582
_stockprops = 78
caption = "FWD"
bevelwidth = 4
font3d = 4
End
Begin VB.Image auxjoy
Height = 300
Index = 0
Left = 720
Picture = "DOCKING2.frx":1435A6
Top = 255
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 1
Left = 1035
Picture = "DOCKING2.frx":143706
Top = 570
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 2
Left = 720
Picture = "DOCKING2.frx":143902
Top = 885
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 3
Left = 405
Picture = "DOCKING2.frx":143AFE
Top = 570
Width = 300
End
End
Begin VB.PictureBox picBackground
Appearance = 0 'Flat
BackColor = &H00000000&
BorderStyle = 0 'None
DragIcon = "DOCKING2.frx":143CFA
ForeColor = &H80000008&
Height = 5205
Left = 0
ScaleHeight = 347
ScaleMode = 3 'Pixel
ScaleWidth = 640
TabIndex = 1
Top = 120
Width = 9600
End
Begin VB.Label distance
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "1000"
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 400
size = 13.5
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 360
Left = 1410
TabIndex = 17
Top = 6420
Width = 600
End
Begin VB.Label closerate
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "1000"
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 400
size = 13.5
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 360
Left = 1395
TabIndex = 16
Top = 5805
Width = 600
End
Begin Threed.SSCommand Leave
Height = 360
Left = 6090
TabIndex = 13
Top = 6630
Width = 3105
_version = 65536
_extentx = 5477
_extenty = 635
_stockprops = 78
caption = "EXIT"
BeginProperty font {FB8F0823-0164-101B-84ED-08002B2EC713}
name = "MS Sans Serif"
charset = 1
weight = 700
size = 8.25
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
font3d = 4
End
Begin Threed.SSCommand start
Height = 360
Left = 6105
TabIndex = 12
Top = 6225
Width = 3105
_version = 65536
_extentx = 5477
_extenty = 635
_stockprops = 78
caption = "START"
BeginProperty font {FB8F0823-0164-101B-84ED-08002B2EC713}
name = "MS Sans Serif"
charset = 1
weight = 700
size = 8.25
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
font3d = 4
End
End
End
Attribute VB_Name = "docking"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
Option Explicit
Dim ScrollSpeed As Integer ' The ship's current turning speed
' Constants for mouse action.
Const NO_BUTTON = 0
Const LBUTTON = 1
Const RBUTTON = 2
' Constants for WaveMix channels
Const BACKGROUND = 0
Const MISSION_CONTROL = 1
Const BUTTONS = 2
Const EFFECTS = 3
Const WARNINGS = 4
Const MCSECOND = 5
Const LUPE = 1
Const NO_LUPE = 0
' Boolean that indicates if mouse button has been pressed down.
Dim MouseButtonDown As Integer
' Windows API calls
Private Declare Function GetPixel Lib "GDI" (ByVal hDC As Integer, ByVal X As Integer, ByVal Y As Integer) As Long
Private Declare Function setpixel Lib "GDI" (ByVal hDC As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal crColor As Long) As Long
Private Declare Function ellipse Lib "GDI" (ByVal hDC As Integer, ByVal nLeft As Integer, ByVal nTop As Integer, ByVal nRight As Integer, ByVal nBottom As Integer) As Long
Private Declare Function LineTo Lib "GDI" (ByVal hDC As Integer, ByVal X As Integer, ByVal Y As Integer) As Integer
Private Declare Function Polyline Lib "GDI" (ByVal hDC As Integer, lpPoints As POINTAPI, ByVal nCount As Integer) As Integer
Private Declare Function MoveTo Lib "GDI" (ByVal hDC As Integer, ByVal X As Integer, ByVal Y As Integer) As Long
'-----------------------------------------------------
' BITDEMO1.FRM
' This program demonstrates some of the methods used
' to display bitmaps and sprites.
'-----------------------------------------------------
' The number of pixels to offset the sprite
' each time it is moved.
Const INCREMENT = 1
' Constants for Raster Operations used by BitBlt function.
Const SRCAND = &H8800C6 ' dest = source AND dest
Const SRCCOPY = &HCC0020 ' dest = source
Const SRCPAINT = &HEE0086 ' dest = source OR dest
' The BitBlt Windows API call.
Private Declare Function BitBlt Lib "GDI" (ByVal hDestDC As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As Integer, ByVal XSrc As Integer, ByVal YSrc As Integer, ByVal dwRop As Long) As Integer
'Dim Ship(1 To 4) As tShip
' The x and y coordinates for the Sprite
Dim SpriteX As Integer
Dim SpriteY As Integer
' The x and y coordinates for the upper left corner
' of the large bitmap (picBMP).
Dim BackgroundX As Integer
Dim BackgroundY As Integer
' The width and height of the work area bitmap (picWork).
Dim WorkWidth As Integer
Dim WorkHeight As Integer
Dim ldist As Integer
Dim zcomponent As Integer
Dim s4b(51) As String
Dim s4bmask(51) As String
Public Function playSound(sname As String, chan As Integer, lp As Integer)
Select Case lp
' don't loop
Case 0
Channel(chan).WaveFile = LCase$(sname)
Channel(chan).Loops = (False)
WAVMIX_SetFile Channel(chan).WaveFile, chan
WAVMIX_PlayChannel chan, Channel(chan).Loops
' loop
Case 1
Channel(chan).WaveFile = LCase$(sname)
Channel(chan).Loops = (True)
WAVMIX_SetFile Channel(chan).WaveFile, chan
WAVMIX_PlayChannel chan, Channel(chan).Loops
' stop loop
Case 2
WAVMIX_StopChannel chan
End Select
End Function
Private Sub auxjoy_Click(Index As Integer)
Dim X As Integer
auxjoy(0).Visible = False
auxjoy(1).Visible = False
auxjoy(2).Visible = False
auxjoy(3).Visible = False
Select Case Index
Case Is = 0
Yland = Yland - 1
auxcon(0).Picture = auxcon(1).Picture
Case Is = 1
Xland = Xland + 1
auxcon(0).Picture = auxcon(2).Picture
Case Is = 2
Yland = Yland + 1
auxcon(0).Picture = auxcon(3).Picture
Case Is = 3
Xland = Xland - 1
auxcon(0).Picture = auxcon(4).Picture
End Select
X = playSound("rcstrst.wav", EFFECTS, NO_LUPE)
'x = playSound("rcstrst.wav", 3, 0)
End Sub
Private Sub btnStart_Click()
'------------------------------------------------------------
' Pressing the Start button will either start, pause, or
' resume the game.
'------------------------------------------------------------
Static Paused As Integer
Dim rc As Long
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, picSave.ScaleWidth, picSave.ScaleHeight, picSave.hDC, 0, 0, SRCCOPY)
' If the game is curently paused, then resume it.
If Paused Then
Paused = False
'btnStart.Caption = "&PAUSE"
'rc = WaveMixActivate(hWaveMix, True)
Timer1.Enabled = True
'If the game is in progress then pause it.
ElseIf Timer1.Enabled Then
' Paused = True
' btnStart.Caption = "&RESUME"
'rc = WaveMixActivate(hWaveMix, False)
Timer1.Enabled = False
'Otherwise, no game is in progress, so start one.
Else
'btnStart.Caption = "&PAUSE"
StartGame
End If
End Sub
Private Sub cmdExit_Click()
' Shut down the WaveMix .DLL.
WAVMIX_Close
Unload Me
End Sub
Private Sub FOREREV_Click(Index As Integer)
Dim X As Integer
Select Case Index
Case Is = 0
Case Is = 1
End Select
X = playSound("rcstrst.wav", EFFECTS, NO_LUPE)
End Sub
Private Sub Form_Load()
'------------------------------------------------------------
' Set up the form when its first loaded.
'------------------------------------------------------------
' Hide the scope and background PictureBoxes.
picBackground.Visible = False
'picScope.Visible = False
' Copy the cockpit "sprite" image into the background PictureBox.
picBackground.Picture = picPitSprite.Picture
' Center the form on the screen.
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
MouseButtonDown = NO_BUTTON
Rem --- %%% Initialize WaveMix DLL %%% ---
If Not WAVMIX_InitMixer() Then
MsgBox "Unable to Initialize WaveMix DLL"
End
End If
Xland = 0
Yland = 0
ldist = 520
s4b(1) = "D:\docking\dock\dock1.bmp"
s4b(2) = "D:\docking\dock\dock2.bmp"
s4b(3) = "D:\docking\dock\dock3.bmp"
s4b(4) = "D:\docking\dock\dock4.bmp"
s4b(5) = "D:\docking\dock\dock5.bmp"
s4b(6) = "D:\docking\dock\dock6.bmp"
s4b(7) = "D:\docking\dock\dock7.bmp"
s4b(8) = "D:\docking\dock\dock8.bmp"
s4b(9) = "D:\docking\dock\dock9.bmp"
s4b(10) = "D:\docking\dock\dock10.bmp"
s4b(11) = "D:\docking\dock\dock11.bmp"
s4b(12) = "D:\docking\dock\dock12.bmp"
s4b(13) = "D:\docking\dock\dock13.bmp"
s4b(14) = "D:\docking\dock\dock14.bmp"
s4b(15) = "D:\docking\dock\dock15.bmp"
s4b(16) = "D:\docking\dock\dock16.bmp"
s4b(17) = "D:\docking\dock\dock17.bmp"
s4b(18) = "D:\docking\dock\dock18.bmp"
s4b(19) = "D:\docking\dock\dock19.bmp"
s4b(20) = "D:\docking\dock\dock20.bmp"
s4b(21) = "D:\docking\dock\dock21.bmp"
s4b(22) = "D:\docking\dock\dock22.bmp"
s4b(23) = "D:\docking\dock\dock23.bmp"
s4b(24) = "D:\docking\dock\dock24.bmp"
s4b(25) = "D:\docking\dock\dock25.bmp"
s4b(26) = "D:\docking\dock\dock26.bmp"
s4b(27) = "D:\docking\dock\dock27.bmp"
s4b(28) = "D:\docking\dock\dock28.bmp"
s4b(29) = "D:\docking\dock\dock29.bmp"
s4b(30) = "D:\docking\dock\dock30.bmp"
s4b(31) = "D:\docking\dock\dock31.bmp"
s4b(32) = "D:\docking\dock\dock32.bmp"
s4b(33) = "D:\docking\dock\dock33.bmp"
s4b(34) = "D:\docking\dock\dock34.bmp"
s4b(35) = "D:\docking\dock\dock35.bmp"
s4b(36) = "D:\docking\dock\dock36.bmp"
s4b(37) = "D:\docking\dock\dock37.bmp"
s4b(38) = "D:\docking\dock\dock38.bmp"
s4b(39) = "D:\docking\dock\dock39.bmp"
s4b(40) = "D:\docking\dock\dock40.bmp"
s4b(41) = "D:\docking\dock\dock41.bmp"
s4b(42) = "D:\docking\dock\dock42.bmp"
s4b(43) = "D:\docking\dock\dock43.bmp"
s4b(44) = "D:\docking\dock\dock44.bmp"
s4b(45) = "D:\docking\dock\dock45.bmp"
s4b(46) = "D:\docking\dock\dock46.bmp"
s4b(47) = "D:\docking\dock\dock47.bmp"
s4b(48) = "D:\docking\dock\dock48.bmp"
s4b(49) = "D:\docking\dock\dock49.bmp"
s4b(50) = "D:\docking\dock\dock50.bmp"
'************************************
Rem ************* masks *************
'************************************
s4bmask(1) = "D:\docking\mask\m1.bmp"
s4bmask(2) = "D:\docking\mask\m2.bmp"
s4bmask(3) = "D:\docking\mask\m3.bmp"
s4bmask(4) = "D:\docking\mask\m4.bmp"
s4bmask(5) = "D:\docking\mask\m5.bmp"
s4bmask(6) = "D:\docking\mask\m6.bmp"
s4bmask(7) = "D:\docking\mask\m7.bmp"
s4bmask(8) = "D:\docking\mask\m8.bmp"
s4bmask(9) = "D:\docking\mask\m9.bmp"
s4bmask(10) = "D:\docking\mask\m10.bmp"
s4bmask(11) = "D:\docking\mask\m11.bmp"
s4bmask(12) = "D:\docking\mask\m12.bmp"
s4bmask(13) = "D:\docking\mask\m13.bmp"
s4bmask(14) = "D:\docking\mask\m14.bmp"
s4bmask(15) = "D:\docking\mask\m15.bmp"
s4bmask(16) = "D:\docking\mask\m16.bmp"
s4bmask(17) = "D:\docking\mask\m17.bmp"
s4bmask(18) = "D:\docking\mask\m18.bmp"
s4bmask(19) = "D:\docking\mask\m19.bmp"
s4bmask(20) = "D:\docking\mask\m20.bmp"
s4bmask(21) = "D:\docking\mask\m21.bmp"
s4bmask(22) = "D:\docking\mask\m22.bmp"
s4bmask(23) = "D:\docking\mask\m23.bmp"
s4bmask(24) = "D:\docking\mask\m24.bmp"
s4bmask(25) = "D:\docking\mask\m25.bmp"
s4bmask(26) = "D:\docking\mask\m26.bmp"
s4bmask(27) = "D:\docking\mask\m27.bmp"
s4bmask(28) = "D:\docking\mask\m28.bmp"
s4bmask(29) = "D:\docking\mask\m29.bmp"
s4bmask(30) = "D:\docking\mask\m30.bmp"
s4bmask(31) = "D:\docking\mask\m31.bmp"
s4bmask(32) = "D:\docking\mask\m32.bmp"
s4bmask(33) = "D:\docking\mask\m33.bmp"
s4bmask(34) = "D:\docking\mask\m34.bmp"
s4bmask(35) = "D:\docking\mask\m35.bmp"
s4bmask(36) = "D:\docking\mask\m36.bmp"
s4bmask(37) = "D:\docking\mask\m37.bmp"
s4bmask(38) = "D:\docking\mask\m38.bmp"
s4bmask(39) = "D:\docking\mask\m39.bmp"
s4bmask(40) = "D:\docking\mask\m40.bmp"
s4bmask(41) = "D:\docking\mask\m41.bmp"
s4bmask(42) = "D:\docking\mask\m42.bmp"
s4bmask(43) = "D:\docking\mask\m43.bmp"
s4bmask(44) = "D:\docking\mask\m44.bmp"
s4bmask(45) = "D:\docking\mask\m45.bmp"
s4bmask(46) = "D:\docking\mask\m46.bmp"
s4bmask(47) = "D:\docking\mask\m47.bmp"
s4bmask(48) = "D:\docking\mask\m48.bmp"
s4bmask(49) = "D:\docking\mask\m49.bmp"
s4bmask(50) = "D:\docking\mask\m50.bmp"
End Sub
Private Sub Form_Unload(Cancel As Integer)
WAVMIX_Close
Unload Me
End Sub
Private Sub Leave_Click()
' Shut down the WaveMix .DLL.
WAVMIX_Close
Unload Me
End
End Sub
Private Sub SSCommand1_Click(Index As Integer)
Dim X As Integer
Select Case Index
Case Is = 0
zcomponent = zcomponent - 1
Case Is = 1
zcomponent = zcomponent + 1
End Select
X = playSound("rcstrst.wav", EFFECTS, NO_LUPE)
End Sub
Private Sub Start_Click()
'------------------------------------------------------------
' Pressing the Start button will either start, pause, or
' resume the game.
'------------------------------------------------------------
Static Paused As Integer
Dim rc As Long
Static NotFirstTime As Integer
' Me.Show
' Sprites only need to be initialized the first time
' the game is played.
' If Not NotFirstTime Then
' SpriteInit Ship(1).Sprite, Me, picImage, picmask , picWorkBG, 50
' Ship(1).Visible = 1
' Ship(1).MaxHits = 3
' NotFirstTime = True
' End If
' If the game is curently paused, then resume it.
If Paused Then
Paused = False
'btnStart.Caption = "&PAUSE"
'rc = WaveMixActivate(hWaveMix, True)
Timer1.Enabled = True
'If the game is in progress then pause it.
ElseIf Timer1.Enabled Then
' Paused = True
' btnStart.Caption = "&RESUME"
'rc = WaveMixActivate(hWaveMix, False)
Timer1.Enabled = False
'Otherwise, no game is in progress, so start one.
Else
'btnStart.Caption = "&PAUSE"
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, picSave.ScaleWidth, picSave.ScaleHeight, picSave.hDC, 0, 0, SRCCOPY)
StartGame
End If
End Sub
Private Sub Text1_Change()
End Sub
Private Sub Timer1_Timer()
'------------------------------------------------------------
' This routine is the heart of this game. It's a trifle
' monolithic, but that is in large part by design. By
' reducing the number of subroutines called from here, we
' can improve the game performance somewhat.
'
' Each pass through this routine, the game display is
' updated.
'------------------------------------------------------------
Static xpos, ypos As Integer
Dim tempd As Integer
Dim rc As Long
'lblZ = ldist
'-----------------------------------------------------
' Move the background horizontally under scroller
' control.
'-----------------------------------------------------
'calculate distance from s4sb
ldist = ldist + zcomponent
If ldist <= 4000 And ldist > 2500 Then tempd = 1
If ldist <= 2500 And ldist > 1700 Then tempd = 2
If ldist <= 1700 And ldist > 1200 Then tempd = 3
If ldist <= 1200 And ldist > 900 Then tempd = 4
If ldist <= 900 And ldist > 800 Then tempd = 5
If ldist <= 800 And ldist > 700 Then tempd = 6
If ldist <= 700 And ldist > 640 Then tempd = 7
If ldist <= 640 And ldist > 590 Then tempd = 8
If ldist <= 590 And ldist > 550 Then tempd = 9
If ldist <= 550 And ldist > 510 Then tempd = 10
If ldist <= 510 And ldist > 470 Then tempd = 12
If ldist <= 470 And ldist > 430 Then tempd = 13
If ldist <= 430 And ldist > 400 Then tempd = 14
If ldist <= 400 And ldist > 370 Then tempd = 15
If ldist <= 370 And ldist > 340 Then tempd = 16
If ldist <= 340 And ldist > 310 Then tempd = 17
If ldist <= 310 And ldist > 290 Then tempd = 18
If ldist <= 290 And ldist > 270 Then tempd = 19
If ldist <= 270 And ldist > 250 Then tempd = 20
If ldist <= 250 And ldist > 230 Then tempd = 21
If ldist <= 230 And ldist > 210 Then tempd = 22
If ldist <= 210 And ldist > 195 Then tempd = 23
If ldist <= 195 And ldist > 180 Then tempd = 24
If ldist <= 180 And ldist > 165 Then tempd = 25
If ldist <= 165 And ldist > 150 Then tempd = 26
If ldist <= 150 And ldist > 140 Then tempd = 27
If ldist <= 140 And ldist > 130 Then tempd = 28
If ldist <= 130 And ldist > 120 Then tempd = 29
If ldist <= 120 And ldist > 110 Then tempd = 30
If ldist <= 110 And ldist > 100 Then tempd = 31
If ldist <= 100 And ldist > 90 Then tempd = 32
If ldist <= 90 And ldist > 80 Then tempd = 33
If ldist <= 80 And ldist > 70 Then tempd = 34
If ldist <= 70 And ldist > 60 Then tempd = 35
If ldist <= 60 And ldist > 55 Then tempd = 36
If ldist <= 55 And ldist > 50 Then tempd = 37
If ldist <= 50 And ldist > 45 Then tempd = 38
If ldist <= 45 And ldist > 40 Then tempd = 39
If ldist <= 40 And ldist > 35 Then tempd = 40
If ldist <= 35 And ldist > 30 Then tempd = 41
If ldist <= 30 And ldist > 25 Then tempd = 42
If ldist <= 25 And ldist > 17 Then tempd = 43
If ldist <= 17 And ldist > 15 Then tempd = 44
If ldist <= 15 And ldist > 13 Then tempd = 45
If ldist <= 13 And ldist > 10 Then tempd = 46
If ldist <= 10 And ldist > 7 Then tempd = 47
If ldist <= 7 And ldist > 6 Then tempd = 48
If ldist <= 6 And ldist > 5 Then tempd = 49
If ldist <= 5 And ldist > 0 Then tempd = 50
Select Case tempd
Case Is = 1
picImage = LoadPicture(s4b(1))
picMask = LoadPicture(s4bmask(1))
Case Is = 2
picImage = LoadPicture(s4b(2))
picMask = LoadPicture(s4bmask(2))
Case Is = 3
picImage = LoadPicture(s4b(3))
picMask = LoadPicture(s4bmask(3))
Case Is = 4
picImage = LoadPicture(s4b(4))
picMask = LoadPicture(s4bmask(4))
Case Is = 5
picImage = LoadPicture(s4b(5))
picMask = LoadPicture(s4bmask(5))
Case Is = 6
picImage = LoadPicture(s4b(6))
picMask = LoadPicture(s4bmask(6))
Case Is = 7
picImage = LoadPicture(s4b(7))
picMask = LoadPicture(s4bmask(7))
Case Is = 8
picImage = LoadPicture(s4b(8))
picMask = LoadPicture(s4bmask(8))
Case Is = 9
picImage = LoadPicture(s4b(9))
picMask = LoadPicture(s4bmask(9))
Case Is = 10
picImage = LoadPicture(s4b(10))
picMask = LoadPicture(s4bmask(10))
Case Is = 11
picImage = LoadPicture(s4b(11))
picMask = LoadPicture(s4bmask(11))
Case Is = 12
picImage = LoadPicture(s4b(12))
picMask = LoadPicture(s4bmask(12))
Case Is = 13
picImage = LoadPicture(s4b(13))
picMask = LoadPicture(s4bmask(13))
Case Is = 14
picImage = LoadPicture(s4b(14))
picMask = LoadPicture(s4bmask(14))
Case Is = 15
picImage = LoadPicture(s4b(15))
picMask = LoadPicture(s4bmask(15))
Case Is = 16
picImage = LoadPicture(s4b(16))
picMask = LoadPicture(s4bmask(16))
Case Is = 17
picImage = LoadPicture(s4b(17))
picMask = LoadPicture(s4bmask(17))
Case Is = 18
picImage = LoadPicture(s4b(18))
picMask = LoadPicture(s4bmask(18))
Case Is = 19
picImage = LoadPicture(s4b(19))
picMask = LoadPicture(s4bmask(19))
Case Is = 20
picImage = LoadPicture(s4b(20))
picMask = LoadPicture(s4bmask(20))
Case Is = 21
picImage = LoadPicture(s4b(21))
picMask = LoadPicture(s4bmask(21))
Case Is = 22
picImage = LoadPicture(s4b(22))
picMask = LoadPicture(s4bmask(22))
Case Is = 23
picImage = LoadPicture(s4b(23))
picMask = LoadPicture(s4bmask(23))
Case Is = 24
picImage = LoadPicture(s4b(24))
picMask = LoadPicture(s4bmask(24))
Case Is = 25
picImage = LoadPicture(s4b(25))
picMask = LoadPicture(s4bmask(25))
Case Is = 26
picImage = LoadPicture(s4b(26))
picMask = LoadPicture(s4bmask(26))
Case Is = 27
picImage = LoadPicture(s4b(27))
picMask = LoadPicture(s4bmask(27))
Case Is = 28
picImage = LoadPicture(s4b(28))
picMask = LoadPicture(s4bmask(28))
Case Is = 29
picImage = LoadPicture(s4b(29))
picMask = LoadPicture(s4bmask(29))
Case Is = 30
'picImage = LoadPicture(s4b(30))
'picMask = LoadPicture(s4bmask(30))
Case Is = 31
picImage = LoadPicture(s4b(31))
picMask = LoadPicture(s4bmask(31))
Case Is = 32
picImage = LoadPicture(s4b(32))
picMask = LoadPicture(s4bmask(32))
Case Is = 33
picImage = LoadPicture(s4b(33))
picMask = LoadPicture(s4bmask(33))
Case Is = 34
picImage = LoadPicture(s4b(34))
picMask = LoadPicture(s4bmask(34))
Case Is = 35
picImage = LoadPicture(s4b(35))
picMask = LoadPicture(s4bmask(35))
Case Is = 36
picImage = LoadPicture(s4b(36))
picMask = LoadPicture(s4bmask(36))
Case Is = 37
picImage = LoadPicture(s4b(37))
picMask = LoadPicture(s4bmask(37))
Case Is = 38
picImage = LoadPicture(s4b(38))
picMask = LoadPicture(s4bmask(38))
Case Is = 39
picImage = LoadPicture(s4b(39))
picMask = LoadPicture(s4bmask(39))
Case Is = 40
picImage = LoadPicture(s4b(40))
picMask = LoadPicture(s4bmask(40))
Case Is = 41
picImage = LoadPicture(s4b(41))
picMask = LoadPicture(s4bmask(41))
Case Is = 42
picImage = LoadPicture(s4b(42))
picMask = LoadPicture(s4bmask(42))
Case Is = 43
picImage = LoadPicture(s4b(43))
picMask = LoadPicture(s4bmask(43))
Case Is = 44
picImage = LoadPicture(s4b(44))
picMask = LoadPicture(s4bmask(44))
Case Is = 45
picImage = LoadPicture(s4b(45))
picMask = LoadPicture(s4bmask(45))
Case Is = 46
picImage = LoadPicture(s4b(46))
picMask = LoadPicture(s4bmask(46))
Case Is = 47
picImage = LoadPicture(s4b(47))
picMask = LoadPicture(s4bmask(47))
Case Is = 48
picImage = LoadPicture(s4b(48))
picMask = LoadPicture(s4bmask(48))
Case Is = 49
picImage = LoadPicture(s4b(49))
picMask = LoadPicture(s4bmask(49))
Case Is = 50
picImage = LoadPicture(s4b(50))
picMask = LoadPicture(s4bmask(50))
End Select
Rem ********************************************************************************
xpos = xpos - Xland
closerate.Caption = xpos
ypos = ypos - Yland
distance.Caption = ldist
' Update the background (starfield) based on the
' current speed and direction of the player's ship.
UpdateBackground
' Copy a section of the large bitmap into the work area.
rc = BitBlt(picWorkBG.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, 0, 0, SRCCOPY)
' Copy the sprite work area onto the background.
'rc = BitBlt(picBackground.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
rc = BitBlt(picWorkBG.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
' Draw the sprite mask bitmap into the work area.
rc = BitBlt(picWorkBG.hDC, xpos + 80, ypos + 80, picMask.ScaleWidth, picMask.ScaleHeight, picMask.hDC, 0, 0, SRCAND)
'draw sprite into the work area
rc = BitBlt(picWorkBG.hDC, xpos + 80, ypos + 80, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
' Draw the cockpit mask into the work area.
rc = BitBlt(picWorkBG.hDC, 0, 0, picPitMask.Width, picPitMask.Height, picPitMask.hDC, 0, 0, SRCAND)
'draw cockpit
rc = BitBlt(picWorkBG.hDC, 0, 0, picPitMask.Width, picPitMask.Height, picPitSprite.hDC, 0, 0, SRCPAINT)
'FlickerlessSpriteMove
' Draw the whole thing back onto the screen.
rc = BitBlt(picBackground.hDC, 0, 0, picBackground.Width, picBackground.Height, picWorkBG.hDC, 0, 0, SRCCOPY)
auxjoy(0).Visible = True
auxjoy(1).Visible = True
auxjoy(2).Visible = True
auxjoy(3).Visible = True
auxcon(0).Picture = auxcon(5).Picture
End Sub
Public Sub EndGame()
'------------------------------------------------------------
' Close everything down.
'------------------------------------------------------------
Dim rc As Long
' Shut down the WaveMix .DLL.
WAVMIX_Close
' Turn off the timer.
Timer1.Enabled = False
' Ready to start again?
btnStart.Caption = "&START"
Me.Refresh
' Wait a couple of seconds
Pause 5
picBackground.Visible = False
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'----------------------------------------------------------
' Set the module-level MouseButtonDown variable, so that
' the Mouse Control timer knows a button was pushed.
'----------------------------------------------------------
MouseButtonDown = Button
End Sub
Private Sub Pause(Seconds As Single)
'------------------------------------------------------------
' Delay for a specified number of seconds.
'------------------------------------------------------------
Dim Start As Single
Start = Timer
Do While (Timer - Start) < Seconds
DoEvents
Loop
End Sub
Private Sub StartGame()
'------------------------------------------------------------
' Initialize everything and start the game.
'------------------------------------------------------------
Dim rc As Integer
Dim i As Integer
Static NotFirstTime As Integer
Me.Show
picBackground.Visible = True
ScrollSpeed = 5
Timer1.Enabled = True
End Sub
Private Sub UpdateBackground()
'------------------------------------------------------------
' The first step in building a new view is to copy the
' next section of the original background onto the working
' background picture box.
'------------------------------------------------------------
'Static LastXdir As Integer
'Static LastYdir As Integer
' BGMove picWorkBG, picBGOriginal, LastXdir * 2, LastYdir * 2
BGMove picWorkBG, picBGOriginal, Xland, Yland
' End If
End Sub
Private Sub FlickerlessSpriteMove()
'-----------------------------------------------------
' Moving a sprite without flicker requires the use
' of an off-screen work area into which we copy a
' section of the background and sprite.
'-----------------------------------------------------
Dim rc As Integer
WorkWidth = 2090
WorkHeight = 2020
BackgroundX = SpriteX
BackgroundY = SpriteY
' Calculate the next position for the sprite, and any
' necessary direction changes.
GetNextPos picImage.ScaleWidth, picImage.ScaleHeight
' Copy a section of the large bitmap into the work area.
'rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, (BackgroundX + SpriteX) - INCREMENT, (BackgroundY + SpriteY) - INCREMENT, SRCCOPY)
'rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBackground.hDC, (SpriteX), (SpriteY), SRCCOPY)
rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, picBGOriginal.hDC, (SpriteX), (SpriteY), SRCCOPY)
' Draw the mask and sprite bitmaps into the work area.
rc = BitBlt(picWork.hDC, INCREMENT, INCREMENT, picMask.ScaleWidth, picMask.ScaleHeight, picMask.hDC, 0, 0, SRCAND)
rc = BitBlt(picWork.hDC, INCREMENT, INCREMENT, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
'rc = BitBlt(picWork.hDC, 0, 0, picmask.ScaleWidth, picmask.ScaleHeight, picmask.hDC, 0, 0, SRCAND)
'rc = BitBlt(picWork.hDC, 0, 0, picImage.ScaleWidth, picImage.ScaleHeight, picImage.hDC, 0, 0, SRCPAINT)
' Copy the work area onto the background.
' rc = BitBlt(picBackground.hDC, SpriteX - INCREMENT, SpriteY - INCREMENT, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
' rc = BitBlt(picBackground.hDC, 10, 10, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
rc = BitBlt(picBackground.hDC, 0, 0, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
DoEvents
End Sub
Private Sub GetNextPos(ByVal AWidth As Integer, ByVal AHeight As Integer)
'-----------------------------------------------------
' Calculate the next position for the sprite, and
' make any necessary direction changes.
'-----------------------------------------------------
xdir = Xland
ydir = Yland
' Calculate the new position for the sprite.
SpriteX = SpriteX + (xdir)
SpriteY = SpriteY + (ydir)
End Sub
DOCKING2.LOG
Line 239: Class Threed.SSCommand of control SSCommand1 was not a loaded control class. Line 254: Class Threed.SSCommand of control SSCommand1 was not a loaded control class. Line 357: Class Threed.SSCommand of control Leave was not a loaded control class. Line 379: Class Threed.SSCommand of control start was not a loaded control class. Line 246: The property name _version in SSCommand1 is invalid. Line 247: The property name _extentx in SSCommand1 is invalid. Line 248: The property name _extenty in SSCommand1 is invalid. Line 249: The property name _stockprops in SSCommand1 is invalid. Line 250: The property name caption in SSCommand1 is invalid. Line 251: The property name bevelwidth in SSCommand1 is invalid. Line 252: The property name font3d in SSCommand1 is invalid. Line 261: The property name _version in SSCommand1 is invalid. Line 262: The property name _extentx in SSCommand1 is invalid. Line 263: The property name _extenty in SSCommand1 is invalid. Line 264: The property name _stockprops in SSCommand1 is invalid. Line 265: The property name caption in SSCommand1 is invalid. Line 266: The property name bevelwidth in SSCommand1 is invalid. Line 267: The property name font3d in SSCommand1 is invalid. Line 363: The property name _version in Leave is invalid. Line 364: The property name _extentx in Leave is invalid. Line 365: The property name _extenty in Leave is invalid. Line 366: The property name _stockprops in Leave is invalid. Line 367: The property name caption in Leave is invalid. Line 377: The property name font3d in Leave is invalid. Line 385: The property name _version in start is invalid. Line 386: The property name _extentx in start is invalid. Line 387: The property name _extenty in start is invalid. Line 388: The property name _stockprops in start is invalid. Line 389: The property name caption in start is invalid. Line 399: The property name font3d in start is invalid.
LANDING.FRM
VERSION 4.00
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 6030
ClientLeft = 1095
ClientTop = 1515
ClientWidth = 6720
Height = 6435
Left = 1035
LinkTopic = "Form1"
ScaleHeight = 8715
ScaleWidth = 12000
Top = 1170
Width = 6840
Begin VB.PictureBox Picture4
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 7200
Left = 0
Picture = "LANDING.frx":0000
ScaleHeight = 7200
ScaleWidth = 9600
TabIndex = 0
Top = 0
Width = 9600
Begin VB.PictureBox start
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 700
size = 8.25
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
Height = 360
Left = 6105
ScaleHeight = 330
ScaleWidth = 3075
TabIndex = 6
Top = 6225
Width = 3105
End
Begin VB.PictureBox Leave
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 700
size = 8.25
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
Height = 360
Left = 6090
ScaleHeight = 330
ScaleWidth = 3075
TabIndex = 5
Top = 6630
Width = 3105
End
Begin VB.PictureBox picBackground
Appearance = 0 'Flat
BackColor = &H00000000&
BorderStyle = 0 'None
DragIcon = "LANDING.frx":4B444
ForeColor = &H80000008&
Height = 5205
Left = 570
ScaleHeight = 347
ScaleMode = 3 'Pixel
ScaleWidth = 640
TabIndex = 4
Top = 855
Width = 9600
End
Begin VB.PictureBox auxcon
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1440
Index = 0
Left = 4170
Picture = "LANDING.frx":4B74E
ScaleHeight = 96
ScaleMode = 3 'Pixel
ScaleWidth = 117
TabIndex = 1
Top = 5475
Width = 1755
Begin VB.PictureBox SSCommand1
Height = 330
Index = 0
Left = 0
ScaleHeight = 300
ScaleWidth = 525
TabIndex = 3
Top = 1065
Width = 555
End
Begin VB.PictureBox SSCommand1
Height = 330
Index = 1
Left = 1185
ScaleHeight = 300
ScaleWidth = 525
TabIndex = 2
Top = 1080
Width = 555
End
Begin VB.Image auxjoy
Height = 300
Index = 3
Left = 405
Picture = "LANDING.frx":4E51A
Top = 570
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 2
Left = 720
Picture = "LANDING.frx":4E716
Top = 885
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 1
Left = 1035
Picture = "LANDING.frx":4E912
Top = 570
Width = 300
End
Begin VB.Image auxjoy
Height = 300
Index = 0
Left = 720
Picture = "LANDING.frx":4EB0E
Top = 255
Width = 300
End
End
Begin VB.Label closerate
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "1000"
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 400
size = 13.5
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 360
Left = 1395
TabIndex = 8
Top = 5805
Width = 600
End
Begin VB.Label distance
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "1000"
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 400
size = 13.5
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 360
Left = 1410
TabIndex = 7
Top = 6420
Width = 600
End
End
End
Attribute VB_Name = "Form1"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
\PCX
LANDING.FRM
VERSION 4.00
Begin VB.Form Form1
Caption = "landing trial"
ClientHeight = 5355
ClientLeft = 1095
ClientTop = 1530
ClientWidth = 4965
Height = 5760
Left = 1035
LinkTopic = "Form1"
ScaleHeight = 5355
ScaleWidth = 4965
Top = 1185
Width = 5085
Begin VB.CheckBox chkFlickerless
Caption = "flickerless"
Height = 510
Left = 2235
TabIndex = 10
Top = 60
Width = 1080
End
Begin VB.HScrollBar HScroll1
Height = 270
LargeChange = 12
Left = 795
TabIndex = 9
Top = 4965
Width = 480
End
Begin VB.VScrollBar VScroll1
Height = 640
LargeChange = 12
Left = 4560
TabIndex = 8
Top = 810
Width = 285
End
Begin VB.PictureBox picBackground
BackColor = &H00FFFFFF&
Height = 4110
Left = 630
ScaleHeight = 272
ScaleMode = 3 'Pixel
ScaleWidth = 245
TabIndex = 7
Top = 675
Width = 3705
End
Begin VB.PictureBox picWork
AutoSize = -1 'True
BackColor = &H00FFFFFF&
BorderStyle = 0 'None
Height = 360
Left = 210
ScaleHeight = 24
ScaleMode = 3 'Pixel
ScaleWidth = 21
TabIndex = 6
Top = 2355
Width = 315
End
Begin VB.PictureBox picSave
AutoRedraw = -1 'True
BackColor = &H00FFFFFF&
BorderStyle = 0 'None
Height = 345
Left = 210
ScaleHeight = 23
ScaleMode = 3 'Pixel
ScaleWidth = 22
TabIndex = 5
Top = 1785
Width = 330
End
Begin VB.Timer Timer2
Interval = 55
Left = 5145
Top = 90
End
Begin VB.Timer Timer1
Interval = 55
Left = 4605
Top = 90
End
Begin VB.PictureBox crosshairMask
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 285
Left = 210
Picture = "LANDING.frx":0000
ScaleHeight = 19
ScaleMode = 3 'Pixel
ScaleWidth = 19
TabIndex = 4
Top = 1320
Width = 285
End
Begin VB.PictureBox crosshair
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 285
Left = 240
Picture = "LANDING.frx":01C8
ScaleHeight = 19
ScaleMode = 3 'Pixel
ScaleWidth = 19
TabIndex = 3
Top = 855
Width = 285
End
Begin VB.CommandButton btnGo
Caption = "Move Sprite"
Height = 435
Left = 315
TabIndex = 2
Top = 135
Width = 1215
End
Begin VB.PictureBox landsite
AutoRedraw = -1 'True
AutoSize = -1 'True
ForeColor = &H0000FFFF&
Height = 7230
Left = 5775
Picture = "LANDING.frx":0394
ScaleHeight = 7200
ScaleWidth = 9600
TabIndex = 1
Top = 1035
Width = 9630
End
Begin VB.PictureBox landcompare
Height = 495
Left = 330
Picture = "LANDING.frx":4B7D4
ScaleHeight = 465
ScaleWidth = 1185
TabIndex = 0
Top = 6255
Width = 1215
End
Begin VB.Label Label1
BackStyle = 0 'Transparent
Caption = "Primary Target"
ForeColor = &H0000FFFF&
Height = 255
Left = 3210
TabIndex = 12
Top = 4905
Width = 1080
End
Begin VB.Label AltReadOut
BackStyle = 0 'Transparent
Caption = "10000"
ForeColor = &H0000FFFF&
Height = 255
Left = 2160
TabIndex = 11
Top = 4950
Width = 600
End
End
Attribute VB_Name = "Form1"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
Option Explicit
'--------------------------------------------
' PROJLAND.FRM
' This program is test for graphics to be used in
' landing routines.
' displaying bitmaps and sprites.
' -------------------------------------------
' The number of pixels to offset the sprite
' each time it is moved.
Const INCREMENT = 3
' Constants for Raster Operations used by BitBlt function.
Const SRCAND = &H8800C6 ' dest = source AND dest
Const SRCCOPY = &HCC0020 ' dest = source
Const SRCPAINT = &HEE0086 ' dest = source OR dest
' The BitBlt Windows API call.
Private Declare Function BitBlt Lib "GDI" (ByVal hDestDC As Integer, ByVal X As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As Integer, ByVal XSrc As Integer, ByVal YSrc As Integer, ByVal dwRop As Long) As Integer
' The x and y coordinates for the Sprite
Dim SpriteX As Integer
Dim SpriteY As Integer
' The x and y coordinates for the upper left corner
' of the large bitmap (landSite).
Dim BackgroundX As Integer
Dim BackgroundY As Integer
' The width and height of the work area bitmap (picWork).
Dim WorkWidth As Integer
Dim WorkHeight As Integer
Dim Hght As Integer
Private Sub btnGo_Click()
'-----------------------------------------------------
' Start the simple sprite demonstration when this
' button is pushed.
'-----------------------------------------------------
Dim rc As Integer
' We're running.
If Timer1.Enabled Then
Timer1.Enabled = False
' Restore BG
If chkFlickerless = 0 Then
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, picSave.ScaleWidth, picSave.ScaleHeight, picSave.hDC, 0, 0, SRCCOPY)
Else
VScroll1_Change
End If
' We're stopped.
Else
' Save BG
If chkFlickerless = 0 Then rc = BitBlt(picSave.hDC, 0, 0, picSave.ScaleWidth, picSave.ScaleHeight, picBackground.hDC, SpriteX, SpriteY, SRCCOPY)
Timer1.Enabled = True
End If
End Sub
Private Sub Form_Load()
'-----------------------------------------------------
'
'-----------------------------------------------------
Dim rc As Integer
Me.Show
'chkAutoRedraw.Value = 1
' Set the limits of the scroll bars.
HScroll1.Max = landsite.ScaleWidth - picBackground.ScaleWidth
VScroll1.Max = landsite.ScaleHeight - picBackground.ScaleHeight
' Only enable the scrollers if landSite is larger than
' the picBackground bitmap.
If landsite.ScaleWidth <= picBackground.ScaleWidth Then HScroll1.Enabled = False
If landsite.ScaleHeight <= picBackground.ScaleHeight Then VScroll1.Enabled = False
' Save this initial section of the background. It may be
' needed for the flickering sprite demo.
rc = BitBlt(picBackground.hDC, 0, 0, picBackground.ScaleWidth, picBackground.ScaleHeight, landsite.hDC, HScroll1, VScroll1, SRCCOPY)
' Set the dimensions of the work bitmap.
WorkWidth = (crosshair.Width / 15) + (INCREMENT * 2)
WorkHeight = (crosshair.Height / 15) + (INCREMENT * 2)
picWork.Width = WorkWidth * 15
picWork.Height = WorkHeight * 15
Me.Refresh
Hght = 10000
End Sub
Public Sub AnimatedSpriteMove()
'-----------------------------------------------------
' Move the animated sprite to its next position.
'-----------------------------------------------------
Dim rc As Integer
Static SpriteNum As Integer
' Calculate the next position for the sprite, and any
' necessary direction changes.
'GetNextPos crosshairMask.ScaleWidth, crosshairMask.ScaleHeight
' Copy a section of the large bitmap into the work area.
'rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, landsite.hDC, (BackgroundX + SpriteX) - INCREMENT, (BackgroundY + SpriteY) - INCREMENT, SRCCOPY)
' Draw the sprite mask into the work area.
'rc = BitBlt(picWork.hDC, INCREMENT, INCREMENT, crosshairMask.ScaleWidth, crosshairMask.ScaleHeight, crosshairMask.hDC, 0, 0, SRCAND)
' The picEarthSprites bitmap contains 8 "frames". Each frame
' is displayed in sequence to animate the object.
'rc = BitBlt(picWork.hDC, INCREMENT, INCREMENT, crosshairMask.ScaleWidth, crosshairMask.ScaleHeight, picEarthSprites.hDC, (SpriteNum \ 2) * 32, 0, SRCPAINT)
' Increment the Sprite Frame number.
'SpriteNum = (SpriteNum + 1) Mod 16
' Copy the work area onto the background.
'rc = BitBlt(picBackground.hDC, SpriteX - INCREMENT, SpriteY - INCREMENT, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
'DoEvents
End Sub
Public Sub FlickerlessSpriteMove()
'-----------------------------------------------------
' Moving a sprite without flicker requires the use
' of an off-screen work area into which we copy a
' section of the background and sprite.
'-----------------------------------------------------
Dim rc As Integer
' Calculate the next position for the sprite, and any
' necessary direction changes.
GetNextPos crosshair.ScaleWidth, crosshair.ScaleHeight
' Copy a section of the large bitmap into the work area.
rc = BitBlt(picWork.hDC, 0, 0, WorkWidth, WorkHeight, landsite.hDC, (BackgroundX + SpriteX) - INCREMENT, (BackgroundY + SpriteY) - INCREMENT, SRCCOPY)
' Draw the mask and sprite bitmaps into the work area.
rc = BitBlt(picWork.hDC, INCREMENT, INCREMENT, crosshairMask.ScaleWidth, crosshairMask.ScaleHeight, crosshairMask.hDC, 0, 0, SRCAND)
rc = BitBlt(picWork.hDC, INCREMENT, INCREMENT, crosshair.ScaleWidth, crosshair.ScaleHeight, crosshair.hDC, 0, 0, SRCPAINT)
' Copy the work area onto the background.
rc = BitBlt(picBackground.hDC, SpriteX - INCREMENT, SpriteY - INCREMENT, WorkWidth, WorkHeight, picWork.hDC, 0, 0, SRCCOPY)
DoEvents
End Sub
Public Sub GetNextPos(ByVal AWidth As Integer, ByVal AHeight As Integer)
'-----------------------------------------------------
' Calculate the next position for the sprite, and
' make any necessary direction changes.
'-----------------------------------------------------
Static xdir As Integer
Static ydir As Integer
' If this is the first time into the routine,
' then initialize the x and y direction indicators.
If xdir = 0 Then
xdir = 1
ydir = 1
End If
' Calculate the new position for the sprite.
SpriteX = SpriteX + (INCREMENT * xdir)
SpriteY = SpriteY + (INCREMENT * ydir)
' Change direction of the sprite if it reaches the edge
' of the background bitmap.
If (SpriteX + AWidth) >= picBackground.ScaleWidth Then
xdir = -1
End If
If SpriteX <= 0 Then
xdir = 1
End If
If (SpriteY + AHeight) >= picBackground.ScaleHeight Then
ydir = -1
End If
If SpriteY <= 0 Then
ydir = 1
End If
End Sub
Public Sub SpriteMove()
'-----------------------------------------------------
' A simple method for displaying a sprite.
'-----------------------------------------------------
Dim rc As Integer
' Replace the background saved when sprite was
' last displayed.
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, picSave.ScaleWidth, picSave.ScaleHeight, picSave.hDC, 0, 0, SRCCOPY)
' Calculate the next position for the sprite, and any
' necessary direction changes.
GetNextPos crosshair.ScaleWidth, crosshair.ScaleHeight
' Save the area of the background where the sprite is
' about to be drawn. This saved area will be used to
' "erase" the sprite before it is displayed at a new
' position.
rc = BitBlt(picSave.hDC, 0, 0, picSave.ScaleWidth, picSave.ScaleHeight, picBackground.hDC, SpriteX, SpriteY, SRCCOPY)
' Draw the sprite mask directly onto the background.
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, crosshairMask.ScaleWidth, crosshairMask.ScaleHeight, crosshairMask.hDC, 0, 0, SRCAND)
' Draw the sprite over top of the mask.
rc = BitBlt(picBackground.hDC, SpriteX, SpriteY, crosshair.ScaleWidth, crosshair.ScaleHeight, crosshair.hDC, 0, 0, SRCPAINT)
DoEvents
End Sub
Private Sub HScroll1_Change()
'-----------------------------------------------------
' Move the background horizontally under scroller
' control.
'-----------------------------------------------------
Dim rc As Integer
BackgroundX = HScroll1
rc = BitBlt(picBackground.hDC, 0, 0, picBackground.ScaleWidth, picBackground.ScaleHeight, landsite.hDC, BackgroundX, BackgroundY, SRCCOPY)
End Sub
Private Sub Timer1_Timer()
'-----------------------------------------------------
' Depending on the value of the Flickerless check
' box, run one of the simple sprite move subroutines.
'-----------------------------------------------------
If chkFlickerless = 1 Then
FlickerlessSpriteMove
Else
SpriteMove
End If
Hght = Hght - 1
' AltReadOut.Left = BackgroundX
' AltReadOut.Top = BackgroundY
' AltReadOut.Caption = Height
End Sub
Private Sub Timer2_Timer()
'-----------------------------------------------------
' Move the animated sprite to its next position.
'-----------------------------------------------------
AnimatedSpriteMove
End Sub
Private Sub VScroll1_Change()
'-----------------------------------------------------
' Move the background vertically under scroller
' control.
'-----------------------------------------------------
Dim rc As Integer
BackgroundY = VScroll1
rc = BitBlt(picBackground.hDC, 0, 0, picBackground.ScaleWidth, picBackground.ScaleHeight, landsite.hDC, BackgroundX, BackgroundY, SRCCOPY)
End Sub
LANDING.LOG
Line 2: The Form or MDIForm name Form1 is already in use; cannot load this form.
\LANDSITE
FTEST.FRM
VERSION 4.00
Begin VB.Form Form1
AutoRedraw = -1 'True
BackColor = &H00C0C0C0&
Caption = "Form1"
ClientHeight = 6030
ClientLeft = 1170
ClientTop = 1470
ClientWidth = 6720
ClipControls = 0 'False
DrawStyle = 6 'Inside Solid
FillStyle = 0 'Solid
ForeColor = &H0000FF00&
Height = 6435
Left = 1110
LinkTopic = "Form1"
ScaleHeight = 402
ScaleMode = 3 'Pixel
ScaleWidth = 448
Top = 1125
Width = 6840
Begin VB.PictureBox Picture1
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 3105
Left = 7095
Picture = "FTEST.frx":0000
ScaleHeight = 155.25
ScaleMode = 2 'Point
ScaleWidth = 81
TabIndex = 6
Top = 900
Width = 1620
End
Begin VB.PictureBox terrain
Appearance = 0 'Flat
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H80000005&
ForeColor = &H80000008&
Height = 6030
Left = 9195
Picture = "FTEST.frx":5B98
ScaleHeight = 400
ScaleMode = 3 'Pixel
ScaleWidth = 150
TabIndex = 5
Top = 720
Width = 2280
End
Begin VB.PictureBox picWork
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H00008000&
ForeColor = &H00000000&
Height = 3345
Left = 270
ScaleHeight = 221
ScaleMode = 3 'Pixel
ScaleWidth = 407
TabIndex = 4
Top = 315
Width = 6135
End
Begin VB.PictureBox vscreen
AutoRedraw = -1 'True
AutoSize = -1 'True
BackColor = &H00C0C0C0&
ClipControls = 0 'False
FillColor = &H0000FF00&
ForeColor = &H0000C000&
Height = 3345
Left = 285
ScaleHeight = 221
ScaleMode = 3 'Pixel
ScaleWidth = 407
TabIndex = 3
Top = 285
Width = 6135
End
Begin VB.CommandButton Command3
Caption = "&End"
Height = 495
Left = 4260
TabIndex = 2
Top = 4260
Width = 1215
End
Begin VB.CommandButton Command2
Caption = "&Read"
Height = 495
Left = 2700
TabIndex = 1
Top = 4245
Width = 1215
End
Begin VB.CommandButton Command1
Caption = "&Write"
Height = 495
Left = 1080
TabIndex = 0
Top = 4230
Width = 1215
End
End
Attribute VB_Name = "Form1"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
' Windows API calls
Private Declare Function GetPixel Lib "GDI" (ByVal hDC As Integer, ByVal x As Integer, ByVal y As Integer) As Long
Private Declare Function setpixel Lib "GDI" (ByVal hDC As Integer, ByVal x As Integer, ByVal y As Integer, ByVal crColor As Long) As Long
Private Declare Function ellipse Lib "GDI" (ByVal hDC As Integer, ByVal nLeft As Integer, ByVal nTop As Integer, ByVal nRight As Integer, ByVal nBottom As Integer) As Long
Private Declare Function LineTo Lib "GDI" (ByVal hDC As Integer, ByVal x As Integer, ByVal y As Integer) As Integer
Private Declare Function Polyline Lib "GDI" (ByVal hDC As Integer, lpPoints As POINTAPI, ByVal nCount As Integer) As Integer
Private Declare Function MoveTo Lib "GDI" (ByVal hDC As Integer, ByVal x As Integer, ByVal y As Integer) As Long
'-----------------------------------------------------
' BITDEMO1.FRM
' This program demonstrates some of the methods used
' to display bitmaps and sprites.
'-----------------------------------------------------
' The number of pixels to offset the sprite
' each time it is moved.
Const INCREMENT = 1
' Constants for Raster Operations used by BitBlt function.
Const SRCAND = &H8800C6 ' dest = source AND dest
Const SRCCOPY = &HCC0020 ' dest = source
Const SRCPAINT = &HEE0086 ' dest = source OR dest
' The BitBlt Windows API call.
Private Declare Function BitBlt Lib "GDI" (ByVal hDestDC As Integer, ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As Integer, ByVal XSrc As Integer, ByVal YSrc As Integer, ByVal dwRop As Long) As Integer
' The width and height of the work area bitmap (picWork).
Dim WorkWidth As Integer
Dim WorkHeight As Integer
'Scaling Constants
Const XSCALE = 5
Const YSCALE = 3
Private Sub Command1_Click()
Dim iOutNumber, linetok As Integer
Dim xpos, ypos(150) As Integer
Dim token(400) As String 'String to hold line
Dim color As Long
Static iRnd(2) As Integer, iCount As Integer
'frmWrite.Show
' Randomize
iOutNumber = FreeFile
Open "c:\vb\test.dat" For Output As iOutNumber
For linetok = 1 To 400
For iCount = 1 To 150
xpos = (iCount)
ypos(iCount) = linetok
color = GetPixel(terrain.hDC, xpos, ypos(iCount)) 'Mod 16
Select Case color
Case Is = 12320767
ypos(iCount) = 16
Case Is = 10222591
ypos(iCount) = 15
Case Is = 8125439
ypos(iCount) = 14
Case Is = 6028287
ypos(iCount) = 13
Case Is = 3930111
ypos(iCount) = 12
Case Is = 1832959
ypos(iCount) = 11
Case Is = 63487
ypos(iCount) = 10
Case Is = 57319
ypos(iCount) = 9
Case Is = 52175
ypos(iCount) = 8
Case Is = 46007
ypos(iCount) = 7
Case Is = 39839
ypos(iCount) = 6
Case Is = 34695
ypos(iCount) = 5
Case Is = 28527
ypos(iCount) = 4
Case Is = 23387
ypos(iCount) = 3
Case Is = 17219
ypos(iCount) = 2
Case Is = 16777215
ypos(iCount) = 1
End Select
'ypos = Int(color)
'Write #iOutNumber, xpos, ypos(iCount)
'iRnd(0) = Int(Rnd(1) * 100)
'iRnd(1) = Int(Rnd(1) * 100)
'Write #iOutNumber, iRnd(0), iRnd(1)
token(linetok) = token(linetok) + Str(ypos(iCount))
If iCount < 150 Then
token(linetok) = token(linetok) + ","
End If
Next
'Write #iOutNumber, ypos(1), ypos(2), ypos(3), ypos(4), ypos(5), ypos(6), ypos(7), ypos(8), ypos(9), ypos(10), ypos(11), ypos(12), ypos(13), ypos(14), ypos(15), ypos(16), ypos(17), ypos(18), ypos(19), ypos(20), ypos(21), ypos(22), ypos(23), ypos(24), ypos(25), ypos(26), ypos(27), ypos(28), ypos(29), ypos(30), ypos(31), ypos(32), ypos(33), ypos(34), ypos(35), ypos(36), ypos(37), ypos(38), ypos(39), ypos(40), ypos(41), ypos(42), ypos(43), ypos(44), ypos(45), ypos(46), ypos(47), ypos(48), ypos(49), ypos(50), ypos(51), ypos(52), ypos(53), ypos(54), ypos(55), ypos(56), ypos(57), ypos(58), ypos(59), ypos(60), ypos(5), ypos(6), ypos(7), ypos(8), ypos(9), ypos(10), ypos(11), ypos(12), ypos(13), ypos(14), ypos(15), ypos(2), ypos(3), ypos(4), ypos(5), ypos(6), ypos(7), ypos(8), ypos(9), ypos(10), ypos(11), ypos(12), ypos(13), ypos(14), ypos(15), ypos(2), ypos(3), ypos(4), ypos(5), ypos(6), ypos(7), ypos(8), ypos(9), ypos(10), ypos(11), ypos(12), ypos(13), ypos(14), ypos(15)
Write #iOutNumber, token(linetok)
Next
Close iOutNumber
End Sub
Private Sub Command2_Click()
Dim iAutoNumber As Integer
Dim k, LSx, LSy, LSoffset, ykount, lineNum As Integer
Dim LSxPrime, LSyPrime, MyPos, LastPos As Integer
Dim rc As Long
Static sInput(400, 150), token As String
Dim lineknt As Integer
k = 1
LSoffset = 25
lineNum = 5
iAutoNumber = FreeFile
Open "c:\vb\test.dat" For Input As iAutoNumber
'Input #iAutoNumber, sInput(1), sInput(2), sInput(3), sInput(4), sInput(5), sInput(6), sInput(7), sInput(8), sInput(9), sInput(10), sInput(11), sInput(12), sInput(13), sInput(14), sInput(15)
For lineknt = 1 To 100
Input #iAutoNumber, token
Next
For lineknt = 101 To 120
Input #iAutoNumber, token
LastPos = 1
For k = 1 To 150
MyPos = InStr(LastPos, token, ",")
sInput(lineknt, k) = Mid(token, LastPos, 1)
LastPos = MyPos + 2
'LastPos = MyPosf
Next
'Input #iAutoNumber, sInput(0), sInput(1)
LSyPrime = 4
'LSyPrime = 16 - Val(sInput(1))
picWork.ForeColor = QBColor(0)
LSx = 1
LSy = 16 - Val(sInput(lineknt, 1)) '16 is flat ground
picWork.Line (LSxPrime * XSCALE, LSyPrime * YSCALE + LSoffset)-(LSx * XSCALE, LSy * YSCALE + LSoffset + lineNum)
'Do While Not EOF(iAutoNumber)
'Input #iAutoNumber, sInput(0), sInput(1)
'Print k & ") " & sInput(0) & " , " & sInput(1)
For ykount = 2 To 150
LSx = ykount
LSy = Val(sInput(lineknt, ykount))
picWork.Line -(LSx * XSCALE, LSy * YSCALE + LSoffset)
k = k + 1
'lineNum = lineNum + 20
'picWork.Line (LSxPrime * XSCALE, LSy * YSCALE + LSoffset)-(LSx * XSCALE, LSy * YSCALE + LSoffset + lineNum)
Next
'Loop
LSoffset = LSoffset + 5
Next
Close iAutoNumber
' Draw the whole thing back onto the screen.
rc = BitBlt(vscreen.hDC, 0, 0, vscreen.Width, vscreen.Height, picWork.hDC, 0, 0, SRCCOPY)
'rc = BitBlt(picBackground.hDC, 0, 0, picBackground.Width, picBackground.Height, picWorkBG.hDC, 0, 0, SRCCOPY)
DoEvents
End Sub
Private Sub Command3_Click()
End
End Sub
\PANELS
\LM
FRMLANDE.FRM
VERSION 4.00
Begin VB.Form frmLander
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "Lunar Landing"
ClientHeight = 4020
ClientLeft = 1095
ClientTop = 1485
ClientWidth = 7365
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 700
size = 8.25
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 4425
Left = 1035
LinkTopic = "Form1"
ScaleHeight = 4020
ScaleWidth = 7365
Top = 1140
Width = 7485
End
Attribute VB_Name = "frmLander"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
Option Explicit
\RADARLM
LMRADAR.FRM
VERSION 4.00
Begin VB.Form frmMain
Appearance = 0 'Flat
AutoRedraw = -1 'True
BackColor = &H00FFFFFF&
Caption = "Scrolling Background Example"
ClientHeight = 4950
ClientLeft = 1425
ClientTop = 1665
ClientWidth = 4770
BeginProperty Font
name = "MS Sans Serif"
charset = 1
weight = 700
size = 8.25
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
ForeColor = &H00000000&
Height = 5355
Left = 1365
LinkTopic = "Form1"
Picture = "LMRADAR.frx":0000
ScaleHeight = 4950
ScaleWidth = 4770
Top = 1320
Width = 4890
Begin VB.VScrollBar VScroll1
Height = 2055
Left = 2310
TabIndex = 2
Top = 1755
Width = 270
End
Begin VB.Timer Timer1
Left = 9015
Top = 135
End
Begin VB.PictureBox Picture2
Appearance = 0 'Flat
BackColor = &H80000005&
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 6495
Left = 6240
Picture = "LMRADAR.frx":4B440
ScaleHeight = 6495
ScaleWidth = 2235
TabIndex = 1
Top = 15
Visible = 0 'False
Width = 2235
End
Begin VB.PictureBox Picture1
Appearance = 0 'Flat
BackColor = &H80000005&
ForeColor = &H80000008&
Height = 1680
Left = 2715
ScaleHeight = 1650
ScaleWidth = 2445
TabIndex = 0
Top = 2055
Width = 2475
End
End
Attribute VB_Name = "frmMain"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
Option Explicit
Const SRCCOPY = &HCC0020
Const PIXELS = 3
Private Declare Function BitBlt Lib "GDI" (ByVal hDestDC As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As Integer, ByVal XSrc As Integer, ByVal YSrc As Integer, ByVal dwRop As Long) As Integer
Private Sub Form_Load()
' Set the ScaleMode of both PictureBox controls to
' pixels, the units expected by the BitBlt function.
Picture1.ScaleMode = PIXELS
Picture2.ScaleMode = PIXELS
' Picture2 holds the entire background bitmap. Setting
' AutoSize lets the control resize itself to the same
' dimensions as the bitmap it contains.
Picture2.AutoSize = True
' Setting AutoRedraw to true creates a persistent bitmap,
' which can be BitBlted even if it's not visible in the
' window.
Picture2.AutoRedraw = True
' Make sure Picture1 is the same height as Picture2.
Picture1.Width = Picture2.Width
' The maximum scrolling rate will be 20 pixels at a time.
VScroll1.Max = 20
VScroll1.LargeChange = 2
Me.Width = (Me.Width - Me.ScaleWidth) + Picture1.Left + Picture1.Width + VScroll1.Left
' Setting the timer interval causes timer events to begin.
Timer1.Interval = 55
End Sub
Private Sub Timer1_Timer()
Static Y As Integer
Dim AHeight As Integer
Dim rc As Integer
' Calculate the next x position for Picture2.
Y = Y - VScroll1
'If Y > Picture2.ScaleHeight Then Y = 480
If Y < 0 Then Y = Picture2.ScaleHeight
If Y > (Picture2.ScaleHeight - Picture1.ScaleHeight) Then
AHeight = Picture2.ScaleHeight - Y
' When y gets close to the bottom edge of Picture2's bitmap,
' two sections of Picture2 need to be copied into Picture1.
' The first BitBlt copies whatever remains below
' position x in Picture2. The second BitBlt will copy from
' the top side of Picture2 to fill in the remaining
' area to the right of Picture1.
rc = BitBlt(Picture1.hDC, 0, 0, Picture2.ScaleWidth, AHeight, Picture2.hDC, 0, Y, SRCCOPY)
rc = BitBlt(Picture1.hDC, 0, AHeight, Picture2.ScaleWidth, Picture1.ScaleHeight - AHeight, Picture2.hDC, 0, 0, SRCCOPY)
Else
' Normally, only one BitBlt is required to copy the section
' of Picture2 into Picture1.
rc = BitBlt(Picture1.hDC, 0, 0, Picture1.ScaleWidth, Picture2.ScaleHeight, Picture2.hDC, 0, Y, SRCCOPY)
End If
End Sub
Directory Listings
A considerable number of folders have text files of directory listings too.
\DOCKING\DOCK
Volume in drive D has no label
Directory of D:\DOCKING\DOCK
. <DIR> 04-28-96 7:25p
.. <DIR> 04-28-96 7:25p
DOCK5 BMP 2,680 04-21-96 12:22p
DOCK4 BMP 1,744 04-21-96 12:23p
DOCK3 BMP 1,108 04-21-96 12:24p
DOCK2 BMP 664 04-21-96 12:25p
DOCK1 BMP 256 04-21-96 12:26p
DOCK10 BMP 9,788 04-21-96 12:28p
DOCK9 BMP 8,192 04-21-96 12:29p
DOCK8 BMP 6,348 04-21-96 12:29p
DOCK6 BMP 3,668 04-21-96 12:31p
DOCK15 BMP 22,076 04-21-96 12:33p
DOCK14 BMP 19,088 04-21-96 12:34p
DOCK13 BMP 16,688 04-21-96 12:35p
DOCK12 BMP 14,108 04-21-96 12:36p
DOCK11 BMP 12,060 04-21-96 12:37p
DOCK20 BMP 38,788 04-21-96 12:40p
DOCK19 BMP 35,324 04-21-96 12:41p
DOCK18 BMP 31,508 04-21-96 12:42p
DOCK17 BMP 28,396 04-21-96 12:42p
DOCK16 BMP 24,828 04-21-96 12:43p
DOCK25 BMP 61,172 04-21-96 12:46p
DOCK24 BMP 55,868 04-21-96 12:47p
DOCK23 BMP 51,692 04-21-96 12:48p
DOCK22 BMP 46,828 04-21-96 12:49p
DOCK21 BMP 43,012 04-21-96 12:50p
DOCK26 BMP 65,708 04-21-96 12:51p
DOCK30 BMP 86,888 04-21-96 12:55p
DOCK28 BMP 75,788 04-21-96 12:57p
DOCK27 BMP 70,908 04-21-96 12:58p
DOCK35 BMP 118,812 04-21-96 12:59p
DOCK34 BMP 111,368 04-21-96 1:00p
DOCK33 BMP 105,432 04-21-96 1:01p
DOCK32 BMP 99,044 04-21-96 1:02p
DOCK31 BMP 93,476 04-21-96 1:03p
DOCK40 BMP 154,188 04-21-96 1:04p
DOCK39 BMP 147,580 04-21-96 1:04p
DOCK38 BMP 139,268 04-21-96 1:05p
DOCK37 BMP 132,620 04-21-96 1:06p
DOCK36 BMP 125,108 04-21-96 1:06p
DOCK45 BMP 195,904 04-21-96 1:08p
DOCK44 BMP 187,188 04-21-96 1:09p
DOCK43 BMP 179,468 04-21-96 1:09p
DOCK42 BMP 170,288 04-21-96 1:10p
DOCK41 BMP 162,928 04-21-96 1:11p
DOCK50 BMP 240,188 04-21-96 1:12p
DOCK49 BMP 231,428 04-21-96 1:13p
DOCK48 BMP 220,988 04-21-96 1:14p
DOCK47 BMP 212,588 04-21-96 1:14p
DOCK46 BMP 202,588 04-21-96 1:15p
DOCK7 BMP 5,760 04-21-96 2:41p
DOCK29 BMP 81,656 04-21-96 3:01p
DIR TXT 0 06-07-96 11:32p
53 file(s) 4,153,044 bytes
234,725,376 bytes free
TEMP.txt is the same, except with this additional entry:
TEMP TXT 0 06-07-96 11:44p
54 file(s) 4,155,582 bytes
234,700,800 bytes free
\DOCKING\MASK
Volume in drive D has no label
Volume Serial Number is 1457-16CF
Directory of D:\DOCKING\MASK
. <DIR> 06-08-96 6:43a
.. <DIR> 06-08-96 6:43a
MASK TXT 0 07-14-96 8:09p
S4B1M BMP 206,740 07-14-96 7:20p
S4B2M BMP 193,356 07-14-96 7:22p
S4B3M BMP 168,768 07-14-96 7:25p
S4B4M BMP 147,380 07-14-96 7:27p
S4B5M BMP 129,240 07-14-96 7:29p
S4B6M BMP 113,640 07-14-96 7:31p
S4B7M BMP 98,424 07-14-96 7:33p
S4B8M BMP 77,240 07-14-96 7:34p
S4B9M BMP 65,080 07-14-96 7:36p
S4B10M BMP 53,512 07-14-96 7:38p
S4B11M BMP 44,116 07-14-96 7:39p
S4B12M BMP 35,832 07-14-96 7:41p
S4B13M BMP 27,456 07-14-96 7:43p
S4B14M BMP 20,664 07-14-96 7:45p
S4B15M BMP 14,760 07-14-96 7:47p
S4B16M BMP 5,704 07-14-96 7:48p
S4B17M BMP 4,272 07-14-96 7:50p
S4B18M BMP 2,072 07-14-96 7:51p
21 file(s) 1,408,256 bytes
933,150,720 bytes free
\DOCKING\S4B
Volume in drive D has no label
Volume Serial Number is 1457-16CF
Directory of D:\DOCKING\S4B
. <DIR> 07-14-96 8:05p
.. <DIR> 07-14-96 8:05p
S4B TXT 0 07-14-96 8:07p
S4B1 BMP 206,740 07-14-96 6:47p
S4B2 BMP 193,356 07-14-96 6:45p
S4B3 BMP 168,768 07-14-96 6:49p
S4B4 BMP 147,380 07-14-96 6:51p
S4B5 BMP 129,240 07-14-96 6:54p
S4B6 BMP 113,640 07-14-96 6:56p
S4B7 BMP 98,424 07-14-96 6:59p
S4B8 BMP 77,240 07-14-96 7:01p
S4B9 BMP 65,080 07-14-96 7:03p
S4B10 BMP 53,512 07-14-96 7:05p
S4B11 BMP 44,116 07-14-96 7:06p
S4B12 BMP 35,832 07-14-96 7:08p
S4B13 BMP 27,456 07-14-96 7:09p
S4B14 BMP 20,664 07-14-96 7:10p
S4B15 BMP 14,760 07-14-96 7:12p
S4B16 BMP 5,704 07-14-96 7:14p
S4B17 BMP 4,272 07-14-96 7:16p
S4B18 BMP 2,072 07-14-96 7:17p
21 file(s) 1,408,256 bytes
933,167,104 bytes free
\PANELS\CAMERA
Volume in drive D has no label
Volume Serial Number is 1457-16CF
Directory of D:\PANELS\CAMERA
. <DIR> 08-26-96 6:53p
.. <DIR> 08-26-96 6:53p
2DAYROCK BMP 77,880 08-26-96 7:02p
3TALLROC BMP 77,880 08-26-96 7:04p
4CSM BMP 77,880 08-26-96 7:04p
5WHITERM BMP 77,240 08-26-96 7:05p
6DAYROCK BMP 77,880 08-26-96 7:05p
7ROCKLOW BMP 77,880 08-26-96 7:06p
2NITROCK BMP 77,880 08-26-96 7:02p
8WHITEOT BMP 77,880 08-26-96 7:07p
9S4BPAD BMP 77,880 08-26-96 7:08p
ARM5 BMP 77,880 08-26-96 7:09p
9HOLDOWN BMP 77,880 08-26-96 7:08p
CAM TXT 0 08-26-96 7:18p
ARM1 BMP 77,880 08-26-96 7:11p
ARM4 BMP 77,880 08-26-96 7:10p
ARM2 BMP 77,880 08-26-96 7:11p
GAMEPAL ACT 768 08-12-96 4:04p
1ENGINE BMP 77,880 08-26-96 7:01p
19 file(s) 1,168,328 bytes
921,845,760 bytes free
\PANELS\CBUTTONS\CSM2
Volume in drive C has no label
Volume Serial Number is 1125-14F5
Directory of C:\PANELS\CBUTTONS\CSM2
. <DIR> 09-18-95 7:16p
.. <DIR> 09-18-95 7:16p
CSM2-1A BMP 3,416 08-10-95 11:03a
CSM2-2A BMP 3,416 08-10-95 11:09a
TEMP TXT 0 02-20-96 4:05p
CSM2-1C BMP 3,416 08-10-95 11:30a
CSM2-2C BMP 3,416 08-10-95 11:37a
CSM2-3A BMP 3,416 08-10-95 11:39a
CSM2-3C BMP 3,416 08-10-95 11:44a
CSM2-4A BMP 3,416 08-10-95 11:46a
CSM2-4C BMP 7,076 09-25-95 7:46p
CSM2-5A BMP 3,416 08-10-95 11:50a
CSM2-5C BMP 3,416 08-10-95 11:52a
CSM2-6A BMP 3,416 08-10-95 11:53a
CSM2-6C BMP 3,416 08-10-95 11:55a
CSM2-7A BMP 3,416 08-10-95 12:00p
CSM2-7C BMP 3,416 08-10-95 12:07p
CSM2-8A BMP 3,416 08-10-95 12:08p
CSM2-8C BMP 3,416 08-10-95 12:17p
CSM2-9A BMP 3,416 08-10-95 12:19p
CSM2-9C BMP 3,416 08-10-95 12:22p
CSM2-10A BMP 3,416 08-10-95 1:16p
CSM2-10C BMP 3,416 08-10-95 1:25p
CSM2-11A BMP 3,416 08-10-95 1:31p
CSM2-11C BMP 3,416 08-10-95 1:36p
CSM2-12A BMP 3,416 08-10-95 1:38p
CSM2-12C BMP 3,416 08-10-95 1:48p
CSM2-13A BMP 3,416 08-10-95 1:50p
CSM2-13C BMP 3,416 08-10-95 1:52p
CSM2-14A BMP 3,416 08-10-95 1:53p
CSM2-14C BMP 3,416 08-10-95 1:56p
CSM2-15A BMP 3,416 08-10-95 1:57p
CSM2-15C BMP 3,416 08-10-95 1:59p
CSM2-16A BMP 3,416 08-10-95 2:08p
CSM2-16C BMP 3,416 08-10-95 2:11p
CSM2-17A BMP 3,416 08-10-95 2:12p
CSM2-17C BMP 3,416 08-10-95 2:15p
CSM2-18A BMP 3,416 08-10-95 2:17p
CSM2-18C BMP 3,416 08-10-95 2:18p
CSM2-19A BMP 3,416 08-10-95 2:39p
CSM2-19C BMP 3,416 08-10-95 2:42p
CSM2-20A BMP 3,416 08-10-95 2:43p
CSM2-20C BMP 3,416 08-10-95 2:46p
CSM2-21A BMP 3,416 08-10-95 3:18p
CSM2-21C BMP 3,416 08-10-95 3:20p
CSM2-22A BMP 3,416 08-10-95 3:21p
CSM2-22C BMP 3,416 08-10-95 3:25p
CSM2-23A BMP 3,416 08-10-95 3:26p
CSM2-23C BMP 3,416 08-10-95 3:29p
CSM2-24A BMP 3,416 08-10-95 3:30p
CSM2-24C BMP 3,416 08-10-95 3:32p
CSM2-25A BMP 3,416 08-10-95 3:40p
CSM2-25C BMP 3,416 08-10-95 3:43p
CSM2-26A TMP 3,416 09-20-95 2:58p
CSM2-26C TMP 3,416 09-20-95 3:00p
CSM2-27A TMP 3,416 08-10-95 3:44p
CSM2-28A TMP 3,416 08-10-95 3:49p
CSM2-28C TMP 3,416 08-10-95 3:54p
CSM2-A2 BMP 3,416 08-10-95 4:04p
CSM2-B2 BMP 3,416 08-10-95 4:06p
CSM2-C2 BMP 3,416 08-10-95 4:10p
CSM22A2 BMP 3,416 08-10-95 4:16p
CSM22C2 BMP 3,416 08-10-95 4:26p
CSM23A2 BMP 3,416 08-10-95 4:35p
CSM23C2 BMP 3,416 08-10-95 4:54p
CSM24A2 BMP 3,416 08-10-95 5:01p
CSM24C2 BMP 3,416 08-10-95 5:03p
CSM25A2 BMP 3,416 08-10-95 5:04p
CSM25C2 BMP 3,416 08-10-95 5:13p
CSM26A2 BMP 3,416 08-10-95 5:14p
CSM26C2 BMP 3,416 08-10-95 5:20p
CSM27A2 BMP 3,416 08-10-95 5:21p
CSM27C2 BMP 3,416 08-10-95 5:29p
CSM28A2 BMP 3,416 08-10-95 5:31p
CSM28C2 BMP 3,416 08-10-95 5:35p
CSM29A2 BMP 3,416 08-10-95 5:40p
CSM29C2 BMP 3,416 08-10-95 5:42p
CSM210A2 BMP 3,416 08-10-95 5:44p
CSM211A2 BMP 3,416 08-10-95 5:49p
CSM211C2 BMP 3,416 08-10-95 5:51p
CSM212A2 BMP 3,416 08-10-95 5:52p
CSM212C2 BMP 3,416 08-10-95 5:55p
CSM213A2 BMP 3,416 08-10-95 5:56p
CSM213C2 BMP 3,416 08-10-95 5:59p
CSM2-27C TMP 3,416 09-20-95 3:07p
CSM2-29A TMP 3,416 09-20-95 3:12p
CSM2-29C TMP 3,416 09-20-95 3:15p
CSM2-30A TMP 3,416 09-20-95 3:15p
CSM2-30C TMP 3,416 09-20-95 3:18p
CSM2-31A TMP 3,416 09-20-95 3:20p
CSM2-31C TMP 3,416 09-20-95 3:21p
CSM2-32A TMP 3,416 09-20-95 3:23p
CSM2-32C TMP 3,416 09-20-95 3:25p
CSM2-33A TMP 3,416 09-20-95 3:26p
CSM2-33C TMP 3,416 09-20-95 3:27p
CSM2-34A TMP 3,416 09-20-95 3:28p
CSM2-34C TMP 3,416 09-20-95 3:30p
CSM2-35A TMP 3,416 09-20-95 3:33p
CSM2-35C TMP 3,416 09-20-95 3:34p
CSM2-36A TMP 3,416 09-20-95 3:35p
CSM2-36C TMP 3,416 09-20-95 3:37p
CSM2-37A TMP 3,416 09-20-95 3:37p
CSM2-37C TMP 3,416 09-20-95 3:40p
CSM2-38A TMP 3,416 09-20-95 3:41p
CSM2-38C TMP 3,416 09-20-95 3:43p
CSM2-39A TMP 3,416 09-20-95 3:45p
CSM2-39C TMP 3,416 09-20-95 3:47p
MASTALRM BMP 6,920 09-25-95 5:29p
EMERG2 BMP 98,864 09-26-95 12:24p
CSM2-26A BMP 3,416 08-10-95 3:44p
CSM2-26C BMP 3,416 09-20-95 3:07p
CSM2-27A BMP 3,416 08-10-95 3:49p
CSM2-27C BMP 3,416 08-10-95 3:54p
CSM2-30A BMP 3,416 09-20-95 3:12p
CSM2-30C BMP 3,416 09-20-95 3:15p
CSM2-31A BMP 3,416 09-20-95 3:15p
CSM2-31C BMP 3,416 09-20-95 3:18p
CSM2-32A BMP 3,416 09-20-95 3:20p
CSM2-32C BMP 3,416 09-20-95 3:21p
CSM2-33A BMP 3,416 09-20-95 3:23p
CSM2-33C BMP 3,416 09-20-95 3:25p
CSM2-34A BMP 3,416 09-20-95 3:26p
CSM2-34C BMP 3,416 09-20-95 3:27p
CSM2-35A BMP 3,416 09-20-95 3:28p
CSM2-35C BMP 3,416 09-20-95 3:30p
CSM2-36A BMP 3,416 09-20-95 3:33p
CSM2-36C BMP 3,416 09-20-95 3:34p
CSM2-37A BMP 3,416 09-20-95 3:35p
CSM2-37C BMP 3,416 09-20-95 3:37p
CSM2-38A BMP 3,416 09-20-95 3:37p
CSM2-38C BMP 3,416 09-20-95 3:40p
CSM2-39A BMP 3,416 09-20-95 3:41p
CSM2-39C BMP 3,416 09-20-95 3:43p
CSM2-28 BMP 3,416 08-10-95 4:10p
CSM2-28A BMP 3,416 08-10-95 4:04p
CSM2-28C BMP 3,416 08-10-95 4:10p
CSM2-29A BMP 3,416 08-10-95 4:16p
CSM2-29B BMP 3,416 08-10-95 4:24p
CSM2-29C BMP 3,416 08-10-95 4:26p
CSM2-40A BMP 3,416 09-20-95 3:45p
CSM2-40C BMP 3,416 09-20-95 3:47p
FIX BAT 1,225 02-13-96 4:20p
FIX BAK 1,021 02-13-96 4:19p
143 file(s) 576,266 bytes
174,309,376 bytes free
\PANELS\LMWARN
Volume in drive C has no label
Directory of C:\PANELS\LMWARN
LM1W1A BMP 2,588 08-15-95 11:21a
LM1W1B BMP 2,588 08-15-95 11:22a
LM1W2A BMP 2,588 08-15-95 11:23a
LM1WARN BMP 2,588 08-15-95 11:25a
LM1W3A BMP 2,588 08-15-95 11:47a
LM1W3B BMP 2,588 08-15-95 11:50a
LM1W2B BMP 2,588 08-15-95 11:53a
LM1W4A BMP 2,588 08-15-95 11:54a
LM1W4B BMP 2,588 08-15-95 11:55a
LM1W5A BMP 2,588 08-15-95 11:55a
LM1W5B BMP 2,588 08-15-95 11:56a
LM1W6A BMP 2,588 08-15-95 12:00p
LM1W6B BMP 2,588 08-15-95 12:01p
LM1W7A BMP 2,588 08-15-95 12:02p
LM1W7B BMP 2,588 08-15-95 12:03p
LM1W8A BMP 2,588 08-15-95 12:05p
LM1W8B BMP 2,588 08-15-95 12:07p
17 file(s) 43,996 bytes
342,245,376 bytes free
\PANELS\RADARCSM
Volume in drive C has no label
Directory of C:\PANELS\RADARCSM
. <DIR> 01-27-96 4:35p
.. <DIR> 01-27-96 4:35p
GNCS <DIR> 01-29-96 8:25p
CSMINPUT BMP 56,964 01-26-96 5:57p
DPSDSPY BMP 57,540 01-27-96 5:19p
ECSDSPY BMP 57,540 01-02-96 9:02p
RADAR BMP 57,500 01-30-96 7:15p
CSMSIGHT BMP 171,448 01-02-96 8:51p
CLEARSCN BMP 57,648 01-02-96 9:11p
EXTCAM BMP 57,540 01-02-96 9:13p
CSD1 BMP 29,212 01-29-96 7:14p
GNCSTAR BMP 57,500 01-29-96 9:22p
GIMBDSPY BMP 56,120 01-30-96 6:49p
_BACKUP_ PCX 13,352 01-30-96 7:08p
GIMBDSPY PCX 19,397 01-30-96 6:44p
RADAR PCX 13,320 01-30-96 7:13p
TARGET BMP 57,540 01-28-96 4:44p
TEMPDIR 0 03-01-96 12:38p
18 file(s) 762,621 bytes
172,457,984 bytes free
\TMINUS
Volume in drive D has no label
Volume Serial Number is 1457-16CF
Directory of D:\TMINUS
. <DIR> 04-21-96 4:35p
.. <DIR> 04-21-96 4:35p
T-415 WAV 17,326 04-21-96 9:27a
T-345 WAV 18,846 04-21-96 9:28a
T-325 WAV 11,694 04-21-96 9:30a
T-315 WAV 17,230 04-21-96 9:31a
T-300 WAV 6,494 04-21-96 9:32a
T-245 WAV 12,046 04-21-96 9:33a
T-230 WAV 15,502 04-21-96 9:35a
T-215 WAV 10,142 04-21-96 9:36a
T-200 WAV 8,862 04-21-96 9:38a
T-140 WAV 11,614 04-21-96 9:39a
T-090 WAV 10,958 04-21-96 9:40a
T-100 WAV 6,446 04-21-96 9:41a
T-045 WAV 13,134 04-21-96 9:42a
T-030 WAV 10,662 04-21-96 9:43a
T-010 WAV 104,366 04-21-96 9:45a
T-30CHCK WAV 190,458 04-20-96 10:56p
AUTOARM WAV 34,936 04-20-96 10:32p
GUIDINT WAV 7,102 04-20-96 9:29p
LANCHSEQ WAV 17,562 04-20-96 10:59p
LNCHSTRT WAV 26,424 04-20-96 10:27p
NOTANK WAV 49,914 04-20-96 10:31p
PRESTART WAV 22,648 04-20-96 10:33p
LBKGND1 WAV 122,490 04-20-96 11:04p
LBKGND2 WAV 40,440 04-20-96 11:06p
LBKGND3 WAV 73,720 04-20-96 11:08p
LBKGND4 WAV 20,600 04-20-96 11:09p
LBKGND5 WAV 32,122 04-20-96 11:12p
STAGEBK1 WAV 130,936 04-20-96 11:15p
TEMP TXT 0 04-21-96 4:39p
31 file(s) 1,044,674 bytes
972,898,304 bytes free
\WARNINGS
Volume in drive C has no label
Volume Serial Number is 1125-14F5
Directory of C:\WARNINGS
. <DIR> 02-08-96 1:29p
.. <DIR> 02-08-96 1:29p
WARNFCEL WAV 39,066 02-03-96 8:16p
WARNVELC WAV 40,090 02-03-96 8:13p
WARNCRSE WAV 43,162 02-03-96 8:10p
WARNPULL WAV 35,450 02-03-96 8:05p
WARNRCS WAV 69,498 02-03-96 8:02p
WARNFUEL WAV 52,602 02-03-96 7:59p
WARN1O2 WAV 86,190 02-03-96 9:20p
WARNSPJT WAV 23,002 02-03-96 9:18p
WARNLMJT WAV 17,370 02-03-96 9:12p
WARNPYRO WAV 19,770 02-03-96 9:07p
WARNGIMB WAV 10,170 02-03-96 9:04p
WARNGEAR WAV 11,754 02-03-96 9:01p
WARNLES WAV 32,442 02-03-96 8:58p
WARNJETT WAV 27,386 02-03-96 8:42p
WARNELEC WAV 29,498 02-03-96 8:39p
WARNIMU WAV 38,394 02-03-96 8:36p
WARNCOLL WAV 51,130 02-03-96 8:33p
WARNABRT WAV 25,434 02-03-96 8:30p
WARNCOMP WAV 29,050 02-03-96 8:24p
WARNENGF WAV 84,858 02-03-96 8:22p
TEMP TXT 0 02-08-96 1:42p
23 file(s) 766,316 bytes
204,210,176 bytes free