home *** CD-ROM | disk | FTP | other *** search
/ Classic Fond 52 / ClassicFond52.iso / GAMES / DROIDW.RAR / DWCD.GOB / mission_cog_d0_tread1i.cog < prev    next >
Encoding:
Text File  |  1998-11-04  |  7.8 KB  |  251 lines

  1. #standard type crate generation cog.
  2. symbols
  3. message             user0
  4. message             user1
  5. message             user2
  6. message             user3
  7. messsge             user4
  8. message             startup
  9. message             timer
  10. message             arrived
  11. message             crossed
  12. message             entered
  13.  
  14. thing               cargoghost0         linkid=3
  15. thing               magnettram          linkid=4
  16. thing               magnettram2         linkid=5
  17. thing               beam1mid
  18. thing               beam2mid
  19.  
  20.  
  21. template            tCrate0        
  22. template            tCrate1  
  23.  
  24. cog                 mastercog
  25. cog                 beamcog
  26. cog                 beamcog2
  27.  
  28. int                 beamnum             local
  29. int                 beamnum2            local
  30. int                 crateyes=0          local
  31. int                 newcrate            local
  32.  
  33.  
  34. sector              destructionsector   nolink
  35. sector              ds2                 nolink
  36. sector              ds3                 nolink
  37. sector              ds4                 nolink
  38.  
  39. surface             tram1block1         nolink
  40. surface             tram1block2         nolink
  41. surface             tram1block3         nolink
  42. surface             tram1block4         nolink
  43. surface             tram2block1         nolink
  44. surface             tram2block2         nolink
  45. surface             tram2block3         nolink
  46. surface             tram2block4         nolink
  47.  
  48. surface             triggeradjoin       mask=0x484     linkid=0
  49. surface             triggeradjoin2      mask=0x484     linkid=1
  50.  
  51. vector              cratepos            local
  52. vector              trampos             local
  53.  
  54. flex                cratemod            local
  55. sound               playerattsound=nrg00mgntattch.wav
  56. sound               crateattsound=crat1drpcrt.wav
  57. end
  58.  
  59. ## Code Section
  60. code                  
  61. startup:
  62.      movetoframe(magnettram, 3, 15);
  63.      movetoframe(magnettram2, 3, 15);
  64.      sendmessage(beamcog, user1);
  65.      sendmessage(beamcog2, user1);
  66.      crateyes=0;
  67.      player=getlocalplayerthing();
  68.      return;
  69.  
  70. user0:
  71.      if (crateyes==0) {
  72.           crateyes=1;
  73.           cratetype=tcrate0;
  74.           newcrate=CreateThing(cratetype, cargoghost0);
  75.           CaptureThing(newcrate);
  76.           settimer(2);
  77.      }
  78.      else return;
  79.      return;
  80.  
  81.  
  82.      //check if crate is in one of the destruction sectors
  83. timer:
  84.      cursector=getThingSector(newcrate);
  85.      if ((cursector==destructionsector)||(cursector==ds2)||(cursector==ds3)||(cursector==ds4)) {    
  86.           destroything(newcrate);
  87.           settimer(0);
  88.           crateyes=0;
  89.      }
  90.      else {
  91.           settimer(2);          
  92.      }
  93.      return;
  94.      
  95. crossed:
  96.      print("tread I adjoin crossed");
  97.      if (getsenderid()==0) {
  98.           hangoffset=('0,0,0');
  99.           achthing=getsourceref();
  100.           call movetram;
  101.      }
  102.      else if (getsenderid()==1) {
  103.           hangoffset2=('0,0,0');
  104.           achthing2=getsourceref();
  105.           call movetram2;
  106.      }     
  107.      return;
  108.  
  109. user2:
  110. setajnflgs1:
  111.      setadjoinflags(tram1block1, 2);
  112.      setadjoinflags(tram1block2, 2);
  113.      setadjoinflags(tram1block3, 2);
  114.      setadjoinflags(tram1block4, 2);
  115.      return;
  116.      
  117. user4:
  118. setajnflgs2:
  119.      setadjoinflags(tram2block1, 2);
  120.      setadjoinflags(tram2block2, 2);
  121.      setadjoinflags(tram2block3, 2);
  122.      setadjoinflags(tram2block4, 2);
  123.      return;
  124.  
  125. user1:     
  126. clrajnflgs1:
  127.      clearadjoinflags(tram1block1, 2);
  128.      clearadjoinflags(tram1block2, 2);
  129.      clearadjoinflags(tram1block3, 2);
  130.      clearadjoinflags(tram1block4, 2);
  131.      return;
  132.      
  133. user3:
  134. clrajnflgs2:
  135.      clearadjoinflags(tram2block1, 2);
  136.      clearadjoinflags(tram2block2, 2);
  137.      clearadjoinflags(tram2block3, 2);
  138.      clearadjoinflags(tram2block4, 2);
  139.      return;
  140.  
  141.  
  142. movetram:
  143.      //tell master cog to turn off sectorthrust
  144.      sendmessage(mastercog, user0);
  145.      if (achthing==player) {
  146.           playsoundthing(playerattsound, achthing, 1.0, -1, -1, 0);
  147.           dwdisablejump();
  148.      }
  149.      else playsoundthing(crateattsound, achthing, 1.0, -1, -1, 0);
  150.      call setajnflgs1;
  151.      totalradius = GetThingRadius(achthing) + GetThingRadius(magnettram);
  152.     VectorSet(hangoffset, 0, 0, -totalradius);
  153. //    hangoffset = VectorAdd(hangoffset, GetThingInsertOffset(magnettram));
  154.     hangoffset = VectorSub(hangoffset, GetThingInsertOffset(achthing));
  155.     SetThingPos(achthing, VectorAdd(GetThingPos(magnettram), hangoffset));
  156.     AttachThingToThingEx(achthing, magnettram, 8);
  157.      movetoframe(magnettram, 1, 15);
  158.      return;
  159.  
  160. movetram2:
  161.      //tell master cog to turn off sectorthrust
  162.      print("clearing 2");
  163.      sendmessage(mastercog, user2);     
  164.      if (achthing==player) {  
  165.           playsoundthing(playerattsound, achthing, 1.0, -1, -1, 0);
  166.           dwdisablejump();
  167.      }
  168.      else playsoundthing(crateattsound, achthing, 1.0, -1, -1, 0);     
  169.      call setajnflgs2;
  170.      totalradius = GetThingRadius(achthing2) + GetThingRadius(magnettram2);
  171.     VectorSet(hangoffset, 0, 0, -totalradius);
  172. //    hangoffset = VectorAdd(hangoffset, GetThingInsertOffset(magnettram));
  173.     hangoffset2 = VectorSub(hangoffset2, GetThingInsertOffset(achthing2));
  174.     SetThingPos(achthing2, VectorAdd(GetThingPos(magnettram2), hangoffset2));
  175.     AttachThingToThingEx(achthing2, magnettram2, 8);
  176.      movetoframe(magnettram2, 1, 15);
  177.      return;
  178.      
  179.      
  180. arrived:
  181.      if (getsenderid()==4) {
  182.      //when the tram has arrived, drop the achthing and reset to stop 0
  183.           if ((getcurframe(magnettram))==2) {
  184.                movetoframe(magnettram,3,15);
  185.                detachthing(achthing);
  186.                if (achthing==player) dwenablejump();
  187.                setthingvel(achthing, '0,0,0.5');
  188.           }
  189.           else if ((getcurframe(magnettram))==1) {
  190.                removelaser(beamnum);
  191. //               sendmessage(beamcog, user0);
  192.                movetoframe(magnettram, 2, 15);
  193.           }     
  194.           else if ((getcurframe(magnettram))==3) {
  195.                beamnum=(addbeam(beam1mid, magnettram, 147, .02));
  196. //               sendmessage(beamcog, user1);
  197.                skiptoframe(magnettram,0, 15);
  198.           }
  199.           else if ((getcurframe(magnettram))==0) {
  200.           //tell mastercog to turn on sectorthrust
  201.                sendmessage(mastercog, user1);
  202.                call clrajnflgs1;
  203. //               clearadjoinflags(tram1block1, 2);
  204. //               clearadjoinflags(tram1block2, 2);
  205. //               clearadjoinflags(tram1block3, 2);
  206. //               clearadjoinflags(tram1block4, 2);                
  207.           }   
  208.      }
  209.      else if (getsenderid()==5) {
  210.           if ((getcurframe(magnettram2))==2) {
  211.                movetoframe(magnettram2,3,15);
  212.                if (achthing2==player) dwenablejump();
  213.                detachthing(achthing2);
  214.                setthingvel(achthing2, '0,0,0.5');
  215.           }
  216.           else if ((getcurframe(magnettram2))==1) {
  217.                removelaser(beamnum2);
  218.                movetoframe(magnettram2, 2, 15);
  219. //               sendmessage(beamcog2, user0);
  220.           }  
  221.           else if ((getcurframe(magnettram2))==3) {
  222.                skiptoframe(magnettram2,0, 15);
  223. //               sendmessage(beamcog2, user1);
  224.                beamnum2=(addbeam(beam2mid, magnettram2, 147, .02));
  225.           }
  226.           else if ((getcurframe(magnettram2))==0) {
  227.           //tell mastercog to turn on sectorthrust
  228.                sendmessage(mastercog, user3);
  229.                call clrajnflgs2;
  230. //               clearadjoinflags(tram2block1, 2);
  231. //               clearadjoinflags(tram2block2, 2);
  232. //               clearadjoinflags(tram2block3, 2);
  233. //               clearadjoinflags(tram2block4, 2); 
  234.  
  235.           }   
  236.      }
  237.      return;
  238.      
  239.  
  240. end
  241.      
  242.      
  243.      
  244.     
  245.  
  246.      
  247.      
  248.      
  249.      
  250.  
  251.