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

  1.  
  2. //karsten@reto-moto.dk
  3. //21 92 59 45 
  4. #define    SCRIPT_DEBUG_INFO    0
  5.  
  6.  
  7.  
  8. #include    "messiahscripts\defines.h"
  9. #include    "messiahscripts\objdefines.h"
  10. #include    "messiahscripts\weapons\WeaponDamage.h"
  11.  
  12. #include    "messiahscripts\defvals.hxx"
  13. #include    "messiahscripts\keysall.hxx"
  14.  
  15. #include    "messiahscripts\lights.hxx"
  16.  
  17. //SoundInterface.hxx must be the 1st sound file included, see file for why!
  18. #include    "messiahscripts\sound\soundinterface.hxx"
  19. #include    "messiahscripts\sound\soundactors.hxx"
  20. #include    "messiahscripts\sound\soundambient.hxx"
  21. #include    "messiahscripts\sound\soundbackground.hxx"
  22. #include    "messiahscripts\sound\soundweapon.hxx"
  23. #include    "messiahscripts\sound\soundvoices.hxx"
  24.  
  25.  
  26.  
  27.  
  28. Game(Messiah)
  29. {
  30.         if(VGameCounter==1)            //Pre-game
  31.         {
  32.  
  33.      //INSERT TESTVARS HERE
  34.             float(_declare,GlobalVar0,47);
  35.             float(_declare,GlobalVar1,47);
  36.             float(_declare,GlobalVar2,47);
  37.             float(_declare,GlobalVar3,47);
  38.             float(_declare,GlobalVar4,47);
  39.             float(_declare,GlobalVar5,47);
  40.  
  41.     //INPUT VARIABLES HERE
  42.  
  43.             float(_declare,DirClr,0);
  44.             float(_declare,DirHold,0);
  45.             float(_declare,DirOld,0);
  46.  
  47.     //Bob Flying Globals
  48.             float(_declare,BobJumpSpeed,15);                //15    Start velocity upwards when jumping
  49.             float(_declare,BobJumpGravity,1.0);                //1.0    Downwardpull when flying straight
  50.             float(_declare,BobJumpGravityNoMove,0.4);        //0.4    Higher gravity that character is pulled down
  51.             float(_declare,BobJumpNoMoveExtraYMovement,7);    //7        Extra movement upwards when not moving
  52.             float(_declare,BobGravityGlide,0.2);        //0.2    Gravity when gliding 
  53.             float(_declare,BobGravityFlap,0.1);        //0.2    Gravity when gliding 
  54.  
  55.     //Global variables regarding the Level
  56.         float(_declare,BobFlappingEnabled,1);        //1= Bob can flap
  57.         float(_declare,LightsOut,0);                //1= Lights are dimmed (ambient light reduced)
  58.  
  59.         //Misc Global variables
  60.  
  61.             vector(_declare,Gactorpos,0,0,0);
  62.             vector(_declare,Gactorangle,0,3500,0);
  63.             vector(_declare,Gactorine,0,3500,0);
  64.  
  65.     //Global vars regarding currently playercontrolled character
  66.             vector(_declare,PlayerPos,0,0,0);
  67.             float(_declare,PlayerHeadBone,0);
  68.  
  69.  
  70.     //Global character variables used for subroutines
  71.             float(_declare,ColAngleTmp,0);
  72.             float(_declare,ColAngleTmpFace,0);
  73.             float(_declare,ColMaterial,0);
  74.  
  75.  
  76.     //Generic variables
  77.             vector(_declare,EmptyVector,0,0,0);        //Always (0,0,0)
  78.             float(_declare,EmptyFloat,0);            //Always 0
  79.  
  80.             float(_declare,SubVar1,0);
  81.             float(_declare,SubVar2,0);
  82.             float(_declare,SubVar3,0);
  83.             float(_declare,SubVar4,0);
  84.  
  85.             vector(_declare,SubVector1,0,0,0);
  86.             vector(_declare,SubVector2,0,0,0);
  87.             vector(_declare,SubVector3,0,0,0);
  88.  
  89.             float(_declare,SubSubParm1,0);
  90.             float(_declare,SubSubParm2,0);
  91.             float(_declare,SubSubParm3,0);
  92.             float(_declare,SubSubParm4,0);
  93.             float(_declare,SubSubParm5,0);
  94.             float(_declare,SubSubParm6,0);
  95.             float(_declare,SubSubParm7,0);
  96.             float(_declare,SubSubParm8,0);
  97.     /*
  98.             float(_declare,Parm1,0);
  99.             float(_declare,Parm2,0);
  100.             float(_declare,Parm3,0);
  101.             float(_declare,Parm4,0);
  102.             float(_declare,Parm5,0);
  103.             float(_declare,Parm6,0);
  104.             float(_declare,Parm7,0);
  105.             float(_declare,Parm8,0);
  106.  
  107.             float(_declare,Result,0);
  108.     */
  109.             vector(_declare,TmpVector,0,0,0);
  110.             vector(_declare,TmpVector1,0,0,0);
  111.             vector(_declare,TmpVector2,0,0,0);
  112.             vector(_declare,TmpVector3,0,0,0);
  113.             vector(_declare,TmpVector4,0,0,0);
  114.  
  115.             float(_declare,TmpFloat,0);
  116.             float(_declare,TmpFloat1,0);
  117.             float(_declare,TmpFloat2,0);
  118.             float(_declare,TmpFloat3,0);
  119.             float(_declare,TmpFloat4,0);
  120.  
  121.             float(_declare,Var1,0);
  122.             float(_declare,Var2,0);
  123.             float(_declare,Var3,0);
  124.  
  125.  
  126.             //float(_Declare,DebugOnlyOneEnemy,0)
  127.             //float(_Declare,DebugOnlyOneWeapon,0)
  128.  
  129.     //        float(_declare,keytouched,0); // for keyboard control
  130.  
  131.     //Stage global variables
  132.  
  133.  
  134.     //Mission Objective Text
  135.     
  136.             float(_declare,MissionLevel1,0);
  137.             float(_declare,MissionLevel2,0);
  138.             float(_declare,MissionLevel3,0);
  139.             float(_declare,MissionLevel4,0);
  140.             float(_declare,MissionLevel5,0);
  141.             float(_declare,MissionLevel6,0);
  142.             float(_declare,MissionLevel7,0);
  143.             float(_declare,MissionLevel8,0);
  144.             float(_declare,MissionLevel9,0);
  145.  
  146.  
  147.     //c1_s1 (Shipment sector)
  148.             float(_declare,VarKey1,0);
  149.             float(_declare,VarKey2,0);
  150.             float(_declare,VarKey3,0);
  151.             float(_declare,VarKey4,0);
  152.             float(_declare,VarKey5,0);
  153.             float(_declare,VarKey6,0);
  154.             float(_declare,VarKey7,0);
  155.             float(_declare,VarKey8,0);
  156.             float(_declare,VarKey9,0);
  157.             float(_declare,VarKey10,0);
  158.             float(_declare,LiteCounter,250);
  159.  
  160.     //c1_s2 (OldTown)
  161.             float(_declare,VarKey11,0);
  162.             float(_declare,VarKey12,0);
  163.             float(_declare,VarKey13,0);
  164.             float(_declare,VarKey14,0);
  165.             float(_declare,VarKey15,0);
  166.             float(_declare,VarKey16,0);
  167.             float(_declare,VarKey17,0);
  168.             float(_declare,VarKey18,0);
  169.             float(_declare,VarKey19,0);
  170.             float(_declare,VarKey20,0);
  171.  
  172.     //c2 (Warehouse - Annex)
  173.             float(_declare,VarKey21,0);
  174.             float(_declare,VarKey22,0);
  175.             float(_declare,VarKey23,0);
  176.             float(_declare,VarKey24,0);
  177.             float(_declare,VarKey25,0);
  178.             float(_declare,VarKey26,0);
  179.             float(_declare,VarKey27,0);
  180.             float(_declare,VarKey28,0);
  181.             float(_declare,VarKey29,0);
  182.             float(_declare,VarKey30,0);
  183.  
  184.     //c2 (Weapon Factory)
  185.             float(_declare,VarKey31,0);
  186.             float(_declare,VarKey32,0);
  187.             float(_declare,VarKey33,0);
  188.             float(_declare,VarKey34,0);
  189.             float(_declare,VarKey35,0);
  190.             float(_declare,VarKey36,0);
  191.             float(_declare,VarKey37,0);
  192.             float(_declare,VarKey38,0);
  193.             float(_declare,VarKey39,0);
  194.             float(_declare,VarKey40,0);
  195.             //For Flame Effects in Fact_2
  196.             float(_declare,FurnaceTimer1,0);
  197.             float(_declare,FurnaceTimer2,0);
  198.             float(_declare,FurnaceTimer3,0);
  199.             float(_declare,FurnaceTimer4,0);
  200.             float(_declare,WepConstructionTimer,0);
  201.  
  202.  
  203.     //c2 (Conveyer - Streets)
  204.             float(_declare,VarKey41,0);
  205.             float(_declare,VarKey42,0);
  206.             float(_declare,VarKey43,0);
  207.             float(_declare,VarKey44,0);
  208.             float(_declare,VarKey45,0);
  209.             float(_declare,VarKey46,0);
  210.             float(_declare,VarKey47,0);
  211.             float(_declare,VarKey48,0);
  212.             float(_declare,VarKey49,0);
  213.             float(_declare,VarKey50,0);
  214.     
  215.     //c3 (Redlite - CLub Perimeter)
  216.             float(_declare,VarKey51,0);
  217.             float(_declare,VarKey52,0);
  218.             float(_declare,VarKey53,0);
  219.             float(_declare,VarKey54,0);
  220.             float(_declare,VarKey55,0);
  221.             float(_declare,VarKey56,0);
  222.             float(_declare,VarKey57,0);
  223.             float(_declare,VarKey58,0);
  224.             float(_declare,VarKey59,0);
  225.             float(_declare,VarKey60,0);
  226.             float(_declare,VarKey61,0);
  227.             float(_declare,VarKey62,0);
  228.             float(_declare,VarKey63,0);
  229.             float(_declare,VarKey64,0);
  230.             float(_declare,VarKey65,0);
  231.             float(_declare,VarKey66,0);
  232.             float(_declare,VarKey67,0);
  233.             float(_declare,VarKey68,0);
  234.             float(_declare,VarKey69,0);
  235.             float(_declare,VarKey70,0);
  236.  
  237.     //c3 (Club Kyd)
  238.             float(_declare,VarKey71,0);
  239.             float(_declare,VarKey72,0);
  240.             float(_declare,VarKey73,0);
  241.             float(_declare,VarKey74,0);
  242.             float(_declare,VarKey75,0);
  243.             float(_declare,VarKey76,0);
  244.             float(_declare,VarKey77,0);
  245.             float(_declare,VarKey78,0);
  246.             float(_declare,VarKey79,0);
  247.             float(_declare,VarKey80,0);
  248.             float(_declare,LaserAngle1,0);
  249.             float(_declare,LaserAngle2,0);
  250.             float(_declare,DiscColor,0);
  251.             float(_declare,ColorStage,0);
  252.  
  253.     //c3 (Military Zone)
  254.             float(_declare,VarKey81,0);
  255.             float(_declare,VarKey82,0);
  256.             float(_declare,VarKey83,0);
  257.             float(_declare,VarKey84,0);
  258.             float(_declare,VarKey85,0);
  259.             float(_declare,VarKey86,0);
  260.             float(_declare,VarKey87,0);
  261.             float(_declare,VarKey88,0);
  262.             float(_declare,VarKey89,0);
  263.             float(_declare,VarKey90,0);
  264.  
  265.     //Boss Areas (Priest - Satan)
  266.             float(_declare,VarKey91,0);
  267.             float(_declare,VarKey92,0);
  268.             float(_declare,VarKey93,0);
  269.             float(_declare,VarKey94,0);
  270.             float(_declare,VarKey95,0);
  271.             float(_declare,VarKey96,0);
  272.             float(_declare,VarKey97,0);
  273.             float(_declare,VarKey98,0);
  274.             float(_declare,VarKey99,0);
  275.  
  276.     //c1_s3 Sewer - Outskirts - Laboratory)
  277.             float(_declare,VarKey101,0);
  278.             float(_declare,VarKey102,0);
  279.             float(_declare,VarKey103,0);
  280.             float(_declare,VarKey104,0);
  281.             float(_declare,VarKey105,0);
  282.             float(_declare,VarKey106,0);
  283.             float(_declare,VarKey107,0);
  284.             float(_declare,VarKey108,0);
  285.             float(_declare,VarKey109,0);
  286.             float(_declare,VarKey110,0);
  287.             float(_declare,OpenDoor,0);
  288.             float(_declare,WeaponDelay01,0);
  289.             float(_declare,WeaponDelay02,0);
  290.             float(_declare,WeaponDelay03,0);
  291.             float(_declare,LabAlarm,0);
  292.             float(_declare,LabSecBeams,0);
  293.             
  294.         //Cryo
  295.             float(_declare,CryoKey1,0);
  296.             float(_declare,CryoKey2,0);
  297.             float(_declare,CryoKey3,0);
  298.             
  299.         //c2 (Wasteplant)
  300.             float(_declare,WorkerPushingObject,0);        //Whether or not worker is pushing object
  301.             float(_declare,BarrelTimer,0);
  302.  
  303.             float(_declare,PlatformTimer,0);    //Used for platform scripting in wast5
  304.             float(_declare,PlatformLevel1,0);
  305.             float(_declare,PlatformLevel2,0);
  306.             
  307.             float(_declare,VarKey111,0);
  308.             float(_declare,VarKey112,0);
  309.             float(_declare,VarKey113,0);
  310.             float(_declare,VarKey114,0);
  311.             float(_declare,VarKey115,0);
  312.             float(_declare,VarKey116,0);
  313.             float(_declare,VarKey117,0);
  314.             float(_declare,VarKey118,0);
  315.             float(_declare,VarKey119,0);
  316.             float(_declare,VarKey120,0);
  317.  
  318.             float(_declare,aitoggle,0);
  319.             float(_declare,aivisiontoggle,0);
  320.             float(_declare,DepossesionAbilityActive,0);
  321.             float(_declare,tutorialtoggle,1);
  322.  
  323.             float(_declare,ListenerSource,1);
  324.             float(_declare,GodMode,0);
  325.  
  326.             float(_declare,SniperMode,0);
  327.             //TH
  328.             float(_declare,PreCopStateBits,0);
  329.             float(_declare,CopStateBits,0);
  330.             float(_declare,PreCopActionBits,0);
  331.             float(_declare,CopActionBits,0);
  332.             float(_declare,SoundDelayCounter,0);//to make sure that sounds don't overlap, set to positive value when sound started & counts-down to zero
  333.             //
  334.  
  335.             //Msika's variables for levels
  336.             #include    "messiahscripts\stages\DavidGlobals.hxx"
  337.  
  338.             //my vectors/floats for specialFX and soundFX,etc...
  339.             #include    "messiahscripts\particles\TonyGlobals.hxx"
  340.  
  341.             ClrPaths();
  342.             InstallPath("c:\mesinst");
  343.             AddPath("pc");
  344.             AddPath("pc\3dxprj");
  345.             LevelFile("messiah.spt");
  346.  
  347.  
  348.             //set key to be non repeat
  349.             call(ToggleKey,KEY_9);
  350.             call(ToggleKey,KEY_T);
  351.  
  352.  
  353.  
  354.  
  355.             if(VCurScene==1)
  356.             {
  357.                 callsub(InitScene1)
  358.             }
  359.             elseif(VCurScene==2)
  360.             {
  361.                 callsub(InitScene2)
  362.             }
  363.             elseif(VCurScene==3)
  364.             {
  365.                 callsub(InitScene3);
  366.             }
  367.             elseif(VCurScene==4)
  368.             {
  369.                 callsub(InitScene4);
  370.             }
  371.             elseif(VCurScene==5)
  372.             {
  373.                 callsub(InitScene5);
  374.             }
  375.             elseif(VCurScene==6)
  376.             {
  377.                 callsub(InitScene6);
  378.             }
  379.             elseif(VCurScene==7)
  380.             {
  381.                 callsub(InitScene7);
  382.             }
  383.             elseif(VCurScene==8)
  384.             {
  385.                 callsub(InitScene8);
  386.             }
  387.             elseif(VCurScene==9)
  388.             {
  389.                 callsub(InitScene9);
  390.             }
  391.             elseif(VCurScene==10)
  392.             {
  393.                 callsub(InitScene10);
  394.             }
  395.             elseif(VCurScene==11)
  396.             {
  397.                 callsub(InitScene11);
  398.             }
  399.             elseif(VCurScene==12)
  400.             {
  401.                 callsub(InitScene12);
  402.             }
  403.             elseif(VCurScene==13)
  404.             {
  405.                 callsub(InitScene13);
  406.             }
  407.             elseif(VCurScene==14)
  408.             {
  409.                 callsub(InitScene14);
  410.             }
  411.             elseif(VCurScene==15)
  412.             {
  413.                 callsub(InitScene15);
  414.             }
  415.             elseif(VCurScene==16)
  416.             {
  417.                 callsub(InitScene16);
  418.             }
  419.             elseif(VCurScene==17)
  420.             {
  421.                 callsub(InitScene17);
  422.             }
  423.             elseif(VCurScene==18)
  424.             {
  425.                 callsub(InitScene18);
  426.             }
  427.             elseif(VCurScene==19)
  428.             {
  429.                 callsub(InitScene19);
  430.             }
  431.         }
  432.  
  433.         if(VInitSceneSounds==1)
  434.         {
  435.             if(VCurScene==1)
  436.             {
  437.                 callsub(InitSceneSound1)
  438.             }
  439.             elseif(VCurScene==2)
  440.             {
  441.                 callsub(InitSceneSound2)
  442.             }
  443.             elseif(VCurScene==3)
  444.             {
  445.                 callsub(InitSceneSound3);
  446.             }
  447.             elseif(VCurScene==4)
  448.             {
  449.                 callsub(InitSceneSound4);
  450.             }
  451.             elseif(VCurScene==5)
  452.             {
  453.                 callsub(InitSceneSound5);
  454.             }
  455.             elseif(VCurScene==6)
  456.             {
  457.                 callsub(InitSceneSound6);
  458.             }
  459.             elseif(VCurScene==7)
  460.             {
  461.                 callsub(InitSceneSound7);
  462.             }
  463.             elseif(VCurScene==8)
  464.             {
  465.                 callsub(InitSceneSound8);
  466.             }
  467.             elseif(VCurScene==9)
  468.             {
  469.                 callsub(InitSceneSound9);
  470.             }
  471.             elseif(VCurScene==10)
  472.             {
  473.                 callsub(InitSceneSound10);
  474.             }
  475.             elseif(VCurScene==11)
  476.             {
  477.                 callsub(InitSceneSound11);
  478.             }
  479.             elseif(VCurScene==12)
  480.             {
  481.                 callsub(InitSceneSound12);
  482.             }
  483.             elseif(VCurScene==13)
  484.             {
  485.                 callsub(InitSceneSound13);
  486.             }
  487.             elseif(VCurScene==14)
  488.             {
  489.                 callsub(InitSceneSound14);
  490.             }
  491.             elseif(VCurScene==15)
  492.             {
  493.                 callsub(InitSceneSound15);
  494.             }
  495.             elseif(VCurScene==16)
  496.             {
  497.                 callsub(InitSceneSound16);
  498.             }
  499.             elseif(VCurScene==17)
  500.             {
  501.                 callsub(InitSceneSound17);
  502.             }
  503.             elseif(VCurScene==18)
  504.             {
  505.                 callsub(InitSceneSound18);
  506.             }
  507.         }
  508.  
  509.  
  510.         if(VGameCounter>=1)
  511.         {
  512.             ///////////
  513.             //MAIN LOOP
  514.             ///////////
  515.  
  516.             if(VCurScene==1)
  517.             {
  518.                 callsub(MainScene1)
  519.             }
  520.             elseif(VCurScene==2)
  521.             {
  522.                 callsub(MainScene2)
  523.             }
  524.             elseif(VCurScene==3)
  525.             {
  526.                 callsub(MainScene3);
  527.             }
  528.             elseif(VCurScene==4)
  529.             {
  530.                 callsub(MainScene4);
  531.             }
  532.             elseif(VCurScene==5)
  533.             {
  534.                 callsub(MainScene5);
  535.             }
  536.             elseif(VCurScene==6)
  537.             {
  538.                 callsub(MainScene6);
  539.             }
  540.             elseif(VCurScene==7)
  541.             {
  542.                 callsub(MainScene7);
  543.             }
  544.             elseif(VCurScene==8)
  545.             {
  546.                 callsub(MainScene8);
  547.             }
  548.             elseif(VCurScene==9)
  549.             {
  550.                 callsub(MainScene9);
  551.             }
  552.             elseif(VCurScene==10)
  553.             {
  554.                 callsub(MainScene10);
  555.             }
  556.             elseif(VCurScene==11)
  557.             {
  558.                 callsub(MainScene11);
  559.             }
  560.             elseif(VCurScene==12)
  561.             {
  562.                 callsub(MainScene12);
  563.             }
  564.             elseif(VCurScene==13)
  565.             {
  566.                 callsub(MainScene13);
  567.             }
  568.             elseif(VCurScene==14)
  569.             {
  570.                 callsub(MainScene14);
  571.             }
  572.             elseif(VCurScene==15)
  573.             {
  574.                 callsub(MainScene15);
  575.             }
  576.             elseif(VCurScene==16)
  577.             {
  578.                 callsub(MainScene16);
  579.             }
  580.             elseif(VCurScene==17)
  581.             {
  582.                 callsub(MainScene17);
  583.             }
  584.             elseif(VCurScene==18)
  585.             {
  586.                 callsub(MainScene18);
  587.             }
  588.             elseif(VCurScene==19)
  589.             {
  590.                 callsub(MainScene19);
  591.             }
  592.         }
  593.  
  594.         callsub(ReadKeyJoy);
  595.  
  596.         if(VAICon==0)
  597.         {
  598.             float(_seti,DirHold,VTrigger);
  599.             float(_set,DirClr,DirHold);
  600.             float(_xor,DirClr,DirOld);
  601.             float(_and,DirClr,DirOld);        //DirClr=(OldDirection^NewDirection)&OldDirection
  602.             float(_and,DirHold,DirOld);        //DirHold=OldDirection&NewDirection
  603.             float(_seti,DirOld,VTrigger);
  604.         }
  605.  
  606. /////FF loop attacks...
  607. /*
  608.         if(VAInrattackingplayer>=2 && FFplaying==0)
  609.         {
  610.             if(vrnd<33 && LastCombatSFX!=1)
  611.             {
  612.                 float(_set,LastCombatSFX,1);
  613.                 sample(SFXFF1,-1,100);
  614.             }
  615.             elseif(vrnd<66 && LastCombatSFX!=2)
  616.             {
  617.                 float(_set,LastCombatSFX,2);
  618.                 sample(SFXFF2,-1,100);
  619.             }
  620.             elseif(LastCombatSFX!=3)
  621.             {
  622.                 float(_set,LastCombatSFX,3);
  623.                 sample(SFXFF3,-1,100);
  624.             }
  625.             else
  626.             {
  627.                 float(_set,LastCombatSFX,1);
  628.                 sample(SFXFF1,-1,100);
  629.             }
  630.  
  631.             float(_set,FFplaying,1);        //playing
  632.             float(_set,FFfader,100);        //max volume
  633.         }
  634.         elseif(VAInrattackingplayer==1 && FFplaying==0)
  635.         {
  636.             if(vrnd<33 && LastCombatSFX!=4)
  637.             {
  638.                 float(_set,LastCombatSFX,4);
  639.                 sample(SFXFF4,-1,50);
  640.             }
  641.             elseif(vrnd<66 && LastCombatSFX!=5)
  642.             {
  643.                 float(_set,LastCombatSFX,5);
  644.                 sample(SFXFF5,-1,50);
  645.             }
  646.             elseif(LastCombatSFX!=6)
  647.             {
  648.                 float(_set,LastCombatSFX,6);
  649.                 sample(SFXFF6,-1,50);
  650.             }
  651.             else
  652.             {
  653.                 float(_set,LastCombatSFX,4);
  654.                 sample(SFXFF4,-1,50);
  655.             }
  656.  
  657.             float(_set,FFplaying,1);        //playing
  658.             float(_set,FFfader,50);            //half volume
  659.         }
  660.         elseif(VAInrattackingplayer>=2 && FFplaying==1)
  661.         {
  662.             float(_set,FFfader,100);        //max volume
  663.         }
  664.         elseif(VAInrattackingplayer==1 && FFplaying==1)
  665.         {
  666.             float(_set,FFfader,50);            //half volume
  667.         }
  668.         elseif(VAInrattackingplayer==0 && FFplaying==1)
  669.         {
  670.             float(_set,FFfader,0);            //min volume
  671.         }
  672.  
  673.         if(FFplaying==1)
  674.         {
  675.             float(_sub,FFcurvolume,0.5);        //always try to fade...(2 sec fade out)
  676.             if(FFcurvolume<=FFfader)            //...to this level
  677.             {
  678.                 float(_set,FFcurvolume,FFfader);
  679.             }
  680.  
  681.             if(LastCombatSFX==1)
  682.             {
  683.                 samplevolume(SFXFF1,FFcurvolume);
  684.             }
  685.             elseif(LastCombatSFX==2)
  686.             {
  687.                 samplevolume(SFXFF2,FFcurvolume);
  688.             }
  689.             elseif(LastCombatSFX==3)
  690.             {
  691.                 samplevolume(SFXFF3,FFcurvolume);
  692.             }
  693.             elseif(LastCombatSFX==4)
  694.             {
  695.                 samplevolume(SFXFF4,FFcurvolume);
  696.             }
  697.             elseif(LastCombatSFX==5)
  698.             {
  699.                 samplevolume(SFXFF5,FFcurvolume);
  700.             }
  701.             elseif(LastCombatSFX==6)
  702.             {
  703.                 samplevolume(SFXFF6,FFcurvolume);
  704.             }
  705.  
  706.             if(FFcurvolume==0)
  707.             {
  708.                 float(_set,FFplaying,0);
  709.             }
  710.         }
  711. */
  712.         float(_xor,EveryOtherFrame,1);
  713.         if(SoundDelayCounter>0)
  714.         {
  715.             float(_sub,SoundDelayCounter,1);
  716.         }
  717.  
  718.         float(_add,WeaponFaderCol,WeaponFaderDir);
  719.         if(WeaponFaderCol<128)
  720.         {
  721.             float(_set,WeaponFaderDir,64);
  722.         }
  723.         elseif(WeaponFaderCol>4096)
  724.         {
  725.             float(_set,WeaponFaderDir,-64);
  726.         }
  727. }
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734. SubRoutine(Sub_SpawnCharacters)
  735. {
  736.         if(VAICon==0)
  737.         {
  738.             if(vkey==KEY_TAB)
  739.             {
  740.                 move(0,0,-50);
  741.             }
  742.         }
  743.  
  744.  
  745. //        if(VActiveTime==5&&VGameCounter<8)
  746. //        {
  747. //            spawnactor(Weapon11,-30,100,-200);
  748. //            spawnactor(Copl,0,150,-100);
  749. //        }
  750. //        if(VActiveTime==27&&VGameCounter<30)
  751. //        {
  752.     //        spawnactor(Copl,100,100,-400);
  753. //        }
  754. //weapon1
  755. //weapon11
  756. //weapon12
  757. //weapon13
  758.  
  759. }
  760.  
  761.  
  762.  
  763. SubRoutine(Sub_SpawnActors)
  764. {
  765.     if(VAICon==0)
  766.     {
  767.         if(VKey==KEY_8 && VKey==KEY_RSHIFT)
  768.         {
  769.             float(_add,CurrentActor,0.5);
  770.             if(CurrentActor>=48)
  771.             {
  772.                 float(_set,CurrentActor,48);
  773.             }
  774.         }
  775.         elseif(VKey==KEY_7 && VKey==KEY_RSHIFT)
  776.         {
  777.             float(_sub,CurrentActor,0.5);
  778.             if(CurrentActor<0)
  779.             {
  780.                 float(_set,CurrentActor,0);
  781.             }
  782.         }
  783.  
  784.  
  785.         if(CurrentActor<=0)
  786.         {
  787.             dmessage("NEXT ACTOR: (1) COP LIGHT",300,10);
  788.         }
  789.         elseif(CurrentActor<=1)
  790.         {
  791.             dmessage("NEXT ACTOR: (2) COP MEDIUM",300,10);
  792.         }
  793.         elseif(CurrentActor<=2)
  794.         {
  795.             dmessage("NEXT ACTOR: (3) COP HEAVY",300,10);
  796.         }
  797.         elseif(CurrentActor<=3)
  798.         {
  799.             dmessage("NEXT ACTOR: (4) WORKER",300,10);
  800.         }
  801.         elseif(CurrentActor<=4)
  802.         {
  803.             dmessage("NEXT ACTOR: (5) MEDIC",300,10);
  804.         }
  805.         elseif(CurrentActor<=5)
  806.         {
  807.             dmessage("NEXT ACTOR: (6) ARMOUR BEAST",300,10);
  808.         }
  809.         elseif(CurrentActor<=6)
  810.         {
  811.             dmessage("NEXT ACTOR: (7) NUKE TEK",300,10);
  812.         }
  813.         elseif(CurrentActor<=7)
  814.         {
  815.             dmessage("NEXT ACTOR: (8) LAYYA",300,10);
  816.         }
  817.         elseif(CurrentActor<=8)
  818.         {
  819.             dmessage("NEXT ACTOR: (9) PROZZIE",300,10);
  820.         }
  821.         elseif(CurrentActor<=9)
  822.         {
  823.             dmessage("NEXT ACTOR: (10) MALE PROZ",300,10);
  824.         }
  825.         elseif(CurrentActor<=10)
  826.         {
  827.             dmessage("NEXT ACTOR: (11) CHOT",300,10);
  828.         }
  829.         elseif(CurrentActor<=11)
  830.         {
  831.             dmessage("NEXT ACTOR: (12) CHOT CT",300,10);
  832.         }
  833.         elseif(CurrentActor<=12)
  834.         {
  835.             dmessage("NEXT ACTOR: (13) CHOT OT",300,10);
  836.         }
  837.         elseif(CurrentActor<=13)
  838.         {
  839.             dmessage("NEXT ACTOR: (14) DOMINA",300,10);
  840.         }
  841.         elseif(CurrentActor<=14)
  842.         {
  843.             dmessage("NEXT ACTOR: (15) DWELLER 1",300,10);
  844.         }
  845.         elseif(CurrentActor<=15)
  846.         {
  847.             dmessage("NEXT ACTOR: (16) DWELLER 3",300,10);
  848.         }
  849.         elseif(CurrentActor<=16)
  850.         {
  851.             dmessage("NEXT ACTOR: (17) SUBGIRL 1",300,10);
  852.         }
  853.         elseif(CurrentActor<=17)
  854.         {
  855.             dmessage("NEXT ACTOR: (18) SUBGIRL 2",300,10);
  856.         }
  857.         elseif(CurrentActor<=18)
  858.         {
  859.             dmessage("NEXT ACTOR: (19) DROID 1",300,10);
  860.         }
  861.         elseif(CurrentActor<=19)
  862.         {
  863.             dmessage("NEXT ACTOR: (20) DROID 2",300,10);
  864.         }
  865.         elseif(CurrentActor<=20)
  866.         {
  867.             dmessage("NEXT ACTOR: (21) RAT",300,10);
  868.         }
  869.         elseif(CurrentActor<=21)
  870.         {
  871.             dmessage("NEXT ACTOR: (22) CANDY",300,10);
  872.         }
  873.         elseif(CurrentActor<=22)
  874.         {
  875.             dmessage("NEXT ACTOR: (23) BARMAN",300,10);
  876.         }
  877.         elseif(CurrentActor<=23)
  878.         {
  879.             dmessage("NEXT ACTOR: (24) SCIENTIST",300,10);
  880.         }
  881.         elseif(CurrentActor<=24)
  882.         {
  883.             dmessage("NEXT ACTOR: (25) PRIEST",300,10);
  884.         }
  885.         elseif(CurrentActor<=25)
  886.         {
  887.             dmessage("NEXT ACTOR: (26) CHOT BEAST",300,10);
  888.         }
  889.         elseif(CurrentActor<=26)
  890.         {
  891.             dmessage("NEXT ACTOR: (27) GUN TURRET",300,10);
  892.         }
  893.         elseif(CurrentActor<=27)
  894.         {
  895.             dmessage("NEXT ACTOR: (28) ROCKET LAUNCHER",300,10);
  896.         }
  897.         elseif(CurrentActor<=28)
  898.         {
  899.             dmessage("NEXT ACTOR: (29) PIMP DADDY",300,10);
  900.         }
  901.         elseif(CurrentActor<=29)
  902.         {
  903.             dmessage("NEXT ACTOR: (30) CHOT 2",300,10);
  904.         }
  905.         elseif(CurrentActor<=30)
  906.         {
  907.             dmessage("NEXT ACTOR: (31) BOUNCER",300,10);
  908.         }
  909.         elseif(CurrentActor<=31)
  910.         {
  911.             dmessage("NEXT ACTOR: (32) EVIL BOB",300,10);
  912.         }
  913.         elseif(CurrentActor<=32)
  914.         {
  915.             dmessage("NEXT ACTOR: (33) DJ KYD",300,10);
  916.         }
  917.         elseif(CurrentActor<=33)
  918.         {
  919.             dmessage("NEXT ACTOR: (34) YO MOMMA",300,10);    //dick
  920.         }
  921.         elseif(CurrentActor<=34)
  922.         {
  923.             dmessage("NEXT ACTOR: (35) DEFENSE BOT",300,10);
  924.         }
  925.         elseif(CurrentActor<=35)
  926.         {
  927.             dmessage("NEXT ACTOR: (36) COMPANION BOT",300,10);
  928.         }
  929.         elseif(CurrentActor<=36)
  930.         {
  931.             dmessage("NEXT ACTOR: (37) TRANSPORT BOT",300,10);
  932.         }
  933.         elseif(CurrentActor<=37)
  934.         {
  935.             dmessage("NEXT ACTOR: (38) OFFENSE BOT",300,10);
  936.         }
  937.         elseif(CurrentActor<=38)
  938.         {
  939.             dmessage("NEXT ACTOR: (39) DWELLER 2",300,10);
  940.         }
  941.         elseif(CurrentActor<=39)
  942.         {
  943.             dmessage("NEXT ACTOR: (40) VICTIM MALE",300,10);
  944.         }
  945.         elseif(CurrentActor<=40)
  946.         {
  947.             dmessage("NEXT ACTOR: (41) VICTIM FEMALE",300,10);
  948.         }
  949.         elseif(CurrentActor<=41)
  950.         {
  951.             dmessage("NEXT ACTOR: (42) FEMALE DWELLER 1",300,10);
  952.         }
  953.         elseif(CurrentActor<=42)
  954.         {
  955.             dmessage("NEXT ACTOR: (43) FEMALE DWELLER 2",300,10);
  956.         }
  957.         elseif(CurrentActor<=43)
  958.         {
  959.             dmessage("NEXT ACTOR: (44) XTC",300,10);
  960.         }
  961.         elseif(CurrentActor<=44)
  962.         {
  963.             dmessage("NEXT ACTOR: (45) RIOT COP",300,10);
  964.         }
  965.         elseif(CurrentActor<=45)
  966.         {
  967.             dmessage("NEXT ACTOR: (46) GUN COMMANDER",300,10);
  968.         }
  969.         elseif(CurrentActor<=46)
  970.         {
  971.             dmessage("NEXT ACTOR: (47) NUN",300,10);
  972.         }
  973.         elseif(CurrentActor<=47)
  974.         {
  975.             dmessage("NEXT ACTOR: (48) CHOT DWARF",300,10);
  976.         }
  977.         elseif(CurrentActor<=48)
  978.         {
  979.             dmessage("NEXT ACTOR: (49) SHELL TURRET",300,10);
  980.         }
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.         
  993.  
  994.  
  995.         //if(DebugOnlyOneEnemy==0)
  996.         //{
  997.             //float(_set,DebugOnlyOneEnemy,3)
  998.  
  999.             if(VKey==KEY_9 && VKey==KEY_RSHIFT)
  1000.             {
  1001.                 if(CurrentActor<=0)
  1002.                 {
  1003.                     spawnactor(copl,0,150,-200);
  1004.                     //spawnactor(MDroid1,0,150,-200);
  1005.                 }
  1006.                 elseif(CurrentActor<=1)
  1007.                 {
  1008.                     spawnactor(copm,0,150,-200);
  1009.                     //spawnactor(MDroid2,0,150,-200);
  1010.                 }
  1011.                 elseif(CurrentActor<=2)
  1012.                 {
  1013.                     spawnactor(coph,0,150,-200);
  1014.                     //spawnactor(AutoCannon,0,150,-200);
  1015.                 }
  1016.                 elseif(CurrentActor<=3)
  1017.                 {
  1018.                     spawnactor(worker,0,150,-200);
  1019.                     //spawnactor(WeaponBot,0,150,-200);
  1020.                 }
  1021.                 elseif(CurrentActor<=4)
  1022.                 {
  1023.                     spawnactor(medic,0,150,-200);
  1024.                 }
  1025.                 elseif(CurrentActor<=5)
  1026.                 {
  1027.                     spawnactor(abeast,0,150,-200);
  1028.                 }
  1029.                 elseif(CurrentActor<=6)
  1030.                 {
  1031.                     spawnactor(RadiationWorker,0,150,-200);
  1032.                 }
  1033.                 elseif(CurrentActor<=7)
  1034.                 {
  1035.                     spawnactor(Layya,0,150,-200);
  1036.                 }
  1037.                 elseif(CurrentActor<=8)
  1038.                 {
  1039.                     spawnactor(prost1,0,150,-200);
  1040.                 }
  1041.                 elseif(CurrentActor<=9)
  1042.                 {
  1043.                     spawnactor(hung,0,150,-200);
  1044.                 }
  1045.                 elseif(CurrentActor<=10)
  1046.                 {
  1047.                     spawnactor(chot,0,150,-200);
  1048.                 }
  1049.                 elseif(CurrentActor<=11)
  1050.                 {
  1051.                     spawnactor(chotct,0,150,-200);
  1052.                 }
  1053.                 elseif(CurrentActor<=12)
  1054.                 {
  1055.                     spawnactor(chotmot,0,150,-200);
  1056.                 }
  1057.                 elseif(CurrentActor<=13)
  1058.                 {
  1059.                     spawnactor(domina,0,150,-200);
  1060.                 }
  1061.                 elseif(CurrentActor<=14)
  1062.                 {
  1063.                     spawnactor(Dweller1,0,150,-200);
  1064.                 }
  1065.                 elseif(CurrentActor<=15)
  1066.                 {
  1067.                     spawnactor(Dweller3,0,150,-200);
  1068.                 }
  1069.                 elseif(CurrentActor<=16)
  1070.                 {
  1071.                     spawnactor(subgirl1,0,150,-200);
  1072.                 }
  1073.                 elseif(CurrentActor<=17)
  1074.                 {
  1075.                     spawnactor(subgirl2,0,150,-200);
  1076.                 }
  1077.                 elseif(CurrentActor<=18)
  1078.                 {
  1079.                     spawnactor(MDroid1,0,150,-200);
  1080.                 }
  1081.                 elseif(CurrentActor<=19)
  1082.                 {
  1083.                     spawnactor(MDroid2,0,150,-200);
  1084.                 }
  1085.                 elseif(CurrentActor<=20)
  1086.                 {
  1087.                     spawnactor(rat,0,150,-200);
  1088.                 }
  1089.                 elseif(CurrentActor<=21)
  1090.                 {
  1091.                     spawnactor(Candy,0,150,-200);
  1092.                 }
  1093.                 elseif(CurrentActor<=22)
  1094.                 {
  1095.                     spawnactor(barman,0,150,-200);
  1096.                 }
  1097.                 elseif(CurrentActor<=23)
  1098.                 {
  1099.                     spawnactor(scientist,0,150,-200);
  1100.                 }
  1101.                 elseif(CurrentActor<=24)
  1102.                 {
  1103.                     spawnactor(priest,0,150,-200);
  1104.                 }
  1105.                 elseif(CurrentActor<=25)
  1106.                 {
  1107.                     spawnactor(chotbeast,0,150,-200);
  1108.                 }
  1109.                 elseif(CurrentActor<=26)
  1110.                 {
  1111.                     spawnactor(GunTurret,0,-35,-200);
  1112.                 }
  1113.                 elseif(CurrentActor<=27)
  1114.                 {
  1115.                     spawnactor(RocketLauncher,0,-54,-200);
  1116.                 }
  1117.                 elseif(CurrentActor<=28)
  1118.                 { 
  1119.                     spawnactor(Pimp,0,150,-200);
  1120.                 }
  1121.                 elseif(CurrentActor<=29)
  1122.                 { 
  1123.                     spawnactor(chot2,0,150,-200);
  1124.                 }
  1125.                 elseif(CurrentActor<=30)
  1126.                 { 
  1127.                     spawnactor(bouncer,0,150,-200);
  1128.                 }
  1129.                 elseif(CurrentActor<=31)
  1130.                 { 
  1131.                     spawnactor(evilbob,0,150,-200);
  1132.                 }
  1133.                 elseif(CurrentActor<=32)
  1134.                 { 
  1135.                     spawnactor(djkyd,0,150,-200);
  1136.                 }
  1137.                 elseif(CurrentActor<=33)
  1138.                 { 
  1139.                     spawnactor(satan,0,150,-200);
  1140.                 }
  1141.                 elseif(CurrentActor<=34)
  1142.                 { 
  1143.                     spawnactor(DefensiveBot,0,150,-200);
  1144.                 }
  1145.                 elseif(CurrentActor<=35)
  1146.                 { 
  1147.                     spawnactor(CompanionBot,0,150,-200);
  1148.                 }
  1149.                 elseif(CurrentActor<=36)
  1150.                 { 
  1151.                     spawnactor(TransportBot,0,150,-200);
  1152.                 }
  1153.                 elseif(CurrentActor<=37)
  1154.                 { 
  1155.                     spawnactor(OffensiveBot,0,150,-200);
  1156.                 }
  1157.                 elseif(CurrentActor<=38)
  1158.                 { 
  1159.                     spawnactor(Dweller2,0,150,-200);
  1160.                 }
  1161.                 elseif(CurrentActor<=39)
  1162.                 { 
  1163.                     spawnactor(victimmale,0,150,-200);
  1164.                 }
  1165.                 elseif(CurrentActor<=40)
  1166.                 { 
  1167.                     spawnactor(VictimFeMale,0,150,-200);
  1168.                 }
  1169.                 elseif(CurrentActor<=41)
  1170.                 { 
  1171.                     spawnactor(FemDweller1,0,150,-200);
  1172.                 }
  1173.                 elseif(CurrentActor<=42)
  1174.                 { 
  1175.                     spawnactor(FemDweller2,0,150,-200);
  1176.                 }
  1177.                 elseif(CurrentActor<=43)
  1178.                 { 
  1179.                     spawnactor(prost2,0,150,-200);
  1180.                 }
  1181.                 elseif(CurrentActor<=44)
  1182.                 { 
  1183.                     spawnactor(copr,0,150,-200);
  1184.                 }
  1185.                 elseif(CurrentActor<=45)
  1186.                 { 
  1187.                     spawnactor(GunCommander,0,150,-200);
  1188.                 }
  1189.                 elseif(CurrentActor<=46)
  1190.                 { 
  1191.                     spawnactor(nun,0,150,-200);
  1192.                 }
  1193.                 elseif(CurrentActor<=47)
  1194.                 { 
  1195.                     spawnactor(chotdwarf,0,150,-200);
  1196.                 }
  1197.                 elseif(CurrentActor<=48)
  1198.                 { 
  1199.                     spawnactor(shellturret,0,150,-200);
  1200.                 }
  1201.  
  1202.                 
  1203.  
  1204.  
  1205.  
  1206.                 //else
  1207.                 //{
  1208.                 //    float(_set,DebugOnlyOneEnemy,0)
  1209.                 //}
  1210.             }
  1211.         //}
  1212.         //else
  1213.         //{
  1214.         //    float(_sub,DebugOnlyOneEnemy,1)
  1215.         //}
  1216.     }
  1217. }
  1218.  
  1219. SubRoutine(Sub_SpawnWeapons)
  1220. {
  1221.     if(VAICon==0)
  1222.     {
  1223.         if(VKey==KEY_8 && VKey!=KEY_RSHIFT)
  1224.         {
  1225.             float(_add,CurrentWeapon,0.5);
  1226.             if(CurrentWeapon>=13)
  1227.             {
  1228.                 float(_set,CurrentWeapon,13);
  1229.             }
  1230.         }
  1231.         elseif(VKey==KEY_7 && VKey!=KEY_RSHIFT)
  1232.         {
  1233.             float(_sub,CurrentWeapon,0.5);
  1234.             if(CurrentWeapon<0)
  1235.             {
  1236.                 float(_set,CurrentWeapon,0);
  1237.             }
  1238.         }
  1239.  
  1240.  
  1241.         if(CurrentWeapon<=0)
  1242.         {
  1243.             dmessage("NEXT WEAPON: (1) PUMPGUN",310,10);
  1244.         }
  1245.         elseif(CurrentWeapon<=1)
  1246.         {
  1247.             dmessage("NEXT WEAPON: (2) HARPOON",310,10);
  1248.         }
  1249.         elseif(CurrentWeapon<=2)
  1250.         {
  1251.             dmessage("NEXT WEAPON: (3) FLAMETHROWER",310,10);
  1252.         }
  1253.         elseif(CurrentWeapon<=3)
  1254.         {
  1255.             dmessage("NEXT WEAPON: (4) BAZOOKA",310,10);
  1256.         }
  1257.         elseif(CurrentWeapon<=4)
  1258.         {
  1259.             dmessage("NEXT WEAPON: (5) TORCH",310,10);
  1260.         }
  1261.         elseif(CurrentWeapon<=5)
  1262.         {
  1263.             dmessage("NEXT WEAPON: (6) MAIMER",310,10);
  1264.         }
  1265.         elseif(CurrentWeapon<=6)
  1266.         {
  1267.             dmessage("NEXT WEAPON: (7) MACHINE GUN",310,10);
  1268.         }
  1269.         elseif(CurrentWeapon<=7)
  1270.         {
  1271.             dmessage("NEXT WEAPON: (8) PAK / ICE GUN",310,10);
  1272.         }
  1273.         elseif(CurrentWeapon<=8)
  1274.         {
  1275.             dmessage("NEXT WEAPON: (9) BUZZ SAW",310,10);
  1276.         }
  1277.         elseif(CurrentWeapon<=9)
  1278.         {
  1279.             dmessage("NEXT WEAPON: (10) AMMO WEAPONS",310,10);
  1280.         }
  1281.         elseif(CurrentWeapon<=10)
  1282.         {
  1283.             dmessage("NEXT WEAPON: (11) AMMO GRENADES",310,10);
  1284.         }
  1285.         elseif(CurrentWeapon<=11)
  1286.         {
  1287.             dmessage("NEXT WEAPON: (12) BATTERY GRABBER",310,10);
  1288.         }
  1289.         elseif(CurrentWeapon<=12)
  1290.         {
  1291.             dmessage("NEXT WEAPON: (13) BATTERY",310,10);
  1292.         }
  1293.         elseif(CurrentWeapon<=13)
  1294.         {
  1295.             dmessage("NEXT WEAPON: (14) MASER",310,10);
  1296.         }
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302. //        if(DebugOnlyOneWeapon==0)
  1303. //        {
  1304.             //float(_set,DebugOnlyOneWeapon,3)
  1305.  
  1306.             if(VKey==KEY_9 && VKey!=KEY_RSHIFT)
  1307.             {
  1308.                 if(CurrentWeapon<=0)
  1309.                 {
  1310.                     spawnactor(WeaponPumpGun,0,150,-200);
  1311.                 }
  1312.                 elseif(CurrentWeapon<=1)
  1313.                 {
  1314.                     spawnactor(WeaponHarpoon,0,150,-200);
  1315.                 }
  1316.                 elseif(CurrentWeapon<=2)
  1317.                 {
  1318.                     spawnactor(WeaponFlameThrower,0,150,-200);
  1319.                 }
  1320.                 elseif(CurrentWeapon<=3)
  1321.                 {
  1322.                     spawnactor(WeaponBazooka,0,150,-200);
  1323.                 }
  1324.                 elseif(CurrentWeapon<=4)
  1325.                 {
  1326.                     spawnactor(WeaponTorch,0,150,-200);
  1327.                 }
  1328.                 elseif(CurrentWeapon<=5)
  1329.                 {
  1330.                     spawnactor(WeaponMaimer,0,150,-200);
  1331.                 }
  1332.                 elseif(CurrentWeapon<=6)
  1333.                 {
  1334.                     spawnactor(WeaponMachineGun,0,150,-200);
  1335.                 }
  1336.                 elseif(CurrentWeapon<=7)
  1337.                 {
  1338.                     spawnactor(WeaponPAK,0,150,-200);
  1339.                 }
  1340.                 elseif(CurrentWeapon<=8)
  1341.                 {
  1342.                     spawnactor(WeaponBuzzSaw,0,150,-200);
  1343.                 }
  1344.                 elseif(CurrentWeapon<=9)
  1345.                 {
  1346.                     spawnactor(WeaponAmmo,0,150,-200);
  1347.                 }
  1348.                 elseif(CurrentWeapon<=10)
  1349.                 {
  1350.                     spawnactor(WeaponAmmoGrenade,0,150,-200);
  1351.                 }
  1352.                 elseif(CurrentWeapon<=11)
  1353.                 {
  1354.                     spawnactor(WeaponBatteryGrabber,0,150,-200);
  1355.                 }
  1356.                 elseif(CurrentWeapon<=12)
  1357.                 {
  1358.                     spawnactor(BulletBattery,0,150,-200);
  1359.                 }
  1360.                 elseif(CurrentWeapon<=13)
  1361.                 {
  1362.                     spawnactor(WeaponMaser,0,150,-200);
  1363.                 }
  1364.  
  1365.  
  1366.                 //else
  1367.                 //{
  1368.                 //    float(_set,DebugOnlyOneWeapon,0)
  1369.                 //}
  1370.             }
  1371. //        }
  1372. //        else
  1373. //        {
  1374. //            float(_sub,DebugOnlyOneWeapon,1)
  1375. //        }
  1376.     }
  1377. }
  1378.  
  1379.  
  1380.  
  1381. SubRoutine(BackGroundTriggerChecks)
  1382. {
  1383.         //printi("Health:",VHealth);
  1384.         float(_seti,ColAngleTmp,VColAngle);
  1385.         float(_seti,ColAngleTmpFace,VColAngleFace);
  1386.         float(_seti,ColMaterial,VColMaterialProperties);
  1387.  
  1388.         if(VCheatKeys==1)
  1389.         {
  1390.             callsub(Sub_SpawnCharacters);    //DEBUG
  1391.             callsub(Sub_SpawnWeapons);        //DEBUG
  1392.             callsub(Sub_SpawnActors);        //DEBUG
  1393.  
  1394.             if(vkey!=KEY_LSHIFT && vkey!=KEY_RSHIFT)
  1395.             {
  1396.                 if(vkey==KEY_G)
  1397.                 {
  1398.                     float(_set,aitoggle,0);        //ai on, ie: proc. copgen/femgen
  1399.                     dmessage("-- AI ENABLED --",30,150);
  1400.                 }
  1401.                 elseif(vkey==KEY_H)
  1402.                 {
  1403.                     float(_set,aitoggle,1);        //ai off
  1404.                     dmessage("-- AI DISABLED --",30,150);
  1405.                 }
  1406.             }
  1407.             else
  1408.             {
  1409.                 if(vkey==KEY_G)
  1410.                 {
  1411.                     float(_set,aivisiontoggle,0);        //ai on, ie: proc. copgen/femgen
  1412.                     dmessage("-- AI VISION ENABLED --",30,150);
  1413.                 }
  1414.                 elseif(vkey==KEY_H)
  1415.                 {
  1416.                     float(_set,aivisiontoggle,1);        //ai off
  1417.                     dmessage("-- AI VISION DISABLED --",30,150);
  1418.                 }
  1419.             }
  1420.  
  1421.             if(VKey==KEY_B && VKey==KEY_RSHIFT)
  1422.             {
  1423.                 if(VAIClass==_AIClassAngel)
  1424.                 {
  1425.                     call(ModelAmbient,255,255,255);
  1426.                 }
  1427.                 else
  1428.                 {
  1429.                     call(ModelAmbient,255,255,255);
  1430.                 }
  1431.             }                
  1432.             if(VKey==KEY_B)
  1433.             {
  1434.                 if(CrankAmbient<=30000)
  1435.                 {
  1436.                     float(_add,CrankAmbient,100);
  1437.                 }
  1438.                 if(VAIClass==_AIClassAngel)
  1439.                 {
  1440.                     call(ModelAmbient,CrankAmbient,CrankAmbient,CrankAmbient);
  1441.                 }
  1442.                 else
  1443.                 {
  1444.                     call(ModelAmbient,CrankAmbient,CrankAmbient,CrankAmbient);
  1445.                 }
  1446.             }
  1447.             if(VKey==KEY_N)
  1448.             {
  1449.                 if(CrankAmbient>0)
  1450.                 {
  1451.                     float(_sub,CrankAmbient,100);
  1452.                 }
  1453.                 if(VAIClass==_AIClassAngel)
  1454.                 {
  1455.                     call(ModelAmbient,CrankAmbient,CrankAmbient,CrankAmbient);
  1456.                 }
  1457.                 else
  1458.                 {
  1459.                     call(ModelAmbient,CrankAmbient,CrankAmbient,CrankAmbient);
  1460.                 }
  1461.             }
  1462.  
  1463.             if(VKey==KEY_RBRACKET)
  1464.             {
  1465.                 call(GodModeStatus,true);
  1466.                 dmessage("GOD MODE",30,150);
  1467.             }
  1468.             elseif(VKey==KEY_LBRACKET)
  1469.             {
  1470.                 call(GodModeStatus,false);
  1471.                 dmessage("MORTAL MODE",30,150);
  1472.             }
  1473.         }
  1474.  
  1475.         if(VKey==KEY_RSHIFT && VKey==KEY_T)
  1476.         {
  1477.             if(tutorialtoggle==0)
  1478.             {
  1479.                 float(_set,tutorialtoggle,1);
  1480.                 message("Tutorial On",200,10);
  1481.             }
  1482.             elseif(tutorialtoggle==1)
  1483.             {
  1484.                 float(_set,tutorialtoggle,0);
  1485.                 message("Tutorial Off",200,10);
  1486.             }
  1487.         }
  1488.  
  1489.  
  1490.         direction(_clr,_DIRTempFlag);
  1491.  
  1492.         call(CheckTriggers);
  1493.         
  1494.         if(vAICon==0)
  1495.         {
  1496.             if(VClass==_ClassAngel)
  1497.             {
  1498.                 call(CheckForPickup,4,_ClassPickup);    //pickups only
  1499.             }
  1500.             else
  1501.             {
  1502.                 call(CheckForPickup,8,_ClassAmmoPickup);    //Both ammo and pickups
  1503.             }
  1504.             vector(_settoactorpos,PlayerPos);
  1505.         }
  1506.  
  1507.         if(VCurScene==1)
  1508.         {    
  1509.             CallSub(BackGroundTriggerChecksScene1)
  1510.         }
  1511.         elseif(VCurScene==2)
  1512.         {
  1513.             CallSub(BackGroundTriggerChecksScene2)
  1514.         }
  1515.         elseif(VCurScene==3)
  1516.         {
  1517.             CallSub(BackGroundTriggerChecksScene3)
  1518.         }
  1519.         elseif(VCurScene==4)
  1520.         {
  1521.             CallSub(BackGroundTriggerChecksScene4)
  1522.         }
  1523.         elseif(VCurScene==5)
  1524.         {
  1525.             CallSub(BackGroundTriggerChecksScene5)
  1526.         }
  1527.         elseif(VCurScene==6)
  1528.         {
  1529.             CallSub(BackGroundTriggerChecksScene6)
  1530.         }
  1531.         elseif(VCurScene==7)
  1532.         {
  1533.             CallSub(BackGroundTriggerChecksScene7)
  1534.         }
  1535.         elseif(VCurScene==8)
  1536.         {
  1537.             CallSub(BackGroundTriggerChecksScene8)
  1538.         }
  1539.         elseif(VCurScene==9)
  1540.         {
  1541.             CallSub(BackGroundTriggerChecksScene9)
  1542.         }
  1543.         elseif(VCurScene==10)
  1544.         {
  1545.             CallSub(BackGroundTriggerChecksScene10)
  1546.         }
  1547.         elseif(VCurScene==11)
  1548.         {
  1549.             CallSub(BackGroundTriggerChecksScene11)
  1550.         }
  1551.         elseif(VCurScene==12)
  1552.         {
  1553.             CallSub(BackGroundTriggerChecksScene12)
  1554.         }
  1555.         elseif(VCurScene==13)
  1556.         {
  1557.             CallSub(BackGroundTriggerChecksScene13)
  1558.         }
  1559.         elseif(VCurScene==14)
  1560.         {
  1561.             CallSub(BackGroundTriggerChecksScene14)
  1562.         }
  1563.         elseif(VCurScene==15)
  1564.         {
  1565.             CallSub(BackGroundTriggerChecksScene15)
  1566.         }
  1567.         elseif(VCurScene==16)
  1568.         {
  1569.             CallSub(BackGroundTriggerChecksScene16)
  1570.         }
  1571.         elseif(VCurScene==17)
  1572.         {
  1573.             CallSub(BackGroundTriggerChecksScene17)
  1574.         }
  1575.         elseif(VCurScene==18)
  1576.         {
  1577.             CallSub(BackGroundTriggerChecksScene18)
  1578.         }
  1579.         elseif(VCurScene==19)
  1580.         {
  1581.             CallSub(BackGroundTriggerChecksScene19)
  1582.         }
  1583. }
  1584.  
  1585. SubRoutine(ReadKeyJoy)
  1586. {
  1587.         Direction(_clr,_DIRairemoveflags);
  1588.         Direction(_clr,_DIRdepossesion);
  1589.         Direction(_clr,_DIRcrouch);
  1590.  
  1591.         if(VAnalog2<-0.7||VAnalog2>0.7||VAnalog3>0.7||VAnalog3<-0.7)
  1592.         {
  1593.             Direction(_clr,_DIRwalking);
  1594. //Running (The 0.6 and 0.7 barriers are selected to ease diagonal movement. Do not set to the same value!)
  1595.             if(VAnalog2<=-0.6)            //Threshold here must be higher than when walking
  1596.             {
  1597.                 Direction(_set,_DIRbackward);
  1598.             }
  1599.             elseif(VAnalog2>=0.6)
  1600.             {
  1601.                 Direction(_set,_DIRforward);
  1602.             }
  1603.             if(VAnalog3<=-0.6)
  1604.             {
  1605.                 Direction(_set,_DIRsideleft);
  1606.             }
  1607.             elseif(VAnalog3>=0.6)
  1608.             {
  1609.                 Direction(_set,_DIRsideright);
  1610.             }
  1611.         }
  1612.         elseif(VAnalog2<-0.3||VAnalog2>0.3||VAnalog3>0.3||VAnalog3<-0.3)    //This comparison must be here for easing diagonal walking.
  1613.         {
  1614. //walking
  1615.             Direction(_set,_DIRwalking);
  1616.             if(VAnalog2<=-0.20)
  1617.             {
  1618.                 Direction(_set,_DIRbackward);
  1619.             }
  1620.             elseif(VAnalog2>=0.20)
  1621.             {
  1622.                 Direction(_set,_DIRforward);
  1623.             }
  1624.             if(VAnalog3<=-0.20)
  1625.             {
  1626.                 Direction(_set,_DIRsideleft);
  1627.             }
  1628.             elseif(VAnalog3>=0.20)
  1629.             {
  1630.                 Direction(_set,_DIRsideright);
  1631.             }
  1632.         }
  1633.  
  1634.         if(VAnalog1>0)
  1635.         {
  1636.             Direction(_set,_DIRright)
  1637.         }
  1638.         elseif(VAnalog1<0)
  1639.         {
  1640.             Direction(_set,_DIRleft)
  1641.         }
  1642.  
  1643.         if(VInput==_SXIbutton1)
  1644.         {
  1645.             Direction(_set,_DIRjump);
  1646.         }
  1647.         if(VInput==_SXIbutton2)
  1648.         {
  1649.  
  1650.             Direction(_set,_DIRaction);
  1651.  
  1652.         }
  1653.  
  1654.         if(VInput==_SXIbutton6)
  1655.         {
  1656.             Direction(_set,_DIRdepossesion)
  1657.         }
  1658.         if(VInput==_SXIbutton7)
  1659.         {
  1660.             Direction(_set,_DIRcrouch);
  1661.         }
  1662.  
  1663.         if(VInput==_SXIbutton8 && VOInput!=_SXIbutton8)
  1664.         {
  1665.             if(SniperMode==0)
  1666.             {
  1667.                 call(ChangeSniperMode,1,0);
  1668.             }
  1669.             else
  1670.             {
  1671.                 call(ChangeSniperMode,1,1);
  1672.             }
  1673.         }
  1674.         if(VInput==_SXIbutton9 && VOInput!=_SXIbutton9)
  1675.         {
  1676.             if(SniperMode==0)
  1677.             {
  1678.                 call(ChangeSniperMode,-1,0);
  1679.             }
  1680.             else
  1681.             {
  1682.                 call(ChangeSniperMode,-1,1);
  1683.             }
  1684.         }
  1685.  
  1686.         if(VInput==_SXIbutton10 && VOInput==_SXIbutton10)
  1687.         {
  1688.             if(VFreeLook==0)
  1689.             {
  1690.                 call(FreeLook,TRUE);
  1691.             }
  1692.         }
  1693.         elseif(VFreeLook!=0)
  1694.         {
  1695.             call(FreeLook,FALSE);
  1696.         }
  1697.  
  1698.         if(VInput==_SXIbutton11)
  1699.         {
  1700.             call(DisplayObjectives);
  1701.         }
  1702.  
  1703.         if(VInput==_SXIbutton12 && VOInput!=_SXIbutton12)
  1704.         {
  1705.             call(ChangeSniperMode,-2,0);                        //zoom all the way out of snipermode
  1706.         }
  1707.  
  1708.         if(VInput==_SXIbutton3)
  1709.         {
  1710.             Direction(_set,_DIRshoot);
  1711.         }
  1712.         if(VInput==_SXIbutton4)
  1713.         {
  1714.             Direction(_set,_DIRgrenade);
  1715.         }
  1716. /*
  1717.         if(VInput==_SXIbutton5)
  1718.         {
  1719.             Direction(_set,_DIRlaser);
  1720.         }
  1721. */
  1722.         if(VTrigger|=_DIRMoveBits)
  1723.         {
  1724.             Direction(_set,_DIRMove);
  1725.         }
  1726.         else
  1727.         {
  1728.             Direction(_set,_noDIR);
  1729.         }
  1730.  
  1731. }
  1732.  
  1733.  
  1734. #include    "messiahscripts\particles\FlicHeaders.hxx"
  1735. #include    "messiahscripts\particles\ParticleSubs.hxx"
  1736. #include    "messiahscripts\particles\particle.hxx"
  1737.  
  1738. #include    "messiahscripts\enemies\EnemyHeaders.hxx"
  1739. #include    "messiahscripts\weapons\BulletHeaders.hxx"
  1740. #include    "messiahscripts\weapons\WeaponHeaders.hxx"
  1741.  
  1742. #include    "messiahscripts\sound\soundcode.hxx"
  1743.  
  1744. #include    "messiahscripts\enemies\SharedFXCode.hxx"
  1745.  
  1746. #include    "messiahscripts\weapons\BulletWeaponActions.hxx"
  1747. #include    "messiahscripts\weapons\Bullets.hxx"
  1748. #include    "messiahscripts\weapons\Weapons.hxx"
  1749.  
  1750. #include    "messiahscripts\enemies\SharedAnimCode.hxx"
  1751.  
  1752. #include    "messiahscripts\enemies\GenActions.hxx"
  1753.  
  1754. #include    "messiahscripts\bobactions.hxx"
  1755. #include    "messiahscripts\enemies\copactions.hxx"        //Action for Cops and Various Character
  1756. #include    "messiahscripts\enemies\chot1.hxx"            //Specific Actions For Chots
  1757. #include    "messiahscripts\enemies\femactions.hxx"
  1758. //#include    "messiahscripts\enemies\SubGirlActions.hxx"    //obsolete
  1759. //#include    "messiahscripts\enemies\domactions.hxx"        //obsolete
  1760. #include    "messiahscripts\enemies\abeastactions.hxx"
  1761. #include    "messiahscripts\enemies\beastactions.hxx"
  1762. #include    "messiahscripts\enemies\satanactions.hxx"
  1763.  
  1764. #include    "messiahscripts\enemies\shared.hxx"            //shared subroutines
  1765. #include    "messiahscripts\enemies\sharedMove.hxx"        //more shared subroutines
  1766. #include    "messiahscripts\enemies\SharedAIMove.hxx"    //shared subroutines for AI control
  1767.  
  1768. #include    "messiahscripts\enemies\sharedPain.hxx"        //more shared subroutines
  1769.  
  1770. #include    "messiahscripts\bob5.hxx"
  1771.  
  1772. #include    "messiahscripts\StagesEnemies.hxx"
  1773.