]> git.zerfleddert.de Git - micropolis/blobdiff - res/micropolis.tcl
src/sim/makefile: Micropolis build fixes for recent macOS
[micropolis] / res / micropolis.tcl
index b05d5ebc2554fe1930f3dfefc3755709e3633b31..8c4c36a8420b021a6bf45746432eddcbb0b3794f 100644 (file)
@@ -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,67 @@ set ScenarioButtons {
   { button     scenario8       DoPickScenario  "6"     ""      937 638 209 188         ""      @images/scenario8hilite.xpm "" }
 }
 
+set ScenarioButtons600x450 {
+  { button     load            DoLoad          ""      ""       35 119  79  45         ""      @images/button1hilite-small.xpm "" }
+  { button     generate        DoGenerate      ""      ""       31 196  79  45         ""      @images/button2hilite-small.xpm "" }
+  { button     quit            DoQuit          ""      ""       34 272  79  45         ""      @images/button3hilite-small.xpm "" }
+  { button     about           DoAbout         ""      ""       51 353  79  45         ""      @images/button4hilite-small.xpm "" }
+  { checkbox   easy            DoLevel         0       ""      491  53  95  35         ""      @images/checkbox1hilite-small.xpm "" @images/checkbox1checked-small.xpm @images/checkbox1hilitechecked-small.xpm }
+  { checkbox   medium          DoLevel         1       ""      491  88  95  35         ""      @images/checkbox2hilite-small.xpm "" @images/checkbox2checked-small.xpm @images/checkbox2hilitechecked-small.xpm }
+  { checkbox   hard            DoLevel         2       ""      491 123  95  35         ""      @images/checkbox3hilite-small.xpm "" @images/checkbox3checked-small.xpm @images/checkbox3hilitechecked-small.xpm }
+  { button     left            DoLeft          ""      ""      270 187  25  25         ""      @images/lefthilite-small.xpm @images/leftdisabled-small.xpm }
+  { button     right           DoRight         ""      ""      420 187  25  25         ""      @images/righthilite-small.xpm @images/rightdisabled-small.xpm }
+  { button     play            DoPlay          ""      ""      312 188  90  25         ""      @images/playhilite-small.xpm "" }
+  { button     scenario1       DoPickScenario  "1"     ""      155 225 105  94         ""      @images/scenario1hilite-small.xpm "" }
+  { button     scenario2       DoPickScenario  "2"     ""      259 225 105  94         ""      @images/scenario2hilite-small.xpm "" }
+  { button     scenario3       DoPickScenario  "3"     ""      363 225 105  94         ""      @images/scenario3hilite-small.xpm "" }
+  { button     scenario4       DoPickScenario  "4"     ""      468 225 105  94         ""      @images/scenario4hilite-small.xpm "" }
+  { button     scenario5       DoPickScenario  "5"     ""      155 319 105  94         ""      @images/scenario5hilite-small.xpm "" }
+  { button     scenario6       DoPickScenario  "8"     ""      259 319 105  94         ""      @images/scenario6hilite-small.xpm "" }
+  { button     scenario7       DoPickScenario  "7"     ""      363 319 105  94         ""      @images/scenario7hilite-small.xpm "" }
+  { button     scenario8       DoPickScenario  "6"     ""      468 319 105  94         ""      @images/scenario8hilite-small.xpm "" }
+  { button     map             DoMap           ""      ""      267 24  180 150         ""      "" "" }
+}
+
+set ScenarioButtons $ScenarioButtons1200x900
+set ScenarioBackground "@images/background-micropolis.xpm"
+set ScenarioMapX 534
+set ScenarioMapY 48
+set ScenarioMapFloatX -1
+set ScenarioMapFloatY -1
+set ScenarioCityNameX 530
+set ScenarioCityNameY 0
+set ScenarioDescX 232
+set ScenarioDescY 170
+set ScenarioDescWidth 280
+set ScenarioDescHeight 285
+set ScenarioDescFont Large
+set EventLines 5
+
+set screenwidth [winfo screenwidth .]
+set screenheight [winfo screenheight .]
+
+if {($screenwidth < $ScenarioPanelWidth) ||
+    ($screenheight < $ScenarioPanelHeight)} {
+       puts stdout "Screen too small for normal scenario window, using resized version.\n"
+       set ScenarioBackground "@images/background-micropolis-small.xpm"
+       set ScenarioPanelWidth 600
+       set ScenarioPanelHeight 450
+       set ScenarioMapX -1
+       set ScenarioMapY -1
+       set ScenarioMapFloatX 140
+       set ScenarioMapFloatY 2
+       set ScenarioCityNameX 162
+       set ScenarioCityNameY 422
+       set ScenarioDescX 250
+       set ScenarioDescY 4
+       set ScenarioDescWidth 240
+       set ScenarioDescHeight 210
+       set ScenarioDescFont Tiny
+       set ScenarioButtons $ScenarioButtons600x450
+       set EventLines 2
+}
+
 # Disabled until we handle mouse events on the map itself.
 #   { button   map             DoMap           ""      ""      516  30 396 338         ""      @images/maphilite.xpm }
 
@@ -416,6 +479,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 +1005,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 +1021,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 +1034,6 @@ proc UIStartSound {chan sound {opts ""}} {
 }
 
 
-proc UIStopSound {chan sound {opts ""}} {
-  UIDoSound "sound stop $sound"
-}
-
-
 proc SetupSoundServer {win} {
   AddSoundServer $win
 }
@@ -2537,7 +2581,7 @@ proc EditorToolUp {w x y} {
 
   case [$w ToolState] in \
     7 { # bulldozer
-     UIStopSoundOn $w edit 1
+      stopdozer
     } \
     10 { # chalk
       StopChalk $w
@@ -3320,22 +3364,33 @@ proc UpdateScenarioButton {win data} {
   #echo "WIN $win TYPE $type ID $id OVER $over ENABLED $enabled CHECKED $checked"
   if {$over} {
     if {[lindex ${data} 2] == "DoPickScenario"} {
+      global ScenarioDescX ScenarioDescY ScenarioDescWidth ScenarioDescHeight ScenarioDescFont
       catch {text $win.desc \
        -borderwidth 2 \
        -relief flat \
        -wrap word \
        -state normal \
-       -font [Font $win Large]}
+       -font [Font $win $ScenarioDescFont]}
       
       $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
+      place $win.desc -x $ScenarioDescX -y $ScenarioDescY -width $ScenarioDescWidth -height $ScenarioDescHeight
+    }
+    if {[lindex ${data} 2] == "DoMap"} {
+      global ScenarioMapFloatX ScenarioMapFloatY
+      if { $ScenarioMapFloatX != "-1" } {
+        place $win.canvas.view -x $ScenarioMapFloatX -y $ScenarioMapFloatY
+      }
     }
   } else {
     catch {destroy $win.desc}
+    global ScenarioMapFloatX
+    if { $ScenarioMapFloatX != "-1" } {
+      catch {place forget $win.canvas.view}
+    }
   }
   if {$enabled} {
     if {$checked} {
@@ -5250,8 +5305,7 @@ proc DoLeaveGame {head} {
 proc UILoseGame {} {
   global Messages
   UIShowPicture 200
-  sim Speed 0
-  sim Pause 1
+  sim Pause
   AskQuestion [Color . #ff0000 #ffffff] [lindex $Messages(200) 1] \
     [lindex $Messages(200) 2] \
     ""\
Impressum, Datenschutz