home *** CD-ROM | disk | FTP | other *** search
/ The Games Machine 76 / XENIATGM66.iso / Messiah / data1.cab / Program_Executable_Files / messiahscripts / Enemies / SharedFXCode.hxx < prev    next >
Text File  |  1999-11-29  |  14KB  |  519 lines

  1.  
  2. SubRoutine(Sub_riotshield,const(fx1),const(fx2),const(fx3),const(fx4),const(fx5),const(fx6),float(shstate))
  3. {
  4.     /*
  5.         if(EveryOtherFrame==0)
  6.         {
  7.             vector(_set,tmpvector,52,187,255);
  8.             SpawnLight(Lomnilight2,0,EmptyVector,tmpvector,EmptyVector,600);
  9.         }
  10.     */
  11.  
  12.         vector(_set,fxvector,-16,0,-60);        //offset for quads
  13.         vector(_set,tmpvector1,0,-40,0);        //inital y offset for layer
  14.  
  15. ////////////
  16. ////////////
  17. //////////// THE PLASMA (48 PARTICLES)
  18. ////////////
  19. ////////////
  20.         vector(_set,tmpvector1,0,16,0);            //y offsets for plasma
  21.         vector(_set,tmpvector2,0,-96,0);        //initial y offset for plasma
  22.  
  23.         //outer edges
  24.         vector(_set,gactorpos,20,0,0);
  25.         vector(_add,gactorpos,fxvector);
  26.         vector(_add,gactorpos,tmpvector2);
  27.         float(_cos,tmpfloat1,567);
  28.         float(_sin,tmpfloat2,567);
  29.         float(_mul,tmpfloat1,20);
  30.         float(_mul,tmpfloat2,20);
  31.         vector(_addx,gactorpos,tmpfloat1);
  32.         vector(_addz,gactorpos,tmpfloat2);
  33.         if(shstate<=3)
  34.         {
  35.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx6);
  36.         }
  37.         vector(_add,gactorpos,tmpvector1);
  38.         if(shstate<=6)
  39.         {
  40.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx6);
  41.         }
  42.         vector(_add,gactorpos,tmpvector1);
  43.         if(shstate<=9)
  44.         {
  45.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx6);
  46.         }
  47.         vector(_add,gactorpos,tmpvector1);
  48.         if(shstate<=12)
  49.         {
  50.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx6);
  51.         }
  52.         vector(_add,gactorpos,tmpvector1);
  53.         if(shstate<=12)
  54.         {
  55.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx6);
  56.         }
  57.         vector(_add,gactorpos,tmpvector1);
  58.         if(shstate<=9)
  59.         {
  60.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx6);
  61.         }
  62.         vector(_add,gactorpos,tmpvector1);
  63.         if(shstate<=6)
  64.         {
  65.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx6);
  66.         }
  67.         vector(_add,gactorpos,tmpvector1);
  68.         if(shstate<=3)
  69.         {
  70.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx6);
  71.         }
  72.  
  73.         vector(_set,gactorpos,-20,0,0);
  74.         vector(_add,gactorpos,tmpvector2);
  75.         vector(_add,gactorpos,fxvector);
  76.         vector(_subx,gactorpos,tmpfloat1);
  77.         vector(_addz,gactorpos,tmpfloat2);
  78.         if(shstate<=3)
  79.         {
  80.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx1);
  81.         }
  82.         vector(_add,gactorpos,tmpvector1);
  83.         if(shstate<=6)
  84.         {
  85.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx1);
  86.         }
  87.         vector(_add,gactorpos,tmpvector1);
  88.         if(shstate<=9)
  89.         {
  90.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx1);
  91.         }
  92.         vector(_add,gactorpos,tmpvector1);
  93.         if(shstate<=12)
  94.         {
  95.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx1);
  96.         }
  97.         vector(_add,gactorpos,tmpvector1);
  98.         if(shstate<=12)
  99.         {
  100.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx1);
  101.         }
  102.         vector(_add,gactorpos,tmpvector1);
  103.         if(shstate<=9)
  104.         {
  105.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx1);
  106.         }
  107.         vector(_add,gactorpos,tmpvector1);
  108.         if(shstate<=6)
  109.         {
  110.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx1);
  111.         }
  112.         vector(_add,gactorpos,tmpvector1);
  113.         if(shstate<=3)
  114.         {
  115.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx1);
  116.         }
  117.  
  118.         //inner edges
  119.         vector(_set,gactorpos,12,0,0);
  120.         vector(_add,gactorpos,fxvector);
  121.         vector(_add,gactorpos,tmpvector2);
  122.         float(_cos,tmpfloat1,405);
  123.         float(_sin,tmpfloat2,405);
  124.         float(_mul,tmpfloat1,12);
  125.         float(_mul,tmpfloat2,12);
  126.         vector(_addx,gactorpos,tmpfloat1);
  127.         vector(_addz,gactorpos,tmpfloat2);
  128.         if(shstate<=3)
  129.         {
  130.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx5);
  131.         }
  132.         vector(_add,gactorpos,tmpvector1);
  133.         if(shstate<=6)
  134.         {
  135.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx5);
  136.         }
  137.         vector(_add,gactorpos,tmpvector1);
  138.         if(shstate<=9)
  139.         {
  140.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx5);
  141.         }
  142.         vector(_add,gactorpos,tmpvector1);
  143.         if(shstate<=15)
  144.         {
  145.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx5);
  146.         }
  147.         vector(_add,gactorpos,tmpvector1);
  148.         if(shstate<=15)
  149.         {
  150.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx5);
  151.         }
  152.         vector(_add,gactorpos,tmpvector1);
  153.         if(shstate<=9)
  154.         {
  155.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx5);
  156.         }
  157.         vector(_add,gactorpos,tmpvector1);
  158.         if(shstate<=6)
  159.         {
  160.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx5);
  161.         }
  162.         vector(_add,gactorpos,tmpvector1);
  163.         if(shstate<=3)
  164.         {
  165.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx5);
  166.         }
  167.  
  168.         vector(_set,gactorpos,-12,0,0);
  169.         vector(_add,gactorpos,tmpvector2);
  170.         vector(_add,gactorpos,fxvector);
  171.         vector(_subx,gactorpos,tmpfloat1);
  172.         vector(_addz,gactorpos,tmpfloat2);
  173.         if(shstate<=3)
  174.         {
  175.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx2);
  176.         }
  177.         vector(_add,gactorpos,tmpvector1);
  178.         if(shstate<=6)
  179.         {
  180.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx2);
  181.         }
  182.         vector(_add,gactorpos,tmpvector1);
  183.         if(shstate<=9)
  184.         {
  185.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx2);
  186.         }
  187.         vector(_add,gactorpos,tmpvector1);
  188.         if(shstate<=15)
  189.         {
  190.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx2);
  191.         }
  192.         vector(_add,gactorpos,tmpvector1);
  193.         if(shstate<=15)
  194.         {
  195.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx2);
  196.         }
  197.         vector(_add,gactorpos,tmpvector1);
  198.         if(shstate<=9)
  199.         {
  200.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx2);
  201.         }
  202.         vector(_add,gactorpos,tmpvector1);
  203.         if(shstate<=6)
  204.         {
  205.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx2);
  206.         }
  207.         vector(_add,gactorpos,tmpvector1);
  208.         if(shstate<=3)
  209.         {
  210.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx2);
  211.         }
  212.  
  213.         //centre
  214.         vector(_set,gactorpos,4,0,0);
  215.         vector(_add,gactorpos,fxvector);
  216.         vector(_add,gactorpos,tmpvector2);
  217.         float(_cos,tmpfloat1,243);
  218.         float(_sin,tmpfloat2,243);
  219.         float(_mul,tmpfloat1,4);
  220.         float(_mul,tmpfloat2,4);
  221.         vector(_addx,gactorpos,tmpfloat1);
  222.         vector(_addz,gactorpos,tmpfloat2);
  223.  
  224.         if(shstate<=3)
  225.         {
  226.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx4);
  227.         }
  228.         vector(_add,gactorpos,tmpvector1);
  229.         if(shstate<=6)
  230.         {
  231.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx4);
  232.         }
  233.         vector(_add,gactorpos,tmpvector1);
  234.         if(shstate<=9)
  235.         {
  236.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx4);
  237.         }
  238.         vector(_add,gactorpos,tmpvector1);
  239.         if(shstate<=18)
  240.         {
  241.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx4);
  242.         }
  243.         vector(_add,gactorpos,tmpvector1);
  244.         if(shstate<=18)
  245.         {
  246.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx4);
  247.         }
  248.         vector(_add,gactorpos,tmpvector1);
  249.         if(shstate<=9)
  250.         {
  251.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx4);
  252.         }
  253.         vector(_add,gactorpos,tmpvector1);
  254.         if(shstate<=6)
  255.         {
  256.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx4);
  257.         }
  258.         vector(_add,gactorpos,tmpvector1);
  259.         if(shstate<=3)
  260.         {
  261.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx4);
  262.         }
  263.  
  264.         vector(_set,gactorpos,-4,0,0);
  265.         vector(_add,gactorpos,tmpvector2);
  266.         vector(_add,gactorpos,fxvector);
  267.         vector(_subx,gactorpos,tmpfloat1);
  268.         vector(_addz,gactorpos,tmpfloat2);
  269.         if(shstate<=3)
  270.         {
  271.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx3);
  272.         }
  273.         vector(_add,gactorpos,tmpvector1);
  274.         if(shstate<=6)
  275.         {
  276.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx3);
  277.         }
  278.         vector(_add,gactorpos,tmpvector1);
  279.         if(shstate<=9)
  280.         {
  281.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx3);
  282.         }
  283.         vector(_add,gactorpos,tmpvector1);
  284.         if(shstate<=18)
  285.         {
  286.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx3);
  287.         }
  288.         vector(_add,gactorpos,tmpvector1);
  289.         if(shstate<=18)
  290.         {
  291.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx3);
  292.         }
  293.         vector(_add,gactorpos,tmpvector1);
  294.         if(shstate<=9)
  295.         {
  296.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx3);
  297.         }
  298.         vector(_add,gactorpos,tmpvector1);
  299.         if(shstate<=6)
  300.         {
  301.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx3);
  302.         }
  303.         vector(_add,gactorpos,tmpvector1);
  304.         if(shstate<=3)
  305.         {
  306.             spawnparticle(fx_riotshield256,0,gactorpos,emptyvector,fx3);
  307.         }
  308. }
  309.  
  310.  
  311.  
  312.  
  313.  
  314. //beast land shockwave
  315. subroutine(Sub_sub_shockwave)
  316. {
  317.         float(_rnd,tmpfloat,4096);
  318.         vector(_vectorfromangle,tmpvector,tmpfloat,16);
  319.         vector(_copy,tmpvector3,tmpvector);
  320.         vector(_normalize,tmpvector);
  321.         vector(_mul,tmpvector,tmpvector2);
  322.         vector(_add,tmpvector3,gactorpos);
  323.         SpawnParticle(fx_shockwave,-1,tmpvector3,tmpvector,fx_heavyland);
  324. }
  325.  
  326. //vertical shockwave
  327. subroutine(Sub_sub_shockwave2)
  328. {
  329.         float(_rnd2,tmpfloat,4096);
  330.         float(_sin,tmpfloat1,tmpfloat);
  331.         float(_cos,tmpfloat2,tmpfloat);
  332.         float(_mul,tmpfloat1,9);
  333.         float(_mul,tmpfloat2,9);
  334.         vector(_set,tmpvector,0,0,0);
  335.         vector(_setx,tmpvector,tmpfloat1);
  336.         vector(_sety,tmpvector,tmpfloat2);
  337.         SpawnParticle(fx_shockwaver,-1,gactorpos,tmpvector,-1);
  338. }
  339.  
  340. //horizontal shockwave
  341. subroutine(Sub_sub_shockwave3)
  342. {
  343.         float(_rnd2,tmpfloat,4096);
  344.         float(_sin,tmpfloat1,tmpfloat);
  345.         float(_cos,tmpfloat2,tmpfloat);
  346.         float(_mul,tmpfloat1,9);
  347.         float(_mul,tmpfloat2,9);
  348.         vector(_set,tmpvector,0,0,0);
  349.         vector(_setx,tmpvector,tmpfloat1);
  350.         vector(_setz,tmpvector,tmpfloat2);
  351.         SpawnParticle(fx_shockwaver,-1,gactorpos,tmpvector,-1);
  352. }
  353.  
  354.  
  355. //not off the bone, becoz we get angles from the matrix we don't care for!
  356. //fxvector must be filled in prior to calling
  357. subroutine(Sub_Shockwave,const(ShockWaveActor),const(plane))
  358. {
  359.         if(ShockWaveActor!=0)
  360.         {
  361.             spawnactorbone(ShockWaveActor,EmptyVector,TmpVector,TmpVector4,22);
  362.  
  363.             //SHOCKWAVE (16 PARTICLE)
  364.             vector(_settoactorpos,gactorpos);
  365.             vector(_add,gactorpos,fxvector);
  366.             vector(_set,tmpvector2,9,9,9);
  367.  
  368.             callsub(Sub_sub_shockwave);
  369.             callsub(Sub_sub_shockwave);
  370.             callsub(Sub_sub_shockwave);
  371.             callsub(Sub_sub_shockwave);
  372.             callsub(Sub_sub_shockwave);
  373.             callsub(Sub_sub_shockwave);
  374.             callsub(Sub_sub_shockwave);
  375.             callsub(Sub_sub_shockwave);
  376.             callsub(Sub_sub_shockwave);
  377.             callsub(Sub_sub_shockwave);
  378.             callsub(Sub_sub_shockwave);
  379.             callsub(Sub_sub_shockwave);
  380.             callsub(Sub_sub_shockwave);
  381.             callsub(Sub_sub_shockwave);
  382.             callsub(Sub_sub_shockwave);
  383.             callsub(Sub_sub_shockwave);
  384.         }
  385.         else
  386.         {
  387.             vector(_settoactorpos,gactorpos);
  388.             vector(_add,gactorpos,fxvector);
  389.  
  390.             if(plane==0)
  391.             {
  392.                 //vertical
  393.                 callsub(Sub_sub_shockwave2);
  394.                 callsub(Sub_sub_shockwave2);
  395.                 callsub(Sub_sub_shockwave2);
  396.                 callsub(Sub_sub_shockwave2);
  397.                 callsub(Sub_sub_shockwave2);
  398.                 callsub(Sub_sub_shockwave2);
  399.                 callsub(Sub_sub_shockwave2);
  400.                 callsub(Sub_sub_shockwave2);
  401.                 callsub(Sub_sub_shockwave2);
  402.                 callsub(Sub_sub_shockwave2);
  403.                 callsub(Sub_sub_shockwave2);
  404.                 callsub(Sub_sub_shockwave2);
  405.                 callsub(Sub_sub_shockwave2);
  406.                 callsub(Sub_sub_shockwave2);
  407.                 callsub(Sub_sub_shockwave2);
  408.                 callsub(Sub_sub_shockwave2);
  409.             }
  410.             else
  411.             {
  412.                 //horiz
  413.                 callsub(Sub_sub_shockwave3);
  414.                 callsub(Sub_sub_shockwave3);
  415.                 callsub(Sub_sub_shockwave3);
  416.                 callsub(Sub_sub_shockwave3);
  417.                 callsub(Sub_sub_shockwave3);
  418.                 callsub(Sub_sub_shockwave3);
  419.                 callsub(Sub_sub_shockwave3);
  420.                 callsub(Sub_sub_shockwave3);
  421.                 callsub(Sub_sub_shockwave3);
  422.                 callsub(Sub_sub_shockwave3);
  423.                 callsub(Sub_sub_shockwave3);
  424.                 callsub(Sub_sub_shockwave3);
  425.                 callsub(Sub_sub_shockwave3);
  426.                 callsub(Sub_sub_shockwave3);
  427.                 callsub(Sub_sub_shockwave3);
  428.                 callsub(Sub_sub_shockwave3);
  429.             }
  430.         }
  431. }
  432.  
  433. SubRoutine(LaserStrip,vector(source),vector(dest),const(color),const(direction))
  434. {
  435.         vector(_copy,tmpvector,dest);
  436.         vector(_sub,tmpvector,source);
  437.  
  438.         if(direction==0)
  439.         {
  440.             spawnparticle(fx_laserstrip,-1,source,tmpvector,color);
  441.         }
  442.         else
  443.         {
  444.             spawnparticle(fx_Vlaserstrip,-1,source,tmpvector,color);
  445.         }
  446. }
  447.  
  448. SubRoutine(ElectricStrip,vector(source),vector(dest),const(color))
  449. {
  450.         vector(_copy,tmpvector1,dest);
  451.  
  452.         vector(_copy,tmpvector,dest);
  453.         vector(_sub,tmpvector,source);
  454.  
  455.         vector(_set,fxvector,8,8,8);
  456.         vector(_div,tmpvector,fxvector);
  457.  
  458.         vector(_copy,tmpvector2,source);
  459.         vector(_sub,tmpvector2,tmpvector);
  460.  
  461.         vector(_add,tmpvector2,tmpvector);
  462.         vector(_copy,tmpvector3,tmpvector2);
  463.         float(_rnd2,tmpfloat,32);
  464.         float(_sub,tmpfloat,16);
  465.         vector(_sety,tmpvector,tmpfloat);
  466.         spawnparticle(fx_ElectricStrip,-1,tmpvector3,tmpvector,color);
  467.  
  468.         vector(_add,tmpvector2,tmpvector);
  469.         vector(_copy,tmpvector3,tmpvector2);
  470.         float(_rnd2,tmpfloat,32);
  471.         float(_sub,tmpfloat,16);
  472.         vector(_sety,tmpvector,tmpfloat);
  473.         spawnparticle(fx_ElectricStrip,-1,tmpvector3,tmpvector,color);
  474.  
  475.         vector(_add,tmpvector2,tmpvector);
  476.         vector(_copy,tmpvector3,tmpvector2);
  477.         float(_rnd2,tmpfloat,32);
  478.         float(_sub,tmpfloat,16);
  479.         vector(_sety,tmpvector,tmpfloat);
  480.         spawnparticle(fx_ElectricStrip,-1,tmpvector3,tmpvector,color);
  481.  
  482.         vector(_add,tmpvector2,tmpvector);
  483.         vector(_copy,tmpvector3,tmpvector2);
  484.         float(_rnd2,tmpfloat,32);
  485.         float(_sub,tmpfloat,16);
  486.         vector(_sety,tmpvector,tmpfloat);
  487.         spawnparticle(fx_ElectricStrip,-1,tmpvector3,tmpvector,color);
  488.  
  489.         vector(_add,tmpvector2,tmpvector);
  490.         vector(_copy,tmpvector3,tmpvector2);
  491.         float(_rnd2,tmpfloat,32);
  492.         float(_sub,tmpfloat,16);
  493.         vector(_sety,tmpvector,tmpfloat);
  494.         spawnparticle(fx_ElectricStrip,-1,tmpvector3,tmpvector,color);
  495.  
  496.         vector(_add,tmpvector2,tmpvector);
  497.         vector(_copy,tmpvector3,tmpvector2);
  498.         float(_rnd2,tmpfloat,32);
  499.         float(_sub,tmpfloat,16);
  500.         vector(_sety,tmpvector,tmpfloat);
  501.         spawnparticle(fx_ElectricStrip,-1,tmpvector3,tmpvector,color);
  502.  
  503.         vector(_add,tmpvector2,tmpvector);
  504.         vector(_copy,tmpvector3,tmpvector2);
  505.         float(_rnd2,tmpfloat,32);
  506.         float(_sub,tmpfloat,16);
  507.         vector(_sety,tmpvector,tmpfloat);
  508.         spawnparticle(fx_ElectricStrip,-1,tmpvector3,tmpvector,color);
  509.  
  510.         vector(_copy,fxvector,tmpvector1);
  511.         vector(_add,tmpvector2,tmpvector);
  512.         vector(_copy,tmpvector3,tmpvector2);
  513.         vector(_sub,fxvector,tmpvector3);
  514.         spawnparticle(fx_ElectricStrip,-1,tmpvector3,fxvector,color);
  515. }
  516.  
  517.  
  518.  
  519.