home *** CD-ROM | disk | FTP | other *** search
- VERSION 5.00
- Begin VB.Form frmMain
- BorderStyle = 4 'Fixed ToolWindow
- Caption = "VB Quake Level Viewer"
- ClientHeight = 1125
- ClientLeft = 45
- ClientTop = 285
- ClientWidth = 3570
- LinkTopic = "Form1"
- MaxButton = 0 'False
- MinButton = 0 'False
- ScaleHeight = 1125
- ScaleWidth = 3570
- ShowInTaskbar = 0 'False
- StartUpPosition = 3 'Windows Default
- Begin VB.Label Label1
- BackStyle = 0 'Transparent
- Caption = "Keep the focus on this form and use the arrow keys, a, space, <, >, Insert, Delete, PgUp, PgDn to control the camera view."
- Height = 795
- Left = 120
- TabIndex = 0
- Top = 120
- Width = 3405
- End
- Attribute VB_Name = "frmMain"
- Attribute VB_GlobalNameSpace = False
- Attribute VB_Creatable = False
- Attribute VB_PredeclaredId = True
- Attribute VB_Exposed = False
- Option Explicit
- ' By Neil Marshall
- ' marshall@pssnet.com
- ' http://www.globalserve.net/~brent
- Dim Quake As New QDBspView
- Private Type Camera_T
- x As Single
- y As Single
- z As Single
- pitch As Single
- roll As Single
- yaw As Single
- fov As Single
- gamma As Single
- End Type
- Dim Camera As Camera_T
- Dim NoKeyPressed As Boolean
- Private Const QDBSPVIEW_OPTION_FOV = &H1 ' Adjusts the FOV
- Private Const QDBSPVIEW_OPTION_GAMMA = &H2 ' Adjusts the gamma
- Private Const QDBSPVIEW_OPTION_ALWAYS_ON_TOP = &H4 ' Keeps the form always on top
- Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
- NoKeyPressed = False
- Do
- Select Case KeyCode
- Case vbKeyUp
- ' forward
- Camera.x = Camera.x + 5
- Case vbKeyDown
- ' back
- Camera.x = Camera.x - 5
- Case vbKeyLeft
- ' moveleft
- Camera.y = Camera.y + 5
- Case vbKeyRight
- ' moveright
- Camera.y = Camera.y - 5
- Case vbKeySpace
- ' moveup
- Camera.z = Camera.z + 5
- Case vbKeyA
- ' movedown
- Camera.z = Camera.z - 5
- Case vbKeyDelete
- ' Look Down
- Camera.pitch = Camera.pitch + 5
- Case vbKeyInsert
- ' Look up
- Camera.pitch = Camera.pitch - 5
- Case 188 ' ,
- ' left
- Camera.yaw = Camera.yaw + 5
- Case 190 ' .
- ' right
- Camera.yaw = Camera.yaw - 5
- Case vbKeyPageUp
- ' roll one way
- Camera.roll = Camera.roll + 5
- Case vbKeyPageDown
- ' roll the other way
- Camera.roll = Camera.roll - 5
-
- ' Not implemented yet
- Case vbKeyAdd
- ' increase the FOV
- Camera.fov = Camera.fov + 5
- Case vbKeySubtract
- ' decrease the FOV
- Camera.fov = Camera.fov - 5
-
- Case vbKeyQ
- Camera.gamma = Camera.gamma + 0.1
- If Camera.gamma > 1 Then Camera.gamma = 1
- ' Quake.SetViewOptions QDBSPVIEW_OPTION_GAMMA, Camera.gamma, 0 ' not allowed in this
- ' version
- Case vbKeyW
- Camera.gamma = Camera.gamma - 0.1
- If Camera.gamma < 0 Then Camera.gamma = 0
- ' Quake.SetViewOptions QDBSPVIEW_OPTION_GAMMA, Camera.gamma, 0 ' not allowed in this
- ' version
- End Select
- Debug.Print KeyCode
- Adjust Camera
- DoEvents
-
- Loop Until NoKeyPressed = True
- End Sub
- Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
- NoKeyPressed = True
- End Sub
- Private Sub Form_Load()
- Quake.Init "C:\Quake2\baseq2\pak0.pak", True, 200, 200
- Quake.LoadMap "base1.bsp", "unit1_", "C:\Quake2\baseq2\pak0.pak", True
- Quake.SetCaption "VB Quake Viewer"
- Camera.x = 0
- Camera.y = 0
- Camera.z = 0
- Camera.pitch = 0
- Camera.yaw = 0
- Camera.roll = 0
- ' Doesn't work at the moment
- Camera.fov = 90
- Camera.gamma = 0.5
- 'Adjust Camera
- NoKeyPressed = True
- frmMain.Move (Screen.Width - frmMain.Width) * 0.5, (Screen.Height - frmMain.Height) * 0.5, frmMain.Width, frmMain.Height
- End Sub
- Private Sub Form_Unload(Cancel As Integer)
- Quake.Shutdown
- End Sub
- Private Sub Adjust(cam As Camera_T)
- Quake.SetCameraPos cam.x, cam.y, cam.z, cam.pitch, cam.yaw, cam.roll
- End Sub
-