|
|
1.1 ! root 1: # Windows: Maps, 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: global MapWindows ! 62: set n [Unique] ! 63: set parent [WindowLink $head.w2] ! 64: set win $parent.map$n ! 65: set MapWindows [linsert $MapWindows 0 $win] ! 66: ! 67: global MapState.$win ! 68: set MapState.$win 0 ! 69: ! 70: LinkWindow $head.map $win ! 71: LinkWindow $win.head $head ! 72: LinkWindow $win.parent $parent ! 73: LinkWindow $win.top $win ! 74: ! 75: catch "destroy $win" ! 76: frame $win ! 77: ! 78: SetHelp $win Map ! 79: ! 80: bind $win <Visibility> {[WindowLink %W.view] Visible [string compare %s FullyObscured]} ! 81: bind $win <Map> {[WindowLink %W.view] Visible 1} ! 82: bind $win <Unmap> {[WindowLink %W.view] Visible 0} ! 83: ! 84: frame $win.centerframe\ ! 85: -borderwidth 1\ ! 86: -relief sunken ! 87: ! 88: SetHelp $win.centerframe Map.View ! 89: ! 90: mapview $win.centerframe.view\ ! 91: -font [Font $win Large] ! 92: $win.centerframe.view size [expr "[sim WorldX] * 3"] [expr "[sim WorldY] * 3"] ! 93: ! 94: LinkWindow $win.view $win.centerframe.view ! 95: LinkWindow $win.centerframe.view.pallet $win.topframe ! 96: LinkWindow $win.centerframe.view.win $win ! 97: ! 98: bind $win.centerframe.view <1> {MapPanDown %W %x %y} ! 99: bind $win.centerframe.view <B1-Motion> {MapPanDrag %W %x %y} ! 100: bind $win.centerframe.view <ButtonRelease-1> {MapPanUp %W %x %y} ! 101: ! 102: bind $win.centerframe.view <2> {MapPanDown %W %x %y} ! 103: bind $win.centerframe.view <B2-Motion> {MapPanDrag %W %x %y} ! 104: bind $win.centerframe.view <ButtonRelease-2> {MapPanUp %W %x %y} ! 105: ! 106: bind $win.centerframe.view <3> {MapPanDown %W %x %y} ! 107: bind $win.centerframe.view <B3-Motion> {MapPanDrag %W %x %y} ! 108: bind $win.centerframe.view <ButtonRelease-3> {MapPanUp %W %x %y} ! 109: ! 110: pack append $win.centerframe\ ! 111: $win.centerframe.view {top frame center expand} ! 112: ! 113: frame $win.topframe\ ! 114: -borderwidth 1\ ! 115: -relief raised ! 116: ! 117: menubutton $win.topframe.zones\ ! 118: -menu $win.topframe.zones.m\ ! 119: -text {Zones}\ ! 120: -font [Font $win Medium]\ ! 121: -variable $win.postedMenu\ ! 122: -borderwidth 1\ ! 123: -relief flat ! 124: LinkWindow $win.zones $win.topframe.zones ! 125: tk_bindForTraversal $win.topframe.zones ! 126: bind $win.topframe.zones <F10> {tk_firstMenu %W} ! 127: bind $win.topframe.zones <Mod2-Key> {tk_traverseToMenu %W %A} ! 128: tk_menus $win $win.topframe.zones ! 129: ! 130: SetHelp $win.topframe.zones Map.Zones ! 131: ! 132: menu $win.topframe.zones.m\ ! 133: -font [Font $win Medium] ! 134: tk_bindForTraversal $win.topframe.zones.m ! 135: bind $win.topframe.zones.m <F10> {tk_firstMenu %W} ! 136: bind $win.topframe.zones.m <Mod2-Key> {tk_traverseToMenu %W %A} ! 137: $win.topframe.zones.m add radiobutton\ ! 138: -label {All}\ ! 139: -variable MapState.$win\ ! 140: -value 0\ ! 141: -command "SetMapState $win 0" ! 142: $win.topframe.zones.m add radiobutton\ ! 143: -label {Residential}\ ! 144: -variable MapState.$win\ ! 145: -value 1\ ! 146: -command "SetMapState $win 1" ! 147: $win.topframe.zones.m add radiobutton\ ! 148: -label {Commercial}\ ! 149: -variable MapState.$win\ ! 150: -value 2\ ! 151: -command "SetMapState $win 2" ! 152: $win.topframe.zones.m add radiobutton\ ! 153: -label {Industrial}\ ! 154: -variable MapState.$win\ ! 155: -value 3\ ! 156: -command "SetMapState $win 3" ! 157: $win.topframe.zones.m add radiobutton\ ! 158: -label {Transportation}\ ! 159: -variable MapState.$win\ ! 160: -value 5\ ! 161: -command "SetMapState $win 5" ! 162: # Disabled dynamic filter for now. ! 163: #$win.topframe.zones.m add radiobutton\ ! 164: # -label {Dynamic}\ ! 165: # -variable MapState.$win\ ! 166: # -value 14\ ! 167: # -command "SetMapState $win 14" ! 168: ! 169: menubutton $win.topframe.overlays\ ! 170: -menu $win.topframe.overlays.m\ ! 171: -text {Overlays}\ ! 172: -font [Font $win Medium]\ ! 173: -variable $win.postedMenu\ ! 174: -borderwidth 1\ ! 175: -relief flat ! 176: LinkWindow $win.overlays $win.topframe.overlays ! 177: tk_bindForTraversal $win.topframe.overlays ! 178: bind $win.topframe.overlays <F10> {tk_firstMenu %W} ! 179: bind $win.topframe.overlays <Mod2-Key> {tk_traverseToMenu %W %A} ! 180: tk_menus $win $win.topframe.overlays ! 181: ! 182: SetHelp $win.topframe.overlays Map.Overlays ! 183: ! 184: menu $win.topframe.overlays.m\ ! 185: -font [Font $win Medium] ! 186: tk_bindForTraversal $win.topframe.overlays.m ! 187: bind $win.topframe.overlays.m <F10> {tk_firstMenu %W} ! 188: bind $win.topframe.overlays.m <Mod2-Key> {tk_traverseToMenu %W %A} ! 189: $win.topframe.overlays.m add radiobutton\ ! 190: -label {Population Density}\ ! 191: -variable MapState.$win\ ! 192: -value 6\ ! 193: -command "SetMapState $win 6" ! 194: $win.topframe.overlays.m add radiobutton\ ! 195: -label {Rate of Growth}\ ! 196: -variable MapState.$win\ ! 197: -value 7\ ! 198: -command "SetMapState $win 7" ! 199: $win.topframe.overlays.m add radiobutton\ ! 200: -label {Land Value}\ ! 201: -variable MapState.$win\ ! 202: -value 11\ ! 203: -command "SetMapState $win 11" ! 204: $win.topframe.overlays.m add radiobutton\ ! 205: -label {Crime Rate}\ ! 206: -variable MapState.$win\ ! 207: -value 10\ ! 208: -command "SetMapState $win 10" ! 209: $win.topframe.overlays.m add radiobutton\ ! 210: -label {Pollution Density}\ ! 211: -variable MapState.$win\ ! 212: -value 9\ ! 213: -command "SetMapState $win 9" ! 214: $win.topframe.overlays.m add radiobutton\ ! 215: -label {Traffic Density}\ ! 216: -variable MapState.$win\ ! 217: -value 8\ ! 218: -command "SetMapState $win 8" ! 219: $win.topframe.overlays.m add radiobutton\ ! 220: -label {Power Grid}\ ! 221: -variable MapState.$win\ ! 222: -value 4\ ! 223: -command "SetMapState $win 4" ! 224: $win.topframe.overlays.m add radiobutton\ ! 225: -label {Fire Coverage}\ ! 226: -variable MapState.$win\ ! 227: -value 12\ ! 228: -command "SetMapState $win 12" ! 229: $win.topframe.overlays.m add radiobutton\ ! 230: -label {Police Coverage}\ ! 231: -variable MapState.$win\ ! 232: -value 13\ ! 233: -command "SetMapState $win 13" ! 234: ! 235: label $win.topframe.legend\ ! 236: -bitmap "@images/legendn.xpm" \ ! 237: -font [Font $win Medium] ! 238: LinkWindow $win.legend $win.topframe.legend ! 239: ! 240: pack append $win.topframe\ ! 241: $win.topframe.zones {left frame nw} \ ! 242: $win.topframe.overlays {left frame nw} \ ! 243: $win.topframe.legend {right frame ne} ! 244: ! 245: pack append $win\ ! 246: $win.topframe {top frame center fillx} \ ! 247: $win.centerframe {top frame center fill} ! 248: ! 249: pack append $parent\ ! 250: $win {top frame nw expand fill} ! 251: ! 252: InitMap $win ! 253: ! 254: update idletasks
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.