home *** CD-ROM | disk | FTP | other *** search
/ Total Destruction / Total_Destruction.iso / addons / zipz / QDS101.ZIP / QDDev / VBQView / Main.frm (.txt) next >
Encoding:
Visual Basic Form  |  1998-02-10  |  4.6 KB  |  142 lines

  1. VERSION 5.00
  2. Begin VB.Form frmMain 
  3.    BorderStyle     =   4  'Fixed ToolWindow
  4.    Caption         =   "VB Quake Level Viewer"
  5.    ClientHeight    =   1125
  6.    ClientLeft      =   45
  7.    ClientTop       =   285
  8.    ClientWidth     =   3570
  9.    LinkTopic       =   "Form1"
  10.    MaxButton       =   0   'False
  11.    MinButton       =   0   'False
  12.    ScaleHeight     =   1125
  13.    ScaleWidth      =   3570
  14.    ShowInTaskbar   =   0   'False
  15.    StartUpPosition =   3  'Windows Default
  16.    Begin VB.Label Label1 
  17.       BackStyle       =   0  'Transparent
  18.       Caption         =   "Keep the focus on this form and use the arrow keys, a, space, <, >, Insert, Delete, PgUp, PgDn to control the camera view."
  19.       Height          =   795
  20.       Left            =   120
  21.       TabIndex        =   0
  22.       Top             =   120
  23.       Width           =   3405
  24.    End
  25. Attribute VB_Name = "frmMain"
  26. Attribute VB_GlobalNameSpace = False
  27. Attribute VB_Creatable = False
  28. Attribute VB_PredeclaredId = True
  29. Attribute VB_Exposed = False
  30. Option Explicit
  31. ' By Neil Marshall
  32. ' marshall@pssnet.com
  33. ' http://www.globalserve.net/~brent
  34. Dim Quake As New QDBspView
  35. Private Type Camera_T
  36.    x As Single
  37.    y As Single
  38.    z As Single
  39.    pitch As Single
  40.    roll As Single
  41.    yaw As Single
  42.    fov As Single
  43.    gamma As Single
  44. End Type
  45. Dim Camera As Camera_T
  46. Dim NoKeyPressed As Boolean
  47. Private Const QDBSPVIEW_OPTION_FOV = &H1           ' Adjusts the FOV
  48. Private Const QDBSPVIEW_OPTION_GAMMA = &H2         ' Adjusts the gamma
  49. Private Const QDBSPVIEW_OPTION_ALWAYS_ON_TOP = &H4 ' Keeps the form always on top
  50. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  51.    NoKeyPressed = False
  52.    Do
  53.       Select Case KeyCode
  54.          Case vbKeyUp
  55.             ' forward
  56.             Camera.x = Camera.x + 5
  57.          Case vbKeyDown
  58.             ' back
  59.             Camera.x = Camera.x - 5
  60.          Case vbKeyLeft
  61.             ' moveleft
  62.             Camera.y = Camera.y + 5
  63.          Case vbKeyRight
  64.             ' moveright
  65.             Camera.y = Camera.y - 5
  66.          Case vbKeySpace
  67.             ' moveup
  68.             Camera.z = Camera.z + 5
  69.          Case vbKeyA
  70.             ' movedown
  71.             Camera.z = Camera.z - 5
  72.          Case vbKeyDelete
  73.             ' Look Down
  74.             Camera.pitch = Camera.pitch + 5
  75.          Case vbKeyInsert
  76.             ' Look up
  77.             Camera.pitch = Camera.pitch - 5
  78.          Case 188 ' ,
  79.             ' left
  80.             Camera.yaw = Camera.yaw + 5
  81.          Case 190 ' .
  82.             ' right
  83.             Camera.yaw = Camera.yaw - 5
  84.          Case vbKeyPageUp
  85.             ' roll one way
  86.             Camera.roll = Camera.roll + 5
  87.          Case vbKeyPageDown
  88.             ' roll the other way
  89.             Camera.roll = Camera.roll - 5
  90.             
  91.          ' Not implemented yet
  92.          Case vbKeyAdd
  93.             ' increase the FOV
  94.             Camera.fov = Camera.fov + 5
  95.          Case vbKeySubtract
  96.             ' decrease the FOV
  97.             Camera.fov = Camera.fov - 5
  98.             
  99.          Case vbKeyQ
  100.             Camera.gamma = Camera.gamma + 0.1
  101.             If Camera.gamma > 1 Then Camera.gamma = 1
  102.             ' Quake.SetViewOptions QDBSPVIEW_OPTION_GAMMA, Camera.gamma, 0 ' not allowed in this
  103.                                                                          ' version
  104.          Case vbKeyW
  105.             Camera.gamma = Camera.gamma - 0.1
  106.             If Camera.gamma < 0 Then Camera.gamma = 0
  107.             ' Quake.SetViewOptions QDBSPVIEW_OPTION_GAMMA, Camera.gamma, 0 ' not allowed in this
  108.                                                                          ' version
  109.       End Select
  110.       Debug.Print KeyCode
  111.       Adjust Camera
  112.       DoEvents
  113.       
  114.    Loop Until NoKeyPressed = True
  115. End Sub
  116. Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
  117.    NoKeyPressed = True
  118. End Sub
  119. Private Sub Form_Load()
  120.    Quake.Init "C:\Quake2\baseq2\pak0.pak", True, 200, 200
  121.    Quake.LoadMap "base1.bsp", "unit1_", "C:\Quake2\baseq2\pak0.pak", True
  122.    Quake.SetCaption "VB Quake Viewer"
  123.    Camera.x = 0
  124.    Camera.y = 0
  125.    Camera.z = 0
  126.    Camera.pitch = 0
  127.    Camera.yaw = 0
  128.    Camera.roll = 0
  129.    ' Doesn't work at the moment
  130.    Camera.fov = 90
  131.    Camera.gamma = 0.5
  132.    'Adjust Camera
  133.    NoKeyPressed = True
  134.    frmMain.Move (Screen.Width - frmMain.Width) * 0.5, (Screen.Height - frmMain.Height) * 0.5, frmMain.Width, frmMain.Height
  135. End Sub
  136. Private Sub Form_Unload(Cancel As Integer)
  137.    Quake.Shutdown
  138. End Sub
  139. Private Sub Adjust(cam As Camera_T)
  140.    Quake.SetCameraPos cam.x, cam.y, cam.z, cam.pitch, cam.yaw, cam.roll
  141. End Sub
  142.