home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 2003 June / macformat-130.iso / mac / Reviewed⁄Demos / Spearhead Demo / demota / pak1.pk3 / global / camera.scr < prev    next >
Encoding:
Text File  |  2002-10-21  |  1.7 KB  |  72 lines

  1. main local.type local.cam1 local.cam2:
  2.     if (local.type == "cut")
  3.         thread cut local.cam1
  4. end
  5.  
  6. camerasetup:
  7.     setcvar sv_fps "100"    
  8.     $player threatbias ignoreme
  9.     $player nodamage
  10.     $player notsolid
  11.     $player physics_off
  12.     $player hide
  13. end
  14.  
  15.  
  16. cut local.camera:
  17.     for (local.i=1;local.i<$cam.size+1;local.i++)
  18.     if ($cam[local.i].set == local.camera)
  19.     {
  20.         local.camera = $cam[local.i]
  21.         local.i = $cam.size + 5
  22.     }
  23.     thread camerasetup
  24.  
  25.     $player.origin = local.camera.origin
  26.     level.viewangles = local.camera.angles
  27.     thread levelview
  28. end
  29.  
  30. pan local.start local.end local.timepass:
  31.     local.fadein = 0.5
  32.     if (level.viewthread)
  33.         level.viewthread delete
  34.  
  35.     println ("panning from camera " + local.start + " to camera " + local.end + " over " + local.timepass + " milliseconds")
  36.     for (local.i=1;local.i<$cam.size+1;local.i++)
  37.     if ($cam[local.i].set == local.start)
  38.         local.start = $cam[local.i]
  39.     else
  40.     if ($cam[local.i].set == local.end)
  41.         local.end = $cam[local.i]
  42.  
  43.     thread camerasetup
  44.  
  45.     local.curtime = level.time + local.timepass
  46.     while (level.time < local.curtime)
  47.     {
  48.         local.frac = float( (local.curtime - level.time) / local.timepass )
  49. //        println ("leveltime is " + level.time + " and timepass is " + local.timepass + " and frac is " + local.frac)
  50.         $player.origin = (local.start.origin * local.frac) + (local.end.origin * (1 - local.frac)) 
  51.         $player.viewangles = (local.start.angles * local.frac) + (local.end.angles * (1 - local.frac)) 
  52.         waitframe
  53.     
  54.     }
  55.  
  56.     $player.origin = local.end.origin
  57.     level.viewangles = local.end.angles
  58.     thread levelview
  59. end
  60.  
  61. levelview:
  62.     if (level.viewthread)
  63.         level.viewthread delete
  64.  
  65.     level.viewthread = local
  66.     while (1)
  67.     {
  68.         $player.viewangles = level.viewangles
  69.         waitframe
  70.     }
  71.  
  72. end