public Builder mergeFrom(org.bwapi.proxy.messages.GameMessages.UpgradeTypeData other) {
        if (other == org.bwapi.proxy.messages.GameMessages.UpgradeTypeData.getDefaultInstance()) return this;
        if (other.hasId()) {
          setId(other.getId());
        }
        if (other.hasName()) {
          bitField0_ |= 0x00000002;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasRace()) {
          setRace(other.getRace());
        }
        if (other.hasMineralPriceBase()) {
          setMineralPriceBase(other.getMineralPriceBase());
        }
        if (other.hasMineralPriceFactor()) {
          setMineralPriceFactor(other.getMineralPriceFactor());
        }
        if (other.hasGasPriceBase()) {
          setGasPriceBase(other.getGasPriceBase());
        }
        if (other.hasGasPriceFactor()) {
          setGasPriceFactor(other.getGasPriceFactor());
        }
        if (other.hasUpgradeTimeBase()) {
          setUpgradeTimeBase(other.getUpgradeTimeBase());
        }
        if (other.hasUpgradeTimeFactor()) {
          setUpgradeTimeFactor(other.getUpgradeTimeFactor());
        }
        if (other.hasMaxRepeats()) {
          setMaxRepeats(other.getMaxRepeats());
        }
        if (other.hasWhatUpgrades()) {
          mergeWhatUpgrades(other.getWhatUpgrades());
        }
        if (whatUsesBuilder_ == null) {
          if (!other.whatUses_.isEmpty()) {
            if (whatUses_.isEmpty()) {
              whatUses_ = other.whatUses_;
              bitField0_ = (bitField0_ & ~0x00000800);
            } else {
              ensureWhatUsesIsMutable();
              whatUses_.addAll(other.whatUses_);
            }
            onChanged();
          }
        } else {
          if (!other.whatUses_.isEmpty()) {
            if (whatUsesBuilder_.isEmpty()) {
              whatUsesBuilder_.dispose();
              whatUsesBuilder_ = null;
              whatUses_ = other.whatUses_;
              bitField0_ = (bitField0_ & ~0x00000800);
              whatUsesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getWhatUsesFieldBuilder() : null;
            } else {
              whatUsesBuilder_.addAllMessages(other.whatUses_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }