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

  1. #
  2. # cc_controlMirror.cog
  3. #
  4. # Crystal Information Center Center 3 Position Mirror script
  5. #
  6. # Desc:
  7. #     Bonehead. It rotates the mirror to one of three positions. 
  8. #    okay, it's not as bonehead as I thought it was. It's a little more complex. But pretty much it
  9. #     rotates the mirror into 3 different positions. 
  10. # 03/27/98 DGS Created. 
  11. #
  12. # (C) 1998 Lucas Learning Limited All Rights Reserved
  13. # ========================================================================================
  14. symbols
  15.  
  16. message            activated
  17. Message            arrived
  18. message            startup
  19. message            timer
  20. message            pulse
  21.  
  22. thing            Mirror_o
  23.  
  24. cog                laser_c
  25.  
  26. surface            North_s
  27. surface            East_s
  28. surface            South_s
  29.  
  30. sound        rot_snd=ELV00LftLp01.WAV        local
  31. sound        compute_snd=CMP04Calc.WAV        local
  32. sound        act_snd=SWT00DrSwtch.WAV   local
  33. int                playit=0        local
  34. int                position_i=0    local
  35. int                moving=0        local
  36. flex            m_speed=0.2        local
  37. int                selection=0        local
  38. end
  39. code
  40. startup:
  41.     global8 = -45;        // Setz it up 
  42.     position_i = north_s;        // This line sets up the variable so that it's ready for it's default position (north).
  43.     setwallcel(north_s,1);    // This marks the switch as being on. 
  44.     return;
  45.  
  46. activated:
  47.     selection = getsenderref();        //sets "selection" to what button was pressed. 
  48.     garbage = playsoundpos(act_snd,getsurfacecenter(selection),0.5,-1,-1,0);
  49.     
  50.     call rotate_mirror;        
  51.     return;
  52.     
  53. rotate_mirror:    
  54.     // called from activated and from timer. Rotates the mirror.
  55.     if (position_i != selection)    // If the current mirror position does not match the button that was pressed
  56.         {
  57.         if (global9 == 1)        //if the laser's turned on
  58.             {
  59.             sendmessage(laser_c,user0);    // Tell the laser cog to turn off
  60.             settimer(2);     // Wait two seconds then try this again.
  61.             setwallcel(selection,2);    // Meanwhile set the controls to blank. 
  62.             }
  63.         else if (moving != 1)     //else the laser is off. If the mirror's not moving. 
  64.             {
  65.             setwallcel(position_i,0);    // Turn off the currently "on" button
  66.             
  67.             if (selection == north_s)         //=============North Specific Stuf
  68.                 {
  69.                 movetoframe(mirror_o,0,m_speed);            
  70.                 global8 = -45;
  71.                 }
  72.             if (selection == east_s)      //=============East Specific Stuf
  73.                 {
  74.                 movetoframe(mirror_o,1,m_speed);      
  75.                 global8 = 0;
  76.                 }
  77.             if (selection == south_s)   //=============South Specific Stuf
  78.                 {
  79.                 movetoframe(mirror_o,2,m_speed);            
  80.                 global8 = 45;
  81.                 }
  82.             sounder = playsoundthing(rot_snd,mirror_o,1.0,-1,-1,1);
  83.             if (playit == 0)
  84.                 {
  85.                 dwPlayCammySpeech(16022, "M4ca020.wav", 10, 0);        //I can hear the mirrror turning up there.
  86.                 playit = 1;
  87.                 }
  88.             position_i = selection;         // Let the new position match the button that was pressed
  89.             moving = 1;                      // tells the script that it's moving
  90.             setwallcel(position_i,2);      // Turn on the switch that pressed. 
  91.             setpulse(0.25);                 // Turn on the pulse to flash the button. 
  92.             }
  93.         }
  94.     return;
  95.  
  96. pulse:
  97.     // Handles  flashing the controls
  98.     setwallcel(position_i,2 - getwallcel(position_i));        // This line toggles the button between frame 0 and 2. 
  99.     return;
  100.  
  101. timer:
  102.     // This routine is called after (supposedly) the laser is turned off, and it calls  rotate_mirror again. 
  103.     call rotate_mirror;
  104.     return;
  105.  
  106. arrived:
  107.         if (sounder >-1) {stopsound(sounder,0.2); sounder = -1;}
  108.         garbage = playsoundpos(act_snd,getsurfacecenter(selection),0.5,-1,-1,0);
  109.         // Handles turning on and off lights and stuff
  110.         setpulse(0);  // Turn off the flashing controls. 
  111.         setwallcel(position_i,1);    // Set the switch to a green lite
  112.         moving = 0;       // Set moving to 0 so that rotate_mirror can accept messages. 
  113.         return;    
  114.  
  115. end
  116.  
  117.  
  118.