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 ""
# 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 "" }
{ 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 }
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
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
}
}
-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
}
}
-proc UIStopSound {chan sound {opts ""}} {
- UIDoSound "sound stop $sound"
-}
-
-
proc SetupSoundServer {win} {
AddSoundServer $win
}
case [$w ToolState] in \
7 { # bulldozer
- UIStopSoundOn $w edit 1
+ stopdozer
} \
10 { # chalk
StopChalk $w
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} {
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}"
}