Program SimUtil; { Reads a SimCity .CTY file, reports its various parameters. This is just a sample of what can be done with the SimUnit. } Uses TpCrt, SimUnit; Var Population : LongInt; CityTime : LongInt; i : Byte; begin FillChar(SimCityRecord, SizeOf(SimCityRecord), 0); Clrscr; Write('Enter SimCity filename: '); Readln(SimCityFname); {careful NO error checking here} if length(SimCityFname) = 0 then halt; Writeln; Writeln('Please Wait a Moment While I Calculate....'); ReadSimCityFile; MapTileIndexValues; Clrscr; With SimCityRecord do begin Write('City Name: '); for i := 3 to 63 do Write(CityName[i]); writeln(cityname[64]); With MiscVar do begin Writeln('External Market Size: ',ExtMktSize); Writeln('Res Pop: ', ResPop*20); Writeln('Com Pop: ', ComPop*8*20); Writeln('Ind Pop: ', IndPop*8*20); Population := (ResPop + (ComPop*8) + (IndPop*8)); Population := Population * 20; Writeln('Population: ', population); Writeln('City Time : ', (CityTime/48 + 1900):4:4); Writeln('Land Value Average: ', LandValAvg); Writeln('Crime Average : ', CrimeAvg); Writeln('Pollution Average : ', PollutionAvg); Writeln('Game Level: ',GameLevel); Writeln('City Class: ',CityClass); Writeln('City Score: ',CityScore); Writeln('Total Funds : $',TotalFunds); Writeln('City Tax Rate: ',TaxRate,'%'); Writeln('Police Budget: ',PoliceBudget); Writeln('Fire Budget : ',FireBudget); Writeln('Road Budget : ',RoadBudget); Writeln('FLAGS'); Writeln(' Auto-Bulldozer: ',AutoBull); Writeln(' Auto-Budget : ',AutoBudget); Writeln(' Auto-Goto : ',AutoGo); Writeln(' Sound : ',SoundEffects); Writeln(' Speed : ',SimSpeed); end; end; With MapRecord do begin GotoXY(35,2); Write('Hospitals : ', Hospital); GotoXY(35,3); Write('Churchs : ', Church); GotoXY(35,4); Write('Airports : ', Airport); GotoXY(35,5); Write('Seaports : ', SeaPort); GotoXY(35,6); Write('Coal Power: ', CoalPower); GotoXY(35,7); Write('Nuclear : ', NuclearPower); GotoXY(35,8); Write('Parks : ', Parks); GotoXY(35,9); Write('Fountains : ', Fountain); GotoXY(35,10); Write('Fire Stations : ',FireStation); GotoXY(35,11); Write('Police Stations: ',PoliceStation); GotoXY(35,12); Write('Trees Areas : ',Trees + TreeEdge); GotoXY(35,13); Write('Empty Residential Areas : ',EmptyRes); GotoXY(35,14); Write('Lo Value Residential Units : ',ResLoVal1+ResLoVal2+ResLoVal3+ResLoVal4); GotoXY(35,15); Write('Mid/Up Value Residential Units: ',ResMidVal1+ResMidVal2+ResMidVal3+ResMidVal4+ ResUpVal1+ResUpVal2+ResUpVal3+ResUpVal4); GotoXY(35,16); Write('Hi Value Residential Units : ',ResHiVal1+ResHiVal2+ResHiVal3+ResHiVal4); GotoXY(35,17); Write('Total Number of Houses : ', Houses); GotoXY(35,18); Write('Empty Commerical Zones : ',EmptyCom); GotoXY(35,19); Write('Lo Value Commerical Zones : ',ComLoVal1+ComLoVal2+ComLoVal3+ComLoVal4+ComLoVal5); GotoXY(35,20); Write('Mid/Up Value Commerical Zones : ',ComMidVal1+ComMidVal2+ComMidVal3+ComMidVal4+ComMidVal5+ ComUpVal1+ComUpVal2+ComUpVal3+ComUpVal4+ComUpVal5); GotoXY(35,21); Write('Hi Value Commercial Zones : ',ComHiVal1+ComHiVal2+ComHiVal3+ComHiVal4+ComHiVal5); GotoXY(35,22); Write('Empty Industrial Zones : ',IndEmpty); GotoXY(35,23); Write('Lo Value Industrial Zones : ',IndLoVal1+IndLoVal2+IndLoVal3+IndLoVal4); GotoXY(35,24); Write('Hi Value Industrial Zones : ',IndHiVal1+IndHiVal2+IndHiVal3+IndHiVal4); GotoXY(55,2); Write('Power Tiles : ',Power); GotoXY(55,3); Write('Road (Heavy) : ',Road_HvTraf); GotoXY(55,4); Write('Road (Light) : ',Road_LtTraf); GotoXY(55,5); Write('Road (NoTraf): ',Road_NoTraf); GotoXY(55,6); Write('Transit Lines: ',Transit); GotoXY(55,7); Write('Rad. Zones : ',Radiation); GotoXY(55,8); Write('Stadiums : ',StadiumEmpty+StadiumFull); GotoXY(55,9); Write('River Fronts : ',RiverEdge); end; Readln; end.