home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 April / Gamestar_83_2006-04_dvd.iso / Dema / keepsake_demo_en.exe / res / bin / common / interface.tcl < prev    next >
Text File  |  2005-10-29  |  7KB  |  310 lines

  1. set ::menuHardFadeout 0
  2.  
  3. proc wizConvAdd { camera choice { event "" } } {
  4.   if { $event == "" } {
  5.     set event $choice
  6.     set choice $camera
  7.     set camera "general"
  8.   }
  9.  
  10.   ozIConv add $camera $choice $event
  11.   hMainUpdate
  12. }
  13.  
  14. proc wizConvRemove { camera { choice "" } } {
  15.   ozIConv remove $camera $choice
  16. }
  17.  
  18. proc wizConvFadein { } {
  19.   if { ![ozIConv isVisible] } {
  20.     ozIConv fadein [FADETIME]
  21.     delay [FADETIME]
  22.   }
  23. }
  24.  
  25. proc wizConvFadeout { } {
  26.   if { [ozIConv isVisible] } {
  27.     ozIConv fadeout [FADETIME]
  28.     delay [FADETIME]
  29.   }
  30. }
  31.  
  32. proc wizConvTextFadein { } {
  33.   if { ![ozIConv isTextVisible] } {
  34.     ozIConv textfadein [FADETIME]
  35.     delay [FADETIME]
  36.   }
  37. }
  38.  
  39. proc wizConvTextFadeout { } {
  40.   if { [ozIConv isTextVisible] } {
  41.     ozIConv textfadeout [FADETIME]
  42.     delay [FADETIME]
  43.   }
  44. }
  45.  
  46. proc wizMenuFadein {{hard 0}} {
  47.   if $::menuHardFadeout {
  48.       if !$hard return
  49.       set ::menuHardFadeout 0
  50.   }
  51.   
  52.   if { ![ozIMenu isVisible] } {
  53.     ozIMenu fadein [FADETIME]
  54.     delay [FADETIME]
  55.   }
  56. }
  57.  
  58. proc wizMenuFadeout { {hard "0"} } {
  59.   if !$::menuHardFadeout {
  60.       set ::menuHardFadeout $hard
  61.   }
  62.   
  63.   if { [ozIMenu isVisible] } {
  64.     ozIMenu fadeout [FADETIME]
  65.     delay [FADETIME]
  66.   }
  67. }
  68.  
  69. proc wizTalkFadein { } {
  70.   if { ![ozITalk isVisible] } {
  71.     ozITalk fadein [FADETIME]
  72.     delay [FADETIME]
  73.   }
  74. }
  75.  
  76. proc wizTalkFadeout { } {
  77.   if { [ozITalk isVisible] } {
  78.     ozITalk fadeout [FADETIME]
  79.     delay [FADETIME]
  80.   }
  81. }
  82.  
  83. proc wizTalkTextFadein { } {
  84.   if { ![ozITalk isTextVisible] } {
  85.     ozITalk textfadein [FADETIME]
  86.     delay [FADETIME]
  87.   }
  88. }
  89.  
  90. proc wizTalkTextFadeout { } {
  91.   if { [ozITalk isTextVisible] } {
  92.     ozITalk textfadeout [FADETIME]
  93.     delay [FADETIME]
  94.   }
  95. }
  96.  
  97. proc wizTalkFaceFadein { } {
  98.   if { ![ozITalk isFaceVisible] } {
  99.     ozITalk facefadein [FADETIME]
  100.     delay [FADETIME]
  101.   }
  102. }
  103.  
  104. proc wizTalkFaceFadeout { } {
  105.   if { [ozITalk isFaceVisible] } {
  106.     ozITalk facefadeout [FADETIME]
  107.     delay [FADETIME]
  108.   }
  109. }
  110.  
  111. proc wizTalkSay { who dialog } {
  112.     ozITalk say $who $dialog
  113. }
  114.  
  115. proc wizqTalkOpen { } {
  116.   oz'event {oz'delay 0.001}
  117.     chainEvent {
  118.       if { [ozIConv isVisible] } {
  119.         wizConvTextFadeout
  120.         wizConvFadeout
  121.         wizMenuFadeout
  122.         wizTalkFadein
  123.         hConvClose
  124.       } else {
  125.         wizMenuFadeout
  126.         wizTalkFadein
  127.       }
  128.       delay 500
  129.     }
  130.     chainEvent {
  131.       set ::talkQueue [lreplace $::talkQueue 0 0]
  132.     }
  133.     chainEvent {
  134.         if { [ozGet "interface.backevent"] != "" } {
  135.           iactive interface.back true
  136.           ozIMenu enable back
  137.         } else {
  138.           iactive interface.sidebar true
  139.           ozIMenu enable menu
  140.         }
  141.     }  
  142.  
  143.     append ::talkQueue "open "
  144. }
  145.  
  146. proc wizqTalkClose {{nobutton 0}} {
  147.   oz'event {oz'delay 0.001}
  148.     oz'event {
  149.       if $nobutton {
  150.           iactive interface.menu false
  151.           ozIMenu disable menu
  152.       } else {
  153.           iactive interface.help true
  154.           ozIMenu enable help
  155.       }
  156.         
  157.       wizTalkFadeout
  158.       wizMenuFadein
  159.     }
  160.     chainEvent {
  161.       set ::talkQueue [lreplace $::talkQueue 0 0]
  162.     }
  163.   
  164.     append ::talkQueue "close "
  165. }
  166.  
  167. proc wizqTalkSay { who text voice { flag "" } } {
  168.   oz'event {oz'delay 0.001}
  169.   set audio [new oz'sound $voice]
  170.   oz'sound::property $audio -volume $::config::voice::volume
  171.   oz'sound::auto_delete $audio 0
  172.   oz'sound::position_follow $audio $who
  173.   oz'sound::reference_distance $audio 30
  174.   oz'sound::rolloff $audio 0.15
  175.   
  176.   eval [subst {
  177.     if {"$flag" == "fastin" || "$flag" == "fastboth"} {
  178.       chainEvent {
  179.         wizTalkSay "$who" "$text"
  180.         ozITalk textfadein 100
  181.         ozITalk facefadein 100
  182.         delay 100
  183.       }
  184.     } else {
  185.       chainEvent {
  186.         wizTalkSay "$who" "$text"
  187.         wizTalkTextFadein
  188.         wizTalkFaceFadein
  189.         delay 500
  190.       }
  191.     }
  192.     chainEvent {
  193.       set ::itfTalk 1
  194.       set d [oz'sound::duration $audio]
  195.  
  196.       if { \$d == 0 } {
  197.           set d [expr [string length "$text"] * [TEXTDELAY]]
  198.       }
  199.  
  200.       set ::playing_voice $audio
  201.       oz'sound::play $audio
  202.  
  203.       oz'delay \$d
  204.     }
  205.     if { "$flag" == "fastout" || "$flag" == "fastboth" } {
  206.         chainEvent {
  207.           set ::itfTalk 0
  208.           set ::talkQueue \[lreplace \$::talkQueue 0 0]
  209.     
  210.           oz'sound::stop $audio
  211.           delete $audio
  212.             
  213.           ozITalk textfadeout 1
  214.           
  215.           if { \[lindex \$::talkQueue 0] != "$who" } {
  216.             ozITalk facefadeout 100
  217.           }
  218.  
  219.           delay 100
  220.       }
  221.     } else {
  222.         chainEvent {
  223.           set ::itfTalk 0
  224.           set ::talkQueue \[lreplace \$::talkQueue 0 0]
  225.     
  226.           oz'sound::stop $audio
  227.           delete $audio
  228.     
  229.           if { "$flag" == "nofadeout" } {
  230.             eventState break
  231.           }
  232.       
  233.           wizTalkTextFadeout
  234.           if { \[lindex \$::talkQueue 0] != "$who" } {
  235.             wizTalkFaceFadeout
  236.           }
  237.  
  238.           delay 500
  239.         }
  240.       }
  241.     }]
  242.   append ::talkQueue "$who "
  243. }
  244.  
  245. proc wizqConvOpen {{clue 0}} {
  246.   if !$clue {
  247.       chainEvent {
  248.         iactive interface.sidebar false
  249.         ozIMenu disable menu
  250.         iactive interface.back false
  251.         ozIMenu disable back
  252.         hConvUpdate
  253.       }
  254.   }
  255.   chainEvent {
  256.     if { [ozITalk isVisible] } {
  257.       wizTalkFadeout
  258.       wizTalkTextFadeout
  259.       wizTalkFaceFadeout
  260.       wizConvFadein
  261.       wizMenuFadein
  262.  
  263.       set ::talkQueue [lreplace $::talkQueue 0 0]
  264.       set ::talkQueue [lreplace $::talkQueue 0 0]
  265.     } else {
  266.       wizConvFadein
  267.     }
  268.   }
  269.   chainEvent {
  270.       wizConvTextFadein
  271.   }
  272.   if !$clue {
  273.     oz'event {
  274.       iactive interface.talk true
  275.       ozIMenu enable talk
  276.     } 
  277.   }
  278. }
  279.  
  280. proc wizqConvClose { {clue 0}} {
  281.   if { [ozIConv isVisible] } {
  282.       oz'event {
  283.         if { [ozGet "interface.backevent"] != "" } {
  284.           iactive interface.back true
  285.           ozIMenu enable back
  286.         }
  287.         if !$clue {
  288.             iactive interface.sidebar true
  289.             ozIMenu enable menu
  290.         }
  291.       }  
  292.   }
  293.       chainEvent {
  294.         wizConvTextFadeout
  295.       }
  296.       chainEvent {
  297.         wizConvFadeout
  298.         hConvClose
  299.       }
  300. }
  301.  
  302. proc wizqConvAdd { camera choice { event "" } } {
  303.   eval [subst { chainEvent { wizConvAdd "$camera" "$choice" "$event" } }]
  304. }
  305.  
  306. proc wizqConvRemove { camera { choice "" } } {
  307.   eval [subst { chainEvent { wizConvRemove "$camera" "$choice" } }]
  308. }
  309.  
  310.