]>
cvs.zerfleddert.de Git - micropolis/blob - src/sim/w_update.c
   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  micropolis@laptop.org. 
   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. 
  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/>. 
  21  *             ADDITIONAL TERMS per GNU GPL Section 7 
  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. 
  29  * Any propagation or conveyance of this program must include this 
  30  * copyright notice and these terms. 
  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. 
  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. 
  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 
  65 short MustUpdateFunds
; 
  66 short MustUpdateOptions
; 
  71 QUAD LastR
, LastC
, LastI
; 
  73 void UpdateOptionsMenu(int options
); 
  74 void updateOptions(void); 
  75 void SetDemand(double r
, double c
, double i
); 
  77 void showValves(void); 
  78 void updateDate(void); 
  79 void ReallyUpdateFunds(void); 
  82   "Jan", "Feb", "Mar", "Apr", "May", "Jun",  
  83   "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" 
  87 void DoUpdateHeads(void) 
  96 void UpdateEditors(void) 
 103 void UpdateMaps(void) 
 109 void UpdateGraphs(void) 
 115 void UpdateEvaluation(void) 
 121 void UpdateHeads(void) 
 123   MustUpdateFunds 
= ValveFlag 
= 1; 
 124   LastCityTime 
= LastCityYear 
= LastCityMonth 
= LastFunds 
= LastR 
= -999999; 
 137 ReallyUpdateFunds(void) 
 139   char localStr
[256], dollarStr
[256], buf
[256]; 
 141   if (!MustUpdateFunds
) return; 
 145   if (TotalFunds 
< 0) TotalFunds 
= 0; 
 147   if (TotalFunds 
!= LastFunds
) { 
 148     LastFunds 
= TotalFunds
; 
 149     sprintf(localStr
, "%ld", TotalFunds
); 
 150     makeDollarDecimalStr(localStr
, dollarStr
); 
 152     sprintf(localStr
, "Funds: %s", dollarStr
); 
 154     sprintf(buf
, "UISetFunds {%s}", localStr
); 
 163 //  if ((CityTime >> 2) != LastCityTime) { 
 174   char str
[256], buf
[256]; 
 175   int megalinium 
= 1000000; 
 177   LastCityTime 
= CityTime 
>> 2; 
 179   y 
= ((int)CityTime 
/ 48) + (int)StartingYear
; 
 180   m 
= ((int)CityTime 
% 48) >> 2; 
 182   if (y 
>= megalinium
) { 
 183     SetYear(StartingYear
); 
 190   if ((LastCityYear 
!= y
) || 
 191       (LastCityMonth 
!= m
)) { 
 196     sprintf(str
, "%s %d", dateStr
[m
], y
); 
 199             "UISetDate {%s} %d %d", 
 222   if (r 
< -1500) r 
= -1500; 
 223   if (r 
> 1500) r 
= 1500; 
 226   if (c 
< -1500) c 
= -1500; 
 227   if (c 
> 1500) c 
= 1500; 
 230   if (i 
< -1500) i 
= -1500; 
 231   if (i 
> 1500) i 
= 1500; 
 245 SetDemand(double r
, double c
, double i
) 
 249   sprintf(buf
, "UISetDemand %d %d %d", 
 250           (int)(r 
/ 100), (int)(c 
/ 100), (int)(i 
/ 100)); 
 260   if (MustUpdateOptions
) { 
 262     if (autoBudget
)     options 
|= 1; 
 263     if (autoGo
)         options 
|= 2; 
 264     if (autoBulldoze
)   options 
|= 4; 
 265     if (!NoDisasters
)   options 
|= 8; 
 266     if (UserSoundOn
)    options 
|= 16; 
 267     if (DoAnimation
)    options 
|= 32; 
 268     if (DoMessages
)     options 
|= 64; 
 269     if (DoNotices
)      options 
|= 128; 
 271     MustUpdateOptions 
= 0; 
 272     UpdateOptionsMenu(options
); 
 278 UpdateOptionsMenu(int options
) 
 281   sprintf(buf
, "UISetOptions %d %d %d %d %d %d %d %d", 
 282           (options
&1)?1:0, (options
&2)?1:0, 
 283           (options
&4)?1:0, (options
&8)?1:0, 
 284           (options
&16)?1:0, (options
&32)?1:0, 
 285           (options
&64)?1:0, (options
&128)?1:0);