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

  1. start group.helper group.climber local.wall:
  2.     level.climbdone = 0 // This'll get set to 1 when climbing is done
  3.  
  4.     group.helperinplace = 0
  5.     group.climberinplace = 0
  6.  
  7.     if (local.wall != NIL)
  8.     {
  9.         println "Moving men to wall"
  10.  
  11.         group.wallorigin = local.wall.origin
  12.         group.forwardvector = local.wall.forwardvector * -1
  13.         println group.forwardvector
  14.         local.originhelper1 = local.wall.origin - (group.forwardvector*64)
  15.         local.originclimber = local.wall.origin - (group.forwardvector*80)
  16.  
  17.         thread helpergetinplace        local.originhelper1
  18.         thread climbergetinplace    local.originclimber
  19.     }
  20.     else
  21.     {
  22.         println "No wall supplied: assuming helper is already in place"
  23.         local.originhelper1 = group.helper.origin
  24.         group.forwardvector = group.helper.forwardvector
  25.         local.originclimber = local.originhelper1 - (group.forwardvector*16)
  26.  
  27.         thread helpergetinplace        group.helper.origin
  28.         thread climbergetinplace    local.originclimber
  29.     }
  30. end
  31.  
  32.  
  33. //-----------helpergetinplace------------
  34. helpergetinplace local.pos:
  35.  
  36.     println "Helper is walking to wall"
  37.  
  38.     group.helper exec global/walkto.scr local.pos
  39.     group.helper waittill movedone
  40.     group.helper turnto ( group.helper.origin + (group.forwardvector * 1000) )
  41.     group.helper.origin = local.pos
  42.  
  43.     group.helper anim "wallclimb_guy1_intro"
  44.     group.helper waittill animdone
  45.  
  46.     println "Helper is at wall"
  47.  
  48.     group.helperinplace = 1
  49.     if (group.climberinplace > 0)
  50.     {
  51.         group.climberwaitthread end
  52.         thread climb
  53.     }
  54.     else
  55.     {
  56.         // Lookat doesn't work here because he's facing backwards!
  57.         //group.helper lookat group.climber    // Look at partner
  58.         group.helper anim "wallclimb_guy1_waitloop"
  59.         group.donemarker = 1
  60.     }
  61. end
  62.  
  63.  
  64. //-----------climbergetinplace------------
  65. climbergetinplace local.pos:
  66.  
  67.     println "Clmber is walking to wall"
  68.  
  69.     group.climber exec global/walkto.scr local.pos
  70.     group.climber waittill movedone
  71.     group.climber.origin = local.pos
  72.     group.climber turnto ( group.climber.origin + (group.forwardvector * 1000) )
  73.  
  74.     println "Clmber is at wall"
  75.  
  76.     group.climberinplace = 1
  77.     if (group.helperinplace > 0)
  78.     {
  79.         thread climb
  80.     }
  81.     else
  82.     {
  83.         group.climber lookat group.helper    // Look at partner
  84.         group.climber thread waitanim
  85.         group.climberwaitthread = parm.previousthread
  86.     }
  87. end
  88.  
  89.  
  90. //-----------waitanim------------
  91. waitanim:
  92.     self anim "generic_stand_bored_a"
  93.     self waittill animdone
  94.     goto waitanim
  95. end
  96.  
  97.  
  98. //-----------climb------------
  99. climb:
  100.  
  101.     group.climber lookat NULL
  102.     group.helper lookat NULL
  103.     group.climber thread climber_climb
  104.     group.helper thread helper_climb
  105. end
  106.  
  107.  
  108. //-----------climber_climb------------
  109. climber_climb:
  110.  
  111.  
  112.     println "Climber is climbing"
  113.  
  114.     self anim "wallclimb_guy2_main"
  115.     self waittill animdone
  116.     println "Climber done, do your thing Mr Level Designer"
  117.     // Note to LDs: I don't know what to do here.  You'll have to put code in to signal 
  118.     // your code that the climber is done, or something.  I'll make him stand happily for 
  119.     // a few seconds.
  120.  
  121.     level.climbdone = 1
  122.     self anim "generic_stand_bored_a"
  123.     self waittill animdone
  124.  
  125. end
  126.  
  127.  
  128. //-----------helper_climb------------
  129. helper_climb:
  130.  
  131.     println "Helper is helping"
  132.  
  133.     self anim "wallclimb_guy1_main"
  134.     self waittill animdone
  135.     println "Helper done, do your thing Mr Level Designer"
  136.     self anim "generic_stand_bored_a"
  137.     self waittill animdone
  138. end