X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/micropolis/blobdiff_plain/146463c17e9cb49c591aad99a9c2eb857fc064b3..c926d3309ace0ecb51582617fb45c6297f22f886:/res/micropolis.tcl diff --git a/res/micropolis.tcl b/res/micropolis.tcl index e84b3dc..5704330 100644 --- a/res/micropolis.tcl +++ b/res/micropolis.tcl @@ -416,6 +416,10 @@ set FontPath "[pwd]/res/dejavu-lgc" system "xset -fp \"$FontPath\" >/dev/null 2>&1" system "xset +fp \"$FontPath\" >/dev/null 2>&1" +# Ignore SIGCHLD for spawned sound-player childs, this should lead to them +# being reaped by init +signal ignore SIGCHLD + ######################################################################## # Messages @@ -938,21 +942,11 @@ proc UISetChannelVolume {win chan vol} { proc EchoPlaySound {soundspec} { - # Temporary workaround to tell Python Sugar app to play sound. - global Sound - if {$Sound} { - #echo PlaySound [lindex $soundspec 0] - signal ignore SIGCHLD - exec res/sounds/player res/sounds/[string tolower [lindex $soundspec 0]].wav & - } } proc UIMakeSoundOn {win chan sound {opts ""}} { - # Send message to Python to play sound. - EchoPlaySound $sound - - #UIDoSoundOn $win "play $sound -replay -channel $chan $opts" + playsound $chan $sound $opts } @@ -964,16 +958,8 @@ proc UIStartSoundOn {win chan sound {opts ""}} { } -proc UIStopSoundOn {win chan sound {opts ""}} { - UIDoSoundOn $win "stop $sound" -} - - proc UIMakeSound {chan sound {opts ""}} { - # Send message to Python to play sound. - EchoPlaySound $sound - - #UIDoSound "sound play $sound -replay -channel $chan $opts" + playsound $chan $sound $opts } @@ -985,11 +971,6 @@ proc UIStartSound {chan sound {opts ""}} { } -proc UIStopSound {chan sound {opts ""}} { - UIDoSound "sound stop $sound" -} - - proc SetupSoundServer {win} { AddSoundServer $win } @@ -2537,7 +2518,7 @@ proc EditorToolUp {w x y} { case [$w ToolState] in \ 7 { # bulldozer - UIStopSoundOn $w edit 1 + stopdozer } \ 10 { # chalk StopChalk $w @@ -3310,12 +3291,33 @@ proc UpdateScenarioButtonID {win id} { proc UpdateScenarioButton {win data} { + global Messages + set type [lindex $data 0] set id [lindex $data 1] set over [WindowLink $win.$id.over] set enabled [WindowLink $win.$id.enabled] set checked [WindowLink $win.$id.checked] #echo "WIN $win TYPE $type ID $id OVER $over ENABLED $enabled CHECKED $checked" + if {$over} { + if {[lindex ${data} 2] == "DoPickScenario"} { + catch {text $win.desc \ + -borderwidth 2 \ + -relief flat \ + -wrap word \ + -state normal \ + -font [Font $win Large]} + + $win.desc configure -state normal + $win.desc delete 0.0 end + $win.desc insert end "[lindex $Messages([lindex ${data} 3]) 1]\n\n[lindex $Messages([lindex ${data} 3]) 2]" + $win.desc configure -state disabled + + place $win.desc -x 232 -y 170 -width 280 -height 285 + } + } else { + catch {destroy $win.desc} + } if {$enabled} { if {$checked} { if {$over} { @@ -5227,8 +5229,14 @@ proc DoLeaveGame {head} { proc UILoseGame {} { - UIPickScenarioMode + global Messages UIShowPicture 200 + sim Pause + AskQuestion [Color . #ff0000 #ffffff] [lindex $Messages(200) 1] \ + [lindex $Messages(200) 2] \ + ""\ + ""\ + "{Ok} SelectCity.Yes {UIPickScenarioMode}" }