Home Reference Source

src/Civ5SaveStringProperty.js

import Civ5SaveProperty from './Civ5SaveProperty';

/**
 * @ignore
 */
export default class Civ5SaveStringProperty extends Civ5SaveProperty {
  /**
   * @ignore
   */
  constructor(byteOffset, length, saveData) {
    super(byteOffset, length);

    if (this._isNullOrUndefined(this.length)) {
      /**
       * @ignore
       */
      this.length = this._getStringLength(saveData, this.byteOffset) + 4;
    }
  }

  /**
   * @private
   */
  _isNullOrUndefined(variable) {
    return typeof variable === 'undefined' || variable === null;
  }

  /**
   * @private
   */
  _getStringLength(saveData, byteOffset) {
    return saveData.getUint32(byteOffset, true);
  }

  /**
   * @ignore
   */
  getValue(saveData) {
    return saveData.getString(this.byteOffset + 4, this.length - 4);
  }
}