/* Simcity city file structure -- Based on SIMFOR.TXT
* Coded and uploaded by Ed Greenberg 76703,1070
* Corrections welcome
*
* Note that the numbers that appear in the file are in high-low order,
* backwards from the conventions of the iNTEL 80x86 family. They must be
* reversed to be manipulated by C or assembler on the PC. Code to do this
* is shown at the bottom of the file.
*
* Remember that this assumes that ints are 2 bytes and longs are 4. Unix
* people will need to make adjustments. Since these are all even length
* datatypes, no pragma pack's are needed.
*/
struct _cityfile
{
char name[128];
char ResHis[480];
char ComHis[480];
char IndHis[480];
char CrimeHis[480];
char PolluteHis[480];
char CashFlowHis[480];
struct _vars
{
unsigned int filler;
unsigned int ExtMkt;
unsigned int ResPop; /* doesn't make sense */
unsigned int ComPop; /* doesn't make sense */
unsigned int IndPop; /* doesn't make sense */
unsigned int ResValve;
unsigned int ComValve;
unsigned int IndValve;
unsigned long CityTime; /* divide by 48 and add 1900 */
unsigned int CrimeRamp;
unsigned int PolluteRamp;
unsigned int LandValueAvg;
unsigned int CrimeAvg;
unsigned int PolluteAvg;
unsigned int GameLevel;
unsigned int CityClass;
unsigned int CityScore;
unsigned int filler1[32];
unsigned long TotalFunds;
unsigned int AutoBulldoze;
unsigned int AutoBudget;
unsigned int AutoGoto;
unsigned int Sound;
unsigned int TaxRate;
unsigned int SimSpeed;
unsigned long PoliceBud;
unsigned long FireBud;
unsigned long RoadBud;
unsigned int filler2[56];
} vars;
unsigned int map[120][100]; /* 120 columns by 100 rows */
} cityfile;
/* code to reverse ints and longs
THIS CODE IS COMMENTED OUT. CUT IT OUT AND PASTE IT INTO YOUR OWN PROGRAM
int swapint(i)
int i;
{
int t;
t=i & 0xff;
i >>= 8 ;
i &= 0xff;
i |= (t << 8);
return i;
}
long swaplong(l)
long l;
{
long t,ll;
int i;
t = 0L;
ll = l;
for(i=0;i<4;i++)
{
t<<=8;
t |= (ll & 0xff);
ll>>=8;
}
return t;
}
*/