|
|
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.