set DemandInd 0
set Priority 2
set Time 3
+set Pause 0
set AutoGoto 1
set AutoBudget 1
set Disasters 1
# the font in res (because it's already in the system fonts). These lines
# are for other systems that lack the font.
set FontPath "[pwd]/res/dejavu-lgc"
-system "xset -fp $FontPath >/dev/null 2>&1"
-system "xset +fp $FontPath >/dev/null 2>&1"
+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
########################################################################
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
}
wm withdraw $win"
bind $win.files.files "<Double-Button-1>" "\
FileSelectDouble $win %W %y $Pattern \"
- $ActionOk \[$win.file.file get\] \[$win.path.path get\]\""
+ $ActionOk {\[$win.file.file get\]} {\[$win.path.path get\]}\""
bind $win.path.path <Return> "
ShowFileDialog $win \[$win.path.path get\] $Pattern
$win.file.file cursor 0
focus $win.file.file"
bind $win.file.file <Return> "\
- $ActionOk \[$win.file.file get\] \[$win.path.path get]
+ $ActionOk \[$win.file.file get\] \[$win.path.path get\]
wm withdraw $win"
}
proc ShowFileDialog {win Path Pattern} {
busy $win {
- set Path [lindex [split $Path] 0]
+ #set Path [lindex [split $Path] 0]
if {[$win.files.files size] > 0} {
$win.files.files delete 0 end
}
# read directory
- if {[catch "exec ls -F $Path" Result]} {
+ if {[catch "exec ls -F \"$Path\"" Result]} {
set ElementList {}
}
if {[string match $Result "* not found"]} {
set ElementList {}
}
- set ElementList [lsort $Result]
+ set ElementList [lsort [split $Result "\n"]]
# insert ..
if {[string compare $Path "/"]} {
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 TogglePause {} {
- global State
+ global State Pause
if {"$State" != "play" || [sim Speed]} {
sim Speed 0
+ set Pause 1
} else {
sim Speed 3
+ set Pause 0
}
MakeRunningSound
}
if {![string match *.cty $name]} {
set name $name.cty
}
- MakeHistory "DoLoadCity $path/$name"
+ MakeHistory "DoLoadCity {$path/$name}"
}
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}"
}