X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/micropolis/blobdiff_plain/146463c17e9cb49c591aad99a9c2eb857fc064b3..38b72baaf977880d0d0caf230c81e242ded5aad6:/res/micropolis.tcl diff --git a/res/micropolis.tcl b/res/micropolis.tcl index e84b3dc..dbf4312 100644 --- a/res/micropolis.tcl +++ b/res/micropolis.tcl @@ -174,8 +174,10 @@ set NoticePanelHeight 250 set SplashPanelWidth 1200 set SplashPanelHeight 900 -set ScenarioPanelWidth 420 -set ScenarioPanelHeight 440 +#set ScenarioPanelWidth 420 +#set ScenarioPanelHeight 440 +set ScenarioPanelWidth 1200 +set ScenarioPanelHeight 900 set SugarURI "" set SugarNickName "" @@ -204,7 +206,7 @@ set SubWindows { # 0 1 2 3 4 5 6 7 8 9 10 11 12 13 # type id callback param var x y w h normal over disabled checked checkedover # ----------- --------------- --------------- ------- ------- --- --- --- --- ------- ---- -------- ------- ----------- -set ScenarioButtons { +set ScenarioButtons1200x900 { { button load DoLoad "" "" 70 238 157 90 "" @images/button1hilite.xpm "" } { button generate DoGenerate "" "" 62 392 157 90 "" @images/button2hilite.xpm "" } { button quit DoQuit "" "" 68 544 157 90 "" @images/button3hilite.xpm "" } @@ -225,6 +227,17 @@ set ScenarioButtons { { button scenario8 DoPickScenario "6" "" 937 638 209 188 "" @images/scenario8hilite.xpm "" } } +set ScenarioButtons $ScenarioButtons1200x900 +set ScenarioBackground "@images/background-micropolis.xpm" + +set screenwidth [winfo screenwidth .] +set screenheight [winfo screenheight .] + +if {($screenwidth < $ScenarioPanelWidth) || + ($screenheight < $ScenarioPanelHeight)} { + puts stderr "WARNING: Screen too small for scenario window, no matching images available.\n" +} + # Disabled until we handle mouse events on the map itself. # { button map DoMap "" "" 516 30 396 338 "" @images/maphilite.xpm } @@ -416,6 +429,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 +955,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 +971,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 +984,6 @@ proc UIStartSound {chan sound {opts ""}} { } -proc UIStopSound {chan sound {opts ""}} { - UIDoSound "sound stop $sound" -} - - proc SetupSoundServer {win} { AddSoundServer $win } @@ -2537,7 +2531,7 @@ proc EditorToolUp {w x y} { case [$w ToolState] in \ 7 { # bulldozer - UIStopSoundOn $w edit 1 + stopdozer } \ 10 { # chalk StopChalk $w @@ -3310,12 +3304,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 +5242,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}" }