public org.bwapi.proxy.messages.TerrainMessages.StaticTerrainInfo buildPartial() {
        org.bwapi.proxy.messages.TerrainMessages.StaticTerrainInfo result = new org.bwapi.proxy.messages.TerrainMessages.StaticTerrainInfo(this);
        int from_bitField0_ = bitField0_;
        if (regionsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            regions_ = java.util.Collections.unmodifiableList(regions_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.regions_ = regions_;
        } else {
          result.regions_ = regionsBuilder_.build();
        }
        if (chokepointsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            chokepoints_ = java.util.Collections.unmodifiableList(chokepoints_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.chokepoints_ = chokepoints_;
        } else {
          result.chokepoints_ = chokepointsBuilder_.build();
        }
        if (baseLocationsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            baseLocations_ = java.util.Collections.unmodifiableList(baseLocations_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.baseLocations_ = baseLocations_;
        } else {
          result.baseLocations_ = baseLocationsBuilder_.build();
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          startLocations_ = java.util.Collections.unmodifiableList(startLocations_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.startLocations_ = startLocations_;
        if (unwalkablePolygonBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            unwalkablePolygon_ = java.util.Collections.unmodifiableList(unwalkablePolygon_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.unwalkablePolygon_ = unwalkablePolygon_;
        } else {
          result.unwalkablePolygon_ = unwalkablePolygonBuilder_.build();
        }
        onBuilt();
        return result;
      }