home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CyberMycha 2006 April
/
SGP.iso
/
dema
/
Keepsake-Demo-en-li-v1.0.exe
/
res
/
bin
/
common
/
interface.tcl
< prev
next >
Wrap
Text File
|
2005-10-29
|
7KB
|
310 lines
set ::menuHardFadeout 0
proc wizConvAdd { camera choice { event "" } } {
if { $event == "" } {
set event $choice
set choice $camera
set camera "general"
}
ozIConv add $camera $choice $event
hMainUpdate
}
proc wizConvRemove { camera { choice "" } } {
ozIConv remove $camera $choice
}
proc wizConvFadein { } {
if { ![ozIConv isVisible] } {
ozIConv fadein [FADETIME]
delay [FADETIME]
}
}
proc wizConvFadeout { } {
if { [ozIConv isVisible] } {
ozIConv fadeout [FADETIME]
delay [FADETIME]
}
}
proc wizConvTextFadein { } {
if { ![ozIConv isTextVisible] } {
ozIConv textfadein [FADETIME]
delay [FADETIME]
}
}
proc wizConvTextFadeout { } {
if { [ozIConv isTextVisible] } {
ozIConv textfadeout [FADETIME]
delay [FADETIME]
}
}
proc wizMenuFadein {{hard 0}} {
if $::menuHardFadeout {
if !$hard return
set ::menuHardFadeout 0
}
if { ![ozIMenu isVisible] } {
ozIMenu fadein [FADETIME]
delay [FADETIME]
}
}
proc wizMenuFadeout { {hard "0"} } {
if !$::menuHardFadeout {
set ::menuHardFadeout $hard
}
if { [ozIMenu isVisible] } {
ozIMenu fadeout [FADETIME]
delay [FADETIME]
}
}
proc wizTalkFadein { } {
if { ![ozITalk isVisible] } {
ozITalk fadein [FADETIME]
delay [FADETIME]
}
}
proc wizTalkFadeout { } {
if { [ozITalk isVisible] } {
ozITalk fadeout [FADETIME]
delay [FADETIME]
}
}
proc wizTalkTextFadein { } {
if { ![ozITalk isTextVisible] } {
ozITalk textfadein [FADETIME]
delay [FADETIME]
}
}
proc wizTalkTextFadeout { } {
if { [ozITalk isTextVisible] } {
ozITalk textfadeout [FADETIME]
delay [FADETIME]
}
}
proc wizTalkFaceFadein { } {
if { ![ozITalk isFaceVisible] } {
ozITalk facefadein [FADETIME]
delay [FADETIME]
}
}
proc wizTalkFaceFadeout { } {
if { [ozITalk isFaceVisible] } {
ozITalk facefadeout [FADETIME]
delay [FADETIME]
}
}
proc wizTalkSay { who dialog } {
ozITalk say $who $dialog
}
proc wizqTalkOpen { } {
oz'event {oz'delay 0.001}
chainEvent {
if { [ozIConv isVisible] } {
wizConvTextFadeout
wizConvFadeout
wizMenuFadeout
wizTalkFadein
hConvClose
} else {
wizMenuFadeout
wizTalkFadein
}
delay 500
}
chainEvent {
set ::talkQueue [lreplace $::talkQueue 0 0]
}
chainEvent {
if { [ozGet "interface.backevent"] != "" } {
iactive interface.back true
ozIMenu enable back
} else {
iactive interface.sidebar true
ozIMenu enable menu
}
}
append ::talkQueue "open "
}
proc wizqTalkClose {{nobutton 0}} {
oz'event {oz'delay 0.001}
oz'event {
if $nobutton {
iactive interface.menu false
ozIMenu disable menu
} else {
iactive interface.help true
ozIMenu enable help
}
wizTalkFadeout
wizMenuFadein
}
chainEvent {
set ::talkQueue [lreplace $::talkQueue 0 0]
}
append ::talkQueue "close "
}
proc wizqTalkSay { who text voice { flag "" } } {
oz'event {oz'delay 0.001}
set audio [new oz'sound $voice]
oz'sound::property $audio -volume $::config::voice::volume
oz'sound::auto_delete $audio 0
oz'sound::position_follow $audio $who
oz'sound::reference_distance $audio 30
oz'sound::rolloff $audio 0.15
eval [subst {
if {"$flag" == "fastin" || "$flag" == "fastboth"} {
chainEvent {
wizTalkSay "$who" "$text"
ozITalk textfadein 100
ozITalk facefadein 100
delay 100
}
} else {
chainEvent {
wizTalkSay "$who" "$text"
wizTalkTextFadein
wizTalkFaceFadein
delay 500
}
}
chainEvent {
set ::itfTalk 1
set d [oz'sound::duration $audio]
if { \$d == 0 } {
set d [expr [string length "$text"] * [TEXTDELAY]]
}
set ::playing_voice $audio
oz'sound::play $audio
oz'delay \$d
}
if { "$flag" == "fastout" || "$flag" == "fastboth" } {
chainEvent {
set ::itfTalk 0
set ::talkQueue \[lreplace \$::talkQueue 0 0]
oz'sound::stop $audio
delete $audio
ozITalk textfadeout 1
if { \[lindex \$::talkQueue 0] != "$who" } {
ozITalk facefadeout 100
}
delay 100
}
} else {
chainEvent {
set ::itfTalk 0
set ::talkQueue \[lreplace \$::talkQueue 0 0]
oz'sound::stop $audio
delete $audio
if { "$flag" == "nofadeout" } {
eventState break
}
wizTalkTextFadeout
if { \[lindex \$::talkQueue 0] != "$who" } {
wizTalkFaceFadeout
}
delay 500
}
}
}]
append ::talkQueue "$who "
}
proc wizqConvOpen {{clue 0}} {
if !$clue {
chainEvent {
iactive interface.sidebar false
ozIMenu disable menu
iactive interface.back false
ozIMenu disable back
hConvUpdate
}
}
chainEvent {
if { [ozITalk isVisible] } {
wizTalkFadeout
wizTalkTextFadeout
wizTalkFaceFadeout
wizConvFadein
wizMenuFadein
set ::talkQueue [lreplace $::talkQueue 0 0]
set ::talkQueue [lreplace $::talkQueue 0 0]
} else {
wizConvFadein
}
}
chainEvent {
wizConvTextFadein
}
if !$clue {
oz'event {
iactive interface.talk true
ozIMenu enable talk
}
}
}
proc wizqConvClose { {clue 0}} {
if { [ozIConv isVisible] } {
oz'event {
if { [ozGet "interface.backevent"] != "" } {
iactive interface.back true
ozIMenu enable back
}
if !$clue {
iactive interface.sidebar true
ozIMenu enable menu
}
}
}
chainEvent {
wizConvTextFadeout
}
chainEvent {
wizConvFadeout
hConvClose
}
}
proc wizqConvAdd { camera choice { event "" } } {
eval [subst { chainEvent { wizConvAdd "$camera" "$choice" "$event" } }]
}
proc wizqConvRemove { camera { choice "" } } {
eval [subst { chainEvent { wizConvRemove "$camera" "$choice" } }]
}