|
|
1.1 ! root 1: # Window: Scenarios, for Unix Micropolis. ! 2: # ! 3: # Micropolis, Unix Version. This game was released for the Unix platform ! 4: # in or about 1990 and has been modified for inclusion in the One Laptop ! 5: # Per Child program. Copyright (C) 1989 - 2007 Electronic Arts Inc. If ! 6: # you need assistance with this program, you may contact: ! 7: # http://wiki.laptop.org/go/Micropolis or email [email protected]. ! 8: # ! 9: # This program is free software: you can redistribute it and/or modify ! 10: # it under the terms of the GNU General Public License as published by ! 11: # the Free Software Foundation, either version 3 of the License, or (at ! 12: # your option) any later version. ! 13: # ! 14: # This program is distributed in the hope that it will be useful, but ! 15: # WITHOUT ANY WARRANTY; without even the implied warranty of ! 16: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ! 17: # General Public License for more details. You should have received a ! 18: # copy of the GNU General Public License along with this program. If ! 19: # not, see <http://www.gnu.org/licenses/>. ! 20: # ! 21: # ADDITIONAL TERMS per GNU GPL Section 7 ! 22: # ! 23: # No trademark or publicity rights are granted. This license does NOT ! 24: # give you any right, title or interest in the trademark SimCity or any ! 25: # other Electronic Arts trademark. You may not distribute any ! 26: # modification of this program using the trademark SimCity or claim any ! 27: # affliation or association with Electronic Arts Inc. or its employees. ! 28: # ! 29: # Any propagation or conveyance of this program must include this ! 30: # copyright notice and these terms. ! 31: # ! 32: # If you convey this program (or any modifications of it) and assume ! 33: # contractual liability for the program to recipients of it, you agree ! 34: # to indemnify Electronic Arts for any liability that those contractual ! 35: # assumptions impose on Electronic Arts. ! 36: # ! 37: # You may not misrepresent the origins of this program; modified ! 38: # versions of the program must be marked as such and not identified as ! 39: # the original program. ! 40: # ! 41: # This disclaimer supplements the one included in the General Public ! 42: # License. TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, THIS ! 43: # PROGRAM IS PROVIDED TO YOU "AS IS," WITH ALL FAULTS, WITHOUT WARRANTY ! 44: # OF ANY KIND, AND YOUR USE IS AT YOUR SOLE RISK. THE ENTIRE RISK OF ! 45: # SATISFACTORY QUALITY AND PERFORMANCE RESIDES WITH YOU. ELECTRONIC ARTS ! 46: # DISCLAIMS ANY AND ALL EXPRESS, IMPLIED OR STATUTORY WARRANTIES, ! 47: # INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY, ! 48: # FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT OF THIRD PARTY ! 49: # RIGHTS, AND WARRANTIES (IF ANY) ARISING FROM A COURSE OF DEALING, ! 50: # USAGE, OR TRADE PRACTICE. ELECTRONIC ARTS DOES NOT WARRANT AGAINST ! 51: # INTERFERENCE WITH YOUR ENJOYMENT OF THE PROGRAM; THAT THE PROGRAM WILL ! 52: # MEET YOUR REQUIREMENTS; THAT OPERATION OF THE PROGRAM WILL BE ! 53: # UNINTERRUPTED OR ERROR-FREE, OR THAT THE PROGRAM WILL BE COMPATIBLE ! 54: # WITH THIRD PARTY SOFTWARE OR THAT ANY ERRORS IN THE PROGRAM WILL BE ! 55: # CORRECTED. NO ORAL OR WRITTEN ADVICE PROVIDED BY ELECTRONIC ARTS OR ! 56: # ANY AUTHORIZED REPRESENTATIVE SHALL CREATE A WARRANTY. SOME ! 57: # JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF OR LIMITATIONS ON IMPLIED ! 58: # WARRANTIES OR THE LIMITATIONS ON THE APPLICABLE STATUTORY RIGHTS OF A ! 59: # CONSUMER, SO SOME OR ALL OF THE ABOVE EXCLUSIONS AND LIMITATIONS MAY ! 60: # NOT APPLY TO YOU. ! 61: # ! 62: global ScenarioWindows ! 63: set n [Unique] ! 64: set parent [WindowLink $head.col2] ! 65: set win $parent.scenario$n ! 66: set ScenarioWindows [linsert $ScenarioWindows 0 $win] ! 67: ! 68: global ScenarioPanelWidth ! 69: global ScenarioPanelHeight ! 70: ! 71: LinkWindow $head.scenario $win ! 72: LinkWindow $win.head $head ! 73: LinkWindow $win.parent $parent ! 74: ! 75: catch "destroy $win" ! 76: frame $win \ ! 77: -width $ScenarioPanelWidth \ ! 78: -height $ScenarioPanelHeight ! 79: ! 80: SetHelp $win Scenario ! 81: ! 82: frame $win.scen\ ! 83: -borderwidth 0 -geometry 100x470 ! 84: ! 85: label $win.scen.micropolis\ ! 86: -bitmap "@images/micropolisl.xpm" \ ! 87: -font [Font $win Medium] ! 88: ! 89: button $win.scen.newcity\ ! 90: -command "UIGenerateNewCity" \ ! 91: -relief flat \ ! 92: -borderwidth 0 \ ! 93: -bitmap "@images/scncty.xpm" \ ! 94: -font [Font $win Medium] ! 95: ! 96: SetHelp $win.scen.newcity Scenario.NewCity ! 97: ! 98: button $win.scen.loadcity\ ! 99: -command "UILoadCity $head" \ ! 100: -relief flat \ ! 101: -borderwidth 0 \ ! 102: -bitmap "@images/sclcty.xpm" \ ! 103: -font [Font $win Medium] ! 104: ! 105: SetHelp $win.scen.loadcity Scenario.LoadCity ! 106: ! 107: button $win.scen.dullsville\ ! 108: -command {UILoadScenario 1} \ ! 109: -relief flat \ ! 110: -borderwidth 0 \ ! 111: -bitmap "@images/scdull.xpm" \ ! 112: -font [Font $win Medium] ! 113: ! 114: SetHelp $win.scen.dullsville Scenario.Dullsville ! 115: ! 116: button $win.scen.sanfrancisco\ ! 117: -command {UILoadScenario 2} \ ! 118: -relief flat \ ! 119: -borderwidth 0 \ ! 120: -bitmap "@images/scsfo.xpm" \ ! 121: -font [Font $win Medium] ! 122: ! 123: SetHelp $win.scen.sanfrancisco Scenario.SanFran ! 124: ! 125: button $win.scen.hamburg\ ! 126: -command {UILoadScenario 3} \ ! 127: -relief flat \ ! 128: -borderwidth 0 \ ! 129: -bitmap "@images/scham.xpm" \ ! 130: -font [Font $win Medium] ! 131: ! 132: SetHelp $win.scen.hamburg Scenario.Hamburg ! 133: ! 134: button $win.scen.bern\ ! 135: -command {UILoadScenario 4} \ ! 136: -relief flat \ ! 137: -borderwidth 0 \ ! 138: -bitmap "@images/scbern.xpm" \ ! 139: -font [Font $win Medium] ! 140: ! 141: SetHelp $win.scen.bern Scenario.Bern ! 142: ! 143: button $win.scen.tokyo\ ! 144: -command {UILoadScenario 5} \ ! 145: -relief flat \ ! 146: -borderwidth 0 \ ! 147: -bitmap "@images/sctkyo.xpm" \ ! 148: -font [Font $win Medium] ! 149: ! 150: SetHelp $win.scen.tokyo Scenario.Tokyo ! 151: ! 152: button $win.scen.rio\ ! 153: -command {UILoadScenario 8} \ ! 154: -relief flat \ ! 155: -borderwidth 0 \ ! 156: -bitmap "@images/scrio.xpm" \ ! 157: -font [Font $win Medium] ! 158: ! 159: SetHelp $win.scen.rio Scenario.Rio ! 160: ! 161: button $win.scen.boston\ ! 162: -command {UILoadScenario 7} \ ! 163: -relief flat \ ! 164: -borderwidth 0 \ ! 165: -bitmap "@images/scbos.xpm" \ ! 166: -font [Font $win Medium] ! 167: ! 168: SetHelp $win.scen.boston Scenario.Boston ! 169: ! 170: button $win.scen.detroit\ ! 171: -command {UILoadScenario 6} \ ! 172: -relief flat \ ! 173: -borderwidth 0 \ ! 174: -bitmap "@images/scdet.xpm" \ ! 175: -font [Font $win Medium] ! 176: ! 177: SetHelp $win.scen.detroit Scenario.Detroit ! 178: ! 179: message $win.scen.labeldullville\ ! 180: -aspect 1500\ ! 181: -font [Font $win Small] \ ! 182: -justify center \ ! 183: -text {Dullsville 1900 ! 184: Boredom} ! 185: ! 186: SetHelp $win.scen.labeldullville Scenario.Dullsville ! 187: ! 188: message $win.scen.labelsanfrancisco\ ! 189: -aspect 1500\ ! 190: -font [Font $win Small] \ ! 191: -justify center \ ! 192: -text {San Francisco 1906 ! 193: Earthquake} ! 194: ! 195: SetHelp $win.scen.labelsanfrancisco Scenario.SanFran ! 196: ! 197: message $win.scen.labelhamburg\ ! 198: -aspect 1500\ ! 199: -font [Font $win Small] \ ! 200: -justify center \ ! 201: -text {Hamburg 1944 ! 202: Bombing} ! 203: ! 204: SetHelp $win.scen.labelhamburg Scenario.Hamburg ! 205: ! 206: message $win.scen.labelbern\ ! 207: -aspect 1500\ ! 208: -font [Font $win Small] \ ! 209: -justify center \ ! 210: -text {Bern 1965 ! 211: Traffic} ! 212: ! 213: SetHelp $win.scen.labelbern Scenario.Bern ! 214: ! 215: message $win.scen.labeltokyo\ ! 216: -aspect 1500\ ! 217: -font [Font $win Small] \ ! 218: -justify center \ ! 219: -text {Tokyo 1957 ! 220: Monster Attack} ! 221: ! 222: SetHelp $win.scen.labeltokyo Scenario.Tokyo ! 223: ! 224: message $win.scen.labelrio\ ! 225: -aspect 1500\ ! 226: -font [Font $win Small] \ ! 227: -justify center \ ! 228: -text {Rio de Janeiro 2047 ! 229: Coastal Flooding} ! 230: ! 231: SetHelp $win.scen.labelrio Scenario.Rio ! 232: ! 233: message $win.scen.labelboston\ ! 234: -aspect 1500\ ! 235: -font [Font $win Small] \ ! 236: -justify center \ ! 237: -text {Boston 2010 ! 238: Nuclear Meltdown} ! 239: ! 240: SetHelp $win.scen.labelboston Scenario.Boston ! 241: ! 242: message $win.scen.labeldetroit\ ! 243: -aspect 1500\ ! 244: -font [Font $win Small] \ ! 245: -justify center \ ! 246: -text {Detroit 1972 ! 247: Crime} ! 248: ! 249: SetHelp $win.scen.labeldetroit Scenario.Detroit ! 250: ! 251: place $win.scen.micropolis -anchor n -x 265 -y 25 ! 252: place $win.scen.newcity -x 160 -y 120 ! 253: place $win.scen.loadcity -x 300 -y 120 ! 254: place $win.scen.dullsville -x 20 -y 230 ! 255: place $win.scen.sanfrancisco -x 160 -y 230 ! 256: place $win.scen.hamburg -x 300 -y 230 ! 257: place $win.scen.bern -x 440 -y 230 ! 258: place $win.scen.tokyo -x 20 -y 350 ! 259: place $win.scen.rio -x 160 -y 350 ! 260: place $win.scen.boston -x 300 -y 350 ! 261: place $win.scen.detroit -x 440 -y 350 ! 262: place $win.scen.labeldullville -anchor n -x 54 -y 290 ! 263: place $win.scen.labelsanfrancisco -anchor n -x 194 -y 290 ! 264: place $win.scen.labelhamburg -anchor n -x 334 -y 290 ! 265: place $win.scen.labelbern -anchor n -x 474 -y 290 ! 266: place $win.scen.labeltokyo -anchor n -x 54 -y 410 ! 267: place $win.scen.labelrio -anchor n -x 194 -y 410 ! 268: place $win.scen.labelboston -anchor n -x 334 -y 410 ! 269: place $win.scen.labeldetroit -anchor n -x 474 -y 410 ! 270: ! 271: BindSimButton $win.scen.newcity ! 272: BindSimButton $win.scen.loadcity ! 273: BindSimButton $win.scen.dullsville ! 274: BindSimButton $win.scen.sanfrancisco ! 275: BindSimButton $win.scen.hamburg ! 276: BindSimButton $win.scen.bern ! 277: BindSimButton $win.scen.tokyo ! 278: BindSimButton $win.scen.rio ! 279: BindSimButton $win.scen.boston ! 280: BindSimButton $win.scen.detroit ! 281: ! 282: frame $win.name \ ! 283: -borderwidth 2\ ! 284: -relief flat ! 285: ! 286: SetHelp $win.name Scenario.Name ! 287: ! 288: label $win.name.namelabel \ ! 289: -text {City Name:} \ ! 290: -font [Font $win Text] ! 291: ! 292: entry $win.name.cityname \ ! 293: -text {}\ ! 294: -textvariable CityName \ ! 295: -font [Font $win Text] \ ! 296: -width 50 ! 297: bind $win.name.cityname <Return> "DoEnterCityName $win" ! 298: bind $win.name.cityname <Any-Enter> {focus %W} ! 299: LinkWindow $win.cityname $win.name.cityname ! 300: ! 301: pack append $win.name \ ! 302: $win.name.namelabel {left frame e}\ ! 303: $win.name.cityname {left frame e} ! 304: ! 305: frame $win.level \ ! 306: -borderwidth 2\ ! 307: -relief flat ! 308: ! 309: SetHelp $win.level Scenario.Level ! 310: ! 311: label $win.level.levellabel \ ! 312: -text {Game Level:} \ ! 313: -font [Font $win Text] ! 314: ! 315: frame $win.level.radio \ ! 316: -borderwidth 0\ ! 317: -relief flat ! 318: ! 319: radiobutton $win.level.radio.easy \ ! 320: -text "Easy" -variable GameLevel -value 0 \ ! 321: -command "DoSetGameLevel 0" \ ! 322: -font [Font $win Large] ! 323: ! 324: radiobutton $win.level.radio.medium \ ! 325: -text "Medium" -variable GameLevel -value 1 \ ! 326: -command "DoSetGameLevel 1" \ ! 327: -font [Font $win Large] ! 328: ! 329: radiobutton $win.level.radio.hard \ ! 330: -text "Hard" -variable GameLevel -value 2 \ ! 331: -command "DoSetGameLevel 2" \ ! 332: -font [Font $win Large] ! 333: ! 334: pack append $win.level.radio \ ! 335: $win.level.radio.easy {top frame e expand fillx}\ ! 336: $win.level.radio.medium {top frame e expand fillx}\ ! 337: $win.level.radio.hard {top frame e expand fillx} ! 338: ! 339: frame $win.level.label \ ! 340: -borderwidth 0\ ! 341: -relief flat ! 342: ! 343: label $win.level.label.easylabel \ ! 344: -text {Initial Funds: $20,000} \ ! 345: -font [Font $win Large] \ ! 346: -anchor w ! 347: ! 348: label $win.level.label.mediumlabel \ ! 349: -text {Initial Funds: $10,000} \ ! 350: -font [Font $win Large] \ ! 351: -anchor w ! 352: ! 353: label $win.level.label.hardlabel \ ! 354: -text {Initial Funds: $5,000} \ ! 355: -font [Font $win Large] \ ! 356: -anchor w ! 357: ! 358: pack append $win.level.label \ ! 359: $win.level.label.easylabel {top frame e expand fillx} \ ! 360: $win.level.label.mediumlabel {top frame e expand fillx} \ ! 361: $win.level.label.hardlabel {top frame e expand fillx} ! 362: ! 363: pack append $win.level \ ! 364: $win.level.levellabel {left frame ne} \ ! 365: $win.level.radio {left frame ne} \ ! 366: $win.level.label {left frame ne expand fillx} ! 367: ! 368: frame $win.buttons \ ! 369: -borderwidth 0\ ! 370: -relief flat -borderwidth 2 ! 371: ! 372: button $win.buttons.previous \ ! 373: -text {Previous Map}\ ! 374: -font [Font $win Large]\ ! 375: -command "PrevHistory"\ ! 376: -relief raised \ ! 377: -width 20 ! 378: LinkWindow $win.previous $win.buttons.previous ! 379: ! 380: SetHelp $win.buttons.previous Scenario.Previous ! 381: ! 382: frame $win.buttons.voteframe \ ! 383: -borderwidth 0 \ ! 384: -relief raised ! 385: LinkWindow $win.voteframe $win.buttons.voteframe ! 386: ! 387: SetHelp $win.buttons.voteframe Scenario.Use ! 388: ! 389: button $win.buttons.voteframe.vote \ ! 390: -font [Font $win Large]\ ! 391: -text { Use This Map }\ ! 392: -command "DoVote $win UseThisMap UIUseThisMap {}"\ ! 393: -relief raised \ ! 394: -borderwidth 1\ ! 395: -width 20 ! 396: LinkWindow $win.vote $win.buttons.voteframe.vote ! 397: ! 398: pack append $win.buttons.voteframe\ ! 399: $win.buttons.voteframe.vote {top frame center} ! 400: ! 401: BindVotingButton $win $win.buttons.voteframe.vote UseThisMap ! 402: ! 403: button $win.buttons.next \ ! 404: -font [Font $win Large]\ ! 405: -text {Next Map}\ ! 406: -command "NextHistory"\ ! 407: -width 20 ! 408: LinkWindow $win.next $win.buttons.next ! 409: ! 410: SetHelp $win.buttons.next Scenario.Next ! 411: ! 412: pack append $win.buttons\ ! 413: $win.buttons.previous {left frame nw}\ ! 414: $win.buttons.voteframe {left frame nw}\ ! 415: $win.buttons.next {left frame nw} ! 416: ! 417: pack append $win\ ! 418: $win.scen {top frame center fillx}\ ! 419: $win.buttons {top frame center fillx}\ ! 420: $win.name {top frame center fillx}\ ! 421: $win.level {top frame center fillx}\ ! 422: ! 423: #place configure $win -x 0 -y 0 -width $ScenarioPanelWidth -height $ScenarioPanelHeight ! 424: ! 425: InitScenario $win ! 426: ! 427: update idletasks
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.