home *** CD-ROM | disk | FTP | other *** search
/ InterCD 2000 January / january_2000.iso / Games / messiah / messiah_demo.exe / data1.cab / Program_Executable_Files / messiahscripts / bobActions.hxx < prev    next >
Encoding:
Text File  |  1999-11-19  |  40.3 KB  |  1,783 lines

  1. //Bob turning
  2. #define BobMaxTurnSpeed        72
  3. #define BobMaxTurnSpeedAir    48
  4.  
  5. //Bob movespeed while in air
  6. #define BobMaxRunSpeedFwdAir        -15
  7. #define BobMaxRunSpeedBwdAir        10
  8. #define BobMaxRunSpeedSideAir        12
  9. #define BobMaxRunSpeedSideAirNeg    -12
  10.  
  11. #define BobMaxWalkSpeedFwdAir        -5
  12. #define BobMaxWalkSpeedBwdAir        3
  13. #define BobMaxWalkSpeedSideAir        4
  14. #define BobMaxWalkSpeedSideAirNeg    -4
  15.  
  16. #define BobAccAir                    2.0
  17. #define BobDccAir                    0.8
  18. #define BobAccAirSide                1.5
  19. #define BobDccAirBackFlip            0.95    //Friction
  20.  
  21. #define    BobHangMoveIn                -10
  22.  
  23. //Bob movespeed while on ground
  24. #define BobMaxRunSpeedFwd            -12
  25. #define BobNegMaxRunSpeedFwd        12
  26. #define    BobDiagRunSpeed                8.4852
  27. #define    BobNegDiagRunSpeed            -8.4852
  28.  
  29. #define BobMaxRunSpeedBwd            8        //9
  30. #define BobDiagRunSpeedBwd            5.6568    //6.3639
  31. #define BobNegDiagRunSpeedBwd        -5.6568    //-6.3639
  32.  
  33.  
  34. #define    BobSideWalkSpeed            4
  35. #define    BobDiagWalkSpeed            2.828
  36. #define    BobNegSideWalkSpeed            -4
  37. #define    BobNegDiagWalkSpeed            -2.828
  38.  
  39. //Bob Jumping and falling
  40. #define BobMinHoldJumpAction        3
  41. #define BobFlapPressThreshold        15
  42.  
  43. #define BobMaxFall                    -1000    //Fall before he breaks his legs.
  44. #define    DamageBobFall                500        //Maximum, depends on altitude you fall
  45.  
  46. SubRoutine(Sub_ForceExecuteAnim)
  47. {
  48.         state(_or,StateExecuteAnim);
  49. }
  50.  
  51. action(BobSlamLink)
  52. {
  53.         file("pc\actors\MultiAnm\xxx\BSlmBob.ske",100,off);
  54.         break(off);
  55.         ActionSubRoutine(Sub_ForceExecuteAnim);
  56.         connections(BobIdle);
  57. }
  58.  
  59. //        file("pc\actors\bob\xxx\brun90LS.ske",100,on,100);    //Possibility,Repeat[,Speed]
  60. //        nrintframes(4);                //Interpolation frames
  61. //        intforloop(Default=off);    //Interpolate for looping animation
  62. //        break(Default=off);            //Break animation
  63. //        Gravity(Default=on);
  64. //        Ydeltafromzeroframe(default=on)    //Off=use y-pos from rootbone, not from ground (use for jumping and when anim is fucked up)
  65.  
  66.  
  67. //    DRAGGING ACTIONS
  68. //
  69.  
  70.  
  71. action(DragByFeetStomachLink)
  72. {
  73.         file("pc\actors\MultiAnm\xxx\BDMBBStM.ske",100,off,100,_AIclassmale);
  74.         file("pc\actors\MultiAnm\xxx\BDFBBStM.ske",100,off,100,_AIclassfemale);
  75.         file("pc\actors\MultiAnm\xxx\BDMBBStM.ske",100,off);
  76.         break(off);
  77.         connections(DragByFeetStomachLoop);
  78. }
  79.  
  80. action(DragByFeetStomachLoop)
  81. {
  82.         file("pc\actors\MultiAnm\xxx\BDMBBLpM.ske",100,on,100,_AIclassmale);
  83.         file("pc\actors\MultiAnm\xxx\BDFBBLpM.ske",100,on,100,_AIclassfemale);
  84.         file("pc\actors\MultiAnm\xxx\BDMBBLpM.ske",100,on);
  85.         trigger(_DIRactionhold);
  86.         break(on);
  87.         connections(DragByFeetStomachLoop,DragByFeetStomachStop);
  88. }
  89.  
  90. action(DragByFeetStomachStop)
  91. {
  92.         file("pc\actors\MultiAnm\xxx\BDMBBEnM.ske",100,off,100,_AIclassmale);
  93.         file("pc\actors\MultiAnm\xxx\BDFBBEnM.ske",100,off,100,_AIclassfemale);
  94.         file("pc\actors\MultiAnm\xxx\BDMBBEnM.ske",100,off);
  95.         break(off);
  96.         connections(DragByFeetStomachStop);
  97. }
  98.  
  99.  
  100. action(DragByFeetLink)
  101. {
  102.         file("pc\actors\MultiAnm\xxx\BDMBFStM.ske",100,off,100,_AIclassmale);
  103.         file("pc\actors\MultiAnm\xxx\BDFBFStM.ske",100,off,100,_AIclassfemale);
  104.         file("pc\actors\MultiAnm\xxx\BDMBFStM.ske",100,off);
  105.         break(off);
  106.         connections(DragByFeetLoop);
  107. }
  108.  
  109. action(DragByFeetLoop)
  110. {
  111.         file("pc\actors\MultiAnm\xxx\BDMBFLpM.ske",100,on,100,_AIclassmale);
  112.         file("pc\actors\MultiAnm\xxx\BDFBFLpM.ske",100,on,100,_AIclassfemale);
  113.         file("pc\actors\MultiAnm\xxx\BDMBFLpM.ske",100,on);
  114.         trigger(_DIRactionhold);
  115.         break(on);
  116.         connections(DragByFeetLoop,DragByFeetStop);
  117. }
  118.  
  119. action(DragByFeetStop)
  120. {
  121.         file("pc\actors\MultiAnm\xxx\BDMBFEnM.ske",100,off,100,_AIclassmale);
  122.         file("pc\actors\MultiAnm\xxx\BDFBFEnM.ske",100,off,100,_AIclassfemale);
  123.         file("pc\actors\MultiAnm\xxx\BDMBFEnM.ske",100,off);
  124.         break(off);
  125.         connections(DragByFeetStop);
  126. }
  127.  
  128. action(DragByHeadLink)
  129. {
  130.         file("pc\actors\MultiAnm\xxx\BDMHStrM.ske",100,off,100,_AIclassmale);
  131.         file("pc\actors\MultiAnm\xxx\BDFHStrM.ske",100,off,100,_AIclassfemale);
  132.         file("pc\actors\MultiAnm\xxx\BDMHStrM.ske",100,off);
  133.         break(off);
  134.         connections(DragByHeadLoop);
  135. }
  136.  
  137. action(DragByHeadLoop)
  138. {
  139.         file("pc\actors\MultiAnm\xxx\BDMHWkBM.ske",100,on,100,_AIclassmale);
  140.         file("pc\actors\MultiAnm\xxx\BDFHWkBM.ske",100,on,100,_AIclassfemale);
  141.         file("pc\actors\MultiAnm\xxx\BDMHWkBM.ske",100,on);
  142.         trigger(_DIRactionhold);
  143.         break(on);
  144.         connections(DragByHeadLoop,DragByHeadStop);
  145. }
  146.  
  147. action(DragByHeadStop)
  148. {
  149.         file("pc\actors\MultiAnm\xxx\BDMHEndM.ske",100,off,100,_AIclassmale);
  150.         file("pc\actors\MultiAnm\xxx\BDFHEndM.ske",100,off,100,_AIclassfemale);
  151.         file("pc\actors\MultiAnm\xxx\BDMHEndM.ske",100,off);
  152.         break(off);
  153.         connections(DragByHeadStop);
  154. }
  155.  
  156. action(DragByHeadStomachLink)
  157. {
  158.         file("pc\actors\MultiAnm\xxx\BDMHFStM.ske",100,off,100,_AIclassmale);
  159.         file("pc\actors\MultiAnm\xxx\BDFHFStM.ske",100,off,100,_AIclassfemale);
  160.         file("pc\actors\MultiAnm\xxx\BDMHFStM.ske",100,off);
  161.         break(off);
  162.         connections(DragByHeadStomachLoop);
  163. }
  164.  
  165. action(DragByHeadStomachLoop)
  166. {
  167.         file("pc\actors\MultiAnm\xxx\BDMHFLpM.ske",100,on,100,_AIclassmale);
  168.         file("pc\actors\MultiAnm\xxx\BDFHFLpM.ske",100,on,100,_AIclassfemale);
  169.         file("pc\actors\MultiAnm\xxx\BDMHFLpM.ske",100,on);
  170.         trigger(_DIRactionhold);
  171.         break(on);
  172.         connections(DragByHeadStomachLoop,DragByHeadStomachStop);
  173. }
  174.  
  175. action(DragByHeadStomachStop)
  176. {
  177.         file("pc\actors\MultiAnm\xxx\BDMHFEnM.ske",100,off,100,_AIclassmale);
  178.         file("pc\actors\MultiAnm\xxx\BDFHFEnM.ske",100,off,100,_AIclassfemale);
  179.         file("pc\actors\MultiAnm\xxx\BDMHFEnM.ske",100,off);
  180.         break(off);
  181.         connections(DragByHeadStomachStop);
  182. }
  183.  
  184. Action(BobDragFeet)
  185. {
  186.         file("pc\actors\MultiAnm\xxx\BDMHStrB.ske",100,off,100);
  187.  
  188.         flag(_SXAAonlydeadpeople|_SXAAalignmovingslave|_SXAAdisablecollision);
  189.  
  190.         //AlignXYZ(-2.605,-89.0424,0);
  191.         AlignXYZ(-2.605,0,89.0424);
  192.  
  193.         TargetAngle(0);
  194.         AttackHeight(40);
  195.         DistanceSlack(150);
  196.         AlignSlack(180);    
  197.  
  198.         AlignStartFrame(0);
  199.         AlignNrFrames(1);
  200.  
  201.         AttachActionStartAtFrame(0);
  202.         AttachAction(DragByFeetLink);
  203.  
  204.         trigger(_allDIR);
  205.         break(off);
  206.         nrintframes(0);
  207.         connections(BobDragHeadLoop);
  208. }
  209.  
  210. Action(BobDragFeetStomach)
  211. {
  212.         file("pc\actors\MultiAnm\xxx\BDMHStrB.ske",100,off,100);
  213.  
  214.         flag(_SXAAonlydeadpeople|_SXAAalignmovingslave|_SXAAdisablecollision);
  215.  
  216.         //AlignXYZ(-2.605,-89.0424,0);
  217.         AlignXYZ(-2.605,0,89.0424);
  218.  
  219.         TargetAngle(0);
  220.         AttackHeight(40);
  221.         DistanceSlack(150);
  222.         AlignSlack(180);    
  223.  
  224.         AlignStartFrame(0);
  225.         AlignNrFrames(1);
  226.  
  227.         AttachActionStartAtFrame(0);
  228.         AttachAction(DragByFeetStomachLink);
  229.  
  230.         trigger(_allDIR);
  231.         break(off);
  232.         nrintframes(0);
  233.         connections(BobDragHeadLoop);
  234. }
  235.  
  236. Action(BobDragHead)
  237. {
  238.         file("pc\actors\MultiAnm\xxx\BDMHStrB.ske",100,off,100);
  239.  
  240.         flag(_SXAAalignmovingslave|_SXAAonlydeadpeople|_SXAAdisablecollision);
  241.  
  242.         //AlignXYZ(-2.605,-89.0424,0);
  243.         AlignXYZ(-2.605,0,89.0424);
  244.  
  245.         TargetAngle(0);
  246.         AttackHeight(40);
  247.         DistanceSlack(150);
  248.         AlignSlack(180);    
  249.  
  250.         AlignStartFrame(0);
  251.         AlignNrFrames(1);
  252.  
  253.         AttachActionStartAtFrame(0);
  254.         AttachAction(DragByHeadLink);
  255.  
  256.         trigger(_allDIR);
  257.         break(off);
  258.         nrintframes(0);
  259.         connections(BobDragHeadLoop);
  260. }
  261.  
  262. Action(BobDragHeadStomach)
  263. {
  264.         file("pc\actors\MultiAnm\xxx\BDMHStrB.ske",100,off,100);
  265.  
  266.         flag(_SXAAonlydeadpeople|_SXAAalignmovingslave|_SXAAdisablecollision);
  267.  
  268.         //AlignXYZ(-2.605,-89.0424,0);
  269.         AlignXYZ(-2.605,0,89.0424);
  270.  
  271.         TargetAngle(0);
  272.         AttackHeight(40);
  273.         DistanceSlack(150);
  274.         AlignSlack(180);    
  275.  
  276.         AlignStartFrame(0);
  277.         AlignNrFrames(1);
  278.  
  279.         AttachActionStartAtFrame(0);
  280.         AttachAction(DragByHeadStomachLink);
  281.  
  282.         trigger(_allDIR);
  283.         break(off);
  284.         nrintframes(0);
  285.         connections(BobDragHeadLoop);
  286. }
  287.  
  288. Action(BobStomachRollLeft)
  289. {
  290.         file("pc\actors\Bob\xxx\BRolBdy.ske",100,off);
  291.  
  292.         flag(_SXAAAlignTransToY|_SXAAonlydeadpeople|_SXAAdisablecollision|_SXAAdisablerotation);
  293.  
  294.         AttackHeight(40);
  295.         AlignDistance(100);
  296.         DistanceSlack(150);
  297.         AlignSlack(180);    
  298.  
  299.         AttachActionStartAtFrame(14);
  300.         AttachAction(GENStomachRollLeft);
  301.  
  302.         ActionSubRoutine(Sub_BobRollSFX);
  303.  
  304.         trigger(_allDIR);
  305.         break(off);
  306.         nrintframes(0);
  307.         connections(BobIdle);
  308. }
  309.  
  310. Action(BobStomachRollRight)
  311. {
  312.         file("pc\actors\Bob\xxx\BRolBdy.ske",100,off);
  313.  
  314.         flag(_SXAAAlignTransToY|_SXAAonlydeadpeople|_SXAAdisablecollision|_SXAAdisablerotation);
  315.  
  316.         AttackHeight(40);
  317.         AlignDistance(100);
  318.         DistanceSlack(150);
  319.         AlignSlack(180);    
  320.  
  321.         AttachActionStartAtFrame(14);
  322.         AttachAction(GENStomachRollRight);
  323.  
  324.         ActionSubRoutine(Sub_BobRollSFX);
  325.  
  326.         trigger(_allDIR);
  327.         break(off);
  328.         nrintframes(0);
  329.         connections(BobIdle);
  330. }
  331.  
  332. Action(BobBackRollRight)
  333. {
  334.         file("pc\actors\Bob\xxx\BRolBdy.ske",100,off);
  335.  
  336.         flag(_SXAAAlignTransToY|_SXAAonlydeadpeople|_SXAAdisablecollision|_SXAAdisablerotation);
  337.  
  338.         AttackHeight(40);
  339.         AlignDistance(100);
  340.         DistanceSlack(150);
  341.         AlignSlack(180);    
  342.  
  343.         ActionSubRoutine(Sub_BobRollSFX);
  344.  
  345.         AttachActionStartAtFrame(14);
  346.         AttachAction(GENBackRollRight);
  347.  
  348.         trigger(_allDIR);
  349.         break(off);
  350.         nrintframes(0);
  351.         connections(BobIdle);
  352. }
  353.  
  354. Action(BobBackRollLeft)
  355. {
  356.         file("pc\actors\Bob\xxx\BRolBdy.ske",100,off);
  357.  
  358.         flag(_SXAAAlignTransToY|_SXAAonlydeadpeople|_SXAAdisablecollision|_SXAAdisablerotation);
  359.  
  360.         AttackHeight(40);
  361.         AlignDistance(100);
  362.         DistanceSlack(150);
  363.         AlignSlack(180);    
  364.  
  365.         AttachActionStartAtFrame(14);
  366.         AttachAction(GENBackRollLeft);
  367.  
  368.         ActionSubRoutine(Sub_BobRollSFX);
  369.  
  370.         trigger(_allDIR);
  371.         break(off);
  372.         nrintframes(0);
  373.         connections(BobIdle);
  374. }
  375.  
  376. Action(BobDragHeadLoop)
  377. {
  378.         file("pc\actors\MultiAnm\xxx\BDMHWkBB.ske",100,on);
  379.         trigger(_DIRactionhold);
  380.         break(on);
  381.         nrintframes(0);
  382.         connections(BobDragHeadLoop,BobIdle);
  383. }
  384.  
  385.  
  386. //    DRAGGING END
  387.  
  388.  
  389. Action(BobDrown)
  390. {
  391.         file("pc\actors\Bob\xxx\BBrnIdle.ske",100,on);        //drowning
  392.         trigger(_allDIR);
  393.         AIClass(_AIClassBobSkeleton);
  394.         break(off);
  395.         nomove(true);
  396.         gravity(off);
  397.         collision(off);
  398.         nrintframes(3);
  399.         connections(BobDrown);
  400. }
  401.  
  402.  
  403. //    LEDGE ANIMATIONS
  404. //
  405.  
  406. Action(BobLedgeIdle)
  407. {
  408.         file("pc\actors\Bob\xxx\bidle1g.xxx",20,on,80);            //look side to side
  409.         file("pc\actors\Bob\xxx\bobnidl2.ske",80,on);
  410.         file("pc\actors\Bob\xxx\bobnidl1.ske",100,on);
  411.         trigger(_allDIR);
  412.         nrintframes(5);
  413.         intforloop(on);
  414.         break(on);
  415.         connections(BobLedgeLeft,BobLedgeRight,BobLedgeIdle);
  416. }
  417.  
  418. Action(BobLedgeLeft)
  419. {
  420.         file("pc\actors\Bob\xxx\BLdgWLft.ske",100,on);    //Bob walk left on ledge
  421.         nrintframes(4);
  422.         trigger(_DIRleft);
  423.         break(on);
  424.         connections(BobLedgeTurnLeftRight,BobLedgeLeft,BobLedgeIdle);
  425. }
  426.  
  427. Action(BobLedgeRight)
  428. {
  429.         file("pc\actors\Bob\xxx\BLdgWRgt.ske",100,on);    //Bob walk right on ledge
  430.         trigger(_DIRright);
  431.         nrintframes(4);
  432.         break(on);
  433.         connections(BobLedgeTurnRightLeft,BobLedgeRight,BobLedgeIdle);
  434. }
  435.  
  436. Action(BobLedgeTurnLeftRight)
  437. {
  438.         file("pc\actors\Bob\xxx\BLdg-L2R.ske",100,off);    //Bob on ledge Turn from Left to Right
  439.         trigger(_DIRright);
  440.         nrintframes(4);
  441.         break(off);
  442.         connections(BobLedgeRight);
  443. }
  444.  
  445. Action(BobLedgeTurnRightLeft)
  446. {
  447.         file("pc\actors\Bob\xxx\BLdg-R2L.ske",100,off);    //Bob on ledge Turn from Right to Left
  448.         trigger(_DIRleft);
  449.         nrintframes(4);
  450.         break(off);
  451.         connections(BobLedgeLeft);
  452. }
  453.  
  454. //    other anims
  455. //
  456.  
  457. Action(BobTaunt)
  458. {
  459.         file("pc\actors\Bob\xxx\BTaunt1.ske",100,on);
  460.  
  461.         trigger(_allDIR);
  462.         nrintframes(5);
  463.         intforloop(off);
  464.         break(off);
  465.         connections(bobidle);
  466. }
  467.  
  468. action(BobBangHead)
  469. {
  470.         //file("pc\actors\Bob\xxx\bhithed1.ske",50,off);
  471.         //file("pc\actors\Bob\xxx\bhithed2.ske",100,off);
  472.         file("pc\actors\Bob\xxx\BHBoink1.ske",50,off);
  473.         file("pc\actors\Bob\xxx\BHBoink2.ske",100,off);
  474.         trigger(_allDIR);
  475.         break(off);
  476.         nrintframes(8);
  477.         connections(BobIdle);
  478. }
  479.  
  480. action(BobConsole)
  481. {
  482. //        file("pc\actors\Bob\xxx\Bkbdsl1.ske",50,off);
  483. //        file("pc\actors\Bob\xxx\Bkbdsl2.ske",100,off);
  484. //        file("pc\actors\Bob\xxx\Bkbdsl3.ske",100,off);
  485.         file("pc\actors\Bob\xxx\Bkbdsl4.ske",100,off);
  486.         trigger(_allDIR);
  487.         AIClass(_AIClassBobSkeleton);
  488.         break(off);
  489.         nrintframes(6);
  490.         connections(BobIdle);
  491. }
  492.  
  493. action(BobElectricShock0)
  494. {
  495.         file("pc\actors\bob\xxx\BElectro.ske",100,off);
  496.         trigger(_allDIR);
  497.         AIClass(_AIClassBobSkeleton);
  498.         break(off);
  499.         nrintframes(4);
  500.         intforloop(off);
  501.         nomove(true);
  502.         connections(BobElectricShock1);
  503.         collision(on);
  504.         gravity(off);
  505. }
  506.  
  507. action(BobElectricShock1)
  508. {
  509.         file("pc\actors\bob\xxx\BElectro.ske",100,off);
  510.         trigger(_allDIR);
  511.         AIClass(_AIClassBobSkeleton);
  512.         //nomove(true);
  513.         break(off);
  514.         connections(bobidle);
  515. }
  516.  
  517. Action(BobRunJumpPosses)
  518. {
  519.     file("pc\actors\Bob\xxx\BJmpBPos.ske",100,on,100);
  520.     trigger(_AllDIR);
  521.     nrintframes(3);
  522.     gravity(off);
  523.     ydeltafromzeroframe(off);
  524.     break(off);
  525.     connections(bobidle);
  526. }
  527.  
  528. Action(BobJumpPosses)
  529. {
  530.     file("pc\actors\Bob\xxx\BJmpBPs2.ske",100,on,100);
  531.     trigger(_AllDIR);
  532.     nrintframes(3);
  533.     gravity(off);
  534.     ydeltafromzeroframe(off);
  535.     break(off);
  536.     connections(bobidle);
  537. }
  538.  
  539.  
  540. Action(bobshoot)
  541. {
  542.         file("pc\actors\Bob\xxx\bshtfing.ske",100,on,140);
  543.  
  544.         trigger(_DIRshoot);
  545.         nrintframes(5);
  546.         //nomove(true);
  547.         intforloop(off);
  548.         break(off);
  549.         connections(bobidle);
  550. }
  551.  
  552.  
  553. //            THROWN ANIMATIONS
  554. //
  555. action(BobThrownBack)
  556. {
  557.         file("pc\actors\Bob\xxx\BthrnbkA.ske",100,off);    //Backwards hold frame
  558.         trigger(_alldir);
  559.         break(on);
  560.         collision(on);
  561.         nrintframes(4);
  562.         connections(BobThrownBackLand);
  563. }
  564.  
  565. action(BobThrownBackHit)
  566. {
  567.         file("pc\actors\Bob\xxx\BthrnbkA.ske",100,off);    //Backwards hold frame
  568.         trigger(_alldir);
  569.         break(off);
  570.         move(0,0,5);
  571.         collision(on);
  572.         nrintframes(4);
  573.         connections(BobThrownBackLand);
  574. }
  575.  
  576. action(BobDieOnBack)
  577. {
  578.         file("pc\actors\Bob\xxx\BthrnbkD.ske",100,off);    //Backwards, land on back
  579.         trigger(_allDIR);
  580.         break(off);
  581.         collision(on);
  582.         nrintframes(4);
  583.         connections(BobDieOnBack);
  584. }
  585.  
  586. action(BobThrownBackLand)
  587. {
  588.         file("pc\actors\Bob\xxx\BthrnbkB.ske",100,off);    //Backwards, land on back
  589.         //file("pc\actors\Bob\xxx\BthrbkB2.ske",100,off);    //Backwards, land on back
  590.         trigger(_allDIR);
  591.         break(off);
  592.         collision(on);
  593.         nrintframes(4);
  594.         connections(BobGetUpFromBack,BobDieOnBack);
  595. }
  596.  
  597.  
  598.  
  599. action(BobThrownForward)
  600. {
  601.         file("pc\actors\Bob\xxx\BthrnFwA.ske",100,off);    //Forward hold frame
  602.         trigger(_alldir);
  603.         break(on);
  604.         collision(on);
  605.         nrintframes(4);
  606.         connections(BobThrownForwardLand);
  607. }
  608.  
  609. action(BobThrownForwardLand)
  610. {
  611.         file("pc\actors\Bob\xxx\BthrnFwB.ske",100,off);        //forward, land face down, and get up (gabe)
  612.         trigger(_allDIR);
  613.         break(off);
  614.         collision(on);
  615.         nrintframes(4);
  616.         connections(BobGetUpFromFrontFaceDown,BobThrownForwardLand);
  617. }
  618.  
  619. action(BobThrownForwardLandAttached)
  620. {
  621.         file("pc\actors\Bob\xxx\BthrnFwB.ske",100,off);        //forward, land face down, and get up (gabe)
  622.         trigger(_allDIR);
  623.         break(off);
  624.         collision(on);
  625.         nrintframes(4);
  626.         move(0,0,-5);
  627.         connections(BobGetUpFromFrontFaceDown,BobThrownForwardLandAttached);
  628. }
  629.  
  630. action(BobGetUpFromBack)
  631. {
  632.         file("pc\actors\bob\xxx\BthrnbkC.ske",100,off);
  633.  
  634.         //file("pc\actors\bob\xxx\bStndUBF.ske",50,off);
  635.         //file("pc\actors\bob\xxx\bStnupB2.ske",100,off);
  636.         trigger(_DIRalive);
  637.         break(off);
  638.         collision(on);
  639.         nrintframes(4);
  640.         connections(BobIdle);
  641. }
  642.  
  643. action(BobGetUpFromFrontFaceDown)
  644. {
  645.         file("pc\actors\Bob\xxx\bStrl2.ske",100,off);
  646.         trigger(_DIRalive);
  647.         break(off);
  648.         collision(on);
  649.         nrintframes(0);
  650.         move(0,0,-2);
  651.         connections(BobIdle);
  652. }
  653.  
  654.  
  655.  
  656. //**************** Idle + variations
  657. Action(bobidle)
  658. {
  659.         //file("pc\actors\Bob\xxx\byawn.ske",10,on);
  660.  
  661.         //file("pc\actors\Bob\xxx\BTaunt1.ske",2,on);
  662.         file("pc\actors\Bob\xxx\bidle1g.xxx",25,on,80);            //look side to side
  663.         file("pc\actors\Bob\xxx\bobnidl2.ske",80,on);
  664.         file("pc\actors\Bob\xxx\bobnidl1.ske",100,on);
  665.  
  666. //        file("pc\actors\Bob\xxx\bidle0g.xxx",66,on);
  667. //        file("pc\actors\Bob\xxx\bidl0n.ske",100,on);
  668.         //file("pc\actors\Bob\xxx\BBrnIdle.ske",100,on);        //burn idle test
  669.         trigger(_allDIR);
  670.         AIClass(_AIClassBobSkeleton);
  671.         nrintframes(5);
  672.         //nomove(true);
  673.         intforloop(on);
  674.         break(on);
  675.         connections(DwarfClawAttack,bobshoot,BobSpreadOut,BobTurnLeft,BobTurnRight,bobidle);
  676. }
  677. action(BobSpreadOut)    //Lead directly to next animation
  678. {
  679.         trigger(_DIRMove);
  680.         AIClass(_AIClassBobSkeleton);
  681.         nrintframes(-1);
  682.         connections(DwarfClawAttack,bobshoot,BobSlowDiagBL,BobSlowDiagBR,BobSlowDiagFL,BobSlowDiagFR,BobslowR,BobslowL,BobWalkBack,bobwalk,BobFastDiagBL,BobFastDiagBR,BobFastDiagFL,BobFastDiagFR,BobFastR,BobFastL,bobrun,bobrunback);
  683.         //connections(BobSlowDiagBL,BobSlowDiagBR,BobFastDiagBL,BobFastDiagBR,BobSlowDiagFL,BobSlowDiagFR,BobFastDiagFL,BobFastDiagFR,BobslowR,BobFastR,BobslowL,BobFastL,bobrun,bobrunback,BobWalkBack,bobwalk);
  684. }
  685.  
  686. action(BobIdleLongTime)
  687. {
  688. //MISSING: Extra idle funny animations
  689.         file("pc\actors\Bob\xxx\byawn.ske",33,on);
  690.         file("pc\actors\Bob\xxx\bcel2.xxx",100,on);
  691.         trigger(_DIRNotEndOfAnim);
  692.         AIClass(_AIClassBobSkeleton);
  693.         nrintframes(5);
  694.         intforloop(on);
  695.         break(on);
  696.         connections(BobSpreadOut,BobTurnLeft,BobTurnRight,BobIdleLongTime,BobIdle);
  697. }
  698.  
  699. action(BobDanceCool)
  700. {
  701.         file("pc\actors\Bob\xxx\bcel2.xxx",100,on);
  702.         trigger(_DIRNotEndOfAnim);
  703.         nrintframes(5);
  704.         intforloop(on);
  705.         break(on);
  706.         connections(BobDanceCool,BobIdle);
  707. }
  708.  
  709. Action(bobidleHitWall)            //After hitting into wall
  710. {
  711. //        file("pc\actors\Bob\xxx\bidle1g.xxx",33,on);
  712.         file("pc\actors\Bob\xxx\bidle0g.xxx",66,on);
  713.         file("pc\actors\Bob\xxx\bidl0n.ske",100,on);
  714.         trigger(_allDIR);
  715.         AIClass(_AIClassBobSkeleton);
  716.         nrintframes(5);
  717.         intforloop(on);
  718.         nomove(true);
  719.         break(on);
  720.         connections(BobHitWallSpreadOut);
  721. }
  722.  
  723. action(BobHitWallSpreadOut)    //Lead directly to next animation
  724. {
  725.         trigger(_allDIR);
  726.         AIClass(_AIClassBobSkeleton);
  727.         nrintframes(-1);
  728.         connections(BobHitWallTurnLeft,BobHitWallTurnRight,BobIdleHitWall);
  729. }
  730.  
  731. Action(bobidleHitWallFront)    //Hitting wall face first, special animation.
  732. {
  733. //MISSING Animation (right now he just mainly looks over his shoulders
  734. //        file("pc\actors\Bob\xxx\bidle1g.xxx",33,on);
  735. //        file("pc\actors\Bob\xxx\bidle0g.xxx",66,on);
  736.         file("pc\actors\Bob\xxx\bidl0n.ske",100,on);
  737.         trigger(_allDIR);
  738.         AIClass(_AIClassBobSkeleton);
  739.         nrintframes(5);
  740.         intforloop(on);
  741.         nomove(true);
  742.         break(on);
  743.         connections(BobHitWallTurnLeft,BobHitWallTurnRight,bobidleHitWallFront);
  744. }
  745.  
  746.  
  747. Action(BobTurnLeft)
  748. {
  749.         file("pc\actors\Bob\xxx\btrnlft.ske",100,on);
  750.         trigger(_DIRleft);
  751.         break(on);
  752.         nrintframes(6);
  753.         connections(BobSpreadOut,BobTurnLeft,BobTurnRight,BobIdle);
  754. }
  755.  
  756. Action(BobTurnRight)
  757. {
  758.         file("pc\actors\Bob\xxx\Btrnrt.ske",100,on);
  759.         trigger(_DIRright);
  760.         break(on);
  761.         nrintframes(6);
  762.         connections(BobSpreadOut,BobTurnLeft,BobTurnRight,BobIdle);
  763. }
  764.  
  765. Action(BobHitWallTurnLeft)
  766. {
  767.         file("pc\actors\Bob\xxx\btrnlft.ske",100,on);
  768.         trigger(_DIRleft);
  769.         break(on);
  770.         nrintframes(6);
  771.         connections(BobHitWallSpreadOut);
  772. }
  773.  
  774. Action(BobHitWallTurnRight)
  775. {
  776.         file("pc\actors\Bob\xxx\Btrnrt.ske",100,on);
  777.         trigger(_DIRright);
  778.         break(on);
  779.         nrintframes(6);
  780.         connections(BobHitWallSpreadOut);
  781. }
  782.  
  783.  
  784.  
  785.  
  786. /* *************   Standard moves ******************* */
  787. Action(bobrun)
  788. {
  789.         //file("pc\actors\bob\xxx\brunNoFr.ske",100,on,100);
  790.         //file("pc\actors\Bob\xxx\BNuRunF2.ske",100,on);
  791.         //file("pc\actors\Bob\xxx\BNuRunF3.ske",100,on);
  792.         file("pc\actors\Bob\xxx\BNuRn4F.ske",100,on);
  793.         nrintframes(4);
  794.         trigger(_DIRforward);
  795.         break(on);
  796.         //offset(1);
  797.         offset(11);
  798.         move(0,0,BobMaxRunSpeedFwd);
  799.         soundlevel(100);
  800.         //connections(BobSpreadOut,BobIdle);
  801.         connections(BobSpreadOut,BobTouchDown);        //touchdown used as a placeholder for end of run anim
  802. }
  803.  
  804. Action(bobfastR)
  805. {
  806.         //file("pc\actors\bob\xxx\brunNoFr.ske",100,on,100);
  807.         file("pc\actors\bob\xxx\BNuRn4R.ske",100,on,100);
  808.         //rotate(90)
  809.         nrintframes(4);
  810.         move(BobMaxRunSpeedFwd,0,0);
  811.         //move(0,0,BobMaxRunSpeedFwd);
  812.         trigger(_DIRsideright);
  813.         break(on);
  814.         //offset(1);
  815.         offset(11);
  816.         soundlevel(100);
  817.         connections(BobSpreadOut,bobidle);
  818. }
  819.  
  820. Action(bobfastL)
  821. {
  822.         //file("pc\actors\bob\xxx\brunNoFr.ske",100,on,100);
  823.         file("pc\actors\bob\xxx\BNuRn4L.ske",100,on,100);
  824.         //rotate(-90)
  825.         nrintframes(4);
  826.         //move(0,0,BobMaxRunSpeedFwd);
  827.         move(BobNegMaxRunSpeedFwd,0,0);
  828.         trigger(_DIRsideleft);
  829.         break(on);
  830.         //offset(1);
  831.         offset(11);
  832.         soundlevel(100);
  833.         connections(BobSpreadOut,bobidle);
  834. }
  835.  
  836. Action(bobfastDiagFL)
  837. {
  838.         //file("pc\actors\bob\xxx\brunNoFr.ske",100,on,100);
  839.         file("pc\actors\bob\xxx\BNuRn4FL.ske",100,on,100);
  840.         //rotate(-45)
  841.         nrintframes(4);
  842.         move(BobDiagRunSpeed,0,BobNegDiagRunSpeed);
  843.         //move(0,0,BobMaxRunSpeedFwd);
  844.         trigger(_DIRsideleft|_DIRforward);
  845.         break(on);
  846.         //offset(1);
  847.         offset(11);
  848.         soundlevel(100);
  849.         connections(BobSpreadOut,bobidle);
  850. }
  851.  
  852. Action(bobfastDiagFR)
  853. {
  854.         //file("pc\actors\bob\xxx\brunNoFr.ske",100,on,100);
  855.         file("pc\actors\bob\xxx\BNuRn4FR.ske",100,on,100);
  856.         //rotate(45)
  857.         nrintframes(4);
  858.         //move(0,0,BobMaxRunSpeedFwd);
  859.         move(BobNegDiagRunSpeed,0,BobNegDiagRunSpeed);
  860.         trigger(_DIRsideright|_DIRforward);
  861.         break(on);
  862.         //offset(1);
  863.         offset(11);
  864.         soundlevel(100);
  865.         connections(BobSpreadOut,bobidle);
  866. }
  867.      
  868. Action(bobrunback)
  869. {
  870.         //file("pc\actors\bob\xxx\BRnBNoMv.ske",100,on,125);
  871.         file("pc\actors\bob\xxx\BNuRn4B.ske",100,on,125);
  872.         nrintframes(4);
  873.         break(on);
  874.         //offset(1);
  875.         offset(10);
  876.         trigger(_DIRbackward);
  877.         move(0,0,BobMaxRunSpeedBwd);
  878.         soundlevel(100);
  879.         connections(BobSpreadOut,bobidle);
  880. }
  881.  
  882. Action(bobfastDiagBL)
  883. {
  884. //        file("pc\actors\bob\xxx\BRnBNoMv.ske",100,on,125);
  885.         file("pc\actors\bob\xxx\BNuRn4BL.ske",100,on,125);
  886. //        rotate(45);
  887.         nrintframes(4);
  888.         //move(0,0,BobMaxRunSpeedBwd);
  889.         move(BobDiagRunSpeedBwd,0,BobDiagRunSpeedBwd);
  890.         trigger(_DIRsideleft|_DIRbackward);
  891.         break(on);
  892.         //offset(1);
  893.         offset(10);
  894.         soundlevel(100);
  895.         connections(BobSpreadOut,bobidle);
  896. }
  897.  
  898. Action(bobfastDiagBR)
  899. {
  900.         //file("pc\actors\bob\xxx\BRnBNoMv.ske",100,on,125);
  901.         file("pc\actors\bob\xxx\BNuRn4BR.ske",100,on,125);
  902.         //rotate(-45);
  903.         nrintframes(4);
  904.         //move(0,0,BobMaxRunSpeedBwd);
  905.         move(BobNegDiagRunSpeedBwd,0,BobDiagRunSpeedBwd);
  906.         trigger(_DIRsideright|_DIRbackward);
  907.         break(on);
  908.         //offset(1);
  909.         offset(10);
  910.         soundlevel(100);
  911.         connections(BobSpreadOut,bobidle);
  912. }
  913.  
  914. Action(bobwalk)
  915. {
  916.         file("pc\actors\Bob\xxx\Bwkcyc1p.xxx",100,on,150);
  917.         nrintframes(4);
  918.         break(on);
  919.         offset(1);
  920.         trigger(_DIRforward|_DIRwalking);
  921.         soundlevel(0);
  922.         connections(BobSpreadOut,bobidle);
  923. }
  924.  
  925. Action(bobslowR)
  926. {
  927.         file("pc\actors\Bob\xxx\Bwkcyc1p.xxx",100,on,150);
  928.         rotate(90);
  929.         nrintframes(4);
  930.         trigger(_DIRwalking|_DIRsideright);
  931.         break(on);
  932.         offset(1);
  933.         soundlevel(0);
  934.         connections(BobSpreadOut,bobidle);
  935. }
  936.  
  937. Action(bobslowL)
  938. {
  939.         file("pc\actors\Bob\xxx\Bwkcyc1p.xxx",100,on,150);
  940.         rotate(-90);
  941.         nrintframes(4);
  942.         trigger(_DIRwalking|_DIRsideleft);
  943.         break(on);
  944.         offset(1);
  945.         soundlevel(0);
  946.         connections(BobSpreadOut,bobidle);
  947. }
  948.  
  949. Action(bobslowDiagFL)
  950. {
  951.         file("pc\actors\Bob\xxx\Bwkcyc1p.xxx",100,on,150);
  952.         rotate(-45);
  953.         nrintframes(4);
  954.         trigger(_DIRsideleft|_DIRforward|_DIRwalking);
  955.         break(on);
  956.         offset(1);
  957.         soundlevel(0);
  958.         connections(BobSpreadOut,bobidle);
  959. }
  960. Action(bobslowDiagFR)
  961. {
  962.         file("pc\actors\Bob\xxx\Bwkcyc1p.xxx",100,on,150);
  963.         rotate(45);
  964.         nrintframes(4);
  965.         trigger(_DIRsideright|_DIRforward|_DIRwalking);
  966.         break(on);
  967.         offset(1);
  968.         soundlevel(0);
  969.         connections(BobSpreadOut,bobidle);
  970. }
  971.  
  972.  
  973. action(BobWalkBack)
  974. {
  975.         file("pc\actors\Bob\xxx\Bwkbkcyg.xxx",100,on,150);
  976.         trigger(_DIRwalking|_DIRbackward);
  977.         nrintframes(4);
  978.         break(on);
  979.         offset(1);
  980.         soundlevel(0);
  981.         connections(BobSpreadOut,bobidle);
  982. }
  983.  
  984. Action(bobslowDiagBL)
  985. {
  986.         file("pc\actors\Bob\xxx\Bwkbkcyg.xxx",100,on,150);
  987.         rotate(45);
  988.         nrintframes(4);
  989.         trigger(_DIRwalking|_DIRsideleft|_DIRbackward);
  990.         break(on);
  991.         offset(1);
  992.         soundlevel(0);
  993.         connections(BobSpreadOut,bobidle);
  994. }
  995. Action(bobslowDiagBR)
  996. {
  997.         file("pc\actors\Bob\xxx\Bwkbkcyg.xxx",100,on,150);
  998.         rotate(-45);
  999.         nrintframes(4);
  1000.         trigger(_DIRwalking|_DIRsideright|_DIRbackward);
  1001.         break(on);
  1002.         offset(1);
  1003.         soundlevel(0);
  1004.         connections(BobSpreadOut,bobidle);
  1005. }
  1006.  
  1007. /* *************   Other moves ******************* */
  1008.  
  1009. action(BobBalanceSpreadOut)    //Lead directly to next animation
  1010. {
  1011.         trigger(_DIRMove);
  1012.         nrintframes(-1);
  1013.         connections(BobBalanceSideR,BobBalanceSideL,BobBalanceBack,BobBalanceWalk);
  1014. }
  1015.  
  1016. Action(BobBalanceIdle)
  1017. {
  1018.         file("pc\actors\Bob\xxx\bobnidl1.ske",100,on);
  1019.         trigger(_allDIR);
  1020.         nrintframes(5);
  1021.         intforloop(on);
  1022.         break(on);
  1023.         connections(BobBalanceSpreadOut,BobBalanceTurnLeft,BobBalanceTurnRight,BobBalanceIdle);
  1024. }
  1025.  
  1026. Action(BobBalanceTurnLeft)
  1027. {
  1028.         file("pc\actors\Bob\xxx\btrnlft.ske",100,on);
  1029.         trigger(_DIRleft);
  1030.         break(on);
  1031.         nrintframes(6);
  1032.         connections(BobBalanceSpreadOut,BobBalanceTurnLeft,BobBalanceTurnRight,BobBalanceIdle);
  1033. }
  1034.  
  1035. Action(BobBalanceTurnRight)
  1036. {
  1037.         file("pc\actors\Bob\xxx\Btrnrt.ske",100,on);
  1038.         trigger(_DIRright);
  1039.         break(on);
  1040.         nrintframes(6);
  1041.         connections(BobBalanceSpreadOut,BobBalanceTurnLeft,BobBalanceTurnRight,BobBalanceIdle);
  1042. }
  1043.  
  1044. Action(BobBalanceWalk)
  1045. {
  1046.         file("pc\actors\Bob\xxx\BWkBlnc.ske",100,on,100);
  1047.         nrintframes(4);
  1048.         break(on);
  1049.         offset(1);
  1050.         trigger(_DIRforward);
  1051.         soundlevel(100);
  1052.         connections(BobBalanceSpreadOut,BobBalanceIdle);
  1053. }
  1054.  
  1055. action(BobBalanceBack)
  1056. {
  1057.         file("pc\actors\Bob\xxx\Bwkbkcyg.xxx",100,on,100);
  1058.         trigger(_DIRbackward);
  1059.         nrintframes(4);
  1060.         break(on);
  1061.         offset(1);
  1062.         connections(BobBalanceSpreadOut,BobBalanceIdle);
  1063. }
  1064.  
  1065. Action(BobBalanceSideR)
  1066. {
  1067.         file("pc\actors\Bob\xxx\Bwkcyc1p.xxx",100,on,100);
  1068.         rotate(90);
  1069.         nrintframes(4);
  1070.         trigger(_DIRsideright);
  1071.         break(on);
  1072.         offset(1);
  1073.         connections(BobBalanceSpreadOut,BobBalanceIdle);
  1074. }
  1075.  
  1076. Action(BobBalanceSideL)
  1077. {
  1078.         file("pc\actors\Bob\xxx\Bwkcyc1p.xxx",100,on,100);
  1079.         rotate(-90);
  1080.         nrintframes(4);
  1081.         trigger(_DIRsideleft);
  1082.         break(on);
  1083.         offset(1);
  1084.         connections(BobBalanceSpreadOut,BobBalanceIdle);
  1085. }
  1086.  
  1087.  
  1088. /* *************   Other moves ******************* */
  1089.  
  1090. action(BobDragLift)        //Start grabbing a character
  1091. {
  1092.         file("pc\actors\Bob\xxx\BDragA.ske",100,off);
  1093.         trigger(_DIRbackward);
  1094.         nrintframes(1);
  1095.         connections(BobDragIdle);
  1096. }
  1097.  
  1098. action(BobDragIdle)
  1099. {
  1100.         file("pc\actors\Bob\xxx\BDrgHold.ske",100,on);
  1101.         trigger(_allDIR);
  1102.         nrintframes(1);
  1103.         break(on);
  1104.         connections(BobDrag,BobDragIdle);
  1105. }
  1106.  
  1107. action(BobDrag)
  1108. {
  1109.         file("pc\actors\Bob\xxx\BDragB.ske",100,on);
  1110.         trigger(_DIRbackward);
  1111.         nrintframes(1);
  1112.         break(on);
  1113.         connections(BobDrag,BobDragIdle);
  1114. }
  1115.  
  1116.  
  1117. action(Bobjump)
  1118. {
  1119.  
  1120.         file("pc\actors\Bob\xxx\testflap.xxx",100,on);
  1121.  
  1122.         trigger(_DIRjump);
  1123.         AIClass(_AIClassBobSkeleton);
  1124.         nrintframes(4);
  1125.         intforloop(on);
  1126.         break(off);
  1127.         gravity(off);
  1128.         ydeltafromzeroframe(off);    //XXX
  1129.         connections(BobJump);
  1130. }
  1131.  
  1132. SubRoutine(,Sub_MoveDwarfUp)
  1133. {
  1134.         if(VFrame<3)
  1135.         {
  1136.             move(0,60,0);
  1137.         }
  1138. }
  1139.  
  1140. action(BobJumpWithGravity)
  1141. {
  1142.         file("pc\actors\ChotDwarf\xxx\DcJmpA.ske",100,off,100,_AIClassChot,-1,Sub_MoveDwarfUp);
  1143.         file("pc\actors\ChotDwarf\xxx\DcJmpB.ske",100,off,100,_AIClassChot,-1,Sub_MoveDwarfUp);
  1144.         file("pc\actors\ChotDwarf\xxx\DcJmpC.ske",100,off,100,_AIClassChot,-1,Sub_MoveDwarfUp);
  1145.         file("pc\actors\ChotDwarf\xxx\DcJmpD.ske",100,on,100,_AIClassChot,-1,Sub_MoveDwarfUp);
  1146.         file("pc\actors\Bob\xxx\testflap.xxx",100,on);
  1147. //        file("pc\actors\Bob\xxx\BJmpFlex.ske",100,off);
  1148.         trigger(_DIRjump);
  1149.         AIClass(_AIClassBobSkeleton);
  1150.         nrintframes(4);
  1151.         intforloop(on);
  1152.         break(off);
  1153.         gravity(on);
  1154.         ydeltafromzeroframe(off);    //XXX
  1155.         connections(BobFall);
  1156. }
  1157.  
  1158. action(BobFlyDead)
  1159. {
  1160.         //Bob gets hit, turns upside down (like a shot bird), and starts to fall..
  1161.         file("pc\actors\Bob\xxx\BShtDed1.ske",100,off);
  1162.         trigger(_allDIR);
  1163.         nrintframes(4);
  1164.         break(off);
  1165.         gravity(off);
  1166.         ydeltafromzeroframe(off);
  1167.         connections(BobFlyDeadFall);
  1168. }
  1169.  
  1170. action(BobFlyDeadFall)
  1171. {
  1172.         //Bob falls
  1173.         file("pc\actors\Bob\xxx\BShtDed2.ske",100,on);
  1174.         trigger(_allDIR);
  1175.         break(off);
  1176.         gravity(on);
  1177.         ydeltafromzeroframe(off);
  1178.         connections(BobFlyDeadFall);
  1179. }
  1180.  
  1181. action(BobFlyDeadLand)
  1182. {
  1183.         file("pc\actors\Bob\xxx\BShtDed3.ske",100,off);
  1184.         trigger(_allDIR);
  1185.         break(off);
  1186.         gravity(on);
  1187. //        ydeltafromzeroframe(off);
  1188.         connections(BobFlyDeadLand);
  1189. }
  1190.  
  1191.  
  1192. action(bobGlide)
  1193. {
  1194.         file("pc\actors\Bob\xxx\testgli2.xxx",100,on);
  1195.         trigger(_allDIR);
  1196.         nrintframes(4);
  1197.         gravity(off);
  1198.         break(on);
  1199.         ydeltafromzeroframe(off);
  1200.         connections(BobGlide);
  1201. }
  1202.  
  1203. action(BobFlap)
  1204. {
  1205.         //file("pc\actors\Bob\xxx\testflp2.ske",100,on);
  1206.         //file("pc\actors\Bob\xxx\testflap.xxx",100,on);
  1207.         file("pc\actors\Bob\xxx\bflap5g.ske",100,on);
  1208.  
  1209.         nrintframes(4);
  1210.         trigger(_DIRjump);
  1211.         gravity(off);
  1212.         ydeltafromzeroframe(off);
  1213.         connections(BobFlap);
  1214.         break(on);
  1215. }
  1216.  
  1217.  
  1218. action(Bobfall)
  1219. {
  1220.         file("pc\actors\Bob\xxx\bflylnd5.ske",100,on);
  1221.         trigger(_AllDir);
  1222.         AIClass(_AIClassBobSkeleton);
  1223.         nrintframes(4);
  1224.         intforloop(on);
  1225.         gravity(on);
  1226.         ydeltafromzeroframe(off);
  1227.         break(on);
  1228.         connections(BobFall);
  1229. }
  1230.  
  1231. action(BobSlide)
  1232. {
  1233.         file("pc\actors\Bob\xxx\BSlide1.ske",100,on);
  1234.         trigger(_allDIR);
  1235.         AIClass(_AIClassBobSkeleton);
  1236.         nrintframes(4);
  1237.         intforloop(on);
  1238.         gravity(on);
  1239.         ydeltafromzeroframe(off);
  1240.         break(on);
  1241.         connections(BobSlide);
  1242. }
  1243.  
  1244.  
  1245. action(BobFlyBackFlip)
  1246. {
  1247.         file("pc\actors\Bob\xxx\bflyflp2.ske",100,on,150);
  1248.         trigger(_AllDIR);
  1249.         nrintframes(3);
  1250.         gravity(off);
  1251.         ydeltafromzeroframe(off);
  1252.         connections(BobIdle);
  1253.         break(on);
  1254. }
  1255.  
  1256. action(BobFlySmackWall)
  1257. {
  1258.         file("pc\actors\Bob\xxx\BWlSmack.ske",100,off,130);
  1259.         trigger(_AllDIR);
  1260.         nrintframes(3);
  1261.         break(off);
  1262.         gravity(off);
  1263.         ydeltafromzeroframe(off);
  1264.         connections(BobFlyFromSmackWall);
  1265. }
  1266.  
  1267. action(BobFlySmackWallHold)
  1268. {
  1269.         file("pc\actors\Bob\xxx\BWlSmStl.ske",100,on,130);
  1270.         trigger(_AllDIR);
  1271.         nrintframes(3);
  1272.         gravity(off);
  1273.         ydeltafromzeroframe(off);
  1274.         connections(BobFlySmackWallHold);
  1275. }
  1276.  
  1277. action(BobFlyFromSmackWall)
  1278. {
  1279.         file("pc\actors\Bob\xxx\BWSmckRt.ske",100,off,130);
  1280.         trigger(_AllDIR);
  1281.         nrintframes(3);
  1282.         gravity(off);
  1283.         break(off);
  1284.         ydeltafromzeroframe(off);
  1285.         connections(BobFlap,Bobfall);
  1286. }
  1287.  
  1288. action(BobDeposses)
  1289. {
  1290.         file("pc\actors\Bob\xxx\bflyflp2.ske",100,on,150);
  1291.         trigger(_AllDIR);
  1292.         nrintframes(3);
  1293.         gravity(on);
  1294.         ydeltafromzeroframe(off);
  1295.         connections(BobDeposses);
  1296.         break(on);
  1297. }
  1298.  
  1299.  
  1300. action(BobDepossesDaze)
  1301. {
  1302.         file("pc\actors\Bob\xxx\BDeposs1.ske",100,off);
  1303.         trigger(_AllDIR);
  1304.         AIClass(_AIClassBobSkeleton);
  1305.         nrintframes(3);
  1306.         gravity(on);
  1307.         break(on);
  1308.         connections(BobSpreadOut,bobidle);
  1309. }
  1310.  
  1311. action(BobTouchDown)
  1312. {
  1313.         file("pc\actors\bob\xxx\Brnend2p.xxx",100,off);
  1314.         trigger(_DIRNotEndOfAnim);
  1315.         AIClass(_AIClassBobSkeleton);
  1316.         nrintframes(5);
  1317.         break(on);
  1318.         nomove(true);
  1319.         //connections(BobSpreadOut,bobidle);
  1320.         connections(DwarfClawAttack,bobshoot,BobSpreadOut,bobtouchdown,bobidle);
  1321. }
  1322.  
  1323. action(BobRunUpStairs)
  1324. {
  1325.         //file("pc\actors\bob\xxx\brnstair.ske",100,on);
  1326.         file("pc\actors\bob\xxx\brnstar3.ske",100,on,125);
  1327.         trigger(_DIRforward);
  1328.         AIClass(_AIClassBobSkeleton);
  1329.         offset(1);
  1330.         nrintframes(0);    //MISSING: Doesnt work with 4 (Rootbone interpolation bug again)
  1331.         gravity(off);
  1332.         ydeltafromzeroframe(off);
  1333.         connections(BobRunUpStairs);
  1334. }
  1335.  
  1336.  
  1337. Action(BobClimbUp)
  1338. {
  1339.         file("pc\actors\bob\xxx\BNClmb2a.ske",50,off);
  1340.         file("pc\actors\bob\xxx\BNClmb02.ske",100,off);
  1341.         //file("pc\actors\bob\xxx\bclmbeg3.ske",100,off);    //rolls through the floor right now
  1342.         trigger(_allDIR);
  1343.         AIClass(_AIClassBobSkeleton);
  1344.         nrintframes(4);
  1345.         gravity(off);
  1346.         ydeltafromzeroframe(off);    //Default=on
  1347.         connections(bobidle);
  1348. }
  1349.  
  1350. Action(BobClimbHang)
  1351. {
  1352.         file("pc\actors\bob\xxx\bhngidl3.ske",10,on);
  1353.         file("pc\actors\bob\xxx\bhngidl1.ske",60,on);
  1354.         file("pc\actors\bob\xxx\bhngidl2.ske",100,on);
  1355.         nrintframes(4);
  1356.         trigger(_allDIR);
  1357.         break(on);
  1358.         gravity(off);
  1359.         ydeltafromzeroframe(off);    //Default=on
  1360.         connections(BobShimmyLeft,BobShimmyRight,BobClimbHang);
  1361. }
  1362.  
  1363. Action(BobShimmyLeft)
  1364. {
  1365.         file("pc\actors\bob\xxx\BShmyLft.ske",100,on);
  1366.         nrintframes(4);
  1367.         trigger(_DIRleft);
  1368.         break(on);
  1369.         gravity(off);
  1370.         ydeltafromzeroframe(off);
  1371.         connections(BobShimmyLeft,BobShimmyRight,BobClimbHang);
  1372. }
  1373.  
  1374. Action(BobShimmyRight)
  1375. {
  1376.         file("pc\actors\bob\xxx\BShmyRgt.ske",100,on);
  1377.         nrintframes(4);
  1378.         trigger(_DIRright);
  1379.         break(on);
  1380.         gravity(off);
  1381.         ydeltafromzeroframe(off);
  1382.         connections(BobShimmyRight,BobShimmyLeft,BobClimbHang);
  1383. }
  1384.  
  1385.  
  1386. /* *************   Crouching moves ******************* */
  1387.  
  1388.  
  1389. action(BobCrouchDiagFL)
  1390. {
  1391.         file("pc\actors\Bob\xxx\BCrWkFL.ske",100,on);
  1392.         trigger(_DIRforward|_DIRsideleft);
  1393.         break(on);
  1394.         nrintframes(4);
  1395.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1396. }
  1397.  
  1398. action(BobCrouchL)
  1399. {
  1400.         file("pc\actors\Bob\xxx\BCrWkL.ske",100,on);
  1401.         trigger(_DIRsideleft);
  1402.         break(on);
  1403.         nrintframes(4);
  1404.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1405. }
  1406.  
  1407. action(BobCrouchDiagFR)
  1408. {
  1409.         file("pc\actors\Bob\xxx\BCrWkFR.ske",100,on);
  1410.         trigger(_DIRforward|_DIRsideright);
  1411.         break(on);
  1412.         nrintframes(4);
  1413.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1414. }
  1415.  
  1416. action(BobCrouchR)
  1417. {
  1418.         file("pc\actors\Bob\xxx\BCrWkR.ske",100,on);
  1419.         trigger(_DIRsideright);
  1420.         break(on);
  1421.         nrintframes(4);
  1422.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1423. }
  1424.  
  1425. action(BobCrouchDiagFR)
  1426. {
  1427.         file("pc\actors\Bob\xxx\BCrWkFR.ske",100,on);
  1428.         trigger(_DIRforward|_DIRsideright);
  1429.         break(on);
  1430.         nrintframes(4);
  1431.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1432. }
  1433.  
  1434. action(BobCrouchDiagBL)
  1435. {
  1436.         file("pc\actors\Bob\xxx\BCrWkBL.ske",100,on);
  1437.         trigger(_DIRbackward|_DIRsideleft);
  1438.         break(on);
  1439.         nrintframes(4);
  1440.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1441. }
  1442.  
  1443. action(BobCrouchDiagBR)
  1444. {
  1445.         file("pc\actors\Bob\xxx\BCrWkBR.ske",100,on);
  1446.         trigger(_DIRbackward|_DIRsideright);
  1447.         break(on);
  1448.         nrintframes(4);
  1449.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1450. }
  1451.  
  1452. action(BobCrouchSpreadOut)
  1453. {
  1454.         trigger(_DIRMove);
  1455.         nrintframes(-1);
  1456.         connections(BobCrouchForwardLeft,BobCrouchForwardRight,BobCrouchDiagFL,BobCrouchDiagFR,BobCrouchDiagBL,BobCrouchDiagBR,BobCrouchForward,BobCrouchBackward,BobCrouchL,BobCrouchR,BobCrouchTurnLeft,BobCrouchTurnRight);
  1457. }
  1458.  
  1459.     
  1460.  
  1461. action(BobCrouchDown)
  1462. {
  1463.         file("pc\actors\Bob\xxx\BSt2Crwl.ske",100,off);
  1464.         trigger(_allDIR);
  1465.         AIClass(_AIClassBobSkeleton);
  1466.         break(off);
  1467.         nrintframes(4);
  1468.         connections(BobCrouchIdle);
  1469. }
  1470.  
  1471. action(BobCrouchUp)
  1472. {
  1473.         file("pc\actors\Bob\xxx\BCrwl2St.ske",100,on);
  1474.         trigger(_allDIR);
  1475.         AIClass(_AIClassBobSkeleton);
  1476.         break(off);
  1477.         nrintframes(4);
  1478.         connections(BobSpreadOut,BobIdle);
  1479. }
  1480.  
  1481. action(BobCrouchTurnLeft)
  1482. {
  1483.         file("pc\actors\Bob\xxx\BCrStTLf.ske",100,on);
  1484.         trigger(_DIRleft);
  1485.         break(on);
  1486.         nrintframes(4);
  1487.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1488. }
  1489.  
  1490. action(BobCrouchTurnRight)
  1491. {
  1492.         file("pc\actors\Bob\xxx\BCrStTRg.ske",100,on);
  1493.         trigger(_DIRright);
  1494.         break(on);
  1495.         nrintframes(4);
  1496.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1497. }
  1498.  
  1499. action(BobCrouchForwardLeft)
  1500. {
  1501.         file("pc\actors\Bob\xxx\BCrFwLft.ske",100,on);
  1502.         trigger(_DIRforward|_DIRleft);
  1503.         break(on);
  1504.         nrintframes(4);
  1505.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1506. }
  1507.  
  1508. action(BobCrouchForwardRight)
  1509. {
  1510.         file("pc\actors\Bob\xxx\BCrFwRgt.ske",100,on);
  1511.         trigger(_DIRforward|_DIRright);
  1512.         break(on);
  1513.         nrintframes(4);
  1514.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1515. }
  1516.  
  1517. action(BobCrouchForward)
  1518. {
  1519.         file("pc\actors\Bob\xxx\BCrWkF.ske",100,on);
  1520.         trigger(_DIRforward);
  1521.         break(on);
  1522.         nrintframes(4);
  1523.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1524. }
  1525.  
  1526. action(BobCrouchBackward)
  1527. {
  1528.         file("pc\actors\Bob\xxx\BCrWkBw.ske",100,on);
  1529.         trigger(_DIRbackward);
  1530.         break(on);
  1531.         nrintframes(4);
  1532.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1533. }
  1534.  
  1535. action(BobCrouchIdle)
  1536. {
  1537.         file("pc\actors\Bob\xxx\BCrwIdle.ske",100,on);
  1538.         trigger(_allDIR);
  1539.         break(on);
  1540.         nrintframes(4);
  1541.         connections(BobCrouchSpreadOut,BobCrouchIdle);
  1542. }
  1543.  
  1544.  
  1545. // *******************************************************************8
  1546. // Hurt and dead
  1547.  
  1548. action(BobDead)
  1549. {
  1550.         //file("pc\actors\Bob\xxx\Bdeath2g.xxx",100,off);
  1551.         file("pc\actors\Bob\xxx\bdiebkwd.ske",25,off);
  1552.         file("pc\actors\Bob\xxx\bdieleft.ske",50,off);
  1553.         file("pc\actors\Bob\xxx\bdierght.ske",75,off);
  1554.         file("pc\actors\Bob\xxx\BDeath2.ske",100,off);
  1555.         trigger(_allDIR);
  1556.         nrintframes(4);
  1557.         break(off);
  1558.         //connections(BobDead);
  1559. }
  1560.  
  1561. action(BobCrush)
  1562. {
  1563.         //file("pc\actors\Bob\xxx\Bdeath2g.xxx",100,off);
  1564.         file("pc\actors\Bob\xxx\BDeath1.ske",100,off);
  1565.         collision(off);
  1566.         gravity(off);
  1567.         trigger(_allDIR);    
  1568.         nrintframes(4);
  1569.         break(off);
  1570. }
  1571.  
  1572. action(BobFallDead)
  1573. {
  1574.         //file("pc\actors\Bob\xxx\Bdeath2g.xxx",100,off);
  1575.         file("pc\actors\Bob\xxx\BDeath1.ske",100,off);
  1576.         trigger(_allDIR);    
  1577.         AIClass(_AIClassBobSkeleton);
  1578.         nrintframes(4);
  1579.         break(off);
  1580.         connections(BobFallDead);
  1581. }
  1582.  
  1583. action(BobFlapWoundLight)
  1584. {
  1585. //        file("pc\actors\Bob\xxx\BFlapSht1.ske",100,on);
  1586. //        //file("pc\actors\Bob\xxx\bwund2g.ske",100,off);
  1587.  
  1588.         file("pc\actors\Bob\xxx\BFlapSht1.ske",50,on);
  1589.         file("pc\actors\Bob\xxx\bwund2g.ske",100,off);
  1590.  
  1591.         trigger(_DIRNotEndOfAnim);
  1592.         break(on);
  1593.         gravity(off);
  1594.         ydeltafromzeroframe(off);
  1595.         connections(BobFlap);
  1596. }
  1597.  
  1598. action(BobWoundLight)
  1599. {
  1600. //        file("pc\actors\Bob\xxx\BShtStl2.ske",25,off);
  1601. //        file("pc\actors\Bob\xxx\BShtStl1.ske",100,off);
  1602. //        //file("pc\actors\Bob\xxx\bwund2g.ske",100,off);
  1603.  
  1604.         file("pc\actors\Bob\xxx\BShtStl2.ske",25,off);
  1605.         file("pc\actors\Bob\xxx\bwund2g.ske",66,off);
  1606.         file("pc\actors\Bob\xxx\BShtStl1.ske",100,off);
  1607.  
  1608.         trigger(_DIRNotEndOfAnim);
  1609.         AIClass(_AIClassBobSkeleton);
  1610.         break(on);
  1611.         collision(on);
  1612.         nrintframes(4);
  1613.         connections(BobSpreadOut,BobWoundLight,BobTurnLeft,BobTurnRight,BobIdle);
  1614. }
  1615.  
  1616. action(BobWoundLightRun)
  1617. {
  1618.         file("pc\actors\Bob\xxx\BNRnHrt1.ske",100,off);
  1619.         //trigger(_DIRNotEndOfAnim);
  1620.         trigger(_allDIR);
  1621.         AIClass(_AIClassBobSkeleton);
  1622.         nrintframes(4);
  1623.         break(off);
  1624.         move(0,0,BobMaxRunSpeedFwd);
  1625.         soundlevel(100);
  1626.         connections(BobSpreadOut,bobidle);
  1627. }
  1628.  
  1629. action(BobShieldExplosion)
  1630. {
  1631.         file("pc\actors\Bob\xxx\BRctExp1.ske",100,off);
  1632.         trigger(_allDIR);
  1633.         break(off);
  1634.         collision(on);
  1635.         nrintframes(4);
  1636.         connections(BobSpreadOut,BobIdle);
  1637.         //connections(BobSpreadOut,BobTurnLeft,BobTurnRight,BobIdle);
  1638. }
  1639.  
  1640.  
  1641.  
  1642. //***************   CHOT DWARF ANIMATIONS
  1643.  
  1644. SubRoutine(Sub_LaunchDwarf)
  1645. {
  1646.         if(VFrame==22)
  1647.         {
  1648.             vector(_settoactorpos,tmpvector);
  1649.             vector(_set,gactorpos,0,-50,0);
  1650.             vector(_add,tmpvector,gactorpos);
  1651.             callsub(sub_fxsmallexplosion);
  1652.  
  1653.             sample(SFXBooster,-1);
  1654.             call(ScreenShake,4,4,4,0.04);
  1655.  
  1656.             move(0,500,-800);
  1657.             State(_or,StateJump|StateThrown);
  1658.         }
  1659. }
  1660.  
  1661.  
  1662. action(DwarfLaunch)
  1663. {
  1664.         file("pc\actors\ChotDwarf\xxx\DcLnchSt.ske",100,off);
  1665.         trigger(_allDIR);
  1666.         AIClass(_AIClassBobSkeleton);
  1667.         break(off);
  1668.         collision(on);
  1669.         nrintframes(4);
  1670.         gravity(off);
  1671.  
  1672.         ActionSubRoutine(Sub_LaunchDwarf);
  1673.  
  1674.         connections(DwarfInAir);
  1675. }
  1676.  
  1677. action(DwarfInAir)
  1678. {
  1679.         file("pc\actors\ChotDwarf\xxx\DcLnchLp.ske",100,off);
  1680.         //file("pc\actors\ChotDwarf\xxx\DcLnchL2.ske",100,off);
  1681.         trigger(_allDIR);
  1682.         break(on);
  1683.         collision(on);
  1684.         nrintframes(4);
  1685.  
  1686.         move(0,0,-20);
  1687.  
  1688.         connections(DwarfTouchDown,DwarfHitWall,DwarfInAir);
  1689. }
  1690.  
  1691. action(DwarfTouchDown)
  1692. {
  1693.         file("pc\actors\ChotDwarf\xxx\DcLncLn1.ske",50,on);
  1694.         file("pc\actors\ChotDwarf\xxx\DcLncLn2.ske",100,on);
  1695.         trigger(_DIRhorcol);
  1696.         break(off);
  1697.         collision(on);
  1698.         nrintframes(4);
  1699.  
  1700.         ActionSubRoutine(Sub_GetUpClearThrown19);
  1701.  
  1702.         connections(BobIdle);
  1703. }
  1704.  
  1705. action(DwarfHitWall)
  1706. {
  1707.         file("pc\actors\Bob\xxx\BTrFwWal.ske",100,on);
  1708.         trigger(_DIRvercol);
  1709.         break(off);
  1710.         collision(on);
  1711.         nrintframes(4);
  1712.  
  1713.         ActionSubRoutine(Sub_ClrThrownFlag);
  1714.  
  1715.         connections(BobIdle);
  1716. }
  1717.  
  1718. Action(DwarfClawAttack)
  1719. {
  1720.         file("pc\actors\ChotDwarf\xxx\DcSlash.ske",100,on);
  1721.  
  1722.         AIClass(_AIClassChot|_AIClassMale);
  1723.  
  1724.         trigger(_DIRshoot);
  1725.         nrintframes(5);
  1726.         //nomove(true);
  1727.         intforloop(off);
  1728.         break(off);
  1729.         connections(bobidle);
  1730. }
  1731.  
  1732.  
  1733. ////////////////////////////////////
  1734. //////  E V I L    B O B   /////////
  1735. ////////////////////////////////////
  1736.  
  1737. action(EBobTapDance)
  1738. {
  1739.         file("pc\actors\Bob\xxx\bcel2.ske",100,off);
  1740.         trigger(_allDIR);
  1741.         break(off);
  1742.         nrintframes(12);
  1743.         connections(EBobHeelTap);
  1744. }
  1745.  
  1746. action(EBobHeelTap)
  1747. {
  1748.         file("pc\actors\Bob\xxx\bcel4g.ske",100,off);
  1749.         trigger(_allDIR);
  1750.         break(off);
  1751.         nrintframes(12);
  1752.         connections(BobIdle);
  1753. }
  1754.  
  1755.  
  1756. // *******************************************************************8
  1757. // Bob temp: Not used
  1758. /*
  1759. action(Bobposses)
  1760. {
  1761.         file("pc\actors\Bob\xxx\Bpossesa.xxx",100,off);
  1762.         trigger(_DIRjumpPossesion);
  1763.         nrintframes(5);
  1764.  
  1765.         gravity(off);
  1766.         connections(Bobpossesb);
  1767. }
  1768.  
  1769. action(Bobpossesb)
  1770. {
  1771.         file("pc\actors\Bob\xxx\Bpossesb.xxx",100,off);
  1772.         trigger(_allDIR);
  1773.         nrintframes(5);
  1774.         move(0,0,-3);
  1775.         connections(bobidle);
  1776. }
  1777.  
  1778. */
  1779.  
  1780.  
  1781.  
  1782.  
  1783.