00001 00009 #include <zonestrings.h> 00010 #include <simulation.h> 00011 #include <string.h> 00012 00013 static const struct type_zone { 00014 welem_t tile_start; 00015 welem_t tile_end; 00016 char *zonestring; 00017 } type_zones[] = { 00018 { Z_DIRT, Z_DIRT, "Empty Land" }, 00019 { Z_REALTREE, Z_REALTREE, "Forest" }, 00020 { Z_REALWATER, Z_REALWATER, "Real Water" }, 00021 { Z_FAKETREE, Z_FAKETREE, "Development Tree" }, 00022 { Z_FAKEWATER, Z_FAKEWATER, "Lake" }, 00023 { Z_PUMP, Z_PUMP, "Water Pump" }, 00024 { Z_WASTE, Z_WASTE, "Wasteland" }, 00025 { Z_FIRE1, Z_FIRE3, "Fire" }, 00026 { Z_CRATER, Z_CRATER, "Crater" }, 00027 { Z_PIPE_START, Z_PIPE_END, "Pipe" }, 00028 { Z_POWERLINE_START, Z_POWERLINE_END, "Power Line" }, 00029 { Z_POWERWATER_START, Z_POWERWATER_END, "Powerline and Water Pipe" }, 00030 { Z_COMMERCIAL_SLUM, Z_COMMERCIAL_SLUM, "Commercial Zone (new)" }, 00031 { Z_RESIDENTIAL_SLUM, Z_RESIDENTIAL_SLUM, "Residential Zone (new)" }, 00032 { Z_INDUSTRIAL_SLUM, Z_INDUSTRIAL_SLUM, "Industrial Zone (new)" }, 00033 { Z_COALPLANT_START, Z_COALPLANT_END, "Coal Plant" }, 00034 { Z_NUCLEARPLANT_START, Z_NUCLEARPLANT_END, "Nuclear Plant" }, 00035 { Z_FIRESTATION_START, Z_FIRESTATION_END, "Fire Station" }, 00036 { Z_POLICEDEPT_START, Z_POLICEDEPT_END, "Police Department" }, 00037 { Z_ARMYBASE_START, Z_ARMYBASE_END, "Army Base" }, 00038 { Z_COMMERCIAL_MIN, Z_COMMERCIAL_MAX, "Commercial Zone" }, 00039 { Z_RESIDENTIAL_MIN, Z_RESIDENTIAL_MAX, "Residential Zone" }, 00040 { Z_INDUSTRIAL_MIN, Z_INDUSTRIAL_MAX, "Industrial Zone" }, 00041 { Z_POWERROAD_START, Z_POWERROAD_END, "Powerline over Road" }, 00042 { Z_PIPEROAD_START, Z_PIPEROAD_END, "Pipe over Road" }, 00043 { Z_ROAD_START, Z_ROAD_END, "Road" }, 00044 { Z_BRIDGE_START, Z_BRIDGE_END, "Bridge" }, 00045 { Z_RAIL_START, Z_RAIL_END, "Rail" }, 00046 { Z_RAILPIPE_START, Z_RAILPIPE_END, "Rail under Water Pipe" }, 00047 { Z_RAILPOWER_START, Z_RAILPOWER_END, "Rail under Powerline" }, 00048 { Z_RAILOVROAD_START, Z_RAILOVROAD_END, "Rail over Road" }, 00049 { Z_RAILTUNNEL_START, Z_RAILTUNNEL_END, "Rail Tunnel" }, 00050 { 0, 0, 0 } 00051 }; 00052 00053 int 00054 getFieldString(welem_t world, char *dest, int destlen) 00055 { 00056 int i = 0; 00057 00058 while (type_zones[i].zonestring != NULL) { 00059 if ((world >= type_zones[i].tile_start) && 00060 (world <= type_zones[i].tile_end)) { 00061 break; 00062 } 00063 i++; 00064 } 00065 if (type_zones[i].zonestring == NULL) return (-1); 00066 strncpy(dest, type_zones[i].zonestring, destlen - 1); 00067 dest[destlen - 1] = '\0'; 00068 return (0); 00069 } 00070 00071 char *densities[] = { 00072 "Low", 00073 "Medium", 00074 "High", 00075 "Very High" 00076 }; 00077 00078 char *values[] = { 00079 "Slum", 00080 "Lower Class", 00081 "Middle Class", 00082 "Upper Class" 00083 }; 00084 00085 int 00086 getFieldValue(welem_t world, char *dest, int destlen) 00087 { 00088 strncpy(dest, values[ZoneValue(world) % 4], destlen - 1); 00089 values[destlen - 1] = '\0'; 00090 00091 return (0); 00092 } 00093 00094 int 00095 getFieldDensity(welem_t world, char *dest, int destlen) 00096 { 00097 strncpy(dest, values[(ZoneValue(world) / 4) % 4], destlen - 1); 00098 values[destlen - 1] = '\0'; 00099 00100 return (0); 00101 }